9个版本 (5个重大更新)
0.6.0 | 2022年10月20日 |
---|---|
0.5.0 | 2022年8月12日 |
0.4.1 | 2022年8月12日 |
0.4.0 | 2020年2月21日 |
0.1.0 | 2019年7月29日 |
#839 in 文本处理
每月下载 29次
34KB
610 行
linurgy
Rust库,用于操作多个换行符。
使用您编辑的文本创建一个新的 String
,或使用缓冲区将输入和输出管道输入到 Editor
。此库没有其他依赖项。
使用linurgy
使用方便的 factory
函数之一构建可重用的 Editor
。使用 edit
方法创建一个新的 String
。
use linurgy::factory;
// appends an underscore "_" every 2 newlines "\n\n" => "\n\n_"
let editor = factory::appender("_", 2);
let output = editor.edit("foo\n\n");
assert_eq!("foo\n\n_", output);
通过使用 edit_buffered
方法将 stdin
操作为 stdout
。这也适用于文件、Cursor
或实现 BufRead
的任何其他东西。
use linurgy::factory;
use std::io::{BufReader, Result, stdin, stdout};
// doubles every newline "\n" => "\n\n"
let editor = factory::appender("\n", 1);
// create a buffer over stdin
let mut input = BufReader::new(stdin());
// pipe input into editor and output to stdout
editor.edit_buffered(&mut input, &mut stdout())?;
处理LF \n
或 CRLF \r\n
行结束符。有用于CRLF输入的 factory
函数。
use linurgy::factory;
// inserts a "*" before 2 newlines "\r\n\r\n" => "*\r\n\r\n"
let editor = factory::inserter_crlf("*", 2);
let output = editor.edit("foo\r\nbar\r\n\r\n");
// notice there is only an asterisk before the double newline
assert_eq!("foo\r\nbar*\r\n\r\n", output);
贡献
非常感谢您考虑为此项目做出贡献!
我们欢迎任何形式的贡献
- 新问题(功能请求、错误报告、问题、想法、...)
- 拉取请求(文档改进、代码改进、新功能、...)
注意:在您花费时间打开拉取请求之前,请先打开一个问题。
有关详细信息,请参阅 CONTRIBUTING.md。
许可证
Linurgy根据MIT许可证和Apache许可证(版本2.0)的条款分发。
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。