-
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
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
-
196
-
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
-
206
-
207
-
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
-
276
-
277
-
278
-
279
-
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
-
293
-
294
-
295
-
296
-
297
-
298
-
299
-
300
-
301
-
302
-
303
-
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
-
362
-
363
-
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
-
375
-
376
-
377
-
378
-
379
-
380
-
381
-
382
-
383
-
384
-
385
-
386
-
387
-
388
-
389
-
390
-
391
-
392
-
393
-
394
-
395
-
396
-
397
-
398
-
399
-
400
-
401
-
402
-
403
-
404
-
405
-
406
-
407
-
408
-
409
-
410
-
411
-
412
-
413
-
414
-
415
-
416
-
417
-
418
-
419
-
420
-
421
-
422
-
423
-
424
-
425
-
426
-
427
-
428
-
429
-
430
-
431
-
432
-
433
-
434
-
435
-
436
-
437
package org
import "strings"
var htmlEntityReplacer *strings.Replacer
func init() {
htmlEntities = append(htmlEntities,
"---", "—",
"--", "–",
"...", "…",
)
htmlEntityReplacer = strings.NewReplacer(htmlEntities...)
}
/*
Generated & copied over using the following elisp
(Setting up go generate seems like a waste for now - I call YAGNI on that one)
(insert (mapconcat
(lambda (entity) (concat "`\\" (car entity) "`, `" (nth 6 entity) "`")) ; entity -> utf8
(remove-if-not 'listp org-entities)
",\n"))
*/
var htmlEntities = []string{
`\Agrave`, `À`,
`\agrave`, `à`,
`\Aacute`, `Á`,
`\aacute`, `á`,
`\Acirc`, `Â`,
`\acirc`, `â`,
`\Amacr`, `Ã`,
`\amacr`, `ã`,
`\Atilde`, `Ã`,
`\atilde`, `ã`,
`\Auml`, `Ä`,
`\auml`, `ä`,
`\Aring`, `Å`,
`\AA`, `Å`,
`\aring`, `å`,
`\AElig`, `Æ`,
`\aelig`, `æ`,
`\Ccedil`, `Ç`,
`\ccedil`, `ç`,
`\Egrave`, `È`,
`\egrave`, `è`,
`\Eacute`, `É`,
`\eacute`, `é`,
`\Ecirc`, `Ê`,
`\ecirc`, `ê`,
`\Euml`, `Ë`,
`\euml`, `ë`,
`\Igrave`, `Ì`,
`\igrave`, `ì`,
`\Iacute`, `Í`,
`\iacute`, `í`,
`\Icirc`, `Î`,
`\icirc`, `î`,
`\Iuml`, `Ï`,
`\iuml`, `ï`,
`\Ntilde`, `Ñ`,
`\ntilde`, `ñ`,
`\Ograve`, `Ò`,
`\ograve`, `ò`,
`\Oacute`, `Ó`,
`\oacute`, `ó`,
`\Ocirc`, `Ô`,
`\ocirc`, `ô`,
`\Otilde`, `Õ`,
`\otilde`, `õ`,
`\Ouml`, `Ö`,
`\ouml`, `ö`,
`\Oslash`, `Ø`,
`\oslash`, `ø`,
`\OElig`, `Œ`,
`\oelig`, `œ`,
`\Scaron`, `Š`,
`\scaron`, `š`,
`\szlig`, `ß`,
`\Ugrave`, `Ù`,
`\ugrave`, `ù`,
`\Uacute`, `Ú`,
`\uacute`, `ú`,
`\Ucirc`, `Û`,
`\ucirc`, `û`,
`\Uuml`, `Ü`,
`\uuml`, `ü`,
`\Yacute`, `Ý`,
`\yacute`, `ý`,
`\Yuml`, `Ÿ`,
`\yuml`, `ÿ`,
`\fnof`, `ƒ`,
`\real`, `ℜ`,
`\image`, `ℑ`,
`\weierp`, `℘`,
`\ell`, `ℓ`,
`\imath`, `ı`,
`\jmath`, `ȷ`,
`\Alpha`, `Α`,
`\alpha`, `α`,
`\Beta`, `Β`,
`\beta`, `β`,
`\Gamma`, `Γ`,
`\gamma`, `γ`,
`\Delta`, `Δ`,
`\delta`, `δ`,
`\Epsilon`, `Ε`,
`\epsilon`, `ε`,
`\varepsilon`, `ε`,
`\Zeta`, `Ζ`,
`\zeta`, `ζ`,
`\Eta`, `Η`,
`\eta`, `η`,
`\Theta`, `Θ`,
`\theta`, `θ`,
`\thetasym`, `ϑ`,
`\vartheta`, `ϑ`,
`\Iota`, `Ι`,
`\iota`, `ι`,
`\Kappa`, `Κ`,
`\kappa`, `κ`,
`\Lambda`, `Λ`,
`\lambda`, `λ`,
`\Mu`, `Μ`,
`\mu`, `μ`,
`\nu`, `ν`,
`\Nu`, `Ν`,
`\Xi`, `Ξ`,
`\xi`, `ξ`,
`\Omicron`, `Ο`,
`\omicron`, `ο`,
`\Pi`, `Π`,
`\pi`, `π`,
`\Rho`, `Ρ`,
`\rho`, `ρ`,
`\Sigma`, `Σ`,
`\sigma`, `σ`,
`\sigmaf`, `ς`,
`\varsigma`, `ς`,
`\Tau`, `Τ`,
`\Upsilon`, `Υ`,
`\upsih`, `ϒ`,
`\upsilon`, `υ`,
`\Phi`, `Φ`,
`\phi`, `ɸ`,
`\varphi`, `φ`,
`\Chi`, `Χ`,
`\chi`, `χ`,
`\acutex`, `𝑥́`,
`\Psi`, `Ψ`,
`\psi`, `ψ`,
`\tau`, `τ`,
`\Omega`, `Ω`,
`\omega`, `ω`,
`\piv`, `ϖ`,
`\varpi`, `ϖ`,
`\partial`, `∂`,
`\alefsym`, `ℵ`,
`\aleph`, `ℵ`,
`\gimel`, `ℷ`,
`\beth`, `ב`,
`\dalet`, `ד`,
`\ETH`, `Ð`,
`\eth`, `ð`,
`\THORN`, `Þ`,
`\thorn`, `þ`,
`\dots`, `…`,
`\cdots`, `⋯`,
`\hellip`, `…`,
`\middot`, `·`,
`\iexcl`, `¡`,
`\iquest`, `¿`,
`\shy`, ``,
`\ndash`, `–`,
`\mdash`, `—`,
`\quot`, `"`,
`\acute`, `´`,
`\ldquo`, `“`,
`\rdquo`, `”`,
`\bdquo`, `„`,
`\lsquo`, `‘`,
`\rsquo`, `’`,
`\sbquo`, `‚`,
`\laquo`, `«`,
`\raquo`, `»`,
`\lsaquo`, `‹`,
`\rsaquo`, `›`,
`\circ`, `∘`,
`\vert`, `|`,
`\vbar`, `|`,
`\brvbar`, `¦`,
`\S`, `§`,
`\sect`, `§`,
`\amp`, `&`,
`\lt`, `<`,
`\gt`, `>`,
`\tilde`, `~`,
`\slash`, `/`,
`\plus`, `+`,
`\under`, `_`,
`\equal`, `=`,
`\asciicirc`, `^`,
`\dagger`, `†`,
`\dag`, `†`,
`\Dagger`, `‡`,
`\ddag`, `‡`,
`\nbsp`, ` `,
`\ensp`, ` `,
`\emsp`, ` `,
`\thinsp`, ` `,
`\curren`, `¤`,
`\cent`, `¢`,
`\pound`, `£`,
`\yen`, `¥`,
`\euro`, `€`,
`\EUR`, `€`,
`\dollar`, `$`,
`\USD`, `$`,
`\copy`, `©`,
`\reg`, `®`,
`\trade`, `™`,
`\minus`, `−`,
`\pm`, `±`,
`\plusmn`, `±`,
`\times`, `×`,
`\frasl`, `⁄`,
`\colon`, `:`,
`\div`, `÷`,
`\frac12`, `½`,
`\frac14`, `¼`,
`\frac34`, `¾`,
`\permil`, `‰`,
`\sup1`, `¹`,
`\sup2`, `²`,
`\sup3`, `³`,
`\radic`, `√`,
`\sum`, `∑`,
`\prod`, `∏`,
`\micro`, `µ`,
`\macr`, `¯`,
`\deg`, `°`,
`\prime`, `′`,
`\Prime`, `″`,
`\infin`, `∞`,
`\infty`, `∞`,
`\prop`, `∝`,
`\propto`, `∝`,
`\not`, `¬`,
`\neg`, `¬`,
`\land`, `∧`,
`\wedge`, `∧`,
`\lor`, `∨`,
`\vee`, `∨`,
`\cap`, `∩`,
`\cup`, `∪`,
`\smile`, `⌣`,
`\frown`, `⌢`,
`\int`, `∫`,
`\therefore`, `∴`,
`\there4`, `∴`,
`\because`, `∵`,
`\sim`, `∼`,
`\cong`, `≅`,
`\simeq`, `≅`,
`\asymp`, `≈`,
`\approx`, `≈`,
`\ne`, `≠`,
`\neq`, `≠`,
`\equiv`, `≡`,
`\triangleq`, `≜`,
`\le`, `≤`,
`\leq`, `≤`,
`\ge`, `≥`,
`\geq`, `≥`,
`\lessgtr`, `≶`,
`\lesseqgtr`, `⋚`,
`\ll`, `≪`,
`\Ll`, `⋘`,
`\lll`, `⋘`,
`\gg`, `≫`,
`\Gg`, `⋙`,
`\ggg`, `⋙`,
`\prec`, `≺`,
`\preceq`, `≼`,
`\preccurlyeq`, `≼`,
`\succ`, `≻`,
`\succeq`, `≽`,
`\succcurlyeq`, `≽`,
`\sub`, `⊂`,
`\subset`, `⊂`,
`\sup`, `⊃`,
`\supset`, `⊃`,
`\nsub`, `⊄`,
`\sube`, `⊆`,
`\nsup`, `⊅`,
`\supe`, `⊇`,
`\setminus`, `⧵`,
`\forall`, `∀`,
`\exist`, `∃`,
`\exists`, `∃`,
`\nexist`, `∄`,
`\nexists`, `∄`,
`\empty`, `∅`,
`\emptyset`, `∅`,
`\isin`, `∈`,
`\in`, `∈`,
`\notin`, `∉`,
`\ni`, `∋`,
`\nabla`, `∇`,
`\ang`, `∠`,
`\angle`, `∠`,
`\perp`, `⊥`,
`\parallel`, `∥`,
`\sdot`, `⋅`,
`\cdot`, `⋅`,
`\lceil`, `⌈`,
`\rceil`, `⌉`,
`\lfloor`, `⌊`,
`\rfloor`, `⌋`,
`\lang`, `⟨`,
`\rang`, `⟩`,
`\langle`, `⟨`,
`\rangle`, `⟩`,
`\hbar`, `ℏ`,
`\mho`, `℧`,
`\larr`, `←`,
`\leftarrow`, `←`,
`\gets`, `←`,
`\lArr`, `⇐`,
`\Leftarrow`, `⇐`,
`\uarr`, `↑`,
`\uparrow`, `↑`,
`\uArr`, `⇑`,
`\Uparrow`, `⇑`,
`\rarr`, `→`,
`\to`, `→`,
`\rightarrow`, `→`,
`\rArr`, `⇒`,
`\Rightarrow`, `⇒`,
`\darr`, `↓`,
`\downarrow`, `↓`,
`\dArr`, `⇓`,
`\Downarrow`, `⇓`,
`\harr`, `↔`,
`\leftrightarrow`, `↔`,
`\hArr`, `⇔`,
`\Leftrightarrow`, `⇔`,
`\crarr`, `↵`,
`\hookleftarrow`, `↵`,
`\arccos`, `arccos`,
`\arcsin`, `arcsin`,
`\arctan`, `arctan`,
`\arg`, `arg`,
`\cos`, `cos`,
`\cosh`, `cosh`,
`\cot`, `cot`,
`\coth`, `coth`,
`\csc`, `csc`,
`\deg`, `deg`,
`\det`, `det`,
`\dim`, `dim`,
`\exp`, `exp`,
`\gcd`, `gcd`,
`\hom`, `hom`,
`\inf`, `inf`,
`\ker`, `ker`,
`\lg`, `lg`,
`\lim`, `lim`,
`\liminf`, `liminf`,
`\limsup`, `limsup`,
`\ln`, `ln`,
`\log`, `log`,
`\max`, `max`,
`\min`, `min`,
`\Pr`, `Pr`,
`\sec`, `sec`,
`\sin`, `sin`,
`\sinh`, `sinh`,
`\sup`, `sup`,
`\tan`, `tan`,
`\tanh`, `tanh`,
`\bull`, `•`,
`\bullet`, `•`,
`\star`, `⋆`,
`\lowast`, `∗`,
`\ast`, `*`,
`\odot`, `ʘ`,
`\oplus`, `⊕`,
`\otimes`, `⊗`,
`\check`, `✓`,
`\checkmark`, `✓`,
`\para`, `¶`,
`\ordf`, `ª`,
`\ordm`, `º`,
`\cedil`, `¸`,
`\oline`, `‾`,
`\uml`, `¨`,
`\zwnj`, ``,
`\zwj`, ``,
`\lrm`, ``,
`\rlm`, ``,
`\smiley`, `☺`,
`\blacksmile`, `☻`,
`\sad`, `☹`,
`\frowny`, `☹`,
`\clubs`, `♣`,
`\clubsuit`, `♣`,
`\spades`, `♠`,
`\spadesuit`, `♠`,
`\hearts`, `♥`,
`\heartsuit`, `♥`,
`\diams`, `◆`,
`\diamondsuit`, `◆`,
`\diamond`, `◆`,
`\Diamond`, `◆`,
`\loz`, `⧫`,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
`\_ `, ` `,
}