2 个不稳定版本
0.2.0 | 2021年6月7日 |
---|---|
0.1.0 | 2021年6月3日 |
#155 in #版本控制
16KB
55 行
这是一个用于包裹和展开 Markdown 的库,便于编辑和版本控制。它使用函数式 Rust 实现。
runwrap
基于 textwrap
和 pulldown_cmark
插件。后者旨在实现 CommonMark 规范。
目标
- 适合编辑和版本控制的包裹文本。
- 适合搜索和复杂标记解析的未包裹文本。
- 易于与高级语言和编辑器集成。
- 幂等性。
- 合理的性能。
其他语言的绑定
- Python:
punwrap
(仓库)。
已知缺陷
以下可能已修复,也可能未修复,因此应被视为不稳定行为。
无高级选项
目前,只能指定最大宽度来包裹文本。更高级的选项目前不能通过 runwrap
传递给 textwrap
。
宽度应用于每个段落
传递给 wrap
和 rewrap
的宽度设置应用于每个单独段落的范围。这意味着列表项的总行宽可能超过传递的值。
由于同样的原因,列表项换行到列零;它们没有被整齐地缩进。
忽略单段落列表项
runwrap
只作用于 pulldown_cmark
识别为段落的文本。这包括连续文本的正常段落以及一些列表项等,因为它与 HTML 中的潜在 <p>
标签相关,而不是从排版意义上讲的文章。
This is a regular paragraph.
* This is a list item.
Because this list item consists of multiple paragraphs, it
(each of its two paragraphs) can be affected by `runwrap`.
由单段文本组成的列表项不被 pulldown_cmark
识别为段落,因此即使跨越多行也会被忽略。
* This is ignored because it’s one bullet for one paragraph.
* Also
ignored.
法律
版权所有 2021 Viktor Eikman
runwrap
的许可详情请参阅附带的文件 LICENSE。
依赖项
~1.5MB
~26K SLoC