#escaping #ellipsis #quote #latex #rules #html #french

程序+库 crowbook-text-processing

提供了一些用于转义文本(HTML/LaTeX)并根据排版规则(智能引号、省略号、法语排版规则)进行格式化的工具函数

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 文本处理

Download history 88/week @ 2024-04-22 111/week @ 2024-04-29 57/week @ 2024-05-06 116/week @ 2024-05-13 50/week @ 2024-05-20 58/week @ 2024-05-27 48/week @ 2024-06-03 57/week @ 2024-06-10 67/week @ 2024-06-17 68/week @ 2024-06-24 40/week @ 2024-07-01 22/week @ 2024-07-08 37/week @ 2024-07-15 30/week @ 2024-07-22 29/week @ 2024-07-29 33/week @ 2024-08-05

130 每月下载
用于 3 crates

MPL-2.0 许可证

62KB
1K SLoC

在 Docs.rs 上查看完整的库文档。

提供了一些用于转义文本(到 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