summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-05 21:58:26 +0000
committerKarl Berry <karl@freefriends.org>2022-04-05 21:58:26 +0000
commit36595a910f2b8a3a56606d6f16c2626f44b29822 (patch)
tree71faae4c79494470e4930ec6e9810d5f473788a4 /Master/texmf-dist/tex/generic
parentcc0ced9a900ccb1da557afadafdd4f500f69944a (diff)
markdown (31mar22)
git-svn-id: svn://tug.org/texlive/trunk@62928 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r--Master/texmf-dist/tex/generic/markdown/markdown.tex1611
1 files changed, 1481 insertions, 130 deletions
diff --git a/Master/texmf-dist/tex/generic/markdown/markdown.tex b/Master/texmf-dist/tex/generic/markdown/markdown.tex
index aeb4f0e3e03..bd5c3664aec 100644
--- a/Master/texmf-dist/tex/generic/markdown/markdown.tex
+++ b/Master/texmf-dist/tex/generic/markdown/markdown.tex
@@ -45,8 +45,434 @@
%%
%% The names of the source files used are shown above.
%%
-\def\markdownLastModified{2022/03/01}%
-\def\markdownVersion{2.14.1-0-gb933d81}%
+\ifx\ExplSyntaxOn\undefined
+ \input expl3-generic\relax
+\fi
+\ExplSyntaxOn
+\seq_new:N \g__markdown_lua_options_seq
+\prop_new:N \g__markdown_lua_option_types_prop
+\prop_new:N \g__markdown_default_lua_options_prop
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { cacheDir }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { cacheDir }
+ { string }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { cacheDir }
+ { . }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { frozenCacheFileName }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { frozenCacheFileName }
+ { string }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { frozenCacheFileName }
+ { frozenCache.tex }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { blankBeforeBlockquote }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { blankBeforeBlockquote }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { blankBeforeBlockquote }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { blankBeforeCodeFence }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { blankBeforeCodeFence }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { blankBeforeCodeFence }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { blankBeforeHeading }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { blankBeforeHeading }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { blankBeforeHeading }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { breakableBlockquotes }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { breakableBlockquotes }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { breakableBlockquotes }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { citationNbsps }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { citationNbsps }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { citationNbsps }
+ { true }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { citations }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { citations }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { citations }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { codeSpans }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { codeSpans }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { codeSpans }
+ { true }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { contentBlocks }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { contentBlocks }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { contentBlocks }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { contentBlocksLanguageMap }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { contentBlocksLanguageMap }
+ { string }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { contentBlocksLanguageMap }
+ { markdown-languages.json }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { definitionLists }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { definitionLists }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { definitionLists }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { eagerCache }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { eagerCache }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { eagerCache }
+ { true }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { expectJekyllData }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { expectJekyllData }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { expectJekyllData }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { fencedCode }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { fencedCode }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { fencedCode }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { finalizeCache }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { finalizeCache }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { finalizeCache }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { footnotes }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { footnotes }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { footnotes }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { frozenCacheCounter }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { frozenCacheCounter }
+ { counter }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { frozenCacheCounter }
+ { 0 }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { hardLineBreaks }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { hardLineBreaks }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { hardLineBreaks }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { hashEnumerators }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { hashEnumerators }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { hashEnumerators }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { headerAttributes }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { headerAttributes }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { headerAttributes }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { html }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { html }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { html }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { hybrid }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { hybrid }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { hybrid }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { inlineFootnotes }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { inlineFootnotes }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { inlineFootnotes }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { jekyllData }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { jekyllData }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { jekyllData }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { pipeTables }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { pipeTables }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { pipeTables }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { preserveTabs }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { preserveTabs }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { preserveTabs }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { relativeReferences }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { relativeReferences }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { relativeReferences }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { shiftHeadings }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { shiftHeadings }
+ { number }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { shiftHeadings }
+ { 0 }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { slice }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { slice }
+ { string }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { slice }
+ { ^~$ }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { smartEllipses }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { smartEllipses }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { smartEllipses }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { startNumber }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { startNumber }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { startNumber }
+ { true }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { stripIndent }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { stripIndent }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { stripIndent }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { tableCaptions }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { tableCaptions }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { tableCaptions }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { taskLists }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { taskLists }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { taskLists }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { texComments }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { texComments }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { texComments }
+ { false }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { tightLists }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { tightLists }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { tightLists }
+ { true }
+\seq_put_right:Nn
+ \g__markdown_lua_options_seq
+ { underscores }
+\prop_put:Nnn
+ \g__markdown_lua_option_types_prop
+ { underscores }
+ { boolean }
+\prop_put:Nnn
+ \g__markdown_default_lua_options_prop
+ { underscores }
+ { true }
+\ExplSyntaxOff
+\def\markdownLastModified{2022/03/31}%
+\def\markdownVersion{2.15.0-0-g9296cf1}%
\let\markdownBegin\relax
\let\markdownEnd\relax
\let\markdownInput\relax
@@ -87,177 +513,942 @@
\let\markdownOptionStripIndent\undefined
\let\markdownOptionTableCaptions\undefined
\let\markdownOptionTaskLists\undefined
-\let\markdownOptionTeXComments\undefined
+\let\markdownOptionTexComments\undefined
\let\markdownOptionTightLists\undefined
\def\markdownOptionStripPercentSigns{false}%
+\ExplSyntaxOn
+\seq_new:N \g__markdown_renderers_seq
+\prop_new:N \g__markdown_renderer_arities_prop
+\ExplSyntaxOff
\def\markdownRendererTickedBox{%
\markdownRendererTickedBoxPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { tickedBox }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { tickedBox }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererHalfTickedBox{%
\markdownRendererHalfTickedBoxPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { halfTickedBox }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { halfTickedBox }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUntickedBox{%
\markdownRendererUntickedBoxPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { untickedBox }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { untickedBox }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDocumentBegin{%
\markdownRendererDocumentBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { documentBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { documentBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDocumentEnd{%
\markdownRendererDocumentEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { documentEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { documentEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererInterblockSeparator{%
\markdownRendererInterblockSeparatorPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { interblockSeparator }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { interblockSeparator }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererLineBreak{%
\markdownRendererLineBreakPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { lineBreak }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { lineBreak }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererEllipsis{%
\markdownRendererEllipsisPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ellipsis }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ellipsis }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererNbsp{%
\markdownRendererNbspPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { nbsp }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { nbsp }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererLeftBrace{%
\markdownRendererLeftBracePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { leftBrace }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { leftBrace }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererRightBrace{%
\markdownRendererRightBracePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { rightBrace }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { rightBrace }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDollarSign{%
\markdownRendererDollarSignPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dollarSign }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dollarSign }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererPercentSign{%
\markdownRendererPercentSignPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { percentSign }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { percentSign }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererAmpersand{%
\markdownRendererAmpersandPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ampersand }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ampersand }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUnderscore{%
\markdownRendererUnderscorePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { underscore }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { underscore }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererHash{%
\markdownRendererHashPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { hash }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { hash }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererCircumflex{%
\markdownRendererCircumflexPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { circumflex }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { circumflex }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererBackslash{%
\markdownRendererBackslashPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { backslash }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { backslash }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererTilde{%
\markdownRendererTildePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { tilde }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { tilde }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererPipe{%
\markdownRendererPipePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { pipe }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { pipe }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererCodeSpan{%
\markdownRendererCodeSpanPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { codeSpan }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { codeSpan }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererLink{%
\markdownRendererLinkPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { link }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { link }
+ { 4 }
+\ExplSyntaxOff
\def\markdownRendererImage{%
\markdownRendererImagePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { image }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { image }
+ { 4 }
+\ExplSyntaxOff
\def\markdownRendererContentBlock{%
\markdownRendererContentBlockPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { contentBlock }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { contentBlock }
+ { 4 }
+\ExplSyntaxOff
\def\markdownRendererContentBlockOnlineImage{%
\markdownRendererContentBlockOnlineImagePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { contentBlockOnlineImage }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { contentBlockOnlineImage }
+ { 4 }
+\ExplSyntaxOff
\def\markdownRendererContentBlockCode{%
\markdownRendererContentBlockCodePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { contentBlockCode }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { contentBlockCode }
+ { 5 }
+\ExplSyntaxOff
\def\markdownRendererUlBegin{%
\markdownRendererUlBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUlBeginTight{%
\markdownRendererUlBeginTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulBeginTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulBeginTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUlItem{%
\markdownRendererUlItemPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulItem }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulItem }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUlItemEnd{%
\markdownRendererUlItemEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulItemEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulItemEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUlEnd{%
\markdownRendererUlEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererUlEndTight{%
\markdownRendererUlEndTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { ulEndTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { ulEndTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlBegin{%
\markdownRendererOlBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlBeginTight{%
\markdownRendererOlBeginTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olBeginTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olBeginTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlItem{%
\markdownRendererOlItemPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olItem }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olItem }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlItemEnd{%
\markdownRendererOlItemEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olItemEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olItemEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlItemWithNumber{%
\markdownRendererOlItemWithNumberPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olItemWithNumber }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olItemWithNumber }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererOlEnd{%
\markdownRendererOlEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererOlEndTight{%
\markdownRendererOlEndTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { olEndTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { olEndTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlBegin{%
\markdownRendererDlBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlBeginTight{%
\markdownRendererDlBeginTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlBeginTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlBeginTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlItem{%
\markdownRendererDlItemPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlItem }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlItem }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererDlItemEnd{%
\markdownRendererDlItemEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlItemEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlItemEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlDefinitionBegin{%
\markdownRendererDlDefinitionBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlDefinitionBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlDefinitionBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlDefinitionEnd{%
\markdownRendererDlDefinitionEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlDefinitionEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlDefinitionEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlEnd{%
\markdownRendererDlEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererDlEndTight{%
\markdownRendererDlEndTightPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { dlEndTight }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { dlEndTight }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererEmphasis{%
\markdownRendererEmphasisPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { emphasis }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { emphasis }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererStrongEmphasis{%
\markdownRendererStrongEmphasisPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { strongEmphasis }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { strongEmphasis }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererBlockQuoteBegin{%
\markdownRendererBlockQuoteBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { blockQuoteBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { blockQuoteBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererBlockQuoteEnd{%
\markdownRendererBlockQuoteEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { blockQuoteEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { blockQuoteEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererInputVerbatim{%
\markdownRendererInputVerbatimPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { inputVerbatim }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { inputVerbatim }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererInputFencedCode{%
\markdownRendererInputFencedCodePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { inputFencedCode }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { inputFencedCode }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataBegin{%
\markdownRendererJekyllDataBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataEnd{%
\markdownRendererJekyllDataEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataMappingBegin{%
\markdownRendererJekyllDataMappingBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataMappingBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataMappingBegin }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataMappingEnd{%
\markdownRendererJekyllDataMappingEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataMappingEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataMappingEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataSequenceBegin{%
\markdownRendererJekyllDataSequenceBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataSequenceBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataSequenceBegin }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataSequenceEnd{%
\markdownRendererJekyllDataSequenceEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataSequenceEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataSequenceEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataBoolean{%
\markdownRendererJekyllDataBooleanPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataBoolean }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataBoolean }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataNumber{%
\markdownRendererJekyllDataNumberPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataNumber }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataNumber }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataString{%
\markdownRendererJekyllDataStringPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataString }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataString }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataEmpty{%
\markdownRendererJekyllDataEmptyPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataEmpty }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataEmpty }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingOne{%
\markdownRendererHeadingOnePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingOne }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingOne }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingTwo{%
\markdownRendererHeadingTwoPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingTwo }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingTwo }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingThree{%
\markdownRendererHeadingThreePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingThree }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingThree }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingFour{%
\markdownRendererHeadingFourPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingFour }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingFour }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingFive{%
\markdownRendererHeadingFivePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingFive }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingFive }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHeadingSix{%
\markdownRendererHeadingSixPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headingSix }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headingSix }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererHorizontalRule{%
\markdownRendererHorizontalRulePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { horizontalRule }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { horizontalRule }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererFootnote{%
\markdownRendererFootnotePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { footnote }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { footnote }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererCite{%
\markdownRendererCitePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { cite }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { cite }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererTextCite{%
\markdownRendererTextCitePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { textCite }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { textCite }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererTable{%
\markdownRendererTablePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { table }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { table }
+ { 3 }
+\ExplSyntaxOff
\def\markdownRendererInlineHtmlComment{%
\markdownRendererInlineHtmlCommentPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { inlineHtmlComment }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { inlineHtmlComment }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererBlockHtmlCommentBegin{%
\markdownRendererBlockHtmlCommentBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { blockHtmlCommentBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { blockHtmlCommentBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererBlockHtmlCommentEnd{%
\markdownRendererBlockHtmlCommentEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { blockHtmlCommentEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { blockHtmlCommentEnd }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererInlineHtmlTag{%
\markdownRendererInlineHtmlTagPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { inlineHtmlTag }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { inlineHtmlTag }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererInputBlockHtmlElement{%
\markdownRendererInputBlockHtmlElementPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { inputBlockHtmlElement }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { inputBlockHtmlElement }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererAttributeIdentifier{%
\markdownRendererAttributeIdentifierPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { attributeIdentifier }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { attributeIdentifier }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererAttributeClassName{%
\markdownRendererAttributeClassNamePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { attributeClassName }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { attributeClassName }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererAttributeKeyValue{%
\markdownRendererAttributeKeyValuePrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { attributeKeyValue }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { attributeKeyValue }
+ { 2 }
+\ExplSyntaxOff
\def\markdownRendererHeaderAttributeContextBegin{%
\markdownRendererHeaderAttributeContextBeginPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headerAttributeContextBegin }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headerAttributeContextBegin }
+ { 0 }
+\ExplSyntaxOff
\def\markdownRendererHeaderAttributeContextEnd{%
\markdownRendererHeaderAttributeContextEndPrototype}%
+\ExplSyntaxOn
+\seq_put_right:Nn
+ \g__markdown_renderers_seq
+ { headerAttributeContextEnd }
+\prop_put:Nnn
+ \g__markdown_renderer_arities_prop
+ { headerAttributeContextEnd }
+ { 0 }
+\ExplSyntaxOff
+\ExplSyntaxOn
+\keys_define:nn
+ { markdown/jekyllData }
+ { }
+\ExplSyntaxOff
\def\markdownRendererAttributeIdentifierPrototype#1{}%
\def\markdownRendererAttributeClassNamePrototype#1{}%
\def\markdownRendererAttributeKeyValuePrototype#1#2{}%
@@ -313,16 +1504,8 @@
\def\markdownRendererBlockQuoteEndPrototype{}%
\def\markdownRendererInputVerbatimPrototype#1{}%
\def\markdownRendererInputFencedCodePrototype#1#2{}%
-\def\markdownRendererJekyllDataBooleanPrototype#1#2{}%
-\def\markdownRendererJekyllDataEmptyPrototype#1{}%
-\def\markdownRendererJekyllDataNumberPrototype#1#2{}%
-\def\markdownRendererJekyllDataStringPrototype#1#2{}%
\def\markdownRendererJekyllDataBeginPrototype{}%
\def\markdownRendererJekyllDataEndPrototype{}%
-\def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{}%
-\def\markdownRendererJekyllDataSequenceEndPrototype{}%
-\def\markdownRendererJekyllDataMappingBeginPrototype#1#2{}%
-\def\markdownRendererJekyllDataMappingEndPrototype{}%
\def\markdownRendererHeadingOnePrototype#1{}%
\def\markdownRendererHeadingTwoPrototype#1{}%
\def\markdownRendererHeadingThreePrototype#1{}%
@@ -441,114 +1624,250 @@
\def\markdownRendererTickedBoxPrototype{[X]}%
\def\markdownRendererHalfTickedBoxPrototype{[/]}%
\def\markdownRendererUntickedBoxPrototype{[ ]}%
-\def\markdownLuaOptions{{%
-\ifx\markdownOptionBlankBeforeBlockquote\undefined\else
- blankBeforeBlockquote = \markdownOptionBlankBeforeBlockquote,
-\fi
-\ifx\markdownOptionBlankBeforeCodeFence\undefined\else
- blankBeforeCodeFence = \markdownOptionBlankBeforeCodeFence,
-\fi
-\ifx\markdownOptionBlankBeforeHeading\undefined\else
- blankBeforeHeading = \markdownOptionBlankBeforeHeading,
-\fi
-\ifx\markdownOptionBreakableBlockquotes\undefined\else
- breakableBlockquotes = \markdownOptionBreakableBlockquotes,
-\fi
- cacheDir = "\markdownOptionCacheDir",
-\ifx\markdownOptionCitations\undefined\else
- citations = \markdownOptionCitations,
-\fi
-\ifx\markdownOptionCitationNbsps\undefined\else
- citationNbsps = \markdownOptionCitationNbsps,
-\fi
-\ifx\markdownOptionCodeSpans\undefined\else
- codeSpans = \markdownOptionCodeSpans,
-\fi
-\ifx\markdownOptionContentBlocks\undefined\else
- contentBlocks = \markdownOptionContentBlocks,
-\fi
-\ifx\markdownOptionContentBlocksLanguageMap\undefined\else
- contentBlocksLanguageMap =
- "\markdownOptionContentBlocksLanguageMap",
-\fi
-\ifx\markdownOptionDefinitionLists\undefined\else
- definitionLists = \markdownOptionDefinitionLists,
-\fi
-\ifx\markdownOptionEagerCache\undefined\else
- eagerCache = \markdownOptionEagerCache,
-\fi
-\ifx\markdownOptionFinalizeCache\undefined\else
- finalizeCache = \markdownOptionFinalizeCache,
-\fi
- frozenCacheFileName = "\markdownOptionFrozenCacheFileName",
- frozenCacheCounter = \the\markdownFrozenCacheCounter,
-\ifx\markdownOptionFootnotes\undefined\else
- footnotes = \markdownOptionFootnotes,
-\fi
-\ifx\markdownOptionFencedCode\undefined\else
- fencedCode = \markdownOptionFencedCode,
-\fi
-\ifx\markdownOptionHardLineBreaks\undefined\else
- hardLineBreaks = \markdownOptionHardLineBreaks,
-\fi
-\ifx\markdownOptionHashEnumerators\undefined\else
- hashEnumerators = \markdownOptionHashEnumerators,
-\fi
-\ifx\markdownOptionHeaderAttributes\undefined\else
- headerAttributes = \markdownOptionHeaderAttributes,
-\fi
-\ifx\markdownOptionHtml\undefined\else
- html = \markdownOptionHtml,
-\fi
-\ifx\markdownOptionHybrid\undefined\else
- hybrid = \markdownOptionHybrid,
-\fi
-\ifx\markdownOptionInlineFootnotes\undefined\else
- inlineFootnotes = \markdownOptionInlineFootnotes,
-\fi
-\ifx\markdownOptionJekyllData\undefined\else
- jekyllData = \markdownOptionJekyllData,
-\fi
-\ifx\markdownOptionPipeTables\undefined\else
- pipeTables = \markdownOptionPipeTables,
-\fi
-\ifx\markdownOptionPreserveTabs\undefined\else
- preserveTabs = \markdownOptionPreserveTabs,
-\fi
-\ifx\markdownOptionRelativeReferences\undefined\else
- relativeReferences = \markdownOptionRelativeReferences,
-\fi
-\ifx\markdownOptionShiftHeadings\undefined\else
- shiftHeadings = "\markdownOptionShiftHeadings",
-\fi
-\ifx\markdownOptionSlice\undefined\else
- slice = "\markdownOptionSlice",
-\fi
-\ifx\markdownOptionSmartEllipses\undefined\else
- smartEllipses = \markdownOptionSmartEllipses,
-\fi
-\ifx\markdownOptionStartNumber\undefined\else
- startNumber = \markdownOptionStartNumber,
-\fi
-\ifx\markdownOptionStripIndent\undefined\else
- stripIndent = \markdownOptionStripIndent,
-\fi
-\ifx\markdownOptionTableCaptions\undefined\else
- tableCaptions = \markdownOptionTableCaptions,
-\fi
-\ifx\markdownOptionTaskLists\undefined\else
- taskLists = \markdownOptionTaskLists,
-\fi
-\ifx\markdownOptionTeXComments\undefined\else
- texComments = \markdownOptionTeXComments,
-\fi
-\ifx\markdownOptionTightLists\undefined\else
- tightLists = \markdownOptionTightLists,
-\fi
-\ifx\markdownOptionUnderscores\undefined\else
- underscores = \markdownOptionUnderscores,
-\fi}
-}%
+\ExplSyntaxOn
+\seq_new:N \g__markdown_jekyll_data_datatypes_seq
+\tl_const:Nn \c__markdown_jekyll_data_sequence_tl { sequence }
+\tl_const:Nn \c__markdown_jekyll_data_mapping_tl { mapping }
+\tl_const:Nn \c__markdown_jekyll_data_scalar_tl { scalar }
+\seq_new:N \g__markdown_jekyll_data_wildcard_absolute_address_seq
+\cs_new:Nn \markdown_jekyll_data_push_address_segment:n
+ {
+ \seq_if_empty:NF
+ \g__markdown_jekyll_data_datatypes_seq
+ {
+ \seq_get_right:NN
+ \g__markdown_jekyll_data_datatypes_seq
+ \l_tmpa_tl
+ \tl_if_eq:NNTF
+ \l_tmpa_tl
+ \c__markdown_jekyll_data_sequence_tl
+ {
+ \seq_put_right:Nn
+ \g__markdown_jekyll_data_wildcard_absolute_address_seq
+ { * }
+ }
+ {
+ \seq_put_right:Nn
+ \g__markdown_jekyll_data_wildcard_absolute_address_seq
+ { #1 }
+ }
+ }
+ }
+\tl_new:N \g__markdown_jekyll_data_wildcard_absolute_address_tl
+\tl_new:N \g__markdown_jekyll_data_wildcard_relative_address_tl
+\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN
+ {
+ \seq_pop_left:NN #1 \l_tmpa_tl
+ \tl_set:Nx #2 { / \seq_use:Nn #1 { / } }
+ \seq_put_left:NV #1 \l_tmpa_tl
+ }
+\cs_new:Nn \markdown_jekyll_data_update_address_tls:
+ {
+ \markdown_jekyll_data_concatenate_address:NN
+ \g__markdown_jekyll_data_wildcard_absolute_address_seq
+ \g__markdown_jekyll_data_wildcard_absolute_address_tl
+ \seq_get_right:NN
+ \g__markdown_jekyll_data_wildcard_absolute_address_seq
+ \g__markdown_jekyll_data_wildcard_relative_address_tl
+ }
+\cs_new:Nn \markdown_jekyll_data_push:nN
+ {
+ \markdown_jekyll_data_push_address_segment:n
+ { #1 }
+ \seq_put_right:NV
+ \g__markdown_jekyll_data_datatypes_seq
+ #2
+ \markdown_jekyll_data_update_address_tls:
+ }
+\cs_new:Nn \markdown_jekyll_data_pop:
+ {
+ \seq_pop_right:NN
+ \g__markdown_jekyll_data_wildcard_absolute_address_seq
+ \l_tmpa_tl
+ \seq_pop_right:NN
+ \g__markdown_jekyll_data_datatypes_seq
+ \l_tmpa_tl
+ \markdown_jekyll_data_update_address_tls:
+ }
+\cs_new:Nn \markdown_jekyll_data_set_keyval:nn
+ {
+ \keys_set_known:nn
+ { markdown/jekyllData }
+ { { #1 } = { #2 } }
+ }
+\cs_generate_variant:Nn
+ \markdown_jekyll_data_set_keyval:nn
+ { Vn }
+\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn
+ {
+ \markdown_jekyll_data_push:nN
+ { #1 }
+ \c__markdown_jekyll_data_scalar_tl
+ \markdown_jekyll_data_set_keyval:Vn
+ \g__markdown_jekyll_data_wildcard_absolute_address_tl
+ { #2 }
+ \markdown_jekyll_data_set_keyval:Vn
+ \g__markdown_jekyll_data_wildcard_relative_address_tl
+ { #2 }
+ \markdown_jekyll_data_pop:
+ }
+\def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{
+ \markdown_jekyll_data_push:nN
+ { #1 }
+ \c__markdown_jekyll_data_sequence_tl
+}
+\def\markdownRendererJekyllDataMappingBeginPrototype#1#2{
+ \markdown_jekyll_data_push:nN
+ { #1 }
+ \c__markdown_jekyll_data_mapping_tl
+}
+\def\markdownRendererJekyllDataSequenceEndPrototype{
+ \markdown_jekyll_data_pop:
+}
+\def\markdownRendererJekyllDataMappingEndPrototype{
+ \markdown_jekyll_data_pop:
+}
+\def\markdownRendererJekyllDataBooleanPrototype#1#2{
+ \markdown_jekyll_data_set_keyvals:nn
+ { #1 }
+ { #2 }
+}
+\def\markdownRendererJekyllDataEmptyPrototype#1{}
+\def\markdownRendererJekyllDataNumberPrototype#1#2{
+ \markdown_jekyll_data_set_keyvals:nn
+ { #1 }
+ { #2 }
+}
+\def\markdownRendererJekyllDataStringPrototype#1#2{
+ \markdown_jekyll_data_set_keyvals:nn
+ { #1 }
+ { #2 }
+}
+\ExplSyntaxOff
+\ExplSyntaxOn
+\tl_new:N \g__markdown_formatted_lua_options_tl
+\tl_const:Nn \c__markdown_lua_option_type_boolean { boolean }
+\tl_const:Nn \c__markdown_lua_option_type_counter { counter }
+\tl_const:Nn \c__markdown_lua_option_type_number { number }
+\tl_const:Nn \c__markdown_lua_option_type_string { string }
+\cs_new:Nn \__markdown_format_lua_options:
+ {
+ \tl_gclear:N
+ \g__markdown_formatted_lua_options_tl
+ \seq_map_function:NN
+ \g__markdown_lua_options_seq
+ \__markdown_format_lua_option:n
+ }
+\cs_new:Nn \__markdown_format_lua_option:n
+ {
+ \__markdown_typecheck_lua_option:n { #1 }
+ \tl_set:Nn
+ \l_tmpb_tl
+ { \str_upper_case:n { #1 } }
+ \tl_set:Nx
+ \l_tmpa_tl
+ {
+ markdownOption
+ \tl_head:f { \l_tmpb_tl }
+ \tl_tail:n { #1 }
+ }
+ \prop_get:NnN
+ \g__markdown_lua_option_types_prop
+ { #1 }
+ \l_tmpb_tl
+ \cs_if_free:cTF
+ { \l_tmpa_tl }
+ { }
+ {
+ \tl_case:NnF
+ \l_tmpb_tl
+ {
+ \c__markdown_lua_option_type_string
+ {
+ \tl_gput_right:Nx
+ \g__markdown_formatted_lua_options_tl
+ { #1~=~" \cs:w \l_tmpa_tl \cs_end: ",~ }
+ }
+ \c__markdown_lua_option_type_counter
+ {
+ \tl_gput_right:Nx
+ \g__markdown_formatted_lua_options_tl
+ { #1~=~ \the \cs:w \l_tmpa_tl \cs_end: ,~ }
+ }
+ }
+ {
+ \tl_gput_right:Nx
+ \g__markdown_formatted_lua_options_tl
+ { #1~=~ \cs:w \l_tmpa_tl \cs_end: ,~ }
+ }
+ }
+ }
+\msg_new:nnn
+ { markdown }
+ { undefined-lua-option }
+ {
+ Lua~option~#1~is~undefined.
+ }
+\msg_new:nnn
+ { markdown }
+ { failed-typecheck-for-boolean-lua-option }
+ {
+ Lua~option~#1~has~value~#2,~
+ but~a~boolean~(true~or~false)~was~expected.
+ }
+\cs_new:Nn \__markdown_typecheck_lua_option:n
+ {
+ \tl_set:Nn
+ \l_tmpb_tl
+ { \str_upper_case:n { #1 } }
+ \tl_set:Nx
+ \l_tmpa_tl
+ {
+ markdownOption
+ \tl_head:f { \l_tmpb_tl }
+ \tl_tail:n { #1 }
+ }
+ \prop_get:NnNTF
+ \g__markdown_lua_option_types_prop
+ { #1 }
+ \l_tmpb_tl
+ {
+ \cs_if_free:cTF
+ { \l_tmpa_tl }
+ { }
+ {
+ \tl_case:Nn
+ \l_tmpb_tl
+ {
+ \c__markdown_lua_option_type_boolean
+ {
+ \tl_case:cnF
+ { \l_tmpa_tl }
+ {
+ \c__markdown_lua_option_value_true { }
+ \c__markdown_lua_option_value_false { }
+ }
+ {
+ \msg_error:nnxx
+ { markdown }
+ { failed-typecheck-for-boolean-lua-option }
+ { #1 }
+ { \l_tmpa_tl }
+ }
+ }
+ }
+ }
+ }
+ {
+ \msg_error:nnn
+ { markdown }
+ { undefined-lua-option }
+ { #1 }
+ }
+ }
+\let\markdownPrepareLuaOptions=\__markdown_format_lua_options:
+\def\markdownLuaOptions{{ \g__markdown_formatted_lua_options_tl }}
+\ExplSyntaxOff
\def\markdownPrepare{%
local lfs = require("lfs")
local cacheDir = "\markdownOptionCacheDir"
@@ -558,11 +1877,42 @@
local md = require("markdown")
local convert = md.new(\markdownLuaOptions)
}%
-\def\markdownIfOption#1#2#3{%
- \begingroup
- \def\next{true}%
- \expandafter\ifx\csname markdownOption#1\endcsname\next
- \endgroup#2\else\endgroup#3\fi}%
+\ExplSyntaxOn
+\tl_const:Nn \c__markdown_lua_option_value_true { true }
+\tl_const:Nn \c__markdown_lua_option_value_false { false }
+\cs_new:Nn \__markdown_if_option:nTF
+ {
+ \tl_set:Nn
+ \l_tmpb_tl
+ { \str_upper_case:n { #1 } }
+ \tl_set:Nx
+ \l_tmpa_tl
+ {
+ markdownOption
+ \tl_head:f { \l_tmpb_tl }
+ \tl_tail:n { #1 }
+ }
+ \cs_if_free:cTF
+ { \l_tmpa_tl }
+ {
+ \prop_get:NnN
+ \g__markdown_default_lua_options_prop
+ { #1 }
+ \l_tmpb_tl
+ }
+ {
+ \tl_set:Nf
+ \l_tmpb_tl
+ { \cs:w \l_tmpa_tl \cs_end: }
+ }
+ \tl_if_eq:NNTF
+ \l_tmpb_tl
+ \c__markdown_lua_option_value_true
+ { #2 }
+ { #3 }
+ }
+\let\markdownIfOption=\__markdown_if_option:nTF
+\ExplSyntaxOff
\csname newread\endcsname\markdownInputFileStream
\csname newwrite\endcsname\markdownOutputFileStream
\begingroup
@@ -578,7 +1928,7 @@
|catcode`|%=12@
|gdef|markdownReadAndConvert#1#2{@
|begingroup@
- |markdownIfOption{FrozenCache}{}{@
+ |markdownIfOption{frozenCache}{}{@
|immediate|openout|markdownOutputFileStream@
|markdownOptionInputTempFileName|relax@
|markdownInfo{Buffering markdown input into the temporary @
@@ -589,7 +1939,7 @@
|catcode`| =12@
|markdownMakeOther@
|def|markdownReadAndConvertStripPercentSign##1{@
- |markdownIfOption{StripPercentSigns}{@
+ |markdownIfOption{stripPercentSigns}{@
|if##1%@
|expandafter|expandafter|expandafter@
|markdownReadAndConvertProcessLine@
@@ -606,13 +1956,13 @@
}@
|def|markdownReadAndConvertProcessLine##1#1##2#1##3|relax{@
|ifx|relax##3|relax@
- |markdownIfOption{FrozenCache}{}{@
+ |markdownIfOption{frozenCache}{}{@
|immediate|write|markdownOutputFileStream{##1}@
}@
|else@
|def^^M{@
|markdownInfo{The ending token sequence was found}@
- |markdownIfOption{FrozenCache}{}{@
+ |markdownIfOption{frozenCache}{}{@
|immediate|closeout|markdownOutputFileStream@
}@
|endgroup@
@@ -728,7 +2078,7 @@
|gdef|markdownInput#1{%
|begingroup
|catcode`|%=12
- |markdownIfOption{FrozenCache}{%
+ |markdownIfOption{frozenCache}{%
|ifnum|markdownFrozenCacheCounter=0|relax
|markdownInfo{Reading frozen cache from
"|markdownOptionFrozenCacheFileName"}%
@@ -742,6 +2092,7 @@
|markdownInfo{Including markdown document "#1"}%
|openin|markdownInputFileStream#1
|closein|markdownInputFileStream
+ |markdownPrepareLuaOptions
|markdownLuaExecute{%
|markdownPrepare
local file = assert(io.open("#1", "r"),
@@ -749,7 +2100,7 @@
local input = assert(file:read("*a"))
assert(file:close())
print(convert(input:gsub("\r\n?", "\n") .. "\n"))}%
- |markdownIfOption{FinalizeCache}{%
+ |markdownIfOption{finalizeCache}{%
|global|advance|markdownFrozenCacheCounter by 1|relax
}%
}%