%%
%% This is file `ydoc-doc.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ydoc.dtx  (with options: `ydoc-doc.sty')
%% 
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{ydoc-doc}[%
    2022/10/26
    v0.7alpha
    ydoc package to provide 'doc' macros]
\newcount\ydoc@bslashcnt
\def\ydoc@countbslashes{%
  \begingroup
    \let\firstlinemacro\empty
    \let\lastlinemacro\empty
    \let\newlinemacro\empty
    \let\spacemacro\empty
    \def\bslashmacro{\global\advance\ydoc@bslashcnt by\@ne}%
    \setbox\@tempboxa\hbox{\themacrocode}%
  \endgroup
}
\def\CheckSum#1{%
  \gdef\ydoc@checksum{#1}%
}
\let\ydoc@checksum\m@ne
\def\AlsoImplementation{%
  \gdef\StopEventually##1{%
    \@bsphack
    \gdef\Finale{##1\ydoc@checkchecksum}%
    \@esphack
  }%
}
\AlsoImplementation
\def\OnlyDescription{%
  \@bsphack
  \long\gdef\StopEventually##1{##1\endinput}%
  \@esphack
}
\let\Finale\relax
\def\MakePercentIgnore{\catcode`\%9\relax}
\def\MakePercentComment{\catcode`\%14\relax}
\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
\providecommand*\CharacterTable{%
    \begingroup
    \CharTableChanges
    \@CharacterTable
}
\def\@CharacterTable#1{%
    \def\ydoc@used@CharacterTable{#1}%
    \@onelevel@sanitize\ydoc@used@CharacterTable
    \ifx\ydoc@used@CharacterTable\ydoc@correct@CharacterTable
           \typeout{***************************}%
           \typeout{* Character table correct *}%
           \typeout{***************************}%
    \else
         \PackageError{ydoc}{Character table corrupted}
                           {\the\wrong@table}
         \show\ydoc@used@CharacterTable
         \show\ydoc@correct@CharacterTable
    \fi
    \endgroup
}
\newhelp\wrong@table{Some of the ASCII characters are corrupted.^^J
            I now \string\show\space you both tables for comparison.}
\newcommand*\CharTableChanges{}
\def\ydoc@correct@CharacterTable
  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
   Digits        \0\1\2\3\4\5\6\7\8\9
   Exclamation   \!     Double quote  \"     Hash (number) \#
   Dollar        \$     Percent       \%     Ampersand     \&
   Acute accent  \'     Left paren    \(     Right paren   \)
   Asterisk      \*     Plus          \+     Comma         \,
   Minus         \-     Point         \.     Solidus       \/
   Colon         \:     Semicolon     \;     Less than     \<
   Equals        \=     Greater than  \>     Question mark \?
   Commercial at \@     Left bracket  \[     Backslash     \\
   Right bracket \]     Circumflex    \^     Underscore    \_
   Grave accent  \`     Left brace    \{     Vertical bar  \|
   Right brace   \}     Tilde         \~}
\@onelevel@sanitize\ydoc@correct@CharacterTable
\providecommand*\DoNotIndex[1]{%
  \PackageWarning{ydoc}{Ignoring DoNotIndex - not implemented yet!}{}{}%
}
\providecommand*\changes[3]{%
  \PackageWarning{ydoc}{Ignoring changes - not implemented yet!}{}{}%
}
\providecommand*\RecordChanges{%
  \PackageWarning{ydoc}{List of changes not implemented yet!}{}{}%
}
\providecommand*\PrintChanges{%
  \PackageWarning{ydoc}{List of changes not implemented yet!}{}{}%
}
\providecommand*\PrintIndex{%
  \PackageWarning{ydoc}{Code index not implemented yet!}{}{}%
}
\providecommand*\CodelineIndex{%
  \PackageWarning{ydoc}{Code line index not implemented yet!}{}{}%
}
\providecommand*\EnableCrossrefs{%
  \PackageWarning{ydoc}{Cross references not implemented yet!}{}{}%
}
\providecommand*\GetFileInfo[1]{%
  \def\filename{#1}%
  \def\@tempb##1 ##2 ##3\relax##4\relax{%
    \def\filedate{##1}%
    \def\fileversion{##2}%
    \def\fileinfo{##3}}%
  \edef\@tempa{\csname ver@#1\endcsname}%
  \expandafter\@tempb\@tempa\relax? ? \relax\relax
}
\def\ydoc@checkchecksum{%
  \ifnum\ydoc@checksum=\m@ne
    \message{^^J}%
    \message{**********************^^J}%
    \message{* No checksum found! *^^J}%
    \message{**********************^^J}%
    \GenericWarning{No checksum found}{Correct checksum is \the\ydoc@bslashcnt^^J}{}{}%
  \else
  \ifnum\ydoc@checksum=\z@
    \message{^^J}%
    \message{*********************^^J}%
    \message{* Checksum disabled *^^J}%
    \message{*********************^^J}%
    \GenericWarning{Checksum disabled}{Correct checksum is \the\ydoc@bslashcnt^^J}{}{}%
  \else
  \ifnum\ydoc@checksum=\ydoc@bslashcnt
    \message{^^J}%
    \message{*******************^^J}%
    \message{* Checksum passed *^^J}%
    \message{*******************^^J}%
  \else
    \message{^^J}%
    \message{****************************^^J}%
    \message{* Checksum wrong (\ydoc@checksum<>\the\ydoc@bslashcnt) ^^J}%
    \message{****************************^^J}%
    \GenericError{Checksum wrong}{Correct checksum is \the\ydoc@bslashcnt^^J}{}{}%
  \fi
  \fi
  \fi
}
\RequirePackage{shortvrb}
\AtBeginDocument{\MakeShortVerb{\|}}
\RequirePackage{url}

\def\package{\def\@package}
\package{\jobname}

\def\bundle{\def\@bundle}
\let\@bundle\@empty

\def\ctanlocation{\def\@ctanlocation##1}
\ctanlocation{https://www.ctan.org/pkg/#1}

\date{Version \fileversion\space -- \filedate}

\def\@homepage{%
    CTAN: \@ctan
}

\def\@ctan{%
    \ydoc@eurl{\@ctanlocation{\ifx\@bundle\@empty\@package\else\@bundle\fi}}%
}

\def\@texdoc{%
    \ydoc@eurl{https://texdoc.org/pkg/\ifx\@bundle\@empty\@package\else\@bundle\fi}%
}

\let\@repository\@empty
\protected\def\repository{\urldef\@repository\url}
\protected\def\homepage{\urldef\@homepage\url}
\protected\def\email{\hyper@normalise\email@}
\def\email@#1{\def\@plainemail{#1}\def\@email{\hyper@linkurl{\Hurl{#1}}{mailto:#1}}}
\let\@email\empty
\let\@plainemail\empty

\let\@github\empty
\protected\def\github{\def\@github}

\title{The \texorpdfstring{\pkgtitle{\@package}}{\@package} Package}
\def\@bundlesubtitle{Part of the \texorpdfstring{\pkgtitle{\@bundle}}{\@bundle} bundle}

\protected\def\pkgtitle#1{%
    \texorpdfstring{\textsf{#1}}{#1}%
}

\def\@begintitlelinks{%
    \vskip .5em
\begingroup
\large \lineskip .5em%
\begin{tabular}[t]{rl}%
}

\def\@endtitlelinks{%
\end{tabular}%
\par
\endgroup
}

\def\@maketitlelink#1#2{%
#1: & #2\\[\medskipamount]
}

\def\@license{%
\@maketitlelink{License}{\href{https://www.latex-project.org/lppl/lppl-1-3c/}{LPPL v1.3c or later}}%
}

\def\ydoc@eurl#1{{\edef\URL{{#1}}\expandafter\url\URL}}

\def\@maketitle{%
    \newpage
    \null\vskip 2em
    \begin{center}%
        \let\footnote\thanks
        {\LARGE \@title \par }\vskip 1.5em%
        \ifx\@bundle\@empty\else
        {\large \@bundlesubtitle \par }\vskip 1.5em%
        \fi
        {\large \lineskip .5em%
        \begin{tabular}[t]{c}%
            \@author
        \end{tabular}%
        \par}%
        \ifx\@plainemail\empty\else
            {\large \lineskip .5em%
            \begin{tabular}[t]{c}%
                \@email
            \end{tabular}%
            \par}%
        \fi
        \vskip 1em
        {\large \@date }%
        \vskip 1em
        \ifx\@github\@empty
        {\large \lineskip .5em%
        \begin{tabular}[t]{c}%
            \@homepage
        \end{tabular}%
        \par}%
        \vskip 1em
\ifx\@repository\@empty\else
{\large \lineskip .5em%
\begin{tabular}[t]{c}%
VC: \@repository
\end{tabular}%
\par}%
\fi
\else
\@begintitlelinks
\@license
\@maketitlelink{CTAN}{\@ctan}%
\@maketitlelink{Texdoc}{\@texdoc}%
\@maketitlelink{Homepage}{\ydoc@eurl{https://github.com/\@github}}%
\@maketitlelink{Repository}{\ydoc@eurl{https://github.com/\@github.git}}%
\@maketitlelink{Issue tracker}{\ydoc@eurl{https://github.com/\@github/issues}}%
\@endtitlelinks
\fi
    \end{center}%
    \par\vskip 1em
    \aftergroup\ydocpdfsettings
}

\ifpdf
\def\ydocpdfsettings{%
    \hypersetup{%
        pdfauthor   = {\@author\space<\@plainemail>},
        pdftitle    = {\@title},
        pdfsubject  = {Documentation of LaTeX package \@package},
        pdfkeywords = {\@package, LaTeX, TeX}
    }%
}
\else
\let\ydocpdfsettings\empty
\fi

\let\orig@maketitle\maketitle
\def\maketitle{%
    \ydocpdfsettings
    \orig@maketitle
    \let\orig@maketitle\relax
}
\endinput
%%
%% End of file `ydoc-doc.sty'.
