1 个不稳定版本
0.1.0 | 2020年10月23日 |
---|
#63 in #author
被 3 crates 使用
1MB
5.5K SLoC
该软件包允许构建一个抽象书籍源,其他程序可以将其渲染成特定的输出格式。
lib.rs
:
该软件包简化了构建 BookSrc
的过程;此结构体之后可以用于将内容渲染到特定的后端,前提是已根据各种选项进行了适配。
一般用法是创建一个 BookSrcBuilder
,设置元数据值并添加内容,然后从构建器创建一个 BookSrc
。
由于书籍很快就会变得复杂,因此有大量的构建方法和开关。然而,简单用法非常简单。
use bookbinder_ast::BookSrcBuilder;
let src = BookSrcBuilder::new("A Book")
.subtitle("Serving as an Example")
.author("A.N. Author")
.add_mainmatter("# Hello World\n\nText goes here...")
.process();
由于我们纳入了语义分区的概念,可以添加并适当格式化各种辅助文本:例如,请参阅 add_foreword
。
Markdown
解释的 Markdown 源具有少量对 CommonMark 的扩展
- 脚注:使用
[^marker] ... [^marker]: definition
添加脚注 - 格式化跨度:文本可以包裹在一组跨度中,以各种方式对其进行格式化
<跨度类="无衬线">无衬线文本</跨度>
<跨度类="小写字母">小写字母文本</跨度>
<跨度类="居中">居中文本</跨度>
<跨度类="右对齐">右对齐文本</跨度>
- 转义:短横线
--
和三个短横线---
分别转换为 en 和 em 短横线,而一串三个点...
则变成省略号。 - 引用:直引号(至少在理论上是)转换为适当的曲线引号;这是一个在没有真正理解文本的情况下无法完全正确解决的问题,但使用的算法相当稳健,并考虑了语义(例如,代码中的引号不会被转换)。不过,为了获得完美的准确性,最好显式使用曲线引号。
- 下标和上标:
22^nd^ July
,H~2~0
;
依赖
~16MB
~270K SLoC