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文本处理

Download history 2/week @ 2024-04-22 1/week @ 2024-04-29 2/week @ 2024-05-13 16/week @ 2024-05-20 5/week @ 2024-05-27 6/week @ 2024-06-03 3/week @ 2024-06-10 13/week @ 2024-06-17 1/week @ 2024-06-24 47/week @ 2024-07-01 53/week @ 2024-07-29

每月下载量 53次

MPL-2.0 许可证

58KB
1K SLoC

mini_markdown

一个无需依赖的markdown渲染器。


该项目的目标是提供无需依赖、功能完整的markdown到html渲染器。所有输出都经过清理,任何脚本注入向量都被视为错误。

状态

markdown支持现在功能完整,测试正在进行中。
如果您发现任何问题,请报告为问题。
所有输出和接口目前均被视为不稳定。

用法

该库中的主要函数是 render 函数。

pub fn render(source: &str) -> String {
    parse(lex(source))
}

如果您只想将markdown转换为html,则 render 是您的函数。如果您想处理内部结构,则 parselex 函数是公开的。

语法

标题

支持使用 # 语法设置标题。最多支持六级标题。

段落

一行或多行文本之间的空行将开始一个新段落。

换行符

行尾有两个或更多空格将添加一个 <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.

无运行时依赖