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
|
\enableregime[utf]
\usetypescript[modern][ec]
\setupbodyfont[10pt,rm]
\setupexternalfigures[location={local,global,default}]
% Load the Markdown module.
\startluacode
local kpse = require("kpse")
kpse.set_program_name("luatex")
\stopluacode
\usemodule[t][markdown]
% Set options of the Markdown module.
\setupmarkdown
[
contentBlocks = yes,
debugExtensions = yes,
definitionLists = yes,
fancy_lists = yes,
fencedCode = yes,
hashEnumerators = yes,
inlineNotes = yes,
lineBlocks = yes,
notes = yes,
pipeTables = yes,
rawAttribute = yes,
smartEllipses = yes,
strikethrough = yes,
subscripts = yes,
superscripts = yes,
tableCaptions = yes,
taskLists = yes,
texMathDollars = yes,
texMathDoubleBackslash = yes,
texMathSingleBackslash = yes,
]
% Set renderers of the Markdown module.
\definehighlight
[markdownRendererEmphasis]
[style=\em]
\definehighlight
[markdownRendererStrongEmphasis]
[style=bold]
\definehighlight
[markdownRendererCodeSpan]
[style=mono]
\definetyping
[latex]
\setuptyping
[latex]
[option=TEX]
\starttext
% Typeset the document `example.md` by letting the Markdown package handle
% the conversion internally. Optionally, we can specify additional options
% between the square brackets similarly to the command `\setupmarkdown`.
% Unlike `\setupmarkdown`, the options will only apply for this document.
\inputmarkdown[smart_ellipses = yes]{./example.md}
% Typeset the document `example.tex` that we prepared separately using the
% Lua command-line interface and that contains a plain TeX representation
% of the document `example.md`.
\catcode`\%=12\relax
\catcode`\#=12\relax
\doiffileelse{./example.tex}{\input example}{}
\catcode`\%=14\relax
\catcode`\#=6\relax
% Besides inputting external files, Markdown text can we written directly
% into a LaTeX document. Markdown text and LaTeX code can be freely combined.
\startmarkdown
This is a paragraph of *Markdown text* with inline `\LaTeX`{=tex} code.
``` {=tex}
This is a paragraph of \LaTeX{} code with inline \markinline{*Markdown text*}.
```
\stopmarkdown
\stoptext
|