summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/markdown/markdown.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/markdown/markdown.tex')
-rw-r--r--Master/texmf-dist/tex/generic/markdown/markdown.tex317
1 files changed, 234 insertions, 83 deletions
diff --git a/Master/texmf-dist/tex/generic/markdown/markdown.tex b/Master/texmf-dist/tex/generic/markdown/markdown.tex
index 9c71c07afd1..5d5c9faebb6 100644
--- a/Master/texmf-dist/tex/generic/markdown/markdown.tex
+++ b/Master/texmf-dist/tex/generic/markdown/markdown.tex
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `tex')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný
+%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -51,7 +51,9 @@
\prop_new:N \g__markdown_default_lua_options_prop
\seq_new:N \g__markdown_option_layers_seq
\tl_const:Nn \c__markdown_option_layer_lua_tl { lua }
-\seq_gput_right:NV \g__markdown_option_layers_seq \c__markdown_option_layer_lua_tl
+\seq_gput_right:NV
+ \g__markdown_option_layers_seq
+ \c__markdown_option_layer_lua_tl
\cs_new:Nn
\__markdown_add_lua_option:nnn
{
@@ -128,21 +130,50 @@
\cs_generate_variant:Nn
\msg_error:nnnn
{ nnnV }
-\seq_new:N \g__markdown_option_types_seq
-\tl_const:Nn \c__markdown_option_type_clist_tl { clist }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_clist_tl
-\tl_const:Nn \c__markdown_option_type_counter_tl { counter }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_counter_tl
-\tl_const:Nn \c__markdown_option_type_boolean_tl { boolean }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_boolean_tl
-\tl_const:Nn \c__markdown_option_type_number_tl { number }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_number_tl
-\tl_const:Nn \c__markdown_option_type_path_tl { path }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_path_tl
-\tl_const:Nn \c__markdown_option_type_slice_tl { slice }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_slice_tl
-\tl_const:Nn \c__markdown_option_type_string_tl { string }
-\seq_gput_right:NV \g__markdown_option_types_seq \c__markdown_option_type_string_tl
+\seq_new:N
+ \g__markdown_option_types_seq
+\tl_const:Nn
+ \c__markdown_option_type_clist_tl
+ { clist }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_clist_tl
+\tl_const:Nn
+ \c__markdown_option_type_counter_tl
+ { counter }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_counter_tl
+\tl_const:Nn
+ \c__markdown_option_type_boolean_tl
+ { boolean }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_boolean_tl
+\tl_const:Nn
+ \c__markdown_option_type_number_tl
+ { number }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_number_tl
+\tl_const:Nn
+ \c__markdown_option_type_path_tl
+ { path }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_path_tl
+\tl_const:Nn
+ \c__markdown_option_type_slice_tl
+ { slice }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_slice_tl
+\tl_const:Nn
+ \c__markdown_option_type_string_tl
+ { string }
+\seq_gput_right:NV
+ \g__markdown_option_types_seq
+ \c__markdown_option_type_string_tl
\cs_new:Nn
\__markdown_get_option_type:nN
{
@@ -323,7 +354,7 @@
\__markdown_add_lua_option:nnn
{ eagerCache }
{ boolean }
- { false }
+ { true }
\__markdown_add_lua_option:nnn
{ singletonCache }
{ boolean }
@@ -413,6 +444,10 @@
{ boolean }
{ false }
\__markdown_add_lua_option:nnn
+ { ensureJekyllData }
+ { boolean }
+ { false }
+\__markdown_add_lua_option:nnn
{ expectJekyllData }
{ boolean }
{ false }
@@ -580,8 +615,8 @@
{ boolean }
{ true }
\ExplSyntaxOff
-\def\markdownLastModified{2024-06-20}%
-\def\markdownVersion{3.6.1-0-g5a45a922}%
+\def\markdownLastModified{2024-08-30}%
+\def\markdownVersion{3.7.0-0-g98dece19}%
\let\markdownBegin\relax
\let\markdownEnd\relax
\let\markinline\relax
@@ -602,7 +637,9 @@
\seq_new:N \g__markdown_plain_tex_options_seq
\prop_new:N \g__markdown_plain_tex_option_types_prop
\prop_new:N \g__markdown_default_plain_tex_options_prop
-\seq_gput_right:NV \g__markdown_option_layers_seq \c__markdown_option_layer_plain_tex_tl
+\seq_gput_right:NV
+ \g__markdown_option_layers_seq
+ \c__markdown_option_layer_plain_tex_tl
\cs_new:Nn
\__markdown_add_plain_tex_option:nnn
{
@@ -664,38 +701,10 @@
{ inputTempFileName }
{ path }
{ \jobname.markdown.in }
-\cs_generate_variant:Nn
- \__markdown_add_plain_tex_option:nnn
- { nnV }
-\ExplSyntaxOff
-\input lt3luabridge.tex
-\ExplSyntaxOn
-\bool_if:nTF
- {
- \cs_if_exist_p:N
- \luabridge_tl_set:Nn &&
- (
- \int_compare_p:nNn
- { \g_luabridge_method_int }
- =
- { \c_luabridge_method_directlua_int } ||
- \sys_if_shell_unrestricted_p:
- )
- }
- {
- \luabridge_tl_set:Nn
- \l_tmpa_tl
- { print(os.getenv("TEXMF_OUTPUT_DIRECTORY") or ".") }
- }
- {
- \tl_set:Nn
- \l_tmpa_tl
- { . }
- }
-\__markdown_add_plain_tex_option:nnV
+\__markdown_add_plain_tex_option:nnn
{ outputDir }
{ path }
- \l_tmpa_tl
+ { . }
\__markdown_add_plain_tex_option:nnn
{ plain }
{ boolean }
@@ -740,18 +749,60 @@
\cs_new:Nn
\__markdown_define_option_command:n
{
- \__markdown_option_tl_to_csname:nN
+ \str_if_eq:nnTF
{ #1 }
- \l_tmpa_tl
- \cs_if_exist:cF
- { \l_tmpa_tl }
+ { outputDir }
+ { \__markdown_define_option_command_output_dir: }
{
- \__markdown_get_default_option_value:nN
- { #1 }
- \l_tmpa_tl
- \__markdown_set_option_value:nV
+ \__markdown_option_tl_to_csname:nN
{ #1 }
\l_tmpa_tl
+ \cs_if_exist:cF
+ { \l_tmpa_tl }
+ {
+ \__markdown_get_default_option_value:nN
+ { #1 }
+ \l_tmpa_tl
+ \__markdown_set_option_value:nV
+ { #1 }
+ \l_tmpa_tl
+ }
+ }
+ }
+\ExplSyntaxOff
+\input lt3luabridge.tex
+\ExplSyntaxOn
+\cs_new:Nn
+ \__markdown_define_option_command_output_dir:
+ {
+ \cs_if_free:NT
+ \markdownOptionOutputDir
+ {
+ \bool_if:nTF
+ {
+ \cs_if_exist_p:N
+ \luabridge_tl_set:Nn &&
+ (
+ \int_compare_p:nNn
+ { \g_luabridge_method_int }
+ =
+ { \c_luabridge_method_directlua_int } ||
+ \sys_if_shell_unrestricted_p:
+ )
+ }
+ {
+ \luabridge_tl_set:Nn
+ \l_tmpa_tl
+ { print(os.getenv("TEXMF_OUTPUT_DIRECTORY") or ".") }
+ \tl_gset:NV
+ \markdownOptionOutputDir
+ \l_tmpa_tl
+ }
+ {
+ \tl_gset:Nn
+ \markdownOptionOutputDir
+ { . }
+ }
}
}
\cs_new:Nn
@@ -1044,10 +1095,14 @@
{ redefined-snippet }
\l_tmpa_tl
}
- \prop_gput:NVn
+ \keys_precompile:nnN
+ { markdown/options }
+ { #2 }
+ \l_tmpb_tl
+ \prop_gput:NVV
\g__markdown_snippets_prop
\l_tmpa_tl
- { #2 }
+ \l_tmpb_tl
}
\cs_gset_eq:NN
\markdownSetupSnippet
@@ -1098,7 +1153,7 @@
\g__markdown_snippets_prop
\l_tmpa_tl
\l_tmpb_tl
- \__markdown_setup:V
+ \tl_use:N
\l_tmpb_tl
}
{
@@ -1113,9 +1168,6 @@
{ markdown }
{ undefined-snippet }
{ Can't~invoke~undefined~snippet~#1 }
-\cs_generate_variant:Nn
- \__markdown_setup:n
- { V }
\tl_new:N
\l__markdown_import_current_theme_tl
\keys_define:nn
@@ -2370,6 +2422,26 @@
{ untickedBox }
{ 0 }
\ExplSyntaxOff
+\def\markdownRendererWarning{%
+ \markdownRendererWarningPrototype}%
+\def\markdownRendererError{%
+ \markdownRendererErrorPrototype}%
+\ExplSyntaxOn
+\seq_gput_right:Nn
+ \g__markdown_renderers_seq
+ { warning }
+\prop_gput:Nnn
+ \g__markdown_renderer_arities_prop
+ { warning }
+ { 1 }
+\seq_gput_right:Nn
+ \g__markdown_renderers_seq
+ { error }
+\prop_gput:Nnn
+ \g__markdown_renderer_arities_prop
+ { error }
+ { 1 }
+\ExplSyntaxOff
\def\markdownRendererJekyllDataBegin{%
\markdownRendererJekyllDataBeginPrototype}%
\ExplSyntaxOn
@@ -2458,11 +2530,57 @@
{ jekyllDataNumber }
{ 2 }
\ExplSyntaxOff
-\def\markdownRendererJekyllDataString{%
- \markdownRendererJekyllDataStringPrototype}%
+\def\markdownRendererJekyllDataTypographicString{%
+ \markdownRendererJekyllDataTypographicStringPrototype}%
+\def\markdownRendererJekyllDataProgrammaticString{%
+ \markdownRendererJekyllDataProgrammaticStringPrototype}%
\ExplSyntaxOn
\seq_gput_right:Nn
\g__markdown_renderers_seq
+ { jekyllDataTypographicString }
+\prop_gput:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataTypographicString }
+ { 2 }
+\seq_gput_right:Nn
+ \g__markdown_renderers_seq
+ { jekyllDataProgrammaticString }
+\prop_gput:Nnn
+ \g__markdown_renderer_arities_prop
+ { jekyllDataProgrammaticString }
+ { 2 }
+\cs_gset:Npn
+ \markdownRendererJekyllDataTypographicString
+ {
+ \cs_if_exist:NTF
+ \markdownRendererJekyllDataString
+ {
+ \markdownWarning
+ {
+ The~jekyllDataString~renderer~has~been~deprecated,~
+ to~be~removed~in~Markdown~4.0.0
+ }
+ \markdownRendererJekyllDataString
+ }
+ {
+ \cs_if_exist:NTF
+ \markdownRendererJekyllDataStringPrototype
+ {
+ \markdownWarning
+ {
+ The~jekyllDataString~renderer~prototype~
+ has~been~deprecated,~
+ to~be~removed~in~Markdown~4.0.0
+ }
+ \markdownRendererJekyllDataStringPrototype
+ }
+ {
+ \markdownRendererJekyllDataTypographicStringPrototype
+ }
+ }
+ }
+\seq_gput_right:Nn
+ \g__markdown_renderers_seq
{ jekyllDataString }
\prop_gput:Nnn
\g__markdown_renderer_arities_prop
@@ -2481,9 +2599,17 @@
{ 1 }
\cs_new:Nn \__markdown_define_renderers:
{
- \seq_map_function:NN
+ \seq_map_inline:Nn
\g__markdown_renderers_seq
- \__markdown_define_renderer:n
+ {
+ \str_if_eq:nnF
+ { ##1 }
+ { jekyllDataString }
+ {
+ \__markdown_define_renderer:n
+ { ##1 }
+ }
+ }
}
\cs_new:Nn \__markdown_define_renderer:n
{
@@ -2804,9 +2930,17 @@
{ nV }
\cs_new:Nn \__markdown_define_renderer_prototypes:
{
- \seq_map_function:NN
+ \seq_map_inline:Nn
\g__markdown_renderers_seq
- \__markdown_define_renderer_prototype:n
+ {
+ \str_if_eq:nnF
+ { ##1 }
+ { jekyllDataString }
+ {
+ \__markdown_define_renderer_prototype:n
+ { ##1 }
+ }
+ }
}
\cs_new:Nn \__markdown_define_renderer_prototype:n
{
@@ -3319,6 +3453,9 @@
}
}
}
+ \str_gset:NV
+ \g_luabridge_output_dirname_str
+ \markdownOptionOutputDir
\luabridge_now:e
{ #1 }
}
@@ -3405,29 +3542,42 @@
\msg_new:nnn
{ markdown }
{ buffering-markinline }
- { Buffering~inline~markdown~input~into~the~temporary~input~file~"#1". }
+ { Buffering~inline~markdown~input~into~
+ the~temporary~input~file~"#1". }
\msg_new:nnnn
{ markdown }
{ markinline-peek-failure }
{ Use~of~\iow_char:N \\ markinline~doesn't~match~its~definition }
- { The~macro~should~be~followed~by~inline~markdown~text~in~curly~braces }
+ { The~macro~should~be~followed~by~inline~
+ markdown~text~in~curly~braces }
\cs_new:Npn
\markdownInput
#1
{
- \file_get_full_name:nNTF
- { #1 }
- \l_tmpa_tl
+ \__markdown_if_option:nTF
+ { frozenCache }
{
- \exp_args:NV
- \markdownInputRaw
- \l_tmpa_tl
+ \markdownInputRaw
+ { #1 }
}
{
- \msg_error:nnnV
- { markdown }
- { markdown-file-does-not-exist }
+ \tl_set:Nx
+ \l_tmpa_tl
{ #1 }
+ \file_get_full_name:VNTF
+ \l_tmpa_tl
+ \l_tmpb_tl
+ {
+ \exp_args:NV
+ \markdownInputRaw
+ \l_tmpb_tl
+ }
+ {
+ \msg_error:nnV
+ { markdown }
+ { markdown-file-does-not-exist }
+ \l_tmpa_tl
+ }
}
}
\msg_new:nnn
@@ -3453,7 +3603,8 @@
|fi
|markdownInfo{Including markdown document number
"|the|markdownOptionFrozenCacheCounter" from frozen cache}%
- |csname markdownFrozenCache|the|markdownOptionFrozenCacheCounter|endcsname
+ |csname markdownFrozenCache%
+ |the|markdownOptionFrozenCacheCounter|endcsname
|global|advance|markdownOptionFrozenCacheCounter by 1|relax
}{%
|markdownInfo{Including markdown document "&1"}%