25个版本
0.3.5 | 2023年6月7日 |
---|---|
0.3.3 | 2022年10月24日 |
0.3.1 | 2022年6月16日 |
0.2.8 | 2022年3月19日 |
0.1.0 | 2021年3月28日 |
#191 在 文本处理
每月下载量 53次
58KB
1K SLoC
mini_markdown
一个无需依赖的markdown渲染器。
该项目的目标是提供无需依赖、功能完整的markdown到html渲染器。所有输出都经过清理,任何脚本注入向量都被视为错误。
状态
markdown支持现在功能完整,测试正在进行中。
如果您发现任何问题,请报告为问题。
所有输出和接口目前均被视为不稳定。
用法
该库中的主要函数是 render
函数。
pub fn render(source: &str) -> String {
parse(lex(source))
}
如果您只想将markdown转换为html,则 render
是您的函数。如果您想处理内部结构,则 parse
和 lex
函数是公开的。
语法
标题
支持使用 #
语法设置标题。最多支持六级标题。
段落
一行或多行文本之间的空行将开始一个新段落。
换行符
行尾有两个或更多空格将添加一个 <br>
斜体文本
由任何配对的 *
和 _
包围的文本将被设置为斜体。
*text*, _text_, *text_ or _text*
粗体文本
由任何配对的两个 *
和/或 _
包围的文本将被设置为粗体。
粗体斜体文本
由任何配对的三个 *
和/或 _
包围的文本将被设置为粗体和斜体。
引用和嵌套引用
使用 >
字符支持引用和嵌套引用。
> Some quoted text
>> Some quoted text in a nested quote
> Some more text in the outer quote
有序列表
通过编号新行支持有序列表。
1. One
2. Two
3. Three
最大长度为9个元素。
无序列表
通过在行首使用 -
、+
或 *
支持无序列表。
* Some
- list
+ text
行内代码
行内代码通过将文本包裹在两个 ` 字符中来支持
代码块
代码块可以通过以下方式支持:使用四个空格缩进行,或者前后用三个 ` 字符包裹行。
图片
图片支持以下语法:
链接
链接支持以下语法:[文本](链接)
快速链接
可以通过将文本包裹在尖括号 <
text>
来将 URL 或电子邮件文本转换为链接
水平线
水平线支持使用三个或更多 *
,-
,或 _
字符单独在一行上
****
-----
or
______
转义字符
可以通过在控制字符前加一个反斜杠 \
来转义控制字符
可折叠部分
可折叠部分被支持,并遵循 details
部分的 HTML。
<details>
<summary>Summary text</summary>
Text
</details>
渲染为
摘要文本
文本表格
HTML 表格支持以下
| Syntax | Description | Test Text |
| :--- | :----: | ---: |
| Header | Title | Here's this |
| Paragraph | Text | And more |
渲染为
语法 | 描述 | 测试文本 |
---|---|---|
标题 | 标题 | 这是这个 |
段落 | 文本 | 还有更多 |
冒号 :
字符将定义对齐方式,如下所示。
脚注
支持带有文本标签的引用,包括行内脚注和多行大脚注。
例如
Here's a simple footnote,[^1] and here's a longer one.[^bignote]
[^1]: This is the first footnote.
[^bignote]: Here's one with multiple paragraphs and code.
Indent paragraphs to include them in the footnote.
`{ my code }`
Add as many paragraphs as you like.
渲染为
这是一个简单的脚注[^1],还有一个较长的脚注。[^1]: 这是第一个脚注。
[^bignote]: 这是一个包含多个段落和代码的例子。
Indent paragraphs to include them in the footnote.
`{ my code }`
Add as many paragraphs as you like.