1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.nuiton.jrst.legacy;
24
25 import java.util.regex.Pattern;
26
27
28
29
30
31
32
33
34
35
36
37
38 public class ReStructuredText {
39
40 public static final String DTD = "http://docutils.sourceforge.net/docs/ref/docutils.dtd";
41
42 public static final String TITLE_CHAR = "-=-~'`^+:!\"#$%&*,./;|?@\\_[\\]{}<>()";
43 public static final String QUOTED_CHAR = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
44 public static final String BULLET_CHAR = "*" + "+" + "-" + "\u2022"
45 + "\u2023" + "\u2043";
46 public static final String DOCINFO_ITEM = "author|authors|organization|address|contact|version|revision|status|date|copyright";
47 public static final String FOOTNOTE_SYMBOL = "\u002A" + "\u2020" + "\u2021"
48 + "\u00A7" + "\u00B6" + "\u0023" + "\u2660" + "\u2665" + "\u2666"
49 + "\u2663";
50
51
52
53
54
55 public static final String DOCUMENT = "document";
56
57
58
59
60 public static final String TITLE = "title";
61 public static final String SUBTITLE = "subtitle";
62
63
64
65
66 public static final String DOCINFO = "docinfo";
67
68 public static final String AUTHOR = "author";
69 public static final String AUTHORS = "authors";
70 public static final String ORGANIZATION = "organization";
71 public static final String ADDRESS = "address";
72 public static final String CONTACT = "contact";
73 public static final String VERSION = "version";
74 public static final String REVISION = "revision";
75 public static final String STATUS = "status";
76 public static final String DATE = "date";
77 public static final String COPYRIGHT = "copyright";
78
79
80
81
82 public static final String DECORATION = "decoration";
83 public static final String HEADER = "header";
84 public static final String FOOTER = "footer";
85
86
87
88
89 public static final String SECTION = "section";
90 public static final String TOPIC = "topic";
91 public static final String SIDEBAR = "sidebar";
92 public static final String TRANSITION = "transition";
93
94
95
96
97 public static final String PARAGRAPH = "paragraph";
98 public static final String COMPOUND = "compound";
99 public static final String CONTAINER = "container";
100 public static final String BULLET_LIST = "bullet_list";
101 public static final String ENUMERATED_LIST = "enumerated_list";
102 public static final String LIST_ITEM = "list_item";
103 public static final String DEFINITION_LIST = "definition_list";
104 public static final String DEFINITION_LIST_ITEM = "definition_list_item";
105 public static final String TERM = "term";
106 public static final String CLASSIFIER = "classifier";
107 public static final String DEFINITION = "definition";
108 public static final String FIELD_LIST = "field_list";
109 public static final String FIELD = "field";
110 public static final String FIELD_NAME = "field_name";
111 public static final String FIELD_BODY = "field_body";
112 public static final String OPTION_LIST = "option_list";
113 public static final String OPTION_LIST_ITEM = "option_list_item";
114 public static final String OPTION_GROUP = "option_group";
115 public static final String OPTION = "option";
116 public static final String OPTION_STRING = "option_string";
117 public static final String OPTION_ARGUMENT = "option_argument";
118 public static final String DESCRIPTION = "description";
119 public static final String LITERAL_BLOCK = "literal_block";
120 public static final String LINE_BLOCK = "line_block";
121 public static final String LINE = "line";
122 public static final String BLOCK_QUOTE = "block_quote";
123 public static final String ATTRIBUTION = "attribution";
124 public static final String DOCTEST_BLOCK = "doctest_block";
125 public static final String ATTENTION = "attention";
126 public static final String CAUTION = "caution";
127 public static final String DANGER = "danger";
128 public static final String ERROR = "error";
129 public static final String HINT = "hint";
130 public static final String IMPORTANT = "important";
131 public static final String NOTE = "note";
132 public static final String TIP = "tip";
133 public static final String WARNING = "warning";
134 public static final String ADMONITION = "admonition";
135 public static final String FOOTNOTE = "footnote";
136 public static final String CITATION = "citation";
137 public static final String LABEL = "label";
138 public static final String RUBRIC = "rubric";
139 public static final String TARGET = "target";
140 public static final String SUBSTITUTION_DEFINITION = "substitution_definition";
141 public static final String COMMENT = "comment";
142 public static final String PENDING = "pending";
143 public static final String FIGURE = "figure";
144 public static final String IMAGE = "image";
145 public static final String CAPTION = "caption";
146 public static final String LEGEND = "legend";
147 public static final String SYSTEM_MESSAGE = "system_message";
148 public static final String RAW = "raw";
149
150
151 public static final String TABLE = "table";
152 public static final String TGROUP = "tgroup";
153 public static final String COLSPEC = "colspec";
154 public static final String THEAD = "thead";
155 public static final String TBODY = "tbody";
156 public static final String ROW = "row";
157 public static final String ENTRY = "entry";
158
159
160
161
162 public static final String EMPHASIS = "emphasis";
163 public static final String STRONG = "strong";
164 public static final String LITERAL = "literal";
165 public static final String REFERENCE = "reference";
166 public static final String FOOTNOTE_REFERENCE = "footnote_reference";
167 public static final String CITATION_REFERENCE = "citation_reference";
168 public static final String SUBSTITUTION_REFERENCE = "substitution_reference";
169 public static final String TITLE_REFERENCE = "title_reference";
170 public static final String ABBREVIATION = "abbreviation";
171 public static final String ACRONYM = "acronym";
172 public static final String SUPERSCRIPT = "superscript";
173 public static final String SUBSCRIPT = "subscript";
174 public static final String INLINE = "inline";
175 public static final String PROBLEMATIC = "problematic";
176 public static final String GENERATED = "generated";
177
178
179
180
181 public static final Pattern REGEX_EMPHASIS = Pattern
182 .compile("\\*([^*(\\]_.+\\[)].+?)\\*");
183 public static final Pattern REGEX_STRONG = Pattern
184 .compile("\\*\\*(.+?)\\*\\*");
185 public static final Pattern REGEX_LITERAL = Pattern.compile("``([^`]+)``");
186 public static final Pattern REGEX_REFERENCE = Pattern
187 .compile("(https?://[-/%#[\\&&&[^(>)]]\\._\\w:]+\\w+)((\\W|&|$)+)");
188 public static final Pattern REGEX_INLINE_REFERENCE = Pattern
189 .compile("`(.+?) \\<\\;((https?://)?[-/%#&\\._\\w:[^ ]]+)(\\>\\;)`_");
190 public static final Pattern REGEX_EMAIL = Pattern
191 .compile("(^|[^_\\w])([-\\._\\w]+@[-\\._\\w]+)([^-\\._\\w]|$)");
192 public static final Pattern REGEX_FOOTNOTE_REFERENCE = Pattern
193 .compile("\\[(#|[0-9]|\\*)\\w*\\]_");
194
195 public static final Pattern REGEX_CITATION_REFERENCE = Pattern
196 .compile("\\[([^\\]]+?)\\]");
197 public static final Pattern REGEX_SUBSTITUTION_REFERENCE = Pattern
198 .compile("\\|([^|]+?)\\|");
199 public static final Pattern REGEX_ABBREVIATION = Pattern.compile("(.*?)");
200 public static final Pattern REGEX_ACRONYM = Pattern.compile("(.*?)");
201 public static final Pattern REGEX_SUPERSCRIPT = Pattern.compile("(.*?)");
202 public static final Pattern REGEX_SUBSCRIPT = Pattern.compile("(.*?)");
203 public static final Pattern REGEX_INLINE = Pattern.compile("(.*?)");
204 public static final Pattern REGEX_PROBLEMATIC = Pattern.compile("(.*?)");
205 public static final Pattern REGEX_GENERATED = Pattern.compile("(.*?)");
206
207 public static final Pattern REGEX_HYPERLINK_REFERENCE = Pattern
208 .compile("(\\`[^_<>]+\\`_(\\W|$))|(('|`)[^_<`(')>]+('|`)_(\\W|$))|([\\S]+[^\\s<>\\.`]+_(\\W|$))");
209
210 public static final Pattern REGEX_ANONYMOUS_HYPERLINK_REFERENCE = Pattern
211 .compile("(\\`[^<>`\\]\\[]+\\`__)|(\\w+[^()`\\s<>]+__)");
212 }