使用 C++17 std::variant<> 和拓展的聚合类实现的 Markdown 序列化工具,只包含一个头文件。
基本概念:
EmptyLine空行Title<L>L 级标题Reference<L>L 级引用BulletItem<L>L 级无序列表项OrderedItem<L>L 级有序列表项CodeBlock代码块HorizontalRule水平分割线Link链接,可以放在段(Paragraph)中,也可以直接放在 Markdown 文档中Image图片,可以放在段(Paragraph)中,也可以直接放在 Markdown 文档中Table表格Paragraph段Plain纯文本Break换行Bold加粗Italic斜体Code代码
序列化概念:
Validator检验器,判断 Markdown 成员是否有效Serializer<V>序列化器
Markdown 文档:
Markdown文档
使用示例
#include "PrettyMarkdown.h"
Paragraph paragraph;
paragraph << Plain{ "Hello" }
<< Break{}
<< Plain{ "World" };
Markdown doc;
doc << Title<1>{ "Hello World" }
<< Paragraph{ "This is a paragraph." }
<< paragraph
<< BulletItem<1>{ "Item 1" }
<< BulletItem<1>{ "Item 2" }
<< OrderedItem<1>{ "First" }
<< OrderedItem<1>{ "Second" }
<< CodeBlock{ "int main() { return 0; }", "cpp" }
<< HorizontalRule{}
<< Link{ "https://example.com", "Example" }
<< Image{ "https://example.com/image.png", "Example Image" };