% Pour de jolies icônes
\usepackage{fontawesome5}

% Pour l'index
\usepackage[imakeidx]{xindex}
\makeindex
% Commande sans laquelle les numéros de pages de l'index ne seraient pas des
% hyperliens
\DeclareHookRule{env/document/begin}{xindex}{before}{hyperref}

% La librairie suivante doit nécessairement être chargée après `imakeidx`
\tcbuselibrary{%
  documentation,theorems%
}

% Nous voulons que la commande \meta, fournie par la librairie `documentation'
% du package `tcolorbox' affiche son argument en fonte à châsse fixe, en couleur
% et sans correction d'italique.
\AddToHook{cmd/meta@font@select/after}{%
  \ttfamily%
  \color{brown}%
  \let\/\relax%
}

\makeatletter
\lst@InputCatcodes
\def\lst@DefEC{%
 \lst@CCECUse \lst@ProcessLetter
  ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f%
  ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f%
  ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af%
  ^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf%
  ^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf%
  ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df%
  ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef%
  ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff%
  ^^^^201c^^^^201d% nouveaux pour “ et ”
  ^^00}
\lst@RestoreCatcodes
\makeatother

\ExplSyntaxOn

\lstMakeShortInline×

\lstdefinelanguage{extrabash}{%
  morekeywords={%
    docker,docker-pdflatex,docker-lualatex
  },%
  alsoletter={-},%
  sensitive%
}

\tcbset{%
  doclang/environment~ content=contenu~ de~ l'environnement,%
  doclang/color=~ (couleur),%
  doclang/colors=Couleurs,%
  doclang/environments=Environnements,%
  doclang/keys=Clés,%
  doclang/values=Valeurs,%
  doclang/pageshort=p.,%
  documentation~ listing~ style=dbtex,%
  color~ command=__letgut_texcs,%
  color~ environment=__letgut_environment,%
  color~ key=__letgut_key,%
  color~ value=__letgut_value,%
  doc~ head={interior~ style={fill,color=yellow!20!white}},%
  % index~ format=pgfchapter,%
  index~ format=off,%
  index~ colorize,%
  index~ annotate=false,%
  enhanced,%
  % listing~ style=dbtex,%
  % every~ box/.style={documentation~ listing~ style=dbtex},%
  % index~ actual={},%
  % doc~ left~ indent=-15mm,%
  % doc~ right~ indent=-15mm+2em
  keywords~ bold=false
}%

\DeclareTotalTCBox{\commandshell}{ v }{ commandshell}{#1}
\newtcblisting{listingshell}[1][]{%
  % colback=black,
  % colupper=white,
  colback=white,
  colupper=black,
  colframe=yellow!75!black,
  breakable,
  listing~ only,
  listing~ options={%
    style=tcblatex,
    language=bash,
    alsolanguage=extrabash,%
    basicstyle=\footnotesize\ttfamily,
    escapeinside={(*@}{@*)},
    upquote=true,
    showstringspaces=false
  },
  every~ listing~ line={%
    \textcolor{red}{%
      \small\ttfamily\bfseries%
      \BeginAccSupp{method=plain,ActualText={}}
      \$~
      \EndAccSupp{}%
    }
  },
  #1
}

\renewcommand*{\tcbdocnew}[1]{
  \scriptsize\sffamily\textcolor{green!50!black}{\bfseries
Nouv. :} #1}
\renewcommand*{\tcbdocupdated}[1]{\scriptsize\sffamily\textcolor{blue!75!black}{\bfseries
\textsc{m.-à-j.} :} #1}
%

\NewDocumentCommand \valinit { o }
{
  % valeurs~ :~
  init.~
  {
    \em
    \IfNoValueTF {#1}
    { vide }
    { #1 }
  }
}

\NewDocumentCommand \valdef { o }
{
  par~ déf.~
  {
    \em
    \IfNoValueTF {#1}
    { aucune }
    {  #1 }
  }
}

\NewDocumentCommand{\valinitdef}{ O{} o } {
  \tl_if_blank:nTF {#1}
  {
    \valinit,~ \valdef[#2]
  }
  {
    \valinit[#1],~ \valdef[#2]
  }
}

\tcbset{dbtcb/.style={%
    breakable,
    fonttitle=\bfseries,
    enlarge~ top~ by=1mm,
    separator~ sign~ dash,
    label~ separator=-,
    before~ title={%
      \hypersetup{hidelinks}%
      \tcbset{%
        color~ definition=white,
        color~ hyperlink=white,
      }%
    },%
    keywords~ bold=false,
  }%
}%

\AddToHook{begindocument/before}{
  \newtcbtheorem[list~inside=dbwarninglist,crefname={avertissement}{avertissements}]{dbwarning}{Avertissement}{%
    colback=red!5!white,
    colframe=red!75!black,
    dbtcb
  }{wa}
  \newtcbtheorem[list~inside=dbremarklist,crefname={remarque}{remarques}]{dbremark}{Remarque}{%
    colback=blue!5!white,
    colframe=blue!75!black,
    dbtcb
  }{rq}
}
%
\ExplSyntaxOff


%%% Local Variables:
%%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: letgut
%%% End:
