🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
MarkdownSax.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/StringView.hpp"
25
26AST_NAMESPACE_BEGIN
27
35enum class ETableAlign : int
36{
37 eDefault = 0,
38 eLeft = 1,
39 eCenter = 2,
40 eRight = 3,
41};
42
43
44class AST_UTIL_API MarkdownSax
45{
46public:
47 virtual ~MarkdownSax() {};
48
49 // 文档生命周期
50 virtual void startDocument() = 0;
51 virtual void endDocument() = 0;
52
53 // ---- 块级元素 ----
54
58 // virtual void newline(bool force=false) {};
59
60 virtual void startHeading(int level) = 0;
61 virtual void endHeading(int level) = 0;
62
63 virtual void startParagraph() = 0;
64 virtual void endParagraph() = 0;
65
66 virtual void startCodeBlock(StringView language) = 0;
67 virtual void codeLine(StringView line) = 0; // 代码行
68 virtual void endCodeBlock() = 0;
69
70 virtual void startList(bool ordered) = 0; // true: 有序, false: 无序
71 virtual void startListItem() = 0;
72 virtual void endListItem() = 0;
73 virtual void endList() = 0;
74
75 virtual void startBlockquote() = 0;
76 virtual void endBlockquote() = 0;
77
78 virtual void horizontalRule() = 0;
79
80 // ---- 表格(GFM 扩展) ----
82 virtual void startTable() {}
84 virtual void startTableHead() {}
86 virtual void endTableHead() {}
88 virtual void startTableBody() {}
90 virtual void endTableBody() {}
92 virtual void startTableRow() {}
94 virtual void endTableRow() {}
97 virtual void startTableCell(ETableAlign align) { (void)align; }
99 virtual void endTableCell() {}
101 virtual void endTable() {}
102
103 // ---- 行内元素 ----
104 virtual void text(StringView txt) = 0;
105 virtual void startEmphasis() = 0; // 斜体
106 virtual void endEmphasis() = 0;
107 virtual void startStrong() = 0; // 粗体
108 virtual void endStrong() = 0;
109 virtual void startDelete() = 0; // 删除线
110 virtual void endDelete() = 0;
111 virtual void codeSpan(StringView code) = 0;
112 virtual void startLink(StringView url) = 0;
113 virtual void endLink() = 0;
114 virtual void image(StringView alt, StringView url) = 0;
115};
116
119AST_NAMESPACE_END
定义 MarkdownSax.hpp:45
virtual void endTableHead()
表头区域结束
定义 MarkdownSax.hpp:86
virtual void startHeading(int level)=0
virtual void endTableBody()
表体区域结束
定义 MarkdownSax.hpp:90
virtual void endTableRow()
表格行结束
定义 MarkdownSax.hpp:94
virtual void startTableRow()
表格行开始
定义 MarkdownSax.hpp:92
virtual void startTableBody()
表体区域开始
定义 MarkdownSax.hpp:88
virtual void endTableCell()
表格单元格结束
定义 MarkdownSax.hpp:99
virtual void endTable()
表格结束
定义 MarkdownSax.hpp:101
virtual void startTableHead()
表头区域开始
定义 MarkdownSax.hpp:84
virtual void startTableCell(ETableAlign align)
表格单元格开始
定义 MarkdownSax.hpp:97
virtual void startTable()
表格开始
定义 MarkdownSax.hpp:82
ETableAlign
表格列对齐方式
定义 MarkdownSax.hpp:36
@ eCenter
居中对齐 :—:
@ eLeft
左对齐 :—
@ eRight
右对齐 —: