%% %% This is file `markdown.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% markdown.dtx (with options: `latex') %% %% Copyright (C) 2016-2021 Vít Novotný %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% %% http://www.latex-project.org/lppl.txt %% %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% The Current Maintainer of this work is Vít Novotný. %% %% Send bug reports, requests for additions and questions %% either to the GitHub issue tracker at %% %% https://github.com/Witiko/markdown/issues %% %% or to the e-mail address . %% %% MODIFICATION ADVICE: %% %% If you want to customize this file, it is best to make a copy of %% the source file(s) from which it was produced. Use a different %% name for your copy(ies) and modify the copy(ies); this will ensure %% that your modifications do not get overwritten when you install a %% new release of the standard system. You should also ensure that %% your modified source file does not generate any modified file with %% the same name as a standard file. %% %% You will also need to produce your own, suitably named, .ins file to %% control the generation of files from your source file; this file %% should contain your own preambles for the files it generates, not %% those in the standard .ins files. %% %% The names of the source files used are shown above. %% \RequirePackage{keyval} \RequirePackage{xstring} \RequirePackage{expl3} \newenvironment{markdown}\relax\relax \newenvironment{markdown*}[1]\relax\relax \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 }{% \markdownWarning {Redefined setup snippet \markdownLaTeXThemeName#1}% \csname markdownLaTeXSetupSnippet% \markdownLaTeXThemeName#1\endcsname={#2}% }}% \newif\ifmarkdownLaTeXPlain \markdownLaTeXPlainfalse \define@key{markdownOptions}{plain}[true]{% \ifmarkdownLaTeXLoaded \markdownWarning {The plain option must be specified when loading the package}% \else \markdownLaTeXPlaintrue \fi} \newif\ifmarkdownLaTeXLoaded \markdownLaTeXLoadedfalse \AtEndOfPackage{\markdownLaTeXLoadedtrue} \define@key{markdownOptions}{theme}{% \IfSubStr{#1}{/}{}{% \markdownError {Won't load theme with unqualified name #1}% {Theme names must contain at least one forward slash}}% \StrSubstitute{#1}{/}{_}[\markdownLaTeXThemePackageName]% \edef\markdownLaTeXThemePackageName{% markdowntheme\markdownLaTeXThemePackageName}% \expandafter\markdownLaTeXThemeLoad\expandafter{% \markdownLaTeXThemePackageName}{#1/}}% \@onlypreamble\KV@markdownOptions@theme \define@key{markdownOptions}{snippet}{% \@ifundefined {markdownLaTeXSetupSnippet#1}{% \markdownError {Can't invoke setup snippet #1}% {The setup snippet is undefined}% }{% \expandafter\markdownSetup\expandafter{% \the\csname markdownLaTeXSetupSnippet#1\endcsname}% }% }% \define@key{markdownOptions}{helperScriptFileName}{% \def\markdownOptionHelperScriptFileName{#1}}% \define@key{markdownOptions}{inputTempFileName}{% \def\markdownOptionInputTempFileName{#1}}% \define@key{markdownOptions}{outputTempFileName}{% \def\markdownOptionOutputTempFileName{#1}}% \define@key{markdownOptions}{errorTempFileName}{% \def\markdownOptionErrorTempFileName{#1}}% \define@key{markdownOptions}{cacheDir}{% \def\markdownOptionCacheDir{#1}}% \define@key{markdownOptions}{outputDir}{% \def\markdownOptionOutputDir{#1}}% \define@key{markdownOptions}{blankBeforeBlockquote}[true]{% \def\markdownOptionBlankBeforeBlockquote{#1}}% \define@key{markdownOptions}{blankBeforeCodeFence}[true]{% \def\markdownOptionBlankBeforeCodeFence{#1}}% \define@key{markdownOptions}{blankBeforeHeading}[true]{% \def\markdownOptionBlankBeforeHeading{#1}}% \define@key{markdownOptions}{breakableBlockquotes}[true]{% \def\markdownOptionBreakableBlockquotes{#1}}% \define@key{markdownOptions}{citations}[true]{% \def\markdownOptionCitations{#1}}% \define@key{markdownOptions}{citationNbsps}[true]{% \def\markdownOptionCitationNbsps{#1}}% \define@key{markdownOptions}{contentBlocks}[true]{% \def\markdownOptionContentBlocks{#1}}% \define@key{markdownOptions}{codeSpans}[true]{% \def\markdownOptionCodeSpans{#1}}% \define@key{markdownOptions}{contentBlocksLanguageMap}{% \def\markdownOptionContentBlocksLanguageMap{#1}}% \define@key{markdownOptions}{definitionLists}[true]{% \def\markdownOptionDefinitionLists{#1}}% \define@key{markdownOptions}{eagerCache}[true]{% \def\markdownOptionEagerCache{#1}}% \define@key{markdownOptions}{footnotes}[true]{% \def\markdownOptionFootnotes{#1}}% \define@key{markdownOptions}{fencedCode}[true]{% \def\markdownOptionFencedCode{#1}}% \define@key{markdownOptions}{jekyllData}[true]{% \def\markdownOptionJekyllData{#1}}% \define@key{markdownOptions}{hardLineBreaks}[true]{% \def\markdownOptionHardLineBreaks{#1}}% \define@key{markdownOptions}{hashEnumerators}[true]{% \def\markdownOptionHashEnumerators{#1}}% \define@key{markdownOptions}{headerAttributes}[true]{% \def\markdownOptionHeaderAttributes{#1}}% \define@key{markdownOptions}{html}[true]{% \def\markdownOptionHtml{#1}}% \define@key{markdownOptions}{hybrid}[true]{% \def\markdownOptionHybrid{#1}}% \define@key{markdownOptions}{inlineFootnotes}[true]{% \def\markdownOptionInlineFootnotes{#1}}% \define@key{markdownOptions}{pipeTables}[true]{% \def\markdownOptionPipeTables{#1}}% \define@key{markdownOptions}{preserveTabs}[true]{% \def\markdownOptionPreserveTabs{#1}}% \define@key{markdownOptions}{relativeReferences}[true]{% \def\markdownOptionRelativeReferences{#1}}% \define@key{markdownOptions}{smartEllipses}[true]{% \def\markdownOptionSmartEllipses{#1}}% \define@key{markdownOptions}{shiftHeadings}{% \def\markdownOptionShiftHeadings{#1}}% \define@key{markdownOptions}{slice}{% \def\markdownOptionSlice{#1}}% \define@key{markdownOptions}{startNumber}[true]{% \def\markdownOptionStartNumber{#1}}% \define@key{markdownOptions}{stripIndent}[true]{% \def\markdownOptionStripIndent{#1}}% \define@key{markdownOptions}{tableCaptions}[true]{% \def\markdownOptionTableCaptions{#1}}% \define@key{markdownOptions}{taskLists}[true]{% \def\markdownOptionTaskLists{#1}}% \define@key{markdownOptions}{texComments}[true]{% \def\markdownOptionTeXComments{#1}}% \define@key{markdownOptions}{tightLists}[true]{% \def\markdownOptionTightLists{#1}}% \define@key{markdownOptions}{underscores}[true]{% \def\markdownOptionUnderscores{#1}}% \define@key{markdownOptions}{stripPercentSigns}[true]{% \def\markdownOptionStripPercentSigns{#1}}% \define@key{markdownOptions}{finalizeCache}[true]{% \def\markdownOptionFinalizeCache{#1}}% \DeclareOption{finalizecache}{\markdownSetup{finalizeCache}} \define@key{markdownOptions}{frozenCache}[true]{% \def\markdownOptionFrozenCache{#1}}% \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}}% \newcommand\markdownInfo[1]{\PackageInfo{markdown}{#1}}% \newcommand\markdownWarning[1]{\PackageWarning{markdown}{#1}}% \newcommand\markdownError[2]{\PackageError{markdown}{#1}{#2.}}% \input markdown/markdown \def\markdownVersionSpace{ }% \ProvidesPackage{markdown}[\markdownLastModified\markdownVersionSpace v% \markdownVersion\markdownVersionSpace markdown renderer]% \let\markdownInputPlainTeX\markdownInput \renewcommand\markdownInput[2][]{% \begingroup \markdownSetup{#1}% \markdownInputPlainTeX{#2}% \endgroup}% \renewenvironment{markdown}{% \markdownReadAndConvert@markdown{}}{% \markdownEnd}% \renewenvironment{markdown*}[1]{% \markdownSetup{#1}% \markdownReadAndConvert@markdown*}{% \markdownEnd}% \begingroup \catcode`\|=0\catcode`\<=1\catcode`\>=2% \catcode`\\=12|catcode`|{=12|catcode`|}=12% |gdef|markdownReadAndConvert@markdown#1<% |markdownReadAndConvert<\end{markdown#1}>% <|end>>% |endgroup \ExplSyntaxOn \newcommand\markdownLaTeXThemeName{} \seq_new:N \g__markdown_latex_themes_seq \seq_put_right:NV \g__markdown_latex_themes_seq \markdownLaTeXThemeName \newcommand\markdownLaTeXThemeLoad[2]{ \def\@tempa{% \def\markdownLaTeXThemeName{#2} \seq_put_right:NV \g__markdown_latex_themes_seq \markdownLaTeXThemeName \RequirePackage{#1} \seq_pop_right:NN \g__markdown_latex_themes_seq \l_tmpa_tl \seq_get_right:NN \g__markdown_latex_themes_seq \l_tmpa_tl \exp_args:NNV \def \markdownLaTeXThemeName \l_tmpa_tl} \ifmarkdownLaTeXLoaded \@tempa \else \exp_args:No \AtEndOfPackage { \@tempa } \fi} \ExplSyntaxOff \DeclareOption*{% \expandafter\markdownSetup\expandafter{\CurrentOption}}% \ProcessOptions\relax \define@key{markdownOptions}{renderers}{% \setkeys{markdownRenderers}{#1}% \def\KV@prefix{KV@markdownOptions@}}% \define@key{markdownOptions}{rendererPrototypes}{% \setkeys{markdownRendererPrototypes}{#1}% \def\KV@prefix{KV@markdownOptions@}}% \ifmarkdownLaTeXPlain\else \RequirePackage{ifthen} \ifx\markdownOptionTightLists\undefined \@ifclassloaded{beamer}{}{% \RequirePackage{paralist}}% \else \ifthenelse{\equal{\markdownOptionTightLists}{false}}{}{% \RequirePackage{paralist}}% \fi \@ifpackageloaded{paralist}{ \markdownSetup{rendererPrototypes={ ulBeginTight = {\begin{compactitem}}, ulEndTight = {\end{compactitem}}, olBeginTight = {\begin{compactenum}}, olEndTight = {\end{compactenum}}, dlBeginTight = {\begin{compactdesc}}, dlEndTight = {\end{compactdesc}}}} }{ \markdownSetup{rendererPrototypes={ ulBeginTight = {\markdownRendererUlBegin}, ulEndTight = {\markdownRendererUlEnd}, olBeginTight = {\markdownRendererOlBegin}, olEndTight = {\markdownRendererOlEnd}, dlBeginTight = {\markdownRendererDlBegin}, dlEndTight = {\markdownRendererDlEnd}}}} \RequirePackage{amsmath} \@ifpackageloaded{unicode-math}{ \markdownSetup{rendererPrototypes={ untickedBox = {$\mdlgwhtsquare$}, }} }{ \RequirePackage{amssymb} \markdownSetup{rendererPrototypes={ untickedBox = {$\square$}, }} } \RequirePackage{csvsimple} \RequirePackage{fancyvrb} \RequirePackage{graphicx} \markdownSetup{rendererPrototypes={ lineBreak = {\\}, leftBrace = {\textbraceleft}, rightBrace = {\textbraceright}, dollarSign = {\textdollar}, underscore = {\textunderscore}, circumflex = {\textasciicircum}, backslash = {\textbackslash}, tilde = {\textasciitilde}, pipe = {\textbar}, codeSpan = {% \ifmmode \text{#1}% \else \texttt{#1}% \fi }, contentBlock = {% \ifthenelse{\equal{#1}{csv}}{% \begin{table}% \begin{center}% \csvautotabular{#3}% \end{center} \ifx\empty#4\empty\else \caption{#4}% \fi \end{table}% }{% \ifthenelse{\equal{#1}{tex}}{% \catcode`\%=14\relax \input #3\relax \catcode`\%=12\relax }{% \markdownInput{#3}% }% }% }, image = {% \begin{figure}% \begin{center}% \includegraphics{#3}% \end{center}% \ifx\empty#4\empty\else \caption{#4}% \fi \end{figure}}, ulBegin = {\begin{itemize}}, ulEnd = {\end{itemize}}, olBegin = {\begin{enumerate}}, olItem = {\item{}}, olItemWithNumber = {\item[#1.]}, olEnd = {\end{enumerate}}, dlBegin = {\begin{description}}, dlItem = {\item[#1]}, dlEnd = {\end{description}}, emphasis = {\emph{#1}}, tickedBox = {$\boxtimes$}, halfTickedBox = {$\boxdot$}, headerAttributeContextBegin = { \markdownSetup{ rendererPrototypes = { attributeIdentifier = {% \begingroup \def\next####1{% \def####1########1{% \endgroup ####1{########1}% \label{##1}% }% }% \next\markdownRendererHeadingOne \next\markdownRendererHeadingTwo \next\markdownRendererHeadingThree \next\markdownRendererHeadingFour \next\markdownRendererHeadingFive \next\markdownRendererHeadingSix }, }, }% }, blockQuoteBegin = {\begin{quotation}}, blockQuoteEnd = {\end{quotation}}, inputVerbatim = {\VerbatimInput{#1}}, inputFencedCode = {% \ifx\relax#2\relax \VerbatimInput{#1}% \else \@ifundefined{minted@code}{% \@ifundefined{lst@version}{% \markdownRendererInputFencedCode{#1}{}% }{% \lstinputlisting[language=#2]{#1}% }% }{% \inputminted{#2}{#1}% }% \fi}, horizontalRule = {\noindent\rule[0.5ex]{\linewidth}{1pt}}, footnote = {\footnote{#1}}}} \def\markdownLATEXStrongEmphasis#1{% \IfSubStr\f@series{b}{\textnormal{#1}}{\textbf{#1}}} \markdownSetup{rendererPrototypes={strongEmphasis={% \protect\markdownLATEXStrongEmphasis{#1}}}} \@ifundefined{chapter}{% \markdownSetup{rendererPrototypes = { headingOne = {\section{#1}}, headingTwo = {\subsection{#1}}, headingThree = {\subsubsection{#1}}, headingFour = {\paragraph{#1}\leavevmode}, headingFive = {\subparagraph{#1}\leavevmode}}} }{% \markdownSetup{rendererPrototypes = { headingOne = {\chapter{#1}}, headingTwo = {\section{#1}}, headingThree = {\subsection{#1}}, headingFour = {\subsubsection{#1}}, headingFive = {\paragraph{#1}\leavevmode}, headingSix = {\subparagraph{#1}\leavevmode}}} }% \markdownSetup{ rendererPrototypes = { ulItem = {% \futurelet\markdownLaTeXCheckbox\markdownLaTeXUlItem }, }, } \def\markdownLaTeXUlItem{% \ifx\markdownLaTeXCheckbox\markdownRendererTickedBox \item[\markdownLaTeXCheckbox]% \expandafter\@gobble \else \ifx\markdownLaTeXCheckbox\markdownRendererHalfTickedBox \item[\markdownLaTeXCheckbox]% \expandafter\expandafter\expandafter\@gobble \else \ifx\markdownLaTeXCheckbox\markdownRendererUntickedBox \item[\markdownLaTeXCheckbox]% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\@gobble \else \item{}% \fi \fi \fi } \@ifundefined{HCode}{}{ \markdownSetup{ rendererPrototypes = { inlineHtmlTag = {% \ifvmode \IgnorePar \EndP \fi \HCode{#1}% }, inputBlockHtmlElement = {% \ifvmode \IgnorePar \fi \EndP \special{t4ht*<#1}% \par \ShowPar }, }, } } \newcount\markdownLaTeXCitationsCounter \RequirePackage{gobble} \def\markdownLaTeXBasicCitations#1#2#3#4#5#6{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#4\relax \ifx\relax#5\relax \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \cite{#1#2#6}% Without prenotes and postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobblethree \fi \else% Before a postnote (#5), dump the accumulator \ifx\relax#1\relax\else \cite{#1}% \fi \cite[#5]{#6}% \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \markdownLaTeXBasicCitations \fi \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter \@gobblethree \fi \else% Before a prenote (#4), dump the accumulator \ifx\relax#1\relax\else \cite{#1}% \fi \ifnum\markdownLaTeXCitationsCounter>1\relax \space % Insert a space before the prenote in later citations \fi #4~\expandafter\cite\ifx\relax#5\relax{#6}\else[#5]{#6}\fi \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \markdownLaTeXBasicCitations \fi \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter \@gobblethree \fi\markdownLaTeXBasicCitations{#1#2#6},} \let\markdownLaTeXBasicTextCitations\markdownLaTeXBasicCitations \def\markdownLaTeXNatbibCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#3\relax \ifx\relax#4\relax \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \citep{#1,#5}% Without prenotes and postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobbletwo \fi \else% Before a postnote (#4), dump the accumulator \ifx\relax#1\relax\else \citep{#1}% \fi \citep[][#4]{#5}% \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \markdownLaTeXNatbibCitations \fi \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter \@gobbletwo \fi \else% Before a prenote (#3), dump the accumulator \ifx\relax#1\relax\relax\else \citep{#1}% \fi \citep[#3][#4]{#5}% \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \markdownLaTeXNatbibCitations \fi \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter \@gobbletwo \fi\markdownLaTeXNatbibCitations{#1,#5}} \def\markdownLaTeXNatbibTextCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#3\relax \ifx\relax#4\relax \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \citet{#1,#5}% Without prenotes and postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobbletwo \fi \else% After a prenote or a postnote, dump the accumulator \ifx\relax#1\relax\else \citet{#1}% \fi , \citet[#3][#4]{#5}% \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal\relax , \else \ifnum\markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal\relax , \fi \fi \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \markdownLaTeXNatbibTextCitations \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter \@gobbletwo \fi \else% After a prenote or a postnote, dump the accumulator \ifx\relax#1\relax\relax\else \citet{#1}% \fi , \citet[#3][#4]{#5}% \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal\relax , \else \ifnum\markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal\relax , \fi \fi \expandafter\expandafter\expandafter \markdownLaTeXNatbibTextCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter \@gobbletwo \fi\markdownLaTeXNatbibTextCitations{#1,#5}} \def\markdownLaTeXBibLaTeXCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \autocites#1[#3][#4]{#5}% \expandafter\@gobbletwo \fi\markdownLaTeXBibLaTeXCitations{#1[#3][#4]{#5}}} \def\markdownLaTeXBibLaTeXTextCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax \textcites#1[#3][#4]{#5}% \expandafter\@gobbletwo \fi\markdownLaTeXBibLaTeXTextCitations{#1[#3][#4]{#5}}} \markdownSetup{rendererPrototypes = { cite = {% \markdownLaTeXCitationsCounter=1% \def\markdownLaTeXCitationsTotal{#1}% \@ifundefined{autocites}{% \@ifundefined{citep}{% \expandafter\expandafter\expandafter \markdownLaTeXBasicCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% }{% \expandafter\expandafter\expandafter \markdownLaTeXNatbibCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% }% }{% \expandafter\expandafter\expandafter \markdownLaTeXBibLaTeXCitations \expandafter{\expandafter}% }}, textCite = {% \markdownLaTeXCitationsCounter=1% \def\markdownLaTeXCitationsTotal{#1}% \@ifundefined{autocites}{% \@ifundefined{citep}{% \expandafter\expandafter\expandafter \markdownLaTeXBasicTextCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% }{% \expandafter\expandafter\expandafter \markdownLaTeXNatbibTextCitations \expandafter\expandafter\expandafter{% \expandafter\expandafter\expandafter}% }% }{% \expandafter\expandafter\expandafter \markdownLaTeXBibLaTeXTextCitations \expandafter{\expandafter}% }}}} \RequirePackage{url} \RequirePackage{expl3} \ExplSyntaxOn \def\markdownRendererLinkPrototype{ \begingroup \catcode`\#=12 \def\next##1##2##3##4{ \endgroup \tl_set:Nx \l_tmpa_tl { \str_range:nnn { ##3 } { 1 } { 1 } } \str_if_eq:NNTF \l_tmpa_tl \c_hash_str { \exp_args:No \markdownLaTeXRendererRelativeLink { \str_range:nnn { ##3 } { 2 } { -1 } } }{ \markdownLaTeXRendererAbsoluteLink { ##1 } { ##2 } { ##3 } { ##4 } } } \next } \ExplSyntaxOff \def\markdownLaTeXRendererAbsoluteLink#1#2#3#4{% #1\footnote{\ifx\empty#4\empty\else#4: \fi\texttt<\url{#3}\texttt>}} \def\markdownLaTeXRendererRelativeLink#1{% \ref{#1}} \newcount\markdownLaTeXRowCounter \newcount\markdownLaTeXRowTotal \newcount\markdownLaTeXColumnCounter \newcount\markdownLaTeXColumnTotal \newtoks\markdownLaTeXTable \newtoks\markdownLaTeXTableAlignment \newtoks\markdownLaTeXTableEnd \AtBeginDocument{% \@ifpackageloaded{booktabs}{% \def\markdownLaTeXTopRule{\toprule}% \def\markdownLaTeXMidRule{\midrule}% \def\markdownLaTeXBottomRule{\bottomrule}% }{% \def\markdownLaTeXTopRule{\hline}% \def\markdownLaTeXMidRule{\hline}% \def\markdownLaTeXBottomRule{\hline}% }% } \markdownSetup{rendererPrototypes={ table = {% \markdownLaTeXTable={}% \markdownLaTeXTableAlignment={}% \markdownLaTeXTableEnd={% \markdownLaTeXBottomRule \end{tabular}}% \ifx\empty#1\empty\else \addto@hook\markdownLaTeXTable{% \begin{table} \centering}% \addto@hook\markdownLaTeXTableEnd{% \caption{#1} \end{table}}% \fi \addto@hook\markdownLaTeXTable{\begin{tabular}}% \markdownLaTeXRowCounter=0% \markdownLaTeXRowTotal=#2% \markdownLaTeXColumnTotal=#3% \markdownLaTeXRenderTableRow } }} \def\markdownLaTeXRenderTableRow#1{% \markdownLaTeXColumnCounter=0% \ifnum\markdownLaTeXRowCounter=0\relax \markdownLaTeXReadAlignments#1% \markdownLaTeXTable=\expandafter\expandafter\expandafter{% \expandafter\the\expandafter\markdownLaTeXTable\expandafter{% \the\markdownLaTeXTableAlignment}}% \addto@hook\markdownLaTeXTable{\markdownLaTeXTopRule}% \else \markdownLaTeXRenderTableCell#1% \fi \ifnum\markdownLaTeXRowCounter=1\relax \addto@hook\markdownLaTeXTable\markdownLaTeXMidRule \fi \advance\markdownLaTeXRowCounter by 1\relax \ifnum\markdownLaTeXRowCounter>\markdownLaTeXRowTotal\relax \the\markdownLaTeXTable \the\markdownLaTeXTableEnd \expandafter\@gobble \fi\markdownLaTeXRenderTableRow} \def\markdownLaTeXReadAlignments#1{% \advance\markdownLaTeXColumnCounter by 1\relax \if#1d% \addto@hook\markdownLaTeXTableAlignment{l}% \else \addto@hook\markdownLaTeXTableAlignment{#1}% \fi \ifnum\markdownLaTeXColumnCounter<\markdownLaTeXColumnTotal\relax\else \expandafter\@gobble \fi\markdownLaTeXReadAlignments} \def\markdownLaTeXRenderTableCell#1{% \advance\markdownLaTeXColumnCounter by 1\relax \ifnum\markdownLaTeXColumnCounter<\markdownLaTeXColumnTotal\relax \addto@hook\markdownLaTeXTable{#1&}% \else \addto@hook\markdownLaTeXTable{#1\\}% \expandafter\@gobble \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 } { author .code:n = { \author{#1} }, 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 = { jekyllDataEnd = { \IfFormatAtLeastTF { 2020-10-01 } { \AddToHook{begindocument/end}{\maketitle} } { \ifx\@onlypreamble\@notprerr % We are in the document \maketitle \else % We are in the preamble \RequirePackage{etoolbox} \AfterEndPreamble{\maketitle} \fi } }, }, } \ExplSyntaxOff \newcommand\markdownMakeOther{% \count0=128\relax \loop \catcode\count0=11\relax \advance\count0 by 1\relax \ifnum\count0<256\repeat}% \endinput %% %% End of file `markdown.sty'.