summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/markdown/markdown.tex1611
-rw-r--r--Master/texmf-dist/tex/latex/markdown/markdown.sty602
-rw-r--r--Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_dot.sty2
-rw-r--r--Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty2
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown.lua106
5 files changed, 1665 insertions, 658 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
}%
}%
diff --git a/Master/texmf-dist/tex/latex/markdown/markdown.sty b/Master/texmf-dist/tex/latex/markdown/markdown.sty
index 8645918a346..a6c17ab3c2f 100644
--- a/Master/texmf-dist/tex/latex/markdown/markdown.sty
+++ b/Master/texmf-dist/tex/latex/markdown/markdown.sty
@@ -53,18 +53,22 @@
\newcommand\markdownSetup[1]{%
\setkeys{markdownOptions}{#1}}%
\newcommand\markdownSetupSnippet[2]{%
- \@ifundefined
- {markdownLaTeXSetupSnippet\markdownLaTeXThemeName#1}{%
- \newtoks\next
- \next={#2}%
- \expandafter\let\csname markdownLaTeXSetupSnippet%
- \markdownLaTeXThemeName#1\endcsname=\next
- }{%
+ \markdownIfSnippetExists{#1}%
+ {%
\markdownWarning
{Redefined setup snippet \markdownLaTeXThemeName#1}%
\csname markdownLaTeXSetupSnippet%
\markdownLaTeXThemeName#1\endcsname={#2}%
+ }{%
+ \newtoks\next
+ \next={#2}%
+ \expandafter\let\csname markdownLaTeXSetupSnippet%
+ \markdownLaTeXThemeName#1\endcsname=\next
}}%
+\newcommand\markdownIfSnippetExists[3]{%
+ \@ifundefined
+ {markdownLaTeXSetupSnippet\markdownLaTeXThemeName#1}%
+ {#3}{#2}}%
\newif\ifmarkdownLaTeXPlain
\markdownLaTeXPlainfalse
\define@key{markdownOptions}{plain}[true]{%
@@ -89,14 +93,15 @@
\markdownLaTeXThemePackageName}{#1/}}%
\@onlypreamble\KV@markdownOptions@theme
\define@key{markdownOptions}{snippet}{%
- \@ifundefined
- {markdownLaTeXSetupSnippet#1}{%
+ \markdownIfSnippetExists{#1}%
+ {%
+ \expandafter\markdownSetup\expandafter{%
+ \the\csname markdownLaTeXSetupSnippet%
+ \markdownLaTeXThemeName#1\endcsname}%
+ }{%
\markdownError
{Can't invoke setup snippet #1}%
{The setup snippet is undefined}%
- }{%
- \expandafter\markdownSetup\expandafter{%
- \the\csname markdownLaTeXSetupSnippet#1\endcsname}%
}%
}%
\define@key{markdownOptions}{helperScriptFileName}{%
@@ -133,6 +138,8 @@
\def\markdownOptionDefinitionLists{#1}}%
\define@key{markdownOptions}{eagerCache}[true]{%
\def\markdownOptionEagerCache{#1}}%
+\define@key{markdownOptions}{expectJekyllData}[true]{%
+ \def\markdownOptionExpectJekyllData{#1}}%
\define@key{markdownOptions}{footnotes}[true]{%
\def\markdownOptionFootnotes{#1}}%
\define@key{markdownOptions}{fencedCode}[true]{%
@@ -172,7 +179,7 @@
\define@key{markdownOptions}{taskLists}[true]{%
\def\markdownOptionTaskLists{#1}}%
\define@key{markdownOptions}{texComments}[true]{%
- \def\markdownOptionTeXComments{#1}}%
+ \def\markdownOptionTexComments{#1}}%
\define@key{markdownOptions}{tightLists}[true]{%
\def\markdownOptionTightLists{#1}}%
\define@key{markdownOptions}{underscores}[true]{%
@@ -187,342 +194,97 @@
\DeclareOption{frozencache}{\markdownSetup{frozenCache}}
\define@key{markdownOptions}{frozenCacheFileName}{%
\def\markdownOptionFrozenCacheFileName{#1}}%
-\define@key{markdownRenderers}{attributeIdentifier}{%
- \renewcommand\markdownRendererAttributeIdentifier[1]{#1}}%
-\define@key{markdownRenderers}{attributeClassName}{%
- \renewcommand\markdownRendererAttributeClassName[1]{#1}}%
-\define@key{markdownRenderers}{attributeKeyValue}{%
- \renewcommand\markdownRendererAttributeKeyValue[2]{#1}}%
-\define@key{markdownRenderers}{documentBegin}{%
- \renewcommand\markdownRendererDocumentBegin{#1}}%
-\define@key{markdownRenderers}{documentEnd}{%
- \renewcommand\markdownRendererDocumentEnd{#1}}%
-\define@key{markdownRenderers}{interblockSeparator}{%
- \renewcommand\markdownRendererInterblockSeparator{#1}}%
-\define@key{markdownRenderers}{lineBreak}{%
- \renewcommand\markdownRendererLineBreak{#1}}%
-\define@key{markdownRenderers}{ellipsis}{%
- \renewcommand\markdownRendererEllipsis{#1}}%
-\define@key{markdownRenderers}{headerAttributeContextBegin}{%
- \renewcommand\markdownRendererHeaderAttributeContextBegin{#1}}%
-\define@key{markdownRenderers}{headerAttributeContextEnd}{%
- \renewcommand\markdownRendererHeaderAttributeContextEnd{#1}}%
-\define@key{markdownRenderers}{nbsp}{%
- \renewcommand\markdownRendererNbsp{#1}}%
-\define@key{markdownRenderers}{leftBrace}{%
- \renewcommand\markdownRendererLeftBrace{#1}}%
-\define@key{markdownRenderers}{rightBrace}{%
- \renewcommand\markdownRendererRightBrace{#1}}%
-\define@key{markdownRenderers}{dollarSign}{%
- \renewcommand\markdownRendererDollarSign{#1}}%
-\define@key{markdownRenderers}{percentSign}{%
- \renewcommand\markdownRendererPercentSign{#1}}%
-\define@key{markdownRenderers}{ampersand}{%
- \renewcommand\markdownRendererAmpersand{#1}}%
-\define@key{markdownRenderers}{underscore}{%
- \renewcommand\markdownRendererUnderscore{#1}}%
-\define@key{markdownRenderers}{hash}{%
- \renewcommand\markdownRendererHash{#1}}%
-\define@key{markdownRenderers}{circumflex}{%
- \renewcommand\markdownRendererCircumflex{#1}}%
-\define@key{markdownRenderers}{backslash}{%
- \renewcommand\markdownRendererBackslash{#1}}%
-\define@key{markdownRenderers}{tilde}{%
- \renewcommand\markdownRendererTilde{#1}}%
-\define@key{markdownRenderers}{pipe}{%
- \renewcommand\markdownRendererPipe{#1}}%
-\define@key{markdownRenderers}{codeSpan}{%
- \renewcommand\markdownRendererCodeSpan[1]{#1}}%
-\define@key{markdownRenderers}{link}{%
- \renewcommand\markdownRendererLink[4]{#1}}%
-\define@key{markdownRenderers}{contentBlock}{%
- \renewcommand\markdownRendererContentBlock[4]{#1}}%
-\define@key{markdownRenderers}{contentBlockOnlineImage}{%
- \renewcommand\markdownRendererContentBlockOnlineImage[4]{#1}}%
-\define@key{markdownRenderers}{contentBlockCode}{%
- \renewcommand\markdownRendererContentBlockCode[5]{#1}}%
-\define@key{markdownRenderers}{image}{%
- \renewcommand\markdownRendererImage[4]{#1}}%
-\define@key{markdownRenderers}{ulBegin}{%
- \renewcommand\markdownRendererUlBegin{#1}}%
-\define@key{markdownRenderers}{ulBeginTight}{%
- \renewcommand\markdownRendererUlBeginTight{#1}}%
-\define@key{markdownRenderers}{ulItem}{%
- \renewcommand\markdownRendererUlItem{#1}}%
-\define@key{markdownRenderers}{ulItemEnd}{%
- \renewcommand\markdownRendererUlItemEnd{#1}}%
-\define@key{markdownRenderers}{ulEnd}{%
- \renewcommand\markdownRendererUlEnd{#1}}%
-\define@key{markdownRenderers}{ulEndTight}{%
- \renewcommand\markdownRendererUlEndTight{#1}}%
-\define@key{markdownRenderers}{olBegin}{%
- \renewcommand\markdownRendererOlBegin{#1}}%
-\define@key{markdownRenderers}{olBeginTight}{%
- \renewcommand\markdownRendererOlBeginTight{#1}}%
-\define@key{markdownRenderers}{olItem}{%
- \renewcommand\markdownRendererOlItem{#1}}%
-\define@key{markdownRenderers}{olItemWithNumber}{%
- \renewcommand\markdownRendererOlItemWithNumber[1]{#1}}%
-\define@key{markdownRenderers}{olItemEnd}{%
- \renewcommand\markdownRendererOlItemEnd{#1}}%
-\define@key{markdownRenderers}{olEnd}{%
- \renewcommand\markdownRendererOlEnd{#1}}%
-\define@key{markdownRenderers}{olEndTight}{%
- \renewcommand\markdownRendererOlEndTight{#1}}%
-\define@key{markdownRenderers}{dlBegin}{%
- \renewcommand\markdownRendererDlBegin{#1}}%
-\define@key{markdownRenderers}{dlBeginTight}{%
- \renewcommand\markdownRendererDlBeginTight{#1}}%
-\define@key{markdownRenderers}{dlItem}{%
- \renewcommand\markdownRendererDlItem[1]{#1}}%
-\define@key{markdownRenderers}{dlItemEnd}{%
- \renewcommand\markdownRendererDlItemEnd{#1}}%
-\define@key{markdownRenderers}{dlDefinitionBegin}{%
- \renewcommand\markdownRendererDlDefinitionBegin{#1}}%
-\define@key{markdownRenderers}{dlDefinitionEnd}{%
- \renewcommand\markdownRendererDlDefinitionEnd{#1}}%
-\define@key{markdownRenderers}{dlEnd}{%
- \renewcommand\markdownRendererDlEnd{#1}}%
-\define@key{markdownRenderers}{dlEndTight}{%
- \renewcommand\markdownRendererDlEndTight{#1}}%
-\define@key{markdownRenderers}{emphasis}{%
- \renewcommand\markdownRendererEmphasis[1]{#1}}%
-\define@key{markdownRenderers}{strongEmphasis}{%
- \renewcommand\markdownRendererStrongEmphasis[1]{#1}}%
-\define@key{markdownRenderers}{blockQuoteBegin}{%
- \renewcommand\markdownRendererBlockQuoteBegin{#1}}%
-\define@key{markdownRenderers}{blockQuoteEnd}{%
- \renewcommand\markdownRendererBlockQuoteEnd{#1}}%
-\define@key{markdownRenderers}{inputVerbatim}{%
- \renewcommand\markdownRendererInputVerbatim[1]{#1}}%
-\define@key{markdownRenderers}{inputFencedCode}{%
- \renewcommand\markdownRendererInputFencedCode[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataBoolean}{%
- \renewcommand\markdownRendererJekyllDataBoolean[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataEmpty}{%
- \renewcommand\markdownRendererJekyllDataEmpty[1]{#1}}%
-\define@key{markdownRenderers}{jekyllDataNumber}{%
- \renewcommand\markdownRendererJekyllDataNumber[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataString}{%
- \renewcommand\markdownRendererJekyllDataString[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataBegin}{%
- \renewcommand\markdownRendererJekyllDataBegin{#1}}%
-\define@key{markdownRenderers}{jekyllDataEnd}{%
- \renewcommand\markdownRendererJekyllDataEnd{#1}}%
-\define@key{markdownRenderers}{jekyllDataSequenceBegin}{%
- \renewcommand\markdownRendererJekyllDataSequenceBegin[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataSequenceEnd}{%
- \renewcommand\markdownRendererJekyllDataSequenceEnd{#1}}%
-\define@key{markdownRenderers}{jekyllDataMappingBegin}{%
- \renewcommand\markdownRendererJekyllDataMappingBegin[2]{#1}}%
-\define@key{markdownRenderers}{jekyllDataMappingEnd}{%
- \renewcommand\markdownRendererJekyllDataMappingEnd{#1}}%
-\define@key{markdownRenderers}{headingOne}{%
- \renewcommand\markdownRendererHeadingOne[1]{#1}}%
-\define@key{markdownRenderers}{headingTwo}{%
- \renewcommand\markdownRendererHeadingTwo[1]{#1}}%
-\define@key{markdownRenderers}{headingThree}{%
- \renewcommand\markdownRendererHeadingThree[1]{#1}}%
-\define@key{markdownRenderers}{headingFour}{%
- \renewcommand\markdownRendererHeadingFour[1]{#1}}%
-\define@key{markdownRenderers}{headingFive}{%
- \renewcommand\markdownRendererHeadingFive[1]{#1}}%
-\define@key{markdownRenderers}{headingSix}{%
- \renewcommand\markdownRendererHeadingSix[1]{#1}}%
-\define@key{markdownRenderers}{horizontalRule}{%
- \renewcommand\markdownRendererHorizontalRule{#1}}%
-\define@key{markdownRenderers}{footnote}{%
- \renewcommand\markdownRendererFootnote[1]{#1}}%
-\define@key{markdownRenderers}{cite}{%
- \renewcommand\markdownRendererCite[1]{#1}}%
-\define@key{markdownRenderers}{textCite}{%
- \renewcommand\markdownRendererTextCite[1]{#1}}%
-\define@key{markdownRenderers}{table}{%
- \renewcommand\markdownRendererTable[3]{#1}}%
-\define@key{markdownRenderers}{inlineHtmlComment}{%
- \renewcommand\markdownRendererInlineHtmlComment[1]{#1}}%
-\define@key{markdownRenderers}{blockHtmlCommentBegin}{%
- \renewcommand\markdownRendererBlockHtmlCommentBegin{#1}}%
-\define@key{markdownRenderers}{blockHtmlCommentEnd}{%
- \renewcommand\markdownRendererBlockHtmlCommentEnd{#1}}%
-\define@key{markdownRenderers}{inlineHtmlTag}{%
- \renewcommand\markdownRendererInlineHtmlTag[1]{#1}}%
-\define@key{markdownRenderers}{inputBlockHtmlElement}{%
- \renewcommand\markdownRendererInputBlockHtmlElement[1]{#1}}%
-\define@key{markdownRenderers}{tickedBox}{%
- \renewcommand\markdownRendererTickedBox{#1}}%
-\define@key{markdownRenderers}{halfTickedBox}{%
- \renewcommand\markdownRendererHalfTickedBox{#1}}%
-\define@key{markdownRenderers}{untickedBox}{%
- \renewcommand\markdownRendererUntickedBox{#1}}%
-\define@key{markdownRendererPrototypes}{attributeIdentifier}{%
- \renewcommand\markdownRendererAttributeIdentifierPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{attributeClassName}{%
- \renewcommand\markdownRendererAttributeClassNamePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{attributeKeyValue}{%
- \renewcommand\markdownRendererAttributeKeyValuePrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{documentBegin}{%
- \renewcommand\markdownRendererDocumentBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{documentEnd}{%
- \renewcommand\markdownRendererDocumentEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{interblockSeparator}{%
- \renewcommand\markdownRendererInterblockSeparatorPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{lineBreak}{%
- \renewcommand\markdownRendererLineBreakPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ellipsis}{%
- \renewcommand\markdownRendererEllipsisPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{headerAttributeContextBegin}{%
- \renewcommand\markdownRendererHeaderAttributeContextBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{headerAttributeContextEnd}{%
- \renewcommand\markdownRendererHeaderAttributeContextEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{nbsp}{%
- \renewcommand\markdownRendererNbspPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{leftBrace}{%
- \renewcommand\markdownRendererLeftBracePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{rightBrace}{%
- \renewcommand\markdownRendererRightBracePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dollarSign}{%
- \renewcommand\markdownRendererDollarSignPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{percentSign}{%
- \renewcommand\markdownRendererPercentSignPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ampersand}{%
- \renewcommand\markdownRendererAmpersandPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{underscore}{%
- \renewcommand\markdownRendererUnderscorePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{hash}{%
- \renewcommand\markdownRendererHashPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{circumflex}{%
- \renewcommand\markdownRendererCircumflexPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{backslash}{%
- \renewcommand\markdownRendererBackslashPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{tilde}{%
- \renewcommand\markdownRendererTildePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{pipe}{%
- \renewcommand\markdownRendererPipePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{codeSpan}{%
- \renewcommand\markdownRendererCodeSpanPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{link}{%
- \renewcommand\markdownRendererLinkPrototype[4]{#1}}%
-\define@key{markdownRendererPrototypes}{contentBlock}{%
- \renewcommand\markdownRendererContentBlockPrototype[4]{#1}}%
-\define@key{markdownRendererPrototypes}{contentBlockOnlineImage}{%
- \renewcommand\markdownRendererContentBlockOnlineImagePrototype[4]{#1}}%
-\define@key{markdownRendererPrototypes}{contentBlockCode}{%
- \renewcommand\markdownRendererContentBlockCodePrototype[5]{#1}}%
-\define@key{markdownRendererPrototypes}{image}{%
- \renewcommand\markdownRendererImagePrototype[4]{#1}}%
-\define@key{markdownRendererPrototypes}{ulBegin}{%
- \renewcommand\markdownRendererUlBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ulBeginTight}{%
- \renewcommand\markdownRendererUlBeginTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ulItem}{%
- \renewcommand\markdownRendererUlItemPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ulItemEnd}{%
- \renewcommand\markdownRendererUlItemEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ulEnd}{%
- \renewcommand\markdownRendererUlEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{ulEndTight}{%
- \renewcommand\markdownRendererUlEndTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olBegin}{%
- \renewcommand\markdownRendererOlBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olBeginTight}{%
- \renewcommand\markdownRendererOlBeginTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olItem}{%
- \renewcommand\markdownRendererOlItemPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olItemWithNumber}{%
- \renewcommand\markdownRendererOlItemWithNumberPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{olItemEnd}{%
- \renewcommand\markdownRendererOlItemEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olEnd}{%
- \renewcommand\markdownRendererOlEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{olEndTight}{%
- \renewcommand\markdownRendererOlEndTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlBegin}{%
- \renewcommand\markdownRendererDlBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlBeginTight}{%
- \renewcommand\markdownRendererDlBeginTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlItem}{%
- \renewcommand\markdownRendererDlItemPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{dlItemEnd}{%
- \renewcommand\markdownRendererDlItemEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlDefinitionBegin}{%
- \renewcommand\markdownRendererDlDefinitionBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlDefinitionEnd}{%
- \renewcommand\markdownRendererDlDefinitionEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlEnd}{%
- \renewcommand\markdownRendererDlEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{dlEndTight}{%
- \renewcommand\markdownRendererDlEndTightPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{emphasis}{%
- \renewcommand\markdownRendererEmphasisPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{strongEmphasis}{%
- \renewcommand\markdownRendererStrongEmphasisPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{blockQuoteBegin}{%
- \renewcommand\markdownRendererBlockQuoteBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{blockQuoteEnd}{%
- \renewcommand\markdownRendererBlockQuoteEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{inputVerbatim}{%
- \renewcommand\markdownRendererInputVerbatimPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{inputFencedCode}{%
- \renewcommand\markdownRendererInputFencedCodePrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataBoolean}{%
- \renewcommand\markdownRendererJekyllDataBooleanPrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataEmpty}{%
- \renewcommand\markdownRendererJekyllDataEmptyPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataNumber}{%
- \renewcommand\markdownRendererJekyllDataNumberPrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataString}{%
- \renewcommand\markdownRendererJekyllDataStringPrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataBegin}{%
- \renewcommand\markdownRendererJekyllDataBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataEnd}{%
- \renewcommand\markdownRendererJekyllDataEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataSequenceBegin}{%
- \renewcommand\markdownRendererJekyllDataSequenceBeginPrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataSequenceEnd}{%
- \renewcommand\markdownRendererJekyllDataSequenceEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataMappingBegin}{%
- \renewcommand\markdownRendererJekyllDataMappingBeginPrototype[2]{#1}}%
-\define@key{markdownRendererPrototypes}{jekyllDataMappingEnd}{%
- \renewcommand\markdownRendererJekyllDataMappingEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{headingOne}{%
- \renewcommand\markdownRendererHeadingOnePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{headingTwo}{%
- \renewcommand\markdownRendererHeadingTwoPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{headingThree}{%
- \renewcommand\markdownRendererHeadingThreePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{headingFour}{%
- \renewcommand\markdownRendererHeadingFourPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{headingFive}{%
- \renewcommand\markdownRendererHeadingFivePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{headingSix}{%
- \renewcommand\markdownRendererHeadingSixPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{horizontalRule}{%
- \renewcommand\markdownRendererHorizontalRulePrototype{#1}}%
-\define@key{markdownRendererPrototypes}{footnote}{%
- \renewcommand\markdownRendererFootnotePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{cite}{%
- \renewcommand\markdownRendererCitePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{textCite}{%
- \renewcommand\markdownRendererTextCitePrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{table}{%
- \renewcommand\markdownRendererTablePrototype[3]{#1}}%
-\define@key{markdownRendererPrototypes}{inlineHtmlComment}{%
- \renewcommand\markdownRendererInlineHtmlCommentPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{blockHtmlCommentBegin}{%
- \renewcommand\markdownRendererBlockHtmlCommentBeginPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{blockHtmlCommentEnd}{%
- \renewcommand\markdownRendererBlockHtmlCommentEndPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{inlineHtmlTag}{%
- \renewcommand\markdownRendererInlineHtmlTagPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{inputBlockHtmlElement}{%
- \renewcommand\markdownRendererInputBlockHtmlElementPrototype[1]{#1}}%
-\define@key{markdownRendererPrototypes}{tickedBox}{%
- \renewcommand\markdownRendererTickedBoxPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{halfTickedBox}{%
- \renewcommand\markdownRendererHalfTickedBoxPrototype{#1}}%
-\define@key{markdownRendererPrototypes}{untickedBox}{%
- \renewcommand\markdownRendererUntickedBoxPrototype{#1}}%
+\ExplSyntaxOn
+\cs_new:Nn \__markdown_latex_define_renderers:
+ {
+ \seq_map_function:NN
+ \g__markdown_renderers_seq
+ \__markdown_latex_define_renderer:n
+ }
+\cs_new:Nn \__markdown_latex_define_renderer:n
+ {
+ \tl_set:Nn
+ \l_tmpb_tl
+ { \str_upper_case:n { #1 } }
+ \tl_set:Nx
+ \l_tmpa_tl
+ {
+ markdownRenderer
+ \tl_head:f { \l_tmpb_tl }
+ \tl_tail:n { #1 }
+ }
+ \prop_get:NnN
+ \g__markdown_renderer_arities_prop
+ { #1 }
+ \l_tmpb_tl
+ \__markdown_latex_define_renderer:ncV
+ { #1 }
+ { \l_tmpa_tl }
+ \l_tmpb_tl
+ }
+\cs_new:Nn \__markdown_latex_define_renderer:nNn
+ {
+ \define@key
+ { markdownRenderers }
+ { #1 }
+ {
+ \cs_generate_from_arg_count:NNnn
+ #2
+ \cs_set:Npn
+ { #3 }
+ { ##1 }
+ }
+ }
+\cs_generate_variant:Nn
+ \__markdown_latex_define_renderer:nNn
+ { ncV }
+\ExplSyntaxOff
+\ExplSyntaxOn
+\cs_new:Nn \__markdown_latex_define_renderer_prototypes:
+ {
+ \seq_map_function:NN
+ \g__markdown_renderers_seq
+ \__markdown_latex_define_renderer_prototype:n
+ }
+\cs_new:Nn \__markdown_latex_define_renderer_prototype:n
+ {
+ \tl_set:Nn
+ \l_tmpb_tl
+ { \str_upper_case:n { #1 } }
+ \tl_set:Nx
+ \l_tmpa_tl
+ {
+ markdownRenderer
+ \tl_head:f { \l_tmpb_tl }
+ \tl_tail:n { #1 }
+ Prototype
+ }
+ \prop_get:NnN
+ \g__markdown_renderer_arities_prop
+ { #1 }
+ \l_tmpb_tl
+ \__markdown_latex_define_renderer_prototype:ncV
+ { #1 }
+ { \l_tmpa_tl }
+ \l_tmpb_tl
+ }
+\cs_new:Nn \__markdown_latex_define_renderer_prototype:nNn
+ {
+ \define@key
+ { markdownRendererPrototypes }
+ { #1 }
+ {
+ \cs_generate_from_arg_count:NNnn
+ #2
+ \cs_set:Npn
+ { #3 }
+ { ##1 }
+ }
+ }
+\cs_generate_variant:Nn
+ \__markdown_latex_define_renderer_prototype:nNn
+ { ncV }
+\ExplSyntaxOff
\newcommand\markdownInfo[1]{\PackageInfo{markdown}{#1}}%
\newcommand\markdownWarning[1]{\PackageWarning{markdown}{#1}}%
\newcommand\markdownError[2]{\PackageError{markdown}{#1}{#2.}}%
@@ -530,6 +292,10 @@
\def\markdownVersionSpace{ }%
\ProvidesPackage{markdown}[\markdownLastModified\markdownVersionSpace v%
\markdownVersion\markdownVersionSpace markdown renderer]%
+\ExplSyntaxOn
+\__markdown_latex_define_renderers:
+\__markdown_latex_define_renderer_prototypes:
+\ExplSyntaxOff
\let\markdownInputPlainTeX\markdownInput
\renewcommand\markdownInput[2][]{%
\begingroup
@@ -590,16 +356,11 @@
\define@key{markdownOptions}{rendererPrototypes}{%
\setkeys{markdownRendererPrototypes}{#1}%
\def\KV@prefix{KV@markdownOptions@}}%
+\define@key{markdownOptions}{code}{#1}%
\ifmarkdownLaTeXPlain\else
-\RequirePackage{ifthen}
-
-\ifx\markdownOptionTightLists\undefined
- \@ifclassloaded{beamer}{}{%
- \RequirePackage{paralist}}%
-\else
- \ifthenelse{\equal{\markdownOptionTightLists}{false}}{}{%
- \RequirePackage{paralist}}%
-\fi
+\markdownIfOption{tightLists}{
+ \@ifclassloaded{beamer}{}{\RequirePackage{paralist}}%
+}{}
\@ifpackageloaded{paralist}{
\markdownSetup{rendererPrototypes={
ulBeginTight = {\begin{compactitem}},
@@ -616,7 +377,7 @@
olEndTight = {\markdownRendererOlEnd},
dlBeginTight = {\markdownRendererDlBegin},
dlEndTight = {\markdownRendererDlEnd}}}}
-\RequirePackage{amsmath}
+\RequirePackage{amsmath,ifthen}
\@ifpackageloaded{unicode-math}{
\markdownSetup{rendererPrototypes={
untickedBox = {$\mdlgwhtsquare$},
@@ -1122,70 +883,6 @@
\fi\markdownLaTeXRenderTableCell}
\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:
- }
\keys_define:nn
{ markdown/jekyllData }
{
@@ -1193,64 +890,6 @@
date .code:n = { \date{#1} },
title .code:n = { \title{#1} },
}
-\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:
- }
-\markdownSetup{
- rendererPrototypes = {
- jekyllDataSequenceBegin = {
- \markdown_jekyll_data_push:nN
- { #1 }
- \c__markdown_jekyll_data_sequence_tl
- },
- jekyllDataMappingBegin = {
- \markdown_jekyll_data_push:nN
- { #1 }
- \c__markdown_jekyll_data_mapping_tl
- },
- jekyllDataSequenceEnd = {
- \markdown_jekyll_data_pop:
- },
- jekyllDataMappingEnd = {
- \markdown_jekyll_data_pop:
- },
- jekyllDataBoolean = {
- \markdown_jekyll_data_set_keyvals:nn
- { #1 }
- { #2 }
- },
- jekyllDataEmpty = { },
- jekyllDataNumber = {
- \markdown_jekyll_data_set_keyvals:nn
- { #1 }
- { #2 }
- },
- jekyllDataString = {
- \markdown_jekyll_data_set_keyvals:nn
- { #1 }
- { #2 }
- },
- },
-}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\markdownSetup{
rendererPrototypes = {
@@ -1271,7 +910,6 @@
},
},
}
-
\ExplSyntaxOff
\newcommand\markdownMakeOther{%
\count0=128\relax
diff --git a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_dot.sty b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_dot.sty
index 92e9f8ffd68..fe77cc14fa0 100644
--- a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_dot.sty
+++ b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_dot.sty
@@ -53,7 +53,7 @@
\renewcommand\markdownRendererInputFencedCode[2]{%
\def\next##1 ##2\relax{%
\ifthenelse{\equal{##1}{dot}}{%
- \markdownIfOption{FrozenCache}{}{%
+ \markdownIfOption{frozenCache}{}{%
\immediate\write18{%
if ! test -e #1.pdf.source || ! diff #1 #1.pdf.source;
then
diff --git a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty
index 539d34bc5d6..9717c70a537 100644
--- a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty
+++ b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_graphicx_http.sty
@@ -62,7 +62,7 @@
\global\def\markdownRendererImagePrototype#1#2#3#4{^^A
\begingroup
\edef\filename{\markdown@witiko@graphicx@http@filename}^^A
- \markdownIfOption{FrozenCache}{}{^^A
+ \markdownIfOption{frozenCache}{}{^^A
\immediate\write18{^^A
if printf '%s' "#3" | grep -q -E '^https?:';
then
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown.lua b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
index f3c46b02906..6955982c3f2 100644
--- a/Master/texmf-dist/tex/luatex/markdown/markdown.lua
+++ b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
@@ -58,7 +58,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "2.14.1-0-gb933d81",
+ version = "2.15.0-0-g9296cf1",
comment = "A module for the conversion from markdown to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Novotný",
copyright = {"2009-2016 John MacFarlane, Hans Hagen",
@@ -89,6 +89,7 @@ defaultOptions.contentBlocks = false
defaultOptions.contentBlocksLanguageMap = "markdown-languages.json"
defaultOptions.definitionLists = false
defaultOptions.eagerCache = true
+defaultOptions.expectJekyllData = false
defaultOptions.fencedCode = false
defaultOptions.finalizeCache = false
defaultOptions.footnotes = false
@@ -3477,8 +3478,6 @@ parsers.between = function(p, starter, ender)
end
parsers.urlchar = parsers.anyescaped - parsers.newline - parsers.more
-parsers.Block = V("Block")
-
parsers.OnlineImageURL
= parsers.leader
* parsers.onlineimageurl
@@ -3608,13 +3607,13 @@ function M.reader.new(writer, options)
= create_parser("parse_blocks",
function()
return larsers.blocks
- end, false)
+ end, true)
- local parse_blocks_toplevel
- = create_parser("parse_blocks_toplevel",
+ local parse_blocks_nested
+ = create_parser("parse_blocks_nested",
function()
- return larsers.blocks_toplevel
- end, true)
+ return larsers.blocks_nested
+ end, false)
local parse_inlines
= create_parser("parse_inlines",
@@ -3703,7 +3702,7 @@ function M.reader.new(writer, options)
return writer.defer_call(function()
local found = rawnotes[normalize_tag(ref)]
if found then
- return writer.note(parse_blocks_toplevel(found))
+ return writer.note(parse_blocks_nested(found))
else
return {"[", parse_inlines("^" .. ref), "]"}
end
@@ -4001,7 +4000,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
* parsers.contentblock_tail
/ writer.contentblock
- larsers.DisplayHtml = (parsers.htmlcomment / parse_blocks)
+ larsers.DisplayHtml = (parsers.htmlcomment / parse_blocks_nested)
/ writer.block_html_comment
+ parsers.emptyelt_block / writer.block_html_element
+ parsers.openelt_exact("hr") / writer.block_html_element
@@ -4019,21 +4018,40 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
expandtabs(code))
end
- larsers.JekyllData = P("---")
+ larsers.JekyllData = Cmt( C((parsers.line - P("---") - P("..."))^0)
+ , function(s, i, text)
+ local data
+ local ran_ok, error = pcall(function()
+ local tinyyaml = require("markdown-tinyyaml")
+ data = tinyyaml.parse(text, {timestamps=false})
+ end)
+ if ran_ok and data ~= nil then
+ return true, writer.jekyllData(data, function(s)
+ return parse_blocks_nested(s)
+ end, nil)
+ else
+ return false
+ end
+ end
+ )
+
+ larsers.UnexpectedJekyllData
+ = P("---")
* parsers.blankline / 0
* #(-parsers.blankline) -- if followed by blank, it's an hrule
- * C((parsers.line - P("---") - P("..."))^0)
+ * larsers.JekyllData
* (P("---") + P("..."))
- / function(text)
- local tinyyaml = require("markdown-tinyyaml")
- data = tinyyaml.parse(text,{timestamps=false})
- return writer.jekyllData(data, function(s)
- return parse_blocks(s)
- end, nil)
- end
+
+ larsers.ExpectedJekyllData
+ = ( P("---")
+ * parsers.blankline / 0
+ * #(-parsers.blankline) -- if followed by blank, it's an hrule
+ )^-1
+ * larsers.JekyllData
+ * (P("---") + P("..."))^-1
larsers.Blockquote = Cs(larsers.blockquote_body^1)
- / parse_blocks_toplevel / writer.blockquote
+ / parse_blocks_nested / writer.blockquote
larsers.HorizontalRule = ( parsers.lineof(parsers.asterisk)
+ parsers.lineof(parsers.dash)
@@ -4043,15 +4061,6 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
larsers.Reference = parsers.define_reference_parser / register_link
larsers.Paragraph = parsers.nonindentspace * Ct(parsers.Inline^1)
- * parsers.newline
- * ( parsers.blankline^1
- + #parsers.hash
- + #(parsers.leader * parsers.more * parsers.space^-1)
- )
- / writer.paragraph
-
- larsers.ToplevelParagraph
- = parsers.nonindentspace * Ct(parsers.Inline^1)
* ( parsers.newline
* ( parsers.blankline^1
+ #parsers.hash
@@ -4092,7 +4101,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
larsers.TightListItem = function(starter)
return -larsers.HorizontalRule
* (Cs(starter / "" * larsers.tickbox^-1 * larsers.ListBlock * larsers.NestedList^-1)
- / parse_blocks)
+ / parse_blocks_nested)
* -(parsers.blanklines * parsers.indent)
end
@@ -4101,7 +4110,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
* Cs( starter / "" * larsers.tickbox^-1 * larsers.ListBlock * Cc("\n")
* (larsers.NestedList + larsers.ListContinuationBlock^0)
* (parsers.blanklines / "\n\n")
- ) / parse_blocks
+ ) / parse_blocks_nested
end
larsers.BulletList = ( Ct(larsers.TightListItem(parsers.bullet)^1) * Cc(true)
@@ -4138,12 +4147,12 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
larsers.DefinitionListItemLoose = C(parsers.line) * parsers.skipblanklines
* Ct((parsers.defstart
* parsers.indented_blocks(parsers.dlchunk)
- / parse_blocks_toplevel)^1)
+ / parse_blocks_nested)^1)
* Cc(false) / definition_list_item
larsers.DefinitionListItemTight = C(parsers.line)
* Ct((parsers.defstart * parsers.dlchunk
- / parse_blocks)^1)
+ / parse_blocks_nested)^1)
* Cc(true) / definition_list_item
larsers.DefinitionList = ( Ct(larsers.DefinitionListItemLoose^1) * Cc(false)
@@ -4218,17 +4227,22 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
local syntax =
{ "Blocks",
- Blocks = larsers.Blank^0 * parsers.Block^-1
- * (larsers.Blank^0 / writer.interblocksep
- * parsers.Block)^0
- * larsers.Blank^0 * parsers.eof,
+ Blocks = ( V("ExpectedJekyllData")
+ * (V("Blank")^0 / writer.interblocksep)
+ )^-1
+ * V("Blank")^0
+ * V("Block")^-1
+ * (V("Blank")^0 / writer.interblocksep
+ * V("Block"))^0
+ * V("Blank")^0 * parsers.eof,
Blank = larsers.Blank,
- JekyllData = larsers.JekyllData,
+ UnexpectedJekyllData = larsers.UnexpectedJekyllData,
+ ExpectedJekyllData = larsers.ExpectedJekyllData,
Block = V("ContentBlock")
- + V("JekyllData")
+ + V("UnexpectedJekyllData")
+ V("Blockquote")
+ V("PipeTable")
+ V("Verbatim")
@@ -4357,7 +4371,11 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
end
if not options.jekyllData then
- syntax.JekyllData = parsers.fail
+ syntax.UnexpectedJekyllData = parsers.fail
+ end
+
+ if not options.jekyllData or not options.expectJekyllData then
+ syntax.ExpectedJekyllData = parsers.fail
end
if options.preserveTabs then
@@ -4376,9 +4394,9 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
syntax.AutoLinkRelativeReference = parsers.fail
end
- local blocks_toplevel_t = util.table_copy(syntax)
- blocks_toplevel_t.Paragraph = larsers.ToplevelParagraph
- larsers.blocks_toplevel = Ct(blocks_toplevel_t)
+ local blocks_nested_t = util.table_copy(syntax)
+ blocks_nested_t.ExpectedJekyllData = parsers.fail
+ larsers.blocks_nested = Ct(blocks_nested_t)
larsers.blocks = Ct(syntax)
@@ -4418,7 +4436,7 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
local salt = table.concat(opt_string, ",") .. "," .. metadata.version
local output
local function convert(input)
- local document = parse_blocks_toplevel(input)
+ local document = parse_blocks(input)
return util.rope_to_string(writer.document(document))
end
if options.eagerCache or options.finalizeCache then