From 69c679a19d6d919414bc1268718ab445e225d930 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 3 Apr 2023 21:32:50 +0000 Subject: markdown (3apr23) git-svn-id: svn://tug.org/texlive/trunk@66751 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/markdown/markdown.sty | 161 +++++++++++++++++++--- 1 file changed, 142 insertions(+), 19 deletions(-) (limited to 'Master/texmf-dist/tex/latex/markdown') 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}% @@ -130,6 +138,25 @@ \expandafter\markdownLaTeXThemeLoad\expandafter{ \markdownLaTeXThemePackageName}{#1/} } +\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 } { @@ -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 -- cgit v1.2.3