18 个版本 (3 个稳定)
1.1.1 | 2023 年 8 月 3 日 |
---|---|
1.1.0 | 2023 年 7 月 29 日 |
1.0.0 | 2020 年 2 月 10 日 |
0.2.8 | 2019 年 11 月 11 日 |
0.2.2 | 2016 年 10 月 21 日 |
#211 in 文本处理
130 每月下载
用于 3 crates
62KB
1K SLoC
提供了一些用于转义文本(到 HTML 或 LaTeX)并根据排版规则(智能引号、省略号、法语排版规则)进行格式化的工具函数
这些函数最初是为 Crowbook 编写的,但已发布为独立的 crate 并采用更宽松的许可证(MPL 而不是 LGPL),以便可以在其他项目中使用。
使用方法
只需在您的 Cargo.toml
文件的 dependencies
部分添加此行
[dependencies]
crowbook-text-processing = "0.2"
示例
use crowbook_text_processing::{FrenchFormatter, clean, escape};
let s = " Some string with too much whitespaces & around 1% \
characters that might cause trouble to HTML or LaTeX.";
// Remove unnecessary whitespaces (but doesn't trim as it can have meaning)
let new_s = clean::whitespaces(s);
// Escape forHTML
println!("for HTML: {}", escape::html(new_s.clone()));
// Escape for LaTeX
println!("for LaTeX: {}", escape::tex(new_s));
// Replace quotes with typographic quotation marks
let s = r#"Some "quoted string" and 'another one'."#;
let new_s = clean::quotes(s);
assert_eq!(&new_s, "Some “quoted string” and ‘another one’.");
// Replace three consecutive dots with ellipsis character
let s = clean::ellipsis("Foo...");
assert_eq!(&s, "Foo…");
// Format whitespaces according to french typographic rules, using
// the appropriate non-breaking spaces where needed
let s = " Une chaîne en français ! On voudrait un résultat \
« typographiquement correct ».";
let french = FrenchFormatter::new();
println!("for text: {}", french.format(s));
println!("for LaTeX: {}", escape::tex(french.format_tex(s)));
许可证
这是免费软件,发布在 Mozilla 公共许可证,版本 2.0 下。
变更日志
请参阅 变更日志文件。
依赖关系
~2.2–3MB
~54K SLoC