2 个不稳定版本

0.2.0 2021年6月7日
0.1.0 2021年6月3日

#155 in #版本控制

GPL-3.0-or-later

16KB
55

这是一个用于包裹和展开 Markdown 的库,便于编辑和版本控制。它使用函数式 Rust 实现。

runwrap 基于 textwrappulldown_cmark 插件。后者旨在实现 CommonMark 规范。

目标

  • 适合编辑和版本控制的包裹文本。
  • 适合搜索和复杂标记解析的未包裹文本。
  • 易于与高级语言和编辑器集成。
  • 幂等性。
  • 合理的性能。

其他语言的绑定

已知缺陷

以下可能已修复,也可能未修复,因此应被视为不稳定行为。

无高级选项

目前,只能指定最大宽度来包裹文本。更高级的选项目前不能通过 runwrap 传递给 textwrap

宽度应用于每个段落

传递给 wraprewrap 的宽度设置应用于每个单独段落的范围。这意味着列表项的总行宽可能超过传递的值。

由于同样的原因,列表项换行到列零;它们没有被整齐地缩进。

忽略单段落列表项

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