228 lines
8.3 KiB
TeX
228 lines
8.3 KiB
TeX
|
%%
|
||
|
%% This is file `t-markdown.tex',
|
||
|
%% generated with the docstrip utility.
|
||
|
%%
|
||
|
%% The original source files were:
|
||
|
%%
|
||
|
%% markdown.dtx (with options: `context')
|
||
|
%%
|
||
|
%% Copyright (C) 2016-2020 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 <witiko@mail.muni.cz>.
|
||
|
%%
|
||
|
%% 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.
|
||
|
%%
|
||
|
\writestatus{loading}{ConTeXt User Module / markdown}%
|
||
|
\unprotect
|
||
|
\let\startmarkdown\relax
|
||
|
\let\stopmarkdown\relax
|
||
|
\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
|
||
|
\do\#\do\^\do\_\do\%\do\~}%
|
||
|
\input markdown
|
||
|
\def\markdownMakeOther{%
|
||
|
\count0=128\relax
|
||
|
\loop
|
||
|
\catcode\count0=11\relax
|
||
|
\advance\count0 by 1\relax
|
||
|
\ifnum\count0<256\repeat
|
||
|
\catcode`|=12}%
|
||
|
\def\markdownInfo#1{\writestatus{markdown}{#1.}}%
|
||
|
\def\markdownWarning#1{\writestatus{markdown\space warn}{#1.}}%
|
||
|
\begingroup
|
||
|
\catcode`\|=0%
|
||
|
\catcode`\\=12%
|
||
|
|gdef|startmarkdown{%
|
||
|
|markdownReadAndConvert{\stopmarkdown}%
|
||
|
{|stopmarkdown}}%
|
||
|
|gdef|stopmarkdown{|markdownEnd}%
|
||
|
|endgroup
|
||
|
\def\markdownRendererLineBreakPrototype{\blank}%
|
||
|
\def\markdownRendererLeftBracePrototype{\textbraceleft}%
|
||
|
\def\markdownRendererRightBracePrototype{\textbraceright}%
|
||
|
\def\markdownRendererDollarSignPrototype{\textdollar}%
|
||
|
\def\markdownRendererPercentSignPrototype{\percent}%
|
||
|
\def\markdownRendererUnderscorePrototype{\textunderscore}%
|
||
|
\def\markdownRendererCircumflexPrototype{\textcircumflex}%
|
||
|
\def\markdownRendererBackslashPrototype{\textbackslash}%
|
||
|
\def\markdownRendererTildePrototype{\textasciitilde}%
|
||
|
\def\markdownRendererPipePrototype{\char`|}%
|
||
|
\def\markdownRendererLinkPrototype#1#2#3#4{%
|
||
|
\useURL[#1][#3][][#4]#1\footnote[#1]{\ifx\empty#4\empty\else#4:
|
||
|
\fi\tt<\hyphenatedurl{#3}>}}%
|
||
|
\usemodule[database]
|
||
|
\defineseparatedlist
|
||
|
[MarkdownConTeXtCSV]
|
||
|
[separator={,},
|
||
|
before=\bTABLE,after=\eTABLE,
|
||
|
first=\bTR,last=\eTR,
|
||
|
left=\bTD,right=\eTD]
|
||
|
\def\markdownConTeXtCSV{csv}
|
||
|
\def\markdownRendererContentBlockPrototype#1#2#3#4{%
|
||
|
\def\markdownConTeXtCSV@arg{#1}%
|
||
|
\ifx\markdownConTeXtCSV@arg\markdownConTeXtCSV
|
||
|
\placetable[][tab:#1]{#4}{%
|
||
|
\processseparatedfile[MarkdownConTeXtCSV][#3]}%
|
||
|
\else
|
||
|
\markdownInput{#3}%
|
||
|
\fi}%
|
||
|
\def\markdownRendererImagePrototype#1#2#3#4{%
|
||
|
\placefigure[][fig:#1]{#4}{\externalfigure[#3]}}%
|
||
|
\def\markdownRendererUlBeginPrototype{\startitemize}%
|
||
|
\def\markdownRendererUlBeginTightPrototype{\startitemize[packed]}%
|
||
|
\def\markdownRendererUlItemPrototype{\item}%
|
||
|
\def\markdownRendererUlEndPrototype{\stopitemize}%
|
||
|
\def\markdownRendererUlEndTightPrototype{\stopitemize}%
|
||
|
\def\markdownRendererOlBeginPrototype{\startitemize[n]}%
|
||
|
\def\markdownRendererOlBeginTightPrototype{\startitemize[packed,n]}%
|
||
|
\def\markdownRendererOlItemPrototype{\item}%
|
||
|
\def\markdownRendererOlItemWithNumberPrototype#1{\sym{#1.}}%
|
||
|
\def\markdownRendererOlEndPrototype{\stopitemize}%
|
||
|
\def\markdownRendererOlEndTightPrototype{\stopitemize}%
|
||
|
\definedescription
|
||
|
[MarkdownConTeXtDlItemPrototype]
|
||
|
[location=hanging,
|
||
|
margin=standard,
|
||
|
headstyle=bold]%
|
||
|
\definestartstop
|
||
|
[MarkdownConTeXtDlPrototype]
|
||
|
[before=\blank,
|
||
|
after=\blank]%
|
||
|
\definestartstop
|
||
|
[MarkdownConTeXtDlTightPrototype]
|
||
|
[before=\blank\startpacked,
|
||
|
after=\stoppacked\blank]%
|
||
|
\def\markdownRendererDlBeginPrototype{%
|
||
|
\startMarkdownConTeXtDlPrototype}%
|
||
|
\def\markdownRendererDlBeginTightPrototype{%
|
||
|
\startMarkdownConTeXtDlTightPrototype}%
|
||
|
\def\markdownRendererDlItemPrototype#1{%
|
||
|
\startMarkdownConTeXtDlItemPrototype{#1}}%
|
||
|
\def\markdownRendererDlItemEndPrototype{%
|
||
|
\stopMarkdownConTeXtDlItemPrototype}%
|
||
|
\def\markdownRendererDlEndPrototype{%
|
||
|
\stopMarkdownConTeXtDlPrototype}%
|
||
|
\def\markdownRendererDlEndTightPrototype{%
|
||
|
\stopMarkdownConTeXtDlTightPrototype}%
|
||
|
\def\markdownRendererEmphasisPrototype#1{{\em#1}}%
|
||
|
\def\markdownRendererStrongEmphasisPrototype#1{{\bf#1}}%
|
||
|
\def\markdownRendererBlockQuoteBeginPrototype{\startquotation}%
|
||
|
\def\markdownRendererBlockQuoteEndPrototype{\stopquotation}%
|
||
|
\def\markdownRendererInputVerbatimPrototype#1{\typefile{#1}}%
|
||
|
\def\markdownRendererInputFencedCodePrototype#1#2{%
|
||
|
\ifx\relax#2\relax
|
||
|
\typefile{#1}%
|
||
|
\else
|
||
|
\typefile[#2][]{#1}%
|
||
|
\fi}%
|
||
|
\def\markdownRendererHeadingOnePrototype#1{\chapter{#1}}%
|
||
|
\def\markdownRendererHeadingTwoPrototype#1{\section{#1}}%
|
||
|
\def\markdownRendererHeadingThreePrototype#1{\subsection{#1}}%
|
||
|
\def\markdownRendererHeadingFourPrototype#1{\subsubsection{#1}}%
|
||
|
\def\markdownRendererHeadingFivePrototype#1{\subsubsubsection{#1}}%
|
||
|
\def\markdownRendererHeadingSixPrototype#1{\subsubsubsubsection{#1}}%
|
||
|
\def\markdownRendererHorizontalRulePrototype{%
|
||
|
\blackrule[height=1pt, width=\hsize]}%
|
||
|
\def\markdownRendererFootnotePrototype#1{\footnote{#1}}%
|
||
|
\stopmodule\protect
|
||
|
\newcount\markdownConTeXtRowCounter
|
||
|
\newcount\markdownConTeXtRowTotal
|
||
|
\newcount\markdownConTeXtColumnCounter
|
||
|
\newcount\markdownConTeXtColumnTotal
|
||
|
\newtoks\markdownConTeXtTable
|
||
|
\newtoks\markdownConTeXtTableFloat
|
||
|
\def\markdownRendererTablePrototype#1#2#3{%
|
||
|
\markdownConTeXtTable={}%
|
||
|
\ifx\empty#1\empty
|
||
|
\markdownConTeXtTableFloat={%
|
||
|
\the\markdownConTeXtTable}%
|
||
|
\else
|
||
|
\markdownConTeXtTableFloat={%
|
||
|
\placetable{#1}{\the\markdownConTeXtTable}}%
|
||
|
\fi
|
||
|
\begingroup
|
||
|
\setupTABLE[r][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off]
|
||
|
\setupTABLE[c][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off]
|
||
|
\setupTABLE[r][1][topframe=on, bottomframe=on]
|
||
|
\setupTABLE[r][#1][bottomframe=on]
|
||
|
\markdownConTeXtRowCounter=0%
|
||
|
\markdownConTeXtRowTotal=#2%
|
||
|
\markdownConTeXtColumnTotal=#3%
|
||
|
\markdownConTeXtRenderTableRow}
|
||
|
\def\markdownConTeXtRenderTableRow#1{%
|
||
|
\markdownConTeXtColumnCounter=0%
|
||
|
\ifnum\markdownConTeXtRowCounter=0\relax
|
||
|
\markdownConTeXtReadAlignments#1%
|
||
|
\markdownConTeXtTable={\bTABLE}%
|
||
|
\else
|
||
|
\markdownConTeXtTable=\expandafter{%
|
||
|
\the\markdownConTeXtTable\bTR}%
|
||
|
\markdownConTeXtRenderTableCell#1%
|
||
|
\markdownConTeXtTable=\expandafter{%
|
||
|
\the\markdownConTeXtTable\eTR}%
|
||
|
\fi
|
||
|
\advance\markdownConTeXtRowCounter by 1\relax
|
||
|
\ifnum\markdownConTeXtRowCounter>\markdownConTeXtRowTotal\relax
|
||
|
\markdownConTeXtTable=\expandafter{%
|
||
|
\the\markdownConTeXtTable\eTABLE}%
|
||
|
\the\markdownConTeXtTableFloat
|
||
|
\endgroup
|
||
|
\expandafter\gobbleoneargument
|
||
|
\fi\markdownConTeXtRenderTableRow}
|
||
|
\def\markdownConTeXtReadAlignments#1{%
|
||
|
\advance\markdownConTeXtColumnCounter by 1\relax
|
||
|
\if#1d%
|
||
|
\setupTABLE[c][\the\markdownConTeXtColumnCounter][align=right]
|
||
|
\fi\if#1l%
|
||
|
\setupTABLE[c][\the\markdownConTeXtColumnCounter][align=right]
|
||
|
\fi\if#1c%
|
||
|
\setupTABLE[c][\the\markdownConTeXtColumnCounter][align=middle]
|
||
|
\fi\if#1r%
|
||
|
\setupTABLE[c][\the\markdownConTeXtColumnCounter][align=left]
|
||
|
\fi
|
||
|
\ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else
|
||
|
\expandafter\gobbleoneargument
|
||
|
\fi\markdownConTeXtReadAlignments}
|
||
|
\def\markdownConTeXtRenderTableCell#1{%
|
||
|
\advance\markdownConTeXtColumnCounter by 1\relax
|
||
|
\markdownConTeXtTable=\expandafter{%
|
||
|
\the\markdownConTeXtTable\bTD#1\eTD}%
|
||
|
\ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else
|
||
|
\expandafter\gobbleoneargument
|
||
|
\fi\markdownConTeXtRenderTableCell}
|
||
|
\endinput
|
||
|
%%
|
||
|
%% End of file `t-markdown.tex'.
|