1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// enum ElementType {
// //structual elements
// Section, Topic, Sidebar,
//
// //structural subelements
// Title, Subtitle, Decoration, Docinfo, Transition,
//
// //bibliographic elements
// Author, Authors, Organization,
// Address { space: FixedSpace },
// Contact, Version, Revision, Status,
// Date, Copyright, Field,
//
// //decoration elements
// Header, Footer,
//
// //simple body elements
// Paragraph,
// LiteralBlock { space: FixedSpace },
// DoctestBlock { space: FixedSpace },
// MathBlock, Rubric,
// SubstitutionDefinition { ltrim: bool, rtrim: bool },
// Comment { space: FixedSpace },
// Pending,
// Target { refuri: Url, refid: ID, refname: Vec<NameToken>, anonymous: bool },
// Raw { space: FixedSpace, format: Vec<NameToken> },
// Image {
// align: AlignHV,
// uri: Url,
// alt: String,
// height: Measure,
// width: Measure,
// scale: f64,
// },
//
// //compound body elements
// Compound, Container,
//
// BulletList { bullet: String },
// EnumeratedList { enumtype: EnumeratedListType, prefix: String, suffix: String },
// DefinitionList, FieldList, OptionList,
//
// LineBlock, BlockQuote,
// Admonition, Attention, Hint, Note,
// Caution, Danger, Error, Important,
// Tip, Warning,
// Footnote { backrefs: Vec<ID>, auto: bool },
// Citation { backrefs: Vec<ID> },
// SystemMessage { backrefs: Vec<ID>, level: usize, line: usize, type_: NameToken },
// Figure { align: AlignH, width: usize },
// Table, //TODO: Table
//
// //body sub elements
// ListItem,
//
// DefinitionListItem, Term,
// Classifier, Definition,
//
// FieldName, FieldBody,
//
// OptionListItem, OptionGroup, Description, Option_, OptionString,
// OptionArgument { delimiter: String },
//
// Line, Attribution, Label,
//
// Caption, Legend,
//
// //inline elements
// Emphasis, Strong, Literal,
// Reference { name: String, refuri: Url, refid: ID, refname: Vec<NameToken> },
// FootnoteReference { refid: ID, refname: Vec<NameToken>, auto: bool },
// CitationReference { refid: ID, refname: Vec<NameToken> },
// SubstitutionReference { refname: Vec<NameToken> },
// TitleReference,
// Abbreviation, Acronym,
// Superscript, Subscript,
// Inline,
// Problematic { refid: ID },
// Generated, Math,
//
// //also have non-inline versions. Inline image is no figure child, inline target has content
// TargetInline { refuri: Url, refid: ID, refname: Vec<NameToken>, anonymous: bool },
// RawInline { space: FixedSpace, format: Vec<NameToken> },
// ImageInline {
// align: AlignHV,
// uri: Url,
// alt: String,
// height: Measure,
// width: Measure,
// scale: f64,
// },
//
// //text element
// TextElement,
// }