diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/markdown/markdown.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/markdown/markdown.sty | 161 |
1 files changed, 142 insertions, 19 deletions
diff --git a/Master/texmf-dist/tex/latex/markdown/markdown.sty b/Master/texmf-dist/tex/latex/markdown/markdown.sty index 546f5e4215f..c887db1c16a 100644 --- a/Master/texmf-dist/tex/latex/markdown/markdown.sty +++ b/Master/texmf-dist/tex/latex/markdown/markdown.sty @@ -59,19 +59,27 @@ } \let\markdownSetup=\__markdown_setup:n \ExplSyntaxOff -\newcommand\markdownSetupSnippet[2]{% - \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 - }}% +\ExplSyntaxOn +\cs_new:Nn + \__markdown_latex_setup_snippet:nn + { + \markdownIfSnippetExists + { #1 } + { + \markdownWarning + {Redefined~snippet~\markdownLaTeXThemeName#1} + \csname markdownLaTeXSetupSnippet% + \markdownLaTeXThemeName#1\endcsname={#2} + } + { + \newtoks\next + \next={#2} + \expandafter\let\csname markdownLaTeXSetupSnippet% + \markdownLaTeXThemeName#1\endcsname=\next + } + } +\let\markdownSetupSnippet=\__markdown_latex_setup_snippet:nn +\ExplSyntaxOff \newcommand\markdownIfSnippetExists[3]{% \@ifundefined {markdownLaTeXSetupSnippet\markdownLaTeXThemeName#1}% @@ -133,6 +141,25 @@ \keys_define:nn { markdown/latex-options } { + import .code:n = { + \tl_set:Nn + \l_tmpa_tl + { #1 } + \tl_replace_all:NnV + \l_tmpa_tl + { / } + \c_backslash_str + \keys_set:nV + { markdown/latex-options/import } + \l_tmpa_tl + }, + } +\cs_generate_variant:Nn + \tl_replace_all:Nnn + { NnV } +\keys_define:nn + { markdown/latex-options } + { theme .code:n = { \__markdown_set_latex_theme:n { #1 } }, } \ExplSyntaxOff @@ -159,6 +186,71 @@ } \ExplSyntaxOff \ExplSyntaxOn +\tl_new:N + \l__markdown_latex_import_current_theme_tl +\keys_define:nn + { markdown/latex-options/import } + { + unknown .default:n = {}, + unknown .code:n = { + \tl_set_eq:NN + \l__markdown_latex_import_current_theme_tl + \l_keys_key_str + \tl_replace_all:NVn + \l__markdown_latex_import_current_theme_tl + \c_backslash_str + { / } + \__markdown_set_latex_theme:V + \l__markdown_latex_import_current_theme_tl + \clist_map_inline:nn + { #1 } + { + \regex_extract_once:nnNTF + { ^(.*?)\s+as\s+(.*?)$ } + { ##1 } + \l_tmpa_seq + { + \seq_pop:NN + \l_tmpa_seq + \l_tmpa_tl + \seq_pop:NN + \l_tmpa_seq + \l_tmpa_tl + \seq_pop:NN + \l_tmpa_seq + \l_tmpb_tl + } + { + \tl_set:Nn + \l_tmpa_tl + { ##1 } + \tl_set:Nn + \l_tmpb_tl + { ##1 } + } + \tl_put_left:Nn + \l_tmpa_tl + { / } + \tl_put_left:NV + \l_tmpa_tl + \l__markdown_latex_import_current_theme_tl + \__markdown_latex_setup_snippet:Vx + \l_tmpb_tl + { snippet = { \l_tmpa_tl } } + } + }, + } +\cs_generate_variant:Nn + \tl_replace_all:Nnn + { NVn } +\cs_generate_variant:Nn + \__markdown_set_latex_theme:n + { V } +\cs_generate_variant:Nn + \__markdown_latex_setup_snippet:nn + { Vx } +\ExplSyntaxOff +\ExplSyntaxOn \cs_new:Nn \__markdown_latex_define_option_commands_and_keyvals: { \seq_map_inline:Nn @@ -513,12 +605,6 @@ \cs_generate_variant:Nn \keys_define:nn { nV } -\cs_generate_variant:Nn - \tl_replace_all:Nnn - { NVn } -\cs_generate_variant:Nn - \tl_replace_all:Nnn - { NnV } \ExplSyntaxOff \markdownIfOption{plain}{\iffalse}{\iftrue} \@ifclassloaded{beamer}{}{% @@ -1293,6 +1379,43 @@ } } }{} +\markdownIfOption{strikeThrough}{% + \RequirePackage{soulutf8}% + \markdownSetup{ + rendererPrototypes = { + strikeThrough = {% + \st{#1}% + }, + } + } +}{} +\ExplSyntaxOn +\__markdown_if_option:nTF + { linkAttributes } + { + \RequirePackage{graphicx} + \markdownSetup{ + rendererPrototypes = { + imageAttributeContextBegin = { + \group_begin: + \markdownSetup{ + rendererPrototypes = { + attributeKeyValue = { + \setkeys + { Gin } + { { ##1 } = { ##2 } } + }, + }, + } + }, + imageAttributeContextEnd = { + \group_end: + }, + }, + } + } + { } +\ExplSyntaxOff \ExplSyntaxOn \cs_gset:Npn \markdownRendererInputRawInlinePrototype#1#2 |