gitfile-info/gitfile-info.sty

109 lines
3.2 KiB
TeX

\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{gitfile-info}
[2016/06/22 v0.1 read file infos of one specific tex-file]
\RequirePackage{ifthen}
\RequirePackage{currfile}
\RequirePackage{xparse}
\RequirePackage{tcolorbox}
\tcbuselibrary{fitting, skins, breakable}
\tcbset{center title,fonttitle=\bfseries\sffamily}
\RequirePackage{hyperref}
\providecommand{\gfiGetDay}{gfi day}
\providecommand{\gfiGetMonth}{gfi month}
\providecommand{\gfiGetYear}{gfi year}
\providecommand{\gfiGetHour}{gfi hour}
\providecommand{\gfiGetMin}{gfi min}
\providecommand{\gfiGetAuthorName}{gfi author name}
\providecommand{\gfiGetAuthorMail}{gfi author email}
\providecommand{\gfiGetDate}{gfi date}
\providecommand{\gfiGetCommit}{gfi commit}
\providecommand{\gfiGetCommitAbr}{gfi commit short}
\providecommand{\gfiSetDate}[6]{%
\renewcommand{\gfiGetDay}{#1}
\renewcommand{\gfiGetMonth}{#2}
\renewcommand{\gfiGetYear}{#3}
\renewcommand{\gfiGetHour}{#4}
\renewcommand{\gfiGetMin}{#5}
\renewcommand{\gfiGetDate}{#6}
}
\providecommand{\gfiSetAuthor}[2]{%
\renewcommand{\gfiGetAuthorName}{#1}
\renewcommand{\gfiGetAuthorMail}{#2}
}
\providecommand{\gfiSetCommit}[2]{%
\renewcommand{\gfiGetCommit}{#1}
\renewcommand{\gfiGetCommitAbr}{#2}
}
\newtcolorbox{gfiInfoBox}{%
every box on layer 2/.style={reset},%
breakable,%
title=\currfilename,%
enhanced,%
attach boxed title to top right={%
yshift=-2mm,%
xshift=-3mm,%
},%
boxed title style={%
drop fuzzy shadow,%
},%
fontupper=\small,%
before skip=2mm,after skip=3mm,%
boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,%
colback=yellow!50,%
colframe=yellow!20!black,%
sharp corners,rounded corners=southeast,arc is angular,arc=3mm,%
underlay={%
\path[fill=tcbcol@back!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
\path[draw=tcbcol@frame,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
\path[fill=yellow!50!black,draw=none] (interior.south west) rectangle node[white,rotate=90]{\footnotesize\bfseries git} ([xshift=4mm]interior.north west);
},%
drop fuzzy shadow,%
}
\ProvideDocumentCommand{\gfiInfo}{O{none} O{none} O{none} O{gfiInfoBox}}{%
\begin{#4}
\vspace{1mm}
\textbf{Version:} \ifthenelse{\equal{#1}{none}}{\gfiGetCommit}{\gfiGetCommitAbr}\newline
\textbf{Stand:} \ifthenelse{\equal{#2}{none}}{\gfiGetDate}{#2}\newline
\textbf{Zuletzt bearbeitet von:}
\ifthenelse{\equal{#3}{none}}{\href{mailto:\gfiGetAuthorMail}{\gfiGetAuthorName}}{#3}
\vspace{1mm}
\end{#4}
}
\providecommand{\gfiCurrentConfig}{none}
\providecommand{\gfiInitJob}{%
\IfFileExists{\jobname.gfi}{%
\input{\jobname.gfi}
}{%
\@latex@warning@no@line{gitfile-info: No \jobname.gfi information-file given}
\@latex@warning@no@line{gitfile-info: All hooks and initialization run?}
}
}
\providecommand{\gfiInitInc}[1]{%
\IfFileExists{#1.gfi}{%
\input{#1.gfi}
}{%
\@latex@warning@no@line{gitfile-info: No #1.gfi information-file given}
\@latex@warning@no@line{gitfile-info: All hooks and initialization run?}
}
}
\AtBeginDocument{%
\gfiInitJob
}
\providecommand{\gfiInput}[1]{%
\gfiInitInc{#1}
\input{#1}
\gfiInitInc{\currfiledir\currfilebase}
}
\providecommand{\gfiInclude}[1]{%
\gfiInitInc{#1}
\include{#1}
\gfiInitInc{\currfiledir\currfilebase}
}