diff --git a/docs/fr/Makefile b/docs/fr/Makefile new file mode 100644 index 00000000..bf49b542 --- /dev/null +++ b/docs/fr/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Raclette.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Raclette.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/Raclette" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Raclette" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/fr/_build/doctrees/basis.doctree b/docs/fr/_build/doctrees/basis.doctree new file mode 100644 index 00000000..80bef55d Binary files /dev/null and b/docs/fr/_build/doctrees/basis.doctree differ diff --git a/docs/fr/_build/doctrees/environment.pickle b/docs/fr/_build/doctrees/environment.pickle new file mode 100644 index 00000000..8561eea0 Binary files /dev/null and b/docs/fr/_build/doctrees/environment.pickle differ diff --git a/docs/fr/_build/doctrees/faq.doctree b/docs/fr/_build/doctrees/faq.doctree new file mode 100644 index 00000000..32bfd0a1 Binary files /dev/null and b/docs/fr/_build/doctrees/faq.doctree differ diff --git a/docs/fr/_build/doctrees/getting_started.doctree b/docs/fr/_build/doctrees/getting_started.doctree new file mode 100644 index 00000000..cc1c8205 Binary files /dev/null and b/docs/fr/_build/doctrees/getting_started.doctree differ diff --git a/docs/fr/_build/doctrees/index.doctree b/docs/fr/_build/doctrees/index.doctree new file mode 100644 index 00000000..7d258321 Binary files /dev/null and b/docs/fr/_build/doctrees/index.doctree differ diff --git a/docs/fr/_build/doctrees/install.doctree b/docs/fr/_build/doctrees/install.doctree new file mode 100644 index 00000000..433be37d Binary files /dev/null and b/docs/fr/_build/doctrees/install.doctree differ diff --git a/docs/fr/_build/doctrees/internals.doctree b/docs/fr/_build/doctrees/internals.doctree new file mode 100644 index 00000000..6c8143cb Binary files /dev/null and b/docs/fr/_build/doctrees/internals.doctree differ diff --git a/docs/fr/_build/doctrees/settings.doctree b/docs/fr/_build/doctrees/settings.doctree new file mode 100644 index 00000000..2fb10dd7 Binary files /dev/null and b/docs/fr/_build/doctrees/settings.doctree differ diff --git a/docs/fr/_build/doctrees/themes.doctree b/docs/fr/_build/doctrees/themes.doctree new file mode 100644 index 00000000..8410575b Binary files /dev/null and b/docs/fr/_build/doctrees/themes.doctree differ diff --git a/docs/fr/_build/html/.buildinfo b/docs/fr/_build/html/.buildinfo new file mode 100644 index 00000000..b8d60d4c --- /dev/null +++ b/docs/fr/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 169ffeb4c85c990fa0841cda8c347b3b +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/docs/fr/_build/latex/Makefile b/docs/fr/_build/latex/Makefile new file mode 100644 index 00000000..5c0d5018 --- /dev/null +++ b/docs/fr/_build/latex/Makefile @@ -0,0 +1,58 @@ +# Makefile for Sphinx LaTeX output + +ALLDOCS = $(basename $(wildcard *.tex)) +ALLPDF = $(addsuffix .pdf,$(ALLDOCS)) +ALLDVI = $(addsuffix .dvi,$(ALLDOCS)) + +# Prefix for archive names +ARCHIVEPRREFIX = +# Additional LaTeX options +LATEXOPTS = + +all: $(ALLPDF) +all-pdf: $(ALLPDF) +all-dvi: $(ALLDVI) +all-ps: all-dvi + for f in *.dvi; do dvips $$f; done + +zip: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +tar: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +bz2: tar + bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar + +# The number of LaTeX runs is quite conservative, but I don't expect it +# to get run often, so the little extra time won't hurt. +%.dvi: %.tex + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + -makeindex -s python.ist '$(basename mod$<).idx' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + +%.pdf: %.tex + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + -makeindex -s python.ist '$(basename mod$<).idx' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + +clean: + rm -f *.pdf *.dvi *.ps + rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla + +.PHONY: all all-pdf all-dvi all-ps clean + diff --git a/docs/fr/_build/latex/Raclette.tex b/docs/fr/_build/latex/Raclette.tex new file mode 100644 index 00000000..78d907f2 --- /dev/null +++ b/docs/fr/_build/latex/Raclette.tex @@ -0,0 +1,829 @@ +% Generated by Sphinx. +\documentclass[letterpaper,10pt,english]{manual} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{times} +\usepackage[Bjarne]{fncychap} +\usepackage{longtable} +\usepackage{sphinx} + + +\title{Raclette Documentation} +\date{January 24, 2011} +\release{2} +\author{Alexis Métaireau} +\newcommand{\sphinxlogo}{} +\renewcommand{\releasename}{Release} +\makeindex +\makemodindex + +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +\def\PYG@tok@gd{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\def\PYG@tok@gu{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\def\PYG@tok@gt{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}} +\def\PYG@tok@gs{\let\PYG@bf=\textbf} +\def\PYG@tok@gr{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\def\PYG@tok@cm{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@vg{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@m{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@mh{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@cs{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}} +\def\PYG@tok@ge{\let\PYG@it=\textit} +\def\PYG@tok@vc{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@il{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@go{\def\PYG@tc##1{\textcolor[rgb]{0.19,0.19,0.19}{##1}}} +\def\PYG@tok@cp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@gi{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\def\PYG@tok@gh{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\def\PYG@tok@ni{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} +\def\PYG@tok@nl{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} +\def\PYG@tok@nn{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\def\PYG@tok@no{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} +\def\PYG@tok@na{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@nb{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@nc{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\def\PYG@tok@nd{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} +\def\PYG@tok@ne{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@nf{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} +\def\PYG@tok@si{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} +\def\PYG@tok@s2{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@vi{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@nt{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} +\def\PYG@tok@nv{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@s1{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@gp{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\def\PYG@tok@sh{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@ow{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@sx{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\def\PYG@tok@bp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@c1{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@kc{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@c{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@mf{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@err{\def\PYG@bc##1{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{##1}}} +\def\PYG@tok@kd{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@ss{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} +\def\PYG@tok@sr{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} +\def\PYG@tok@mo{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@mi{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@kn{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@o{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PYG@tok@kr{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@s{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@kp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@w{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\def\PYG@tok@kt{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} +\def\PYG@tok@sc{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@sb{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@k{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@se{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@sd{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother + +\begin{document} + +\maketitle +\tableofcontents +\hypertarget{--doc-index}{} + + +Pelican est un generateur de blog simple codé en python +\begin{itemize} +\item {} +Écrivez vos articles directement dans votre éditeur favori (vim !) et +directement en syntaxe reStructuredText ou Markdown ; + +\item {} +Un outil simple en ligne de conmmande pour (re)générer le blog ; + +\item {} +Sortie complètement statique, facile pour l'héberger n'importe où ; + +\end{itemize} + + +\chapter{Fonctionnalités} + +Pelican supporte actuellement : +\begin{itemize} +\item {} +des articles de blog ; + +\item {} +des pages statiques ; + +\item {} +les commentaires via un service externe (\href{http://disqus.com}{disqus}) +Notez qu'étant bien un service externe assez pratique, vous ne gérez pas +vous même les commentaires. Ce qui pourrait occasionner une perte de vos données; + +\item {} +support de template (les templates sont crées avec Jinja 2 \href{http://jinjna.pocoo.org}{jinja2}) ; + +\item {} +génération optionnelle de vos pages et articles en pdf. + +\end{itemize} + + +\chapter{Pourquoi le nom ``Pelican'' ?} + +Vous n'avez pas remarqué ? ''Pelican'' est un anagramme pour ``Calepin'' ;) + + +\chapter{Code source} + +Vous pouvez accéder au code source via mercurial sur \href{http://hg.notmyidea.org/pelican/}{http://hg.notmyidea.org/pelican/} +ou via git à l'adresse \href{http://github.com/ametaireau/pelican/}{http://github.com/ametaireau/pelican/} + + +\chapter{Feedback !} + +Si vous voulez de nouvelles fonctionnalitées pour Pelican, n'hésitez pas à me le dire, +à cloner le dépôt, etc … C'est open source !!! + +Contactez moi à ``alexis at notmyidea dot org'' pour quelques requêtes ou retour d'expérience que ce soi ! + + +\chapter{Documentation} + +\resetcurrentobjects +\hypertarget{--doc-getting\_started}{} + +\section{Installation et mise à jour de Pelican} + + +\subsection{Installation} + +Il y a deux façons d’installer Pelican sur son système. La première est via l’utilitaire +pip, l’autre façon est de télécharger Pelican via Github. Ici nous allons voir les deux +façons de procéder. + + +\subsubsection{Via pip} + +Pour installer Pelican via pip, vous aurez besoin du paquet python-pip. puis installez Pelican + +\begin{Verbatim}[commandchars=\\\{\}] +\PYG{c}{\PYGZsh{} apt-get install python-pip} +\PYG{c}{\PYGZsh{} pip install pelican} +\end{Verbatim} + + +\subsubsection{Via Github} + +Pour installer Pelican en reprenant le code via Github, nous aurons besoin du paquet +git-core pour récupérez les sources de Pelican. Puis nous procédons à l’installation + +\begin{Verbatim}[commandchars=@\[\]] +@# apt-get install git-core +@$ git clone https://github.com/ametaireau/pelican.git +@$ cd pelican +@# python setup.py install +\end{Verbatim} + + +\subsection{Mises à jour} + + +\subsubsection{Via pip} + +Rien de bien compliqué pour mettre à jour via pip + +\begin{Verbatim}[commandchars=@\[\]] +@$ cd votreRepertoireSource +@$ pip install --upgrade pelican +\end{Verbatim} + + +\subsubsection{Via Github} + +C'est un peu plus long avec Github par contre + +\begin{Verbatim}[commandchars=@\[\]] +@$ cd votreRepertoireSource +@$ git pull origin master +@$ cd pelican +@# python setup.py install +\end{Verbatim} + +Vous aurez un message d’erreur si le module setuptools de python n’est pas installé. +La manipulation est la suivante + +\begin{Verbatim}[commandchars=\\\{\}] +\PYG{c}{\PYGZsh{} apt-get install python-setuptools} +\end{Verbatim} + + +\subsection{Alors, quelle méthode choisir ?} + +Vous avez le choix entre deux méthodes, mais aussi entre deux concepts. La méthode +de Github est la version de développement, où les modifications arrivent assez +fréquemment sans être testées à fond. La version de pip est une version arrêtée avec un +numéro de version dans laquelle vous aurez moins de bug. N’oubliez cependant pas +que le projet est très jeune et manque donc de maturité. Si vous aimez avoir les toutes +dernières versions utilisez Github, sinon penchez vous sur pip. + +\resetcurrentobjects +\hypertarget{--doc-settings}{} + +\section{Settings} + + +\subsection{Specifying the settings} + +Pelican is configurable thanks to a configuration file, that you can pass to +the command line: + +\begin{Verbatim}[commandchars=@\[\]] +@$ pelican -s path/to/your/settingsfile.py path +\end{Verbatim} + +Settings are given as the form of a python module (a file). You can have an +example by looking at \href{https://github.com/ametaireau/pelican/raw/master/samples/pelican.conf.py}{/samples/pelican.conf.py} + +All the settings identifiers must be set in caps, otherwise they will not be +processed. + +Here are the available settings. Please note that all the settings you put in +this file will be passed to the templates as well. + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Setting name +} & \textbf{ +what it does ? +}\\ +\hline + +\emph{AUTHOR} + & +Default author (put your name) +\\ + +\emph{CATEGORY\_FEED} + & +Where to put the atom categories feeds. default is +\emph{feeds/\%s.atom.xml}, where \%s is the name of the +category. +\\ + +\emph{CATEGORY\_FEED\_RSS} + & +Where to put the categories rss feeds. default is None +(no rss) +\\ + +\emph{CSS\_FILE} + & +To specify the CSS file you want to load, if it's not +the default one (`main.css') +\\ + +\emph{DEFAULT\_CATEGORY} + & +The default category to fallback on. \emph{misc} by default. +\\ + +\emph{DEFAULT\_LANG} + & +The default language to use. Default is `en'. +\\ + +\emph{DISPLAY\_PAGES\_ON\_MENU} + & +Display or not the pages on the menu of the template. +Templates can follow or not this settings. +\\ + +\emph{FALLBACK\_ON\_FS\_DATE} + & +If True, pelican will use the file system dates infos +(mtime) if it can't get informations from the +metadata? +\\ + +\emph{FEED} + & +relative url to output the atom feed. Default is +\emph{feeds/all.atom.xml} +\\ + +\emph{FEED\_RSS} + & +relative url to output the rss feed. Default is +None (no rss) +\\ + +\emph{JINJA\_EXTENSIONS} + & +A list of any Jinja2 extensions you want to use. +Default is no extensions (the empty list). +\\ + +\emph{KEEP\_OUTPUT\_DIRECTORY} + & +Keep the output directory and just update all the generated files. +Default is to delete the output directory. +\\ + +\emph{MARKUP} + & +A list of available markup languages you want to use. +For the moment, only available values are \emph{rst} and \emph{md}. +\\ + +\emph{OUTPUT\_PATH} + & +Where to output the generated files. Default to +``output'' +\\ + +\emph{PATH} + & +path to look at for input files. +\\ + +\emph{PDF\_PROCESSOR} + & +Put True if you want to have PDF versions of your +documents. You will need to install \emph{rst2pdf}. +\\ + +\emph{REVERSE\_ARCHIVE\_ORDER} + & +Reverse the archives order. (True makes it in +descending order: the newer first) +\\ + +\emph{SITEURL} + & +base URL of your website. +\\ + +\emph{SITENAME} + & +Your site name, +\\ + +\emph{STATIC\_PATHS} + & +The static paths you want to have accessible on the +output path ``static''. By default, pelican will copy +the `images' folder to the output folder. +\\ + +\emph{STATIC\_THEME\_PATHS} + & +Static theme paths you want to copy. Default values +is \emph{static}, but if your theme have others static paths, +you can put them here. +\\ + +\emph{THEME} + & +theme to use to product the output. can be the +complete static path to a theme folder, or chosen +between the list of default themes (see below) +\\ + +\emph{TRANSLATION\_FEED} + & +Where to put the RSS feed for translations. Default +is feeds/all-\%s.atom.xml where \%s is the name of the +lang. +\\ +\hline +\end{tabulary} + + + +\subsection{Themes} + +3 themes are available. You can specify them using the \emph{-t} option: +\begin{itemize} +\item {} +notmyidea + +\item {} +simple (a synonym for ``full text'' :) + +\item {} +martyalchin + +\end{itemize} + +You can define your own theme too, and specify it's emplacement in the same +way (be sure to specify the full absolute path to it). + +Here is \href{http://alexis.notmyidea.org/pelican/themes.html}{a guide on how to create your theme} + +The \emph{notmyidea} theme can make good use of the following settings. I recommend +to use them too in your themes. + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Setting name +} & \textbf{ +what it does ? +}\\ +\hline + +\emph{DISQUS\_SITENAME} + & +Pelican can handle disqus comments, specify the +sitename you've filled in on disqus +\\ + +\emph{GITHUB\_URL} + & +Your github URL (if you have one), it will then +use it to create a github ribbon. +\\ + +\emph{GOOGLE\_ANALYTICS} + & +`UA-XXXX-YYYY' to activate google analytics. +\\ + +\emph{LINKS} + & +A list of tuples (Title, Url) for links to appear on +the header. +\\ + +\emph{SOCIAL} + & +A list of tuples (Title, Url) to appear in the ``social'' +section. +\\ + +\emph{TWITTER\_USERNAME} + & +Allows to add a button on the articles to tweet about +them. Add you twitter username if you want this +button to appear. +\\ +\hline +\end{tabulary} + + +In addition, you can use the ``wide'' version of the \emph{notmyidea} theme, by +adding that in your configuration: + +\begin{Verbatim}[commandchars=\\\{\}] +\PYG{n}{CSS\PYGZus{}FILE} \PYG{o}{=} \PYG{l+s}{"}\PYG{l+s}{wide.css}\PYG{l+s}{"} +\end{Verbatim} + +\resetcurrentobjects +\hypertarget{--doc-themes}{} + +\hypertarget{theming-pelican}{}\section{How to create themes for pelican} + +Pelican uses the great \href{http://jinjna.pocoo.org}{jinja2} templating engine to +generate it's HTML output. The jinja2 syntax is really simple. If you want to +create your own theme, feel free to take inspiration from the ``simple'' theme, +which is available \href{https://github.com/ametaireau/pelican/tree/master/pelican/themes/simple/templates}{here} + + +\subsection{Structure} + +To make your own theme, you must follow the following structure: + +\begin{Verbatim}[commandchars=@\[\]] +├-- static +@textbar[]   ├-- css +@textbar[]   └-- images +└-- templates + ├-- archives.html // to display archives + ├-- article.html // processed for each article + ├-- categories.html // must list all the categories + ├-- category.html // processed for each category + ├-- index.html // the index. List all the articles + ├-- page.html // processed for each page + ├-- tag.html // processed for each tag + └-- tags.html // must list all the tags. Can be a tag cloud. +\end{Verbatim} +\begin{itemize} +\item {} +\emph{static} contains all the static content. It will be copied on the output +\emph{theme/static} folder then. I've put the css and image folders, but they are +just examples. Put what you need here. + +\item {} +\emph{templates} contains all the templates that will be used to generate the content. +I've just put the mandatory templates here, you can define your own if it helps +you to organize yourself while doing the theme. + +\end{itemize} + + +\subsection{Templates and variables} + +It's using a simple syntax, that you can embbed into your html pages. +This document describes which templates should exists on a theme, and which +variables will be passed to each template, while generating it. + +All templates will receive the variables defined in your settings file, if they +are in caps. You can access them directly. + + +\subsubsection{Common variables} + +All of those settings will be given to all templates. + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Variable +} & \textbf{ +Description +}\\ +\hline + +articles + & +That's the list of articles, ordsered desc. by date +all the elements are \emph{Article} objects, so you can +access their properties (e.g. title, summary, author +etc. +\\ + +dates + & +The same list of article, but ordered by date, +ascending +\\ + +tags + & +A dict containing each tags (keys), and the list of +relative articles. +\\ + +categories + & +A dict containing each category (keys), and the +list of relative articles. +\\ + +pages + & +The list of pages +\\ +\hline +\end{tabulary} + + + +\subsubsection{category.html} + +This template will be processed for each of the existing categories, and will +finally remain at output/category/\emph{category\_name}.html. + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Variable +} & \textbf{ +Description +}\\ +\hline + +articles + & +The articles of this category +\\ + +category + & +The name of the category being processed +\\ +\hline +\end{tabulary} + + + +\subsubsection{article.html} + +This template will be processed for each article. .html files will be outputed +in output/\emph{article\_name}.html. Here are the specific variables it gets. + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Variable +} & \textbf{ +Description +}\\ +\hline + +article + & +The article object to be displayed +\\ + +category + & +The name of the category of the current article +\\ +\hline +\end{tabulary} + + + +\subsubsection{tag.html} + +For each tag, this template will be processed. It will create .html files in +/output/tag/\emph{tag\_name}.html + +\begin{tabulary}{\textwidth}{|L|L|} +\hline +\textbf{ +Variable +} & \textbf{ +Description +}\\ +\hline + +tag + & +The name of the tag being processed +\\ + +articles + & +Articles related to this tag +\\ +\hline +\end{tabulary} + + +\resetcurrentobjects +\hypertarget{--doc-internals}{} + +\section{Pelican internals} + +This section describe how pelican is working internally. As you'll see, it's +quite simple, but a bit of documentation doesn't hurt :) + + +\subsection{Overall structure} + +What \emph{pelican} does, is taking a list of files, and processing them, to some +sort of output. Usually, the files are restructured text and markdown files, +and the output is a blog, but it can be anything you want. + +I've separated the logic in different classes and concepts: +\begin{itemize} +\item {} +\emph{writers} are responsible of all the writing process of the +files. It's writing .html files, RSS feeds and so on. Since those operations +are commonly used, the object is created once, and then passed to the +generators. + +\item {} +\emph{readers} are used to read from various formats (Markdown, and Restructured +Text for now, but the system is extensible). Given a file, they return +metadata (author, tags, category etc) and content (HTML formated) + +\item {} +\emph{generators} generate the different outputs. For instance, pelican comes with +\emph{ArticlesGenerator} and \emph{PageGenerator}, into others. Given +a configurations, they can do whatever they want. Most of the time it's +generating files from inputs. + +\item {} +\emph{pelican} also uses \emph{templates}, so it's easy to write you own theme. The +syntax is \emph{jinja2}, and, trust me, really easy to learn, so don't hesitate +a second. + +\end{itemize} + + +\subsection{How to implement a new reader ?} + +There is an awesome markup language you want to add to pelican ? +Well, the only thing you have to do is to create a class that have a \emph{read} +method, that is returning an HTML content and some metadata. + +Take a look to the Markdown reader: + +\begin{Verbatim}[commandchars=\\\{\}] +\PYG{k}{class} \PYG{n+nc}{MarkdownReader}\PYG{p}{(}\PYG{n+nb}{object}\PYG{p}{)}\PYG{p}{:} + + \PYG{k}{def} \PYG{n+nf}{read}\PYG{p}{(}\PYG{n+nb+bp}{self}\PYG{p}{,} \PYG{n}{filename}\PYG{p}{)}\PYG{p}{:} + \PYG{l+s+sd}{"""Parse content and metadata of markdown files"""} + \PYG{n}{text} \PYG{o}{=} \PYG{n+nb}{open}\PYG{p}{(}\PYG{n}{filename}\PYG{p}{)} + \PYG{n}{md} \PYG{o}{=} \PYG{n}{Markdown}\PYG{p}{(}\PYG{n}{extensions} \PYG{o}{=} \PYG{p}{[}\PYG{l+s}{'}\PYG{l+s}{meta}\PYG{l+s}{'}\PYG{p}{,} \PYG{l+s}{'}\PYG{l+s}{codehilite}\PYG{l+s}{'}\PYG{p}{]}\PYG{p}{)} + \PYG{n}{content} \PYG{o}{=} \PYG{n}{md}\PYG{o}{.}\PYG{n}{convert}\PYG{p}{(}\PYG{n}{text}\PYG{p}{)} + + \PYG{n}{metadatas} \PYG{o}{=} \PYG{p}{\PYGZob{}}\PYG{p}{\PYGZcb{}} + \PYG{k}{for} \PYG{n}{name}\PYG{p}{,} \PYG{n}{value} \PYG{o+ow}{in} \PYG{n}{md}\PYG{o}{.}\PYG{n}{Meta}\PYG{o}{.}\PYG{n}{items}\PYG{p}{(}\PYG{p}{)}\PYG{p}{:} + \PYG{k}{if} \PYG{n}{name} \PYG{o+ow}{in} \PYG{n}{\PYGZus{}METADATAS\PYGZus{}FIELDS}\PYG{p}{:} + \PYG{n}{meta} \PYG{o}{=} \PYG{n}{\PYGZus{}METADATAS\PYGZus{}FIELDS}\PYG{p}{[}\PYG{n}{name}\PYG{p}{]}\PYG{p}{(}\PYG{n}{value}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{p}{)} + \PYG{k}{else}\PYG{p}{:} + \PYG{n}{meta} \PYG{o}{=} \PYG{n}{value}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]} + \PYG{n}{metadatas}\PYG{p}{[}\PYG{n}{name}\PYG{o}{.}\PYG{n}{lower}\PYG{p}{(}\PYG{p}{)}\PYG{p}{]} \PYG{o}{=} \PYG{n}{meta} + \PYG{k}{return} \PYG{n}{content}\PYG{p}{,} \PYG{n}{metadatas} +\end{Verbatim} + +Simple isn't it ? + + +\subsection{How to implement a new generator ?} + +Generators have basically two important methods. You're not forced to create +both, only the existing ones will be called. +\begin{itemize} +\item {} +\emph{generate\_context}, that is called in a first place, for all the generators. +Do whatever you have to do, and update the global context if needed. This +context is shared between all generators, and will be passed to the +templates. For instance, the \emph{PageGenerator} \emph{generate\_context} method find +all the pages, transform them into objects, and populate the context with +them. Be careful to \emph{not} output anything using this context at this stage, +as it is likely to change by the effect of others generators. + +\item {} +\emph{generate\_output} is then called. And guess what is it made for ? Oh, +generating the output :) That's here that you may want to look at the context +and call the methods of the \emph{writer} object, that is passed at the first +argument of this function. In the \emph{PageGenerator} example, this method will +look at all the pages recorded in the global context, and output a file on +the disk (using the writer method \emph{write\_file}) for each page encountered. + +\end{itemize} + +\resetcurrentobjects +\hypertarget{--doc-faq}{} + +\section{Frequently Asked Questions (FAQ)} + +Here is a summary of the frequently asked questions for pelican. + + +\subsection{Is it mandatory to have a configuration file ?} + +No, it's not. Configurations files are just an easy way to configure pelican. +For the basic operations, it's possible to specify options while invoking +pelican with the command line (see \emph{pelican --help} for more informations about +that) + + +\subsection{I'm creating my own theme, how to use pygments ?} + +Pygment add some classes to the generated content, so the theming of your theme +will be done thanks to a css file. You can have a look to the one proposed by +default \href{http://pygments.org/demo/15101/}{on the project website} + + +\subsection{How do I create my own theme ?} + +Please refer yourself to \hyperlink{theming-pelican}{\emph{How to create themes for pelican}}. + + +\subsection{How can I help ?} + +You have different options to help. First, you can use pelican, and report any +idea or problem you have on \href{http://github.com/ametaireau/pelican/issues}{the bugtracker}. + +If you want to contribute, please have a look to \href{https://github.com/ametaireau/pelican/}{the git repository}, fork it, add your changes and do +a pull request, I'll review them as soon as possible. + +You can also contribute by creating themes, and making the documentation +better. + + +\renewcommand{\indexname}{Module Index} +\printmodindex +\renewcommand{\indexname}{Index} +\printindex +\end{document} diff --git a/docs/fr/_build/latex/fncychap.sty b/docs/fr/_build/latex/fncychap.sty new file mode 100644 index 00000000..9a56c04e --- /dev/null +++ b/docs/fr/_build/latex/fncychap.sty @@ -0,0 +1,683 @@ +%%% Copyright Ulf A. Lindgren +%%% +%%% Note Premission is granted to modify this file under +%%% the condition that it is saved using another +%%% file and package name. +%%% +%%% Revision 1.1 (1997) +%%% +%%% Jan. 8th Modified package name base date option +%%% Jan. 22th Modified FmN and FmTi for error in book.cls +%%% \MakeUppercase{#}->{\MakeUppercase#} +%%% Apr. 6th Modified Lenny option to prevent undesired +%%% skip of line. +%%% Nov. 8th Fixed \@chapapp for AMS +%%% +%%% Revision 1.2 (1998) +%%% +%%% Feb. 11th Fixed appendix problem related to Bjarne +%%% Aug. 11th Fixed problem related to 11pt and 12pt +%%% suggested by Tomas Lundberg. THANKS! +%%% +%%% Revision 1.3 (2004) +%%% Sep. 20th problem with frontmatter, mainmatter and +%%% backmatter, pointed out by Lapo Mori +%%% +%%% Revision 1.31 (2004) +%%% Sep. 21th problem with the Rejne definition streched text +%%% caused ugly gaps in the vrule aligned with the title +%%% text. Kindly pointed out to me by Hendri Adriaens +%%% +%%% Revision 1.32 (2005) +%%% Jun. 23th compatibility problem with the KOMA class 'scrbook.cls' +%%% a remedy is a redefinition of '\@schapter' in +%%% line with that used in KOMA. The problem was pointed +%%% out to me by Mikkel Holm Olsen +%%% +%%% Revision 1.33 (2005) +%%% Aug. 9th misspelled ``TWELV'' corrected, the error was pointed +%%% out to me by George Pearson +%%% +%%% Revision 1.34 (2007) +%%% Added an alternative to Lenny provided by Peter +%%% Osborne (2005-11-28) +%%% Corrected front, main and back matter, based on input +%%% from Bas van Gils (2006-04-24) +%%% Jul. 30th Added Bjornstrup option provided by Jean-Marc +%%% Francois (2007-01-05). +%%% Reverted to \MakeUppercase{#} see rev 1.1, solved +%%% problem with MakeUppercase and MakeLowercase pointed +%%% out by Marco Feuerstein (2007-06-06) + + +%%% Last modified Jul. 2007 + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{fncychap} + [2007/07/30 v1.34 + LaTeX package (Revised chapters)] + +%%%% For conditional inclusion of color +\newif\ifusecolor +\usecolorfalse + + + +%%%% DEFINITION OF Chapapp variables +\newcommand{\CNV}{\huge\bfseries} +\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} + + +%%%% DEFINITION OF TheChapter variables +\newcommand{\CNoV}{\huge\bfseries} +\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} + +\newif\ifUCN +\UCNfalse +\newif\ifLCN +\LCNfalse +\def\ChNameLowerCase{\LCNtrue\UCNfalse} +\def\ChNameUpperCase{\UCNtrue\LCNfalse} +\def\ChNameAsIs{\UCNfalse\LCNfalse} + +%%%%% Fix for AMSBook 971008 + +\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{} + + +%%%%% Fix for Bjarne and appendix 980211 + +\newif\ifinapp +\inappfalse +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \inapptrue% + \renewcommand\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + +\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{} + +%%%%% + + + +\newcommand{\FmN}[1]{% +\ifUCN + {\MakeUppercase{#1}}\LCNfalse +\else + \ifLCN + {\MakeLowercase{#1}}\UCNfalse + \else #1 + \fi +\fi} + + +%%%% DEFINITION OF Title variables +\newcommand{\CTV}{\Huge\bfseries} +\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} + +%%%% DEFINITION OF the basic rule width +\newlength{\RW} +\setlength{\RW}{1pt} +\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} + +\newif\ifUCT +\UCTfalse +\newif\ifLCT +\LCTfalse +\def\ChTitleLowerCase{\LCTtrue\UCTfalse} +\def\ChTitleUpperCase{\UCTtrue\LCTfalse} +\def\ChTitleAsIs{\UCTfalse\LCTfalse} +\newcommand{\FmTi}[1]{% +\ifUCT + {\MakeUppercase{#1}}\LCTfalse +\else + \ifLCT + {\MakeLowercase{#1}}\UCTfalse + \else {#1} + \fi +\fi} + + + +\newlength{\mylen} +\newlength{\myhi} +\newlength{\px} +\newlength{\py} +\newlength{\pyy} +\newlength{\pxx} + + +\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} + +\newcommand{\DOCH}{% + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 20\p@ + } +\newcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +\newcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + +%%%%%% SONNY DEF + +\DeclareOption{Sonny}{% + \ChNameVar{\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\Large\sf} + \ChRuleWidth{0.5pt} + \ChNameUpperCase + \renewcommand{\DOCH}{% + \raggedleft + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 40\p@} + \renewcommand{\DOTI}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} + \renewcommand{\DOTIS}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} +} + +%%%%%% LENNY DEF + +\DeclareOption{Lenny}{% + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{2pt} + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{1pt} + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\space\CNoV\thechapter% + \hskip1pt% + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%% Peter Osbornes' version of LENNY DEF + +\DeclareOption{PetersLenny}{% + +% five new lengths +\newlength{\bl} % bottom left : orig \space +\setlength{\bl}{6pt} +\newcommand{\BL}[1]{\setlength{\bl}{#1}} +\newlength{\br} % bottom right : orig 1pt +\setlength{\br}{1pt} +\newcommand{\BR}[1]{\setlength{\br}{#1}} +\newlength{\tl} % top left : orig 2pt +\setlength{\tl}{2pt} +\newcommand{\TL}[1]{\setlength{\tl}{#1}} +\newlength{\trr} % top right :orig 1pt +\setlength{\trr}{1pt} +\newcommand{\TR}[1]{\setlength{\trr}{#1}} +\newlength{\blrule} % top right :orig 1pt +\setlength{\trr}{0pt} +\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} + + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} +\renewcommand{\DOCH}{% + + +%%%%%%% tweaks for 1--9 and A--Z +\ifcase\c@chapter\relax% +\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3 +\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4 +\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5 +\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8 +\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9 +\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11 +\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16 +\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18 +\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19 +\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20 +\fi + +\ifinapp\ifcase\c@chapter\relax% +\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B +\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E +\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F +\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I +\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M +\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O +\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q +\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R +\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S +\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T +\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U +\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V +\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X +\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z +\fi\fi +%%%%%%% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{\tl} %MOD change 2pt to \tl + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{\trr}% MOD change 1pt to \tr + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD +% \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL + \hskip\br% %MOD 1pt to \br + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + + +% + + +%%%%%% BJORNSTRUP DEF + +\DeclareOption{Bjornstrup}{% + \usecolortrue + % pzc (Zapf Chancelery) is nice. ppl (Palatino) is cool too. + \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont} + \ChTitleVar{\raggedleft\Large\sffamily\bfseries} + + \setlength{\myhi}{10pt} % Space between grey box border and text + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\myhi} + \renewcommand{\DOCH}{% + \settowidth{\py}{\CNoV\thechapter} + \addtolength{\py}{-10pt} % Amount of space by which the +% % number is shifted right + \fboxsep=0pt% + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}% + \kern-\py\raise20pt% + \hbox{\color[gray]{.5}\CNoV\thechapter}\\% + } + + \renewcommand{\DOTI}[1]{% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \vskip-1ex% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } + + \renewcommand{\DOTIS}[1]{% + \fboxsep=0pt + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } +} + + +%%%%%%% GLENN DEF + + +\DeclareOption{Glenn}{% + \ChNameVar{\bfseries\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\bfseries\Large\rm} + \ChRuleWidth{1pt} + \ChNameUpperCase + \ChTitleUpperCase + \renewcommand{\DOCH}{% + \settoheight{\myhi}{\CTV\FmTi{Test}} + \setlength{\py}{\baselineskip} + \addtolength{\py}{\RW} + \addtolength{\py}{\myhi} + \setlength{\pyy}{\py} + \addtolength{\pyy}{-1\RW} + + \raggedright + \CNV\FmN{\@chapapp}\space\CNoV\thechapter + \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} + + \renewcommand{\DOTI}[1]{% + \addtolength{\pyy}{-4pt} + \settoheight{\myhi}{\CTV\FmTi{#1}} + \addtolength{\myhi}{\py} + \addtolength{\myhi}{-1\RW} + \vskip -1\pyy + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 80\p@} + +\newlength{\backskip} + \renewcommand{\DOTIS}[1]{% +% \setlength{\py}{10pt} +% \setlength{\pyy}{\py} +% \addtolength{\pyy}{\RW} +% \setlength{\myhi}{\baselineskip} +% \addtolength{\myhi}{\pyy} +% \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak +% \addtolength{}{} +%\vskip -1\baselineskip +% \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt +% \raggedleft\CTV\FmTi{#1}\par\nobreak +% \vskip 60\p@} +%% Fix suggested by Tomas Lundberg + \setlength{\py}{25pt} % eller vad man vill + \setlength{\pyy}{\py} + \setlength{\backskip}{\py} + \addtolength{\backskip}{2pt} + \addtolength{\pyy}{\RW} + \setlength{\myhi}{\baselineskip} + \addtolength{\myhi}{\pyy} + \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak + \vskip -1\backskip + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt % + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%%% CONNY DEF + +\DeclareOption{Conny}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Huge\rm\bfseries} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{2pt} + + \renewcommand{\DOCH}{% + \mghrulefill{3\RW}\par\nobreak + \vskip -0.5\baselineskip + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip -0.5\baselineskip + } + \renewcommand{\DOTI}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + \renewcommand{\DOTIS}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + } + +%%%%%%% REJNE DEF + +\DeclareOption{Rejne}{% + + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Large\rm} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settoheight{\py}{\CNoV\thechapter} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\py}{-1pt} + \CNV\FmN{\@chapapp}\par\nobreak + \vskip 20\p@ + \setlength{\myhi}{2\baselineskip} + \setlength{\px}{\myhi} + \addtolength{\px}{-1\RW} + \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip + 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak + \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31 + } + \renewcommand{\DOTI}[1]{% + \setlength{\mylen}{\textwidth} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\mylen}{-2\RW} + {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak% + \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}% + \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31 + } + \renewcommand{\DOTIS}[1]{% + \setlength{\py}{\fboxrule} + \setlength{\fboxrule}{\RW} + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\RW} + \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} + \setlength{\fboxrule}{\py} + \vskip 60\p@ + } + } + + +%%%%%%% BJARNE DEF + +\DeclareOption{Bjarne}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\raggedleft\normalsize\rm} + \ChNumVar{\raggedleft \bfseries\Large} + \ChTitleVar{\raggedleft \Large\rm} + \ChRuleWidth{1pt} + + +%% Note thechapter -> c@chapter fix appendix bug +%% Fixed misspelled 12 + + \newcounter{AlphaCnt} + \newcounter{AlphaDecCnt} + \newcommand{\AlphaNo}{% + \ifcase\number\theAlphaCnt + \ifnum\c@chapter=0 + ZERO\else{}\fi + \or ONE\or TWO\or THREE\or FOUR\or FIVE + \or SIX\or SEVEN\or EIGHT\or NINE\or TEN + \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN + \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi +} + + \newcommand{\AlphaDecNo}{% + \setcounter{AlphaDecCnt}{0} + \@whilenum\number\theAlphaCnt>0\do + {\addtocounter{AlphaCnt}{-10} + \addtocounter{AlphaDecCnt}{1}} + \ifnum\number\theAlphaCnt=0 + \else + \addtocounter{AlphaDecCnt}{-1} + \addtocounter{AlphaCnt}{10} + \fi + + + \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or + FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi + } + \newcommand{\TheAlphaChapter}{% + + \ifinapp + \thechapter + \else + \setcounter{AlphaCnt}{\c@chapter} + \ifnum\c@chapter<20 + \AlphaNo + \else + \AlphaDecNo\AlphaNo + \fi + \fi + } + \renewcommand{\DOCH}{% + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\par\nobreak + \CNoV\TheAlphaChapter\par\nobreak + \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak + \vskip 20\p@ + } + \renewcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + \renewcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +} + +\DeclareOption*{% + \PackageWarning{fancychapter}{unknown style option} + } + +\ProcessOptions* \relax + +\ifusecolor + \RequirePackage{color} +\fi +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + \DOCH + \fi + \fi + \interlinepenalty\@M + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424 + \DOTI{#1}% + \else% + \DOTIS{#1}% + \fi + }} + + +%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32) + +%%OUT: +%\def\@schapter#1{\if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} + +%%IN: +\def\@schapter#1{% +\if@twocolumn% + \@makeschapterhead{#1}% +\else% + \@makeschapterhead{#1}% + \@afterheading% +\fi} + +%%% End: To avoid problem with scrbook.cls (fncychap version 1.32) + +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \DOTIS{#1} + \vskip 40\p@ + }} + +\endinput + + diff --git a/docs/fr/_build/latex/howto.cls b/docs/fr/_build/latex/howto.cls new file mode 100644 index 00000000..6844533a --- /dev/null +++ b/docs/fr/_build/latex/howto.cls @@ -0,0 +1,70 @@ +% +% howto.cls for Sphinx +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{howto}[2008/10/18 Document class (Sphinx HOWTO)] + +% Pass all given class options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass[twoside]{article} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{ + \rule{\textwidth}{1pt} + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright} + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title} \par + {\em\large\py@HeaderFamily \py@release\releaseinfo} \par + \vspace{25pt} + {\Large\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular}} \par + \vspace{25pt} + \@date \par + \py@authoraddress \par + \end{flushright} + \@thanks + \setcounter{footnote}{0} + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{ + \begingroup + \parskip = 0mm + \py@OldTableofcontents + \endgroup + \rule{\textwidth}{1pt} + \vspace{12pt} +} + +\@ifundefined{fancyhf}{ + \pagestyle{plain}}{ + \pagestyle{normal}} % start this way; change for +\pagenumbering{arabic} % ToC & chapters + +\thispagestyle{empty} diff --git a/docs/fr/_build/latex/manual.cls b/docs/fr/_build/latex/manual.cls new file mode 100644 index 00000000..2fb77c62 --- /dev/null +++ b/docs/fr/_build/latex/manual.cls @@ -0,0 +1,108 @@ +% +% manual.cls for Sphinx +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{manual}[2008/10/18 Document class (Sphinx manual)] + +% Pass all given class options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass[twoside,openright]{report} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} +\setcounter{tocdepth}{1} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \rule{\textwidth}{1pt}% + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright}% + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title \par}% + {\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par} + \vfill + {\LARGE\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular} + \par} + \vfill\vfill + {\large + \@date \par + \vfill + \py@authoraddress \par + }% + \end{flushright}%\par + \@thanks + \end{titlepage}% + \cleardoublepage% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + + +% Catch the end of the {abstract} environment, but here make sure the abstract +% is followed by a blank page if the 'openright' option is used. +% +\let\py@OldEndAbstract=\endabstract +\renewcommand{\endabstract}{ + \if@openright + \ifodd\value{page} + \typeout{Adding blank page after the abstract.} + \vfil\pagebreak + \fi + \fi + \py@OldEndAbstract +} + +% This wraps the \tableofcontents macro with all the magic to get the spacing +% right and have the right number of pages if the 'openright' option has been +% used. This eliminates a fair amount of crud in the individual document files. +% +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{% + \setcounter{page}{1}% + \pagebreak% + \pagestyle{plain}% + {% + \parskip = 0mm% + \py@OldTableofcontents% + \if@openright% + \ifodd\value{page}% + \typeout{Adding blank page after the table of contents.}% + \pagebreak\hspace{0pt}% + \fi% + \fi% + \cleardoublepage% + }% + \pagenumbering{arabic}% + \@ifundefined{fancyhf}{}{\pagestyle{normal}}% +} + +% This is needed to get the width of the section # area wide enough in the +% library reference. Doing it here keeps it the same for all the manuals. +% +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} diff --git a/docs/fr/_build/latex/python.ist b/docs/fr/_build/latex/python.ist new file mode 100644 index 00000000..9ffa0f95 --- /dev/null +++ b/docs/fr/_build/latex/python.ist @@ -0,0 +1,11 @@ +line_max 100 +headings_flag 1 +heading_prefix " \\bigletter " + +preamble "\\begin{theindex} +\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} + +" + +symhead_positive "{Symbols}" +numhead_positive "{Numbers}" diff --git a/docs/fr/_build/latex/sphinx.sty b/docs/fr/_build/latex/sphinx.sty new file mode 100644 index 00000000..6b98d289 --- /dev/null +++ b/docs/fr/_build/latex/sphinx.sty @@ -0,0 +1,744 @@ +% +% sphinx.sty +% +% Adapted from the old python.sty, mostly written by Fred Drake, +% by Georg Brandl. +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{sphinx}[2008/05/01 LaTeX package (Sphinx markup)] + +\RequirePackage{textcomp} +\RequirePackage{fancyhdr} +\RequirePackage{fancybox} +\RequirePackage{titlesec} +\RequirePackage{tabulary} +\RequirePackage{amsmath} % for \text +\RequirePackage{makeidx} +\RequirePackage{framed} +\RequirePackage{color} +% For highlighted code. +\RequirePackage{fancyvrb} +% For table captions. +\RequirePackage{threeparttable} +% Handle footnotes in tables. +\RequirePackage{footnote} +\makesavenoteenv{tabulary} +% For floating figures in the text. +\RequirePackage{wrapfig} +% Separate paragraphs by space by default. +\RequirePackage{parskip} + +% Redefine these colors to your liking in the preamble. +\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} +\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} +\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} +% Redefine these colors to something not white if you want to have colored +% background and border for code examples. +\definecolor{VerbatimColor}{rgb}{1,1,1} +\definecolor{VerbatimBorderColor}{rgb}{1,1,1} + +% Uncomment these two lines to ignore the paper size and make the page +% size more like a typical published manual. +%\renewcommand{\paperheight}{9in} +%\renewcommand{\paperwidth}{8.5in} % typical squarish manual +%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' + +% For graphicx, check if we are compiling under latex or pdflatex. +\ifx\pdftexversion\undefined + \usepackage{graphicx} +\else + \usepackage[pdftex]{graphicx} +\fi + +% for PDF output, use colors and maximal compression +\newif\ifsphinxpdfoutput\sphinxpdfoutputfalse +\ifx\pdfoutput\undefined\else\ifcase\pdfoutput + \let\py@NormalColor\relax + \let\py@TitleColor\relax +\else + \sphinxpdfoutputtrue + \input{pdfcolor} + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} + \pdfcompresslevel=9 +\fi\fi + +% XeLaTeX can do colors, too +\ifx\XeTeXrevision\undefined\else + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} +\fi + +% Increase printable page size (copied from fullpage.sty) +\topmargin 0pt +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep + +% attempt to work a little better for A4 users +\textheight \paperheight +\advance\textheight by -2in + +\oddsidemargin 0pt +\evensidemargin 0pt +%\evensidemargin -.25in % for ``manual size'' documents +\marginparwidth 0.5in + +\textwidth \paperwidth +\advance\textwidth by -2in + + +% Style parameters and macros used by most documents here +\raggedbottom +\sloppy +\hbadness = 5000 % don't print trivial gripes + +\pagestyle{empty} % start this way; change for +\pagenumbering{roman} % ToC & chapters + +% Use this to set the font family for headers and other decor: +\newcommand{\py@HeaderFamily}{\sffamily\bfseries} + +% Redefine the 'normal' header/footer style when using "fancyhdr" package: +\@ifundefined{fancyhf}{}{ + % Use \pagestyle{normal} as the primary pagestyle for text. + \fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + } + % Update the plain style so we get the page number & footer line, + % but not a chapter or section title. This is to keep the first + % page of a chapter and the blank page between chapters `clean.' + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0.4pt} + } +} + +% Some custom font markup commands. +% +\newcommand{\strong}[1]{{\bf #1}} +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\bfcode}[1]{\code{\bfseries#1}} +\newcommand{\samp}[1]{`\code{#1}'} +\newcommand{\email}[1]{\textsf{#1}} + +\newcommand{\py@modulebadkey}{{--just-some-junk--}} + +% Redefine the Verbatim environment to allow border and background colors. +% The original environment is still used for verbatims within tables. +\let\OriginalVerbatim=\Verbatim +\let\endOriginalVerbatim=\endVerbatim + +% Play with vspace to be able to keep the indentation. +\newlength\distancetoright +\newlength\leftsidespace +\def\mycolorbox#1{% + \setlength\leftsidespace{\@totalleftmargin}% + \setlength\distancetoright{\textwidth}% + \advance\distancetoright -\@totalleftmargin % + \noindent\hspace*{\@totalleftmargin}% + \fcolorbox{VerbatimBorderColor}{VerbatimColor}{% + \begin{minipage}{\distancetoright}% + \smallskip% + \noindent\hspace*{-\leftsidespace}% + #1 + \end{minipage}% + }% +} +\def\FrameCommand{\mycolorbox} + +\renewcommand{\Verbatim}[1][1]{% + % The list environement is needed to control perfectly the vertical + % space. + \list{}{% + \setlength\parskip{0pt}% + \setlength\itemsep{0ex}% + \setlength\topsep{0ex}% + \setlength\partopsep{0pt}% + \setlength\leftmargin{0pt}% + }% + \item\MakeFramed {\FrameRestore}% + \small% + \OriginalVerbatim[#1]% +} +\renewcommand{\endVerbatim}{% + \endOriginalVerbatim% + \endMakeFramed% + \endlist% +} + + +% Index-entry generation support. +% + +% Command to generate two index entries (using subentries) +\newcommand{\indexii}[2]{\index{#1!#2}\index{#2!#1}} + +% And three entries (using only one level of subentries) +\newcommand{\indexiii}[3]{\index{#1!#2 #3}\index{#2!#3, #1}\index{#3!#1 #2}} + +% And four (again, using only one level of subentries) +\newcommand{\indexiv}[4]{ +\index{#1!#2 #3 #4} +\index{#2!#3 #4, #1} +\index{#3!#4, #1 #2} +\index{#4!#1 #2 #3} +} + +% support for the module index +\newif\ifpy@UseModuleIndex +\py@UseModuleIndexfalse + +\newcommand{\makemodindex}{ + \newwrite\modindexfile + \openout\modindexfile=mod\jobname.idx + \py@UseModuleIndextrue +} + +\newcommand{\printmodindex}{ + \@input@{mod\jobname.ind} +} + +% Add the defining entry for a module +\newcommand{\py@modindex}[2]{% + \renewcommand{\py@thismodule}{#1} + \ifpy@UseModuleIndex% + \@ifundefined{py@modplat@\py@thismodulekey}{ + \write\modindexfile{\protect\indexentry{#1@{\texttt{#1}}|hyperpage}{\thepage}}% + }{\write\modindexfile{\protect\indexentry{#1@{\texttt{#1 }% + \emph{(\platformof{\py@thismodulekey})}}|hyperpage}{\thepage}}% + } + \fi% +} + +% "Current" keys +\newcommand{\py@thisclass}{} +\newcommand{\py@thismodule}{} +\newcommand{\py@thismodulekey}{} +\newcommand{\py@thismoduletype}{} +\newcommand{\py@emptymodule}{} + +% \declaremodule[key]{type}{name} +\newcommand{\declaremodule}[3][\py@modulebadkey]{ + \renewcommand{\py@thismoduletype}{#2} + \ifx\py@modulebadkey#1 + \renewcommand{\py@thismodulekey}{#3} + \else + \renewcommand{\py@thismodulekey}{#1} + \fi + \py@modindex{#3}{} + %\label{module-\py@thismodulekey} +} + +% Record module platforms for the Module Index +\newif\ifpy@ModPlatformFileIsOpen \py@ModPlatformFileIsOpenfalse +\long\def\py@writeModPlatformFile#1{% + \protected@write\py@ModPlatformFile% + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}% + {\string#1}% +} +\newcommand{\py@ModPlatformFilename}{\jobname.pla} +\newcommand{\platform}[1]{ + \ifpy@ModPlatformFileIsOpen\else + \newwrite\py@ModPlatformFile + \openout\py@ModPlatformFile=\py@ModPlatformFilename + \py@ModPlatformFileIsOpentrue + \fi + \py@writeModPlatformFile{\py@defplatform{\py@thismodulekey}{#1}} +} +\newcommand{\py@defplatform}[2]{\expandafter\def\csname py@modplat@#1\endcsname{#2}} +\newcommand{\platformof}[1]{\csname py@modplat@#1\endcsname} + +\InputIfFileExists{\jobname.pla}{}{} + +% \moduleauthor{name}{email} +\newcommand{\moduleauthor}[2]{} + +% \sectionauthor{name}{email} +\newcommand{\sectionauthor}[2]{} + +% Ignore module synopsis. +\newcommand{\modulesynopsis}[1]{} + +% Reset "current" objects. +\newcommand{\resetcurrentobjects}{ + \renewcommand{\py@thisclass}{} + \renewcommand{\py@thismodule}{} + \renewcommand{\py@thismodulekey}{} + \renewcommand{\py@thismoduletype}{} +} + +% Augment the sectioning commands used to get our own font family in place, +% and reset some internal data items: +\titleformat{\section}{\Large\py@HeaderFamily}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large\py@HeaderFamily}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{\py@HeaderFamily}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\paragraph}{\large\py@HeaderFamily}% + {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} + + +% Now for a lot of semantically-loaded environments that do a ton of magical +% things to get the right formatting and index entries for the stuff in +% Python modules and C API. + + +% {fulllineitems} is used in one place in libregex.tex, but is really for +% internal use in this file. +% +\newcommand{\py@itemnewline}[1]{% + \@tempdima\linewidth% + \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% +} + +\newenvironment{fulllineitems}{ + \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt + \rightmargin 0pt \topsep -\parskip \partopsep \parskip + \itemsep -\parsep + \let\makelabel=\py@itemnewline} +}{\end{list}} + +% \optional is mostly for use in the arguments parameters to the various +% {*desc} environments defined below, but may be used elsewhere. Known to +% be used in the debugger chapter. +% +% Typical usage: +% +% \begin{funcdesc}{myfunc}{reqparm\optional{, optparm}} +% ^^^ ^^^ +% No space here No space here +% +% When a function has multiple optional parameters, \optional should be +% nested, not chained. This is right: +% +% \begin{funcdesc}{myfunc}{\optional{parm1\optional{, parm2}}} +% +\let\py@badkey=\@undefined + +\newcommand{\optional}[1]{% + {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} + +% This can be used when a function or method accepts an varying number +% of arguments, such as by using the *args syntax in the parameter list. +\newcommand{\py@moreargs}{...} + +% This can be used when you don't want to document the parameters to a +% function or method, but simply state that it's an alias for +% something else. +\newcommand{\py@unspecified}{...} + +\newcommand{\py@varvars}[1]{{% + {\let\unspecified=\py@unspecified% + \let\moreargs=\py@moreargs% + \emph{#1}}}} + +\newlength{\py@argswidth} +\newcommand{\py@sigparams}[1]{% + \parbox[t]{\py@argswidth}{\py@varvars{#1}\code{)}}} +\newcommand{\py@sigline}[2]{% + \settowidth{\py@argswidth}{#1\code{(}}% + \addtolength{\py@argswidth}{-2\py@argswidth}% + \addtolength{\py@argswidth}{\textwidth}% + \item[#1\code{(}\py@sigparams{#2}]} + +% C functions ------------------------------------------------------------ +% \begin{cfuncdesc}[refcount]{type}{name}{arglist} +% Note that the [refcount] slot should only be filled in by +% tools/anno-api.py; it pulls the value from the refcounts database. +\newcommand{\cfuncline}[3]{ + \py@sigline{\code{#1 \bfcode{#2}}}{#3}% +} +\newenvironment{cfuncdesc}[3]{ + \begin{fulllineitems} + \cfuncline{#1}{#2}{#3} +}{\end{fulllineitems}} + +% C variables ------------------------------------------------------------ +% \begin{cvardesc}{type}{name} +\newenvironment{cvardesc}[2]{ + \begin{fulllineitems} + \item[\code{#1 \bfcode{#2}}] +}{\end{fulllineitems}} + +% C data types ----------------------------------------------------------- +% \begin{ctypedesc}[index name]{typedef name} +\newenvironment{ctypedesc}[2][\py@badkey]{ + \begin{fulllineitems} + \item[\bfcode{#2}] +}{\end{fulllineitems}} + +% C type fields ---------------------------------------------------------- +% \begin{cmemberdesc}{container type}{ctype}{membername} +\newcommand{\cmemberline}[3]{ + \item[\code{#2 \bfcode{#3}}] +} +\newenvironment{cmemberdesc}[3]{ + \begin{fulllineitems} + \cmemberline{#1}{#2}{#3} +}{\end{fulllineitems}} + +% Funky macros ----------------------------------------------------------- +% \begin{csimplemacrodesc}{name} +% -- "simple" because it has no args; NOT for constant definitions! +\newenvironment{csimplemacrodesc}[1]{ + \begin{fulllineitems} + \item[\bfcode{#1}] +}{\end{fulllineitems}} + +% simple functions (not methods) ----------------------------------------- +% \begin{funcdesc}{name}{args} +\newcommand{\funcline}[2]{% + \py@sigline{\bfcode{#1}}{#2}} +\newenvironment{funcdesc}[2]{ + \begin{fulllineitems} + \funcline{#1}{#2} +}{\end{fulllineitems}} + +% classes ---------------------------------------------------------------- +% \begin{classdesc}{name}{constructor args} +\newcommand{\classline}[2]{ + \py@sigline{\strong{class }\bfcode{#1}}{#2}} +\newenvironment{classdesc}[2]{ + % Using \renewcommand doesn't work for this, for unknown reasons: + \global\def\py@thisclass{#1} + \begin{fulllineitems} + \classline{#1}{#2} +}{\end{fulllineitems}} + +% \begin{excclassdesc}{name}{constructor args} +% but indexes as an exception +\newenvironment{excclassdesc}[2]{ + % Using \renewcommand doesn't work for this, for unknown reasons: + \global\def\py@thisclass{#1} + \begin{fulllineitems} + \py@sigline{\strong{exception }\bfcode{#1}}{#2}% +}{\end{fulllineitems}} + +% There is no corresponding {excclassdesc*} environment. To describe +% a class exception without parameters, use the {excdesc} environment. + + +\let\py@classbadkey=\@undefined + +% object method ---------------------------------------------------------- +% \begin{methoddesc}[classname]{methodname}{args} +\newcommand{\methodline}[3][\@undefined]{ + \py@sigline{\bfcode{#2}}{#3}} +\newenvironment{methoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \methodline{#2}{#3} + \else + \def\py@thisclass{#1} + \methodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% static method ---------------------------------------------------------- +% \begin{staticmethoddesc}[classname]{methodname}{args} +\newcommand{\staticmethodline}[3][\@undefined]{ + \py@sigline{static \bfcode{#2}}{#3}} +\newenvironment{staticmethoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \staticmethodline{#2}{#3} + \else + \def\py@thisclass{#1} + \staticmethodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% class method ---------------------------------------------------------- +% \begin{classmethoddesc}[classname]{methodname}{args} +\newcommand{\classmethodline}[3][\@undefined]{ + \py@sigline{class \bfcode{#2}}{#3}} +\newenvironment{classmethoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \classmethodline{#2}{#3} + \else + \def\py@thisclass{#1} + \classmethodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% object data attribute -------------------------------------------------- +% \begin{memberdesc}[classname]{membername} +\newcommand{\memberline}[2][\py@classbadkey]{% + \ifx\@undefined#1\relax + \item[\bfcode{#2}] + \else + \item[\bfcode{#2}] + \fi +} +\newenvironment{memberdesc}[2][\py@classbadkey]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \memberline{#2} + \else + \def\py@thisclass{#1} + \memberline{#2} + \fi +}{\end{fulllineitems}} + +% For exceptions: -------------------------------------------------------- +% \begin{excdesc}{name} +% -- for constructor information, use excclassdesc instead +\newenvironment{excdesc}[1]{ + \begin{fulllineitems} + \item[\strong{exception }\bfcode{#1}] +}{\end{fulllineitems}} + +% Module data or constants: ---------------------------------------------- +% \begin{datadesc}{name} +\newcommand{\dataline}[1]{% + \item[\bfcode{#1}]\nopagebreak} +\newenvironment{datadesc}[1]{ + \begin{fulllineitems} + \dataline{#1} +}{\end{fulllineitems}} + +% bytecode instruction --------------------------------------------------- +% \begin{opcodedesc}{name}{var} +% -- {var} may be {} +\newenvironment{opcodedesc}[2]{ + \begin{fulllineitems} + \item[\bfcode{#1}\quad\emph{#2}] +}{\end{fulllineitems}} + +% generic description ---------------------------------------------------- +\newcommand{\descline}[1]{% + \item[\bfcode{#1}]\nopagebreak% +} +\newenvironment{describe}[1]{ + \begin{fulllineitems} + \descline{#1} +}{\end{fulllineitems}} + +% This version is being checked in for the historical record; it shows +% how I've managed to get some aspects of this to work. It will not +% be used in practice, so a subsequent revision will change things +% again. This version has problems, but shows how to do something +% that proved more tedious than I'd expected, so I don't want to lose +% the example completely. +% +\newcommand{\grammartoken}[1]{\texttt{#1}} +\newenvironment{productionlist}[1][\py@badkey]{ + \def\optional##1{{\Large[}##1{\Large]}} + \def\production##1##2{\code{##1}&::=&\code{##2}\\} + \def\productioncont##1{& &\code{##1}\\} + \def\token##1{##1} + \let\grammartoken=\token + \parindent=2em + \indent + \begin{tabular}{lcl} +}{% + \end{tabular} +} + +% Notices / Admonitions +% +\newlength{\py@noticelength} + +\newcommand{\py@heavybox}{ + \setlength{\fboxrule}{1pt} + \setlength{\fboxsep}{7pt} + \setlength{\py@noticelength}{\linewidth} + \addtolength{\py@noticelength}{-2\fboxsep} + \addtolength{\py@noticelength}{-2\fboxrule} + \setlength{\shadowsize}{3pt} + \Sbox + \minipage{\py@noticelength} +} +\newcommand{\py@endheavybox}{ + \endminipage + \endSbox + \fbox{\TheSbox} +} + +% Some are quite plain: +\newcommand{\py@noticestart@note}{} +\newcommand{\py@noticeend@note}{} +\newcommand{\py@noticestart@hint}{} +\newcommand{\py@noticeend@hint}{} +\newcommand{\py@noticestart@important}{} +\newcommand{\py@noticeend@important}{} +\newcommand{\py@noticestart@tip}{} +\newcommand{\py@noticeend@tip}{} + +% Others gets more visible distinction: +\newcommand{\py@noticestart@warning}{\py@heavybox} +\newcommand{\py@noticeend@warning}{\py@endheavybox} +\newcommand{\py@noticestart@caution}{\py@heavybox} +\newcommand{\py@noticeend@caution}{\py@endheavybox} +\newcommand{\py@noticestart@attention}{\py@heavybox} +\newcommand{\py@noticeend@attention}{\py@endheavybox} +\newcommand{\py@noticestart@danger}{\py@heavybox} +\newcommand{\py@noticeend@danger}{\py@endheavybox} +\newcommand{\py@noticestart@error}{\py@heavybox} +\newcommand{\py@noticeend@error}{\py@endheavybox} + +\newenvironment{notice}[2]{ + \def\py@noticetype{#1} + \csname py@noticestart@#1\endcsname + \par\strong{#2} +}{\csname py@noticeend@\py@noticetype\endcsname} + +% Allow the release number to be specified independently of the +% \date{}. This allows the date to reflect the document's date and +% release to specify the release that is documented. +% +\newcommand{\py@release}{} +\newcommand{\version}{} +\newcommand{\shortversion}{} +\newcommand{\releaseinfo}{} +\newcommand{\releasename}{Release} +\newcommand{\release}[1]{% + \renewcommand{\py@release}{\releasename\space\version}% + \renewcommand{\version}{#1}} +\newcommand{\setshortversion}[1]{% + \renewcommand{\shortversion}{#1}} +\newcommand{\setreleaseinfo}[1]{% + \renewcommand{\releaseinfo}{#1}} + +% Allow specification of the author's address separately from the +% author's name. This can be used to format them differently, which +% is a good thing. +% +\newcommand{\py@authoraddress}{} +\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} + +% This sets up the fancy chapter headings that make the documents look +% at least a little better than the usual LaTeX output. +% +\@ifundefined{ChTitleVar}{}{ + \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} + \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} + \ChTitleVar{\raggedleft \rm\Huge\py@HeaderFamily} + % This creates chapter heads without the leading \vspace*{}: + \def\@makechapterhead#1{% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \DOCH + \fi + \interlinepenalty\@M + \DOTI{#1} + } + } +} + +% Redefine description environment so that it is usable inside fulllineitems. +% +\renewcommand{\description}{% + \list{}{\labelwidth\z@% + \itemindent-\leftmargin% + \labelsep5pt% + \let\makelabel=\descriptionlabel}} + +% Definition lists; requested by AMK for HOWTO documents. Probably useful +% elsewhere as well, so keep in in the general style support. +% +\newenvironment{definitions}{% + \begin{description}% + \def\term##1{\item[##1]\mbox{}\\*[0mm]} +}{% + \end{description}% +} + +% Tell TeX about pathological hyphenation cases: +\hyphenation{Base-HTTP-Re-quest-Hand-ler} + + +% The following is stuff copied from docutils' latex writer. +% +\newcommand{\optionlistlabel}[1]{\bf #1 \hfill} +\newenvironment{optionlist}[1] +{\begin{list}{} + {\setlength{\labelwidth}{#1} + \setlength{\rightmargin}{1cm} + \setlength{\leftmargin}{\rightmargin} + \addtolength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}{\optionlistlabel}} +}{\end{list}} + +\newlength{\lineblockindentation} +\setlength{\lineblockindentation}{2.5em} +\newenvironment{lineblock}[1] +{\begin{list}{} + {\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \topsep0pt\itemsep0.15\baselineskip\parsep0pt + \leftmargin#1} + \raggedright} +{\end{list}} + +% Redefine includgraphics for avoiding images larger than the screen size +% If the size is not specified. +\let\py@Oldincludegraphics\includegraphics + +\newbox\image@box% +\newdimen\image@width% +\renewcommand\includegraphics[2][\@empty]{% + \ifx#1\@empty% + \setbox\image@box=\hbox{\py@Oldincludegraphics{#2}}% + \image@width\wd\image@box% + \ifdim \image@width>\linewidth% + \setbox\image@box=\hbox{\py@Oldincludegraphics[width=\linewidth]{#2}}% + \box\image@box% + \else% + \py@Oldincludegraphics{#2}% + \fi% + \else% + \py@Oldincludegraphics[#1]{#2}% + \fi% +} + + +% Fix the index and bibliography environments to add an entry to the Table of +% Contents; this is much nicer than just having to jump to the end of the book +% and flip around, especially with multiple indexes. +% +\let\py@OldTheindex=\theindex +\renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py@OldTheindex + \addcontentsline{toc}{chapter}{\indexname} +} + +\let\py@OldThebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py@OldThebibliography{1} + \addcontentsline{toc}{chapter}{\bibname} +} + +% Include hyperref last. +\RequirePackage[colorlinks,breaklinks, + linkcolor=InnerLinkColor,filecolor=OuterLinkColor, + menucolor=OuterLinkColor,pagecolor=OuterLinkColor, + urlcolor=OuterLinkColor,citecolor=InnerLinkColor]{hyperref} + +% From docutils.writers.latex2e +\providecommand{\DUspan}[2]{% + {% group ("span") to limit the scope of styling commands + \@for\node@class@name:=#1\do{% + \ifcsname docutilsrole\node@class@name\endcsname% + \csname docutilsrole\node@class@name\endcsname% + \fi% + }% + {#2}% node content + }% close "span" +} diff --git a/docs/fr/_build/latex/tabulary.sty b/docs/fr/_build/latex/tabulary.sty new file mode 100644 index 00000000..ba83c0af --- /dev/null +++ b/docs/fr/_build/latex/tabulary.sty @@ -0,0 +1,452 @@ +%% +%% This is file `tabulary.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabulary.dtx (with options: `package') +%% DRAFT VERSION +%% +%% File `tabulary.dtx'. +%% Copyright (C) 1995 1996 2003 David Carlisle +%% This file may be distributed under the terms of the LPPL. +%% See 00readme.txt for details. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tabulary} + [2007/10/02 v0.9 tabulary package (DPC)] +\RequirePackage{array} +\catcode`\Z=14 +\DeclareOption{debugshow}{\catcode`\Z=9\relax} +\ProcessOptions +\def\arraybackslash{\let\\=\@arraycr} +\def\@finalstrut#1{% + \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1} +\newcount\TY@count +\def\tabulary{% + \let\TY@final\tabular + \let\endTY@final\endtabular + \TY@tabular} +\def\TY@tabular#1{% + \edef\TY@{\@currenvir}% + {\ifnum0=`}\fi + \@ovxx\TY@linewidth + \@ovyy\TY@tablewidth + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@F\the\count@\endcsname\relax + \@tempswafalse + \else + \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname + \csname TY@F\the\count@\endcsname + \global\expandafter\let\csname TY@F\the\count@\endcsname\relax + \expandafter\let\csname TY@S\the\count@\expandafter\endcsname + \csname TY@\the\count@\endcsname + \fi}% + \global\TY@count\@ne + \TY@width\xdef{0pt}% + \global\TY@tablewidth\z@ + \global\TY@linewidth#1\relax +Z\message{^^J^^JTable^^J% +Z Target Width: \the\TY@linewidth^^J% +Z \string\tabcolsep: \the\tabcolsep\space +Z \string\arrayrulewidth: \the\arrayrulewidth\space +Z \string\doublerulesep: \the\doublerulesep^^J% +Z \string\tymin: \the\tymin\space +Z \string\tymax: \the\tymax^^J}% + \let\@classz\TY@classz + \let\verb\TX@verb + \toks@{}\TY@get@body} +\let\TY@@mkpream\@mkpream +\def\TY@mkpream{% + \def\@addamp{% + \if@firstamp \@firstampfalse \else + \global\advance\TY@count\@ne + \edef\@preamble{\@preamble &}\fi + \TY@width\xdef{0pt}}% + \def\@acol{% + \TY@subwidth\col@sep + \@addtopreamble{\hskip\col@sep}}% + \let\@arrayrule\TY@arrayrule + \let\@classvi\TY@classvi + \def\@classv{\save@decl + \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@ + \sbox\z@{\d@llarbegin\@nextchar\d@llarend}% + \TY@subwidth{\wd\z@}% + \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}% + \prepnext@tok}% + \global\let\@mkpream\TY@@mkpream + \TY@@mkpream} +\def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble \vline} +\def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \@addtopreamble{\hskip \doublerulesep}\or + \@acol \or + \@classvii + \fi} +\def\TY@tab{% + \setbox\z@\hbox\bgroup + \let\[$\let\]$% + \let\equation$\let\endequation$% + \col@sep\tabcolsep + \let\d@llarbegin\begingroup\let\d@llarend\endgroup + \let\@mkpream\TY@mkpream + \def\multicolumn##1##2##3{\multispan##1\relax}% + \CT@start\TY@tabarray} +\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}} +\def\TY@array[#1]{\@array[t]} +\def\TY@width#1{% + \expandafter#1\csname TY@\the\TY@count\endcsname} +\def\TY@subwidth#1{% + \TY@width\dimen@ + \advance\dimen@-#1\relax + \TY@width\xdef{\the\dimen@}% + \global\advance\TY@linewidth-#1\relax} +\def\endtabulary{% + \gdef\@halignto{}% + \let\TY@footnote\footnote% + \def\footnote{}% prevent footnotes from doing anything + \expandafter\TY@tab\the\toks@ + \crcr\omit + {\xdef\TY@save@row{}% + \loop + \advance\TY@count\m@ne + \ifnum\TY@count>\z@ + \xdef\TY@save@row{\TY@save@row&\omit}% + \repeat}\TY@save@row + \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1 + \unskip\global\setbox1=\lastbox}\egroup + \dimen@\TY@linewidth + \divide\dimen@\TY@count + \ifdim\dimen@<\tymin + \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}% + \tymin\dimen@ + \fi + \setbox\tw@=\hbox{\unhbox\@ne + \loop +\@tempdima=\lastskip +\ifdim\@tempdima>\z@ +Z \message{ecs=\the\@tempdima^^J}% + \global\advance\TY@linewidth-\@tempdima +\fi + \unskip + \setbox\tw@=\lastbox + \ifhbox\tw@ +Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}% + \ifdim\wd\tw@>\tymax + \wd\tw@\tymax +Z \message{> max\space}% +Z \else +Z \message{ \@spaces\space}% + \fi + \TY@width\dimen@ +Z \message{\the\dimen@\space}% + \advance\dimen@\wd\tw@ +Z \message{Final=\the\dimen@\space}% + \TY@width\xdef{\the\dimen@}% + \ifdim\dimen@<\tymin +Z \message{< tymin}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else + \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@ +Z \message{***}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else +Z \message{> tymin}% + \global\advance\TY@tablewidth\dimen@ + \global\expandafter\let\csname TY@F\the\TY@count\endcsname + \maxdimen + \fi\fi + \advance\TY@count\m@ne + \repeat}% + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@count\z@ + \let\TY@box\TY@box@v + \let\footnote\TY@footnote % restore footnotes + {\expandafter\TY@final\the\toks@\endTY@final}% + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax + \@tempswafalse + \else + \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname + \csname TY@SF\the\count@\endcsname + \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname + \csname TY@S\the\count@\endcsname + \fi}% + \TY@linewidth\@ovxx + \TY@tablewidth\@ovyy + \ifnum0=`{\fi}} +\def\TY@checkmin{% + \let\TY@checkmin\relax +\ifdim\TY@tablewidth>\z@ + \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth + \ifdim\TY@tablewidth <\linewidth + \def\TY@ratio{1}% + \fi +\else + \TY@warn{No suitable columns!}% + \def\TY@ratio{1}% +\fi +\count@\z@ +Z \message{^^JLine Width: \the\TY@linewidth, +Z Natural Width: \the\TY@tablewidth, +Z Ratio: \TY@ratio^^J}% +\@tempdima\z@ +\loop +\ifnum\count@<\TY@count +\advance\count@\@ne + \ifdim\csname TY@F\the\count@\endcsname>\tymin + \dimen@\csname TY@\the\count@\endcsname + \dimen@\TY@ratio\dimen@ + \ifdim\dimen@<\tymin +Z \message{Column \the\count@\space ->}% + \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin + \global\advance\TY@linewidth-\tymin + \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname + \let\TY@checkmin\TY@@checkmin + \else + \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}% + \advance\@tempdima\csname TY@F\the\count@\endcsname + \fi + \fi +Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }% +\repeat +Z \message{^^JTotal:\the\@tempdima^^J}% +} +\let\TY@@checkmin\TY@checkmin +\newdimen\TY@linewidth +\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}} +\newdimen\tymin +\tymin=10pt +\newdimen\tymax +\tymax=2\textwidth +\def\@testpach{\@chclass + \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else + \ifnum \@lastchclass=7 5 \else + \ifnum \@lastchclass=8 \tw@ \else + \ifnum \@lastchclass=9 \thr@@ + \else \z@ + \ifnum \@lastchclass = 10 \else + \edef\@nextchar{\expandafter\string\@nextchar}% + \@chnum + \if \@nextchar c\z@ \else + \if \@nextchar l\@ne \else + \if \@nextchar r\tw@ \else + \if \@nextchar C7 \else + \if \@nextchar L8 \else + \if \@nextchar R9 \else + \if \@nextchar J10 \else + \z@ \@chclass + \if\@nextchar |\@ne \else + \if \@nextchar !6 \else + \if \@nextchar @7 \else + \if \@nextchar <8 \else + \if \@nextchar >9 \else + 10 + \@chnum + \if \@nextchar m\thr@@\else + \if \@nextchar p4 \else + \if \@nextchar b5 \else + \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi + \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \ifcase\@chnum + \hfil \d@llarbegin\insert@column\d@llarend \hfil \or + \kern\z@ + \d@llarbegin \insert@column \d@llarend \hfil \or + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious "s" case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi}\prepnext@tok} +\def\TY@box#1{% + \ifx\centering#1% + \hfil \d@llarbegin\insert@column\d@llarend \hfil \else + \ifx\raggedright#1% + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfil \else + \ifx\raggedleft#1% + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else + \ifx\relax#1% + \d@llarbegin \insert@column \d@llarend + \fi \fi \fi \fi} +\def\TY@box@v#1{% + \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}% + #1\arraybackslash\tyformat + \insert@column\@endpbox} +\newdimen\TY@tablewidth +\def\Gscale@div#1#2#3{% + \setlength\dimen@{#3}% + \ifdim\dimen@=\z@ + \PackageError{graphics}{Division by 0}\@eha + \dimen@#2% + \fi + \edef\@tempd{\the\dimen@}% + \setlength\dimen@{#2}% + \count@65536\relax + \ifdim\dimen@<\z@ + \dimen@-\dimen@ + \count@-\count@ + \fi + \loop + \ifdim\dimen@<8192\p@ + \dimen@\tw@\dimen@ + \divide\count@\tw@ + \repeat + \dimen@ii=\@tempd\relax + \divide\dimen@ii\count@ + \divide\dimen@\dimen@ii + \edef#1{\strip@pt\dimen@}} +\long\def\TY@get@body#1\end + {\toks@\expandafter{\the\toks@#1}\TY@find@end} +\def\TY@find@end#1{% + \def\@tempa{#1}% + \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa + \else\toks@\expandafter + {\the\toks@\end{#1}}\expandafter\TY@get@body\fi} +\def\TY@warn{% + \PackageWarning{tabulary}} +\catcode`\Z=11 +\AtBeginDocument{ +\@ifpackageloaded{colortbl}{% +\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1% + \expandafter{% + \expandafter\let\expandafter\CT@setup\expandafter\relax + \expandafter\let\expandafter\CT@color\expandafter\relax + \expandafter\let\expandafter\CT@do@color\expandafter\relax + \expandafter\let\expandafter\color\expandafter\relax + \expandafter\let\expandafter\CT@column@color\expandafter\relax + \expandafter\let\expandafter\CT@row@color\expandafter\relax + \@mkpream{#1}} +\let\TY@@mkpream\@mkpream +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok +\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \setbox\z@\hbox\bgroup\bgroup + \ifcase\@chnum + \hskip\stretch{.5}\kern\z@ + \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfill \or + \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious s case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi + \egroup\egroup +\begingroup + \CT@setup + \CT@column@color + \CT@row@color + \CT@do@color +\endgroup + \@tempdima\ht\z@ + \advance\@tempdima\minrowclearance + \vrule\@height\@tempdima\@width\z@ +\unhbox\z@ +}\prepnext@tok}% + \def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble{{\CT@arc@\vline}}}% + \def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \ifx\CT@drsc@\relax + \@addtopreamble{\hskip\doublerulesep}% + \else + \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% + \fi\or + \@acol \or + \@classvii + \fi}% +}{% +\let\CT@start\relax +} +} +{\uccode`\*=`\ % +\uppercase{\gdef\TX@verb{% + \leavevmode\null\TX@vwarn + {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces + \@ifstar{\let~*\TX@vb}{\TX@vb}}}} +\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}% + \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!} +\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= } +\begingroup +\catcode`\*=\catcode`\# +\catcode`\#=12 +\gdef\TX@vfirst{% + \if\@tempa#% + \def\@tempb{\TX@v@#}% + \else + \let\@tempb\TX@v@ + \if\@tempa\space~\else\@tempa\fi + \fi + \@tempb} +\gdef\TX@v@*1 *2{% + \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2} +\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2} +\endgroup +\def\TX@vwarn{% + \@warning{\noexpand\verb may be unreliable inside tabularx/y}% + \global\let\TX@vwarn\@empty} +\endinput +%% +%% End of file `tabulary.sty'. diff --git a/docs/fr/basis.rst b/docs/fr/basis.rst new file mode 100644 index 00000000..7a6fd118 --- /dev/null +++ b/docs/fr/basis.rst @@ -0,0 +1,58 @@ +Les bases de Pelican +#################### + +Créer son premier article +========================= + +Pour créer notre premier article, nous allons éditer un fichier, par exemple premier_article.rst :: + + Premier article pour Pelican + ############################ + :author: Guillaume + :date: 2011-01-08 10:20 + :category: GNU-Linux + :tags: tutoriel, git + Ceci est un tutoriel pour configurer git. + Bla, bla, bla .... + +Maintenant que ce fichier est créé, on va lancer la création du blog :: + + pelican . + +Vous aller obtenir une sortie comme celle ci — $PATH représente le dossier où vous +avez créé votre article :: + + [ok] writing $PATH/output/feeds/all.atom.xml + [ok] writing $PATH/output/feeds/GNU/Linux.atom.xml + [ok] writing $PATH/output/feeds/all-en.atom.xml + [ok] writing $PATH/output/premier-article-pour-pelican.html + [ok] writing $PATH/output/index.html + [ok] writing $PATH/output/tags.html + [ok] writing $PATH/output/categories.html + [ok] writing $PATH/output/archives.html + [ok] writing $PATH/output/tag/tutoriel.html + [ok] writing $PATH/output/tag/git.html + [ok] writing $PATH/output/category/GNU-Linux.html + + +Première analyse +================ + +Nous allons décortiquer un peu tout ça ensemble. + +* Un dossier output/ a été créé pour y mettre le fichiers xml et html du blog. +* Dans le dossier feeds/, nous retrouvons les différents flux de syndication. +* Le fichier de l’article et la page principale du blog a été généré. +* Le répertoire tag/ propose une page par tag. +* La page correspondant à la catégorie est générée dans le répertoire category/ + +Si vous ouvrez le fichier index.html — ou un autre — avec votre navigateur, vous +remarquerez que : + +* Le thème utilisé par défaut est notmyidea +* Le nom du blog est A Pelican Blog. + +Bien évidemment, il y a des paramètres de base que l’on peut modifier pour mettre +un peu tout ça à sa sauce. C’est ce que nous allons voir au travers du fichier de configuration. + + diff --git a/docs/fr/conf.py b/docs/fr/conf.py new file mode 100644 index 00000000..301ec096 --- /dev/null +++ b/docs/fr/conf.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# sys.path.insert(0, os.path.abspath('..')) + +# -- General configuration ----------------------------------------------------- +templates_path = ['../_templates'] +extensions = ['sphinx.ext.autodoc',] +source_suffix = '.rst' +master_doc = 'index' +project = u'Pelican' +copyright = u'2010, Alexis Metaireau and contributors' +exclude_patterns = ['_build'] +pygments_style = 'sphinx' +version = "2" +release = version + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +sys.path.append(os.path.abspath('../_themes')) +html_theme_path = ['../_themes'] +html_theme = 'flask_small' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + 'index_logo': 'pelican.png', + 'github_fork': 'ametaireau/pelican', +} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['../_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Raclettedoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'Raclette.tex', u'Raclette Documentation', + u'Alexis Métaireau', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'raclette', u'Raclette Documentation', + [u'Alexis Métaireau'], 1) +] diff --git a/docs/fr/faq.rst b/docs/fr/faq.rst new file mode 100644 index 00000000..bee1dd54 --- /dev/null +++ b/docs/fr/faq.rst @@ -0,0 +1,38 @@ +Frequently Asked Questions (FAQ) +################################ + +Here is a summary of the frequently asked questions for pelican. + +Is it mandatory to have a configuration file ? +============================================== + +No, it's not. Configurations files are just an easy way to configure pelican. +For the basic operations, it's possible to specify options while invoking +pelican with the command line (see `pelican --help` for more informations about +that) + +I'm creating my own theme, how to use pygments ? +================================================ + +Pygment add some classes to the generated content, so the theming of your theme +will be done thanks to a css file. You can have a look to the one proposed by +default `on the project website `_ + +How do I create my own theme ? +============================== + +Please refer yourself to :ref:`theming-pelican`. + +How can I help ? +================ + +You have different options to help. First, you can use pelican, and report any +idea or problem you have on `the bugtracker +`_. + +If you want to contribute, please have a look to `the git repository +`_, fork it, add your changes and do +a pull request, I'll review them as soon as possible. + +You can also contribute by creating themes, and making the documentation +better. diff --git a/docs/fr/index.rst b/docs/fr/index.rst new file mode 100644 index 00000000..3d77a923 --- /dev/null +++ b/docs/fr/index.rst @@ -0,0 +1,54 @@ +Pelican +####### + +Pelican est un generateur de blog simple codé en python + +* Écrivez vos articles directement dans votre éditeur favori (vim !) et + directement en syntaxe reStructuredText ou Markdown ; +* Un outil simple en ligne de conmmande pour (re)générer le blog ; +* Sortie complètement statique, facile pour l'héberger n'importe où ; + +Fonctionnalités +=============== + +Pelican supporte actuellement : + +* des articles de blog ; +* des pages statiques ; +* les commentaires via un service externe (`disqus `_) + Notez qu'étant bien un service externe assez pratique, vous ne gérez pas + vous même les commentaires. Ce qui pourrait occasionner une perte de vos données; +* support de template (les templates sont crées avec `jinja2 `_) ; +* génération optionnelle de vos pages et articles en pdf. + +Pourquoi le nom "Pelican" ? +============================ + +Vous n'avez pas remarqué ? "Pelican" est un anagramme pour "Calepin" ;) + +Code source +=========== + +Vous pouvez accéder au code source via mercurial sur http://hg.notmyidea.org/pelican/ +ou via git à l'adresse http://github.com/ametaireau/pelican/ + +Feedback ! +========== + +Si vous voulez de nouvelles fonctionnalitées pour Pelican, n'hésitez pas à nous le dire, +à cloner le dépôt, etc … C'est open source !!! + +Contactez Alexis à "alexis at notmyidea dot org" pour quelques requêtes ou retour d'expérience que ce soi ! + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + + install + basis + settings + themes + internals + faq diff --git a/docs/fr/index.rst.save b/docs/fr/index.rst.save new file mode 100644 index 00000000..822f0fcd --- /dev/null +++ b/docs/fr/index.rst.save @@ -0,0 +1,53 @@ +Pelican +####### + +Pelican est un generateur de blog simple codé en python + +* Écrivez vos articles directement dans votre éditeur favori (vim !) et + directement en syntaxe reStructuredText ou Markdown ; +* Un outil simple en ligne de conmmande pour (re)générer le blog ; +* Sortie complètement statique, facile pour l'héberger n'importe où ; + +Fonctionnalités +=============== + +Pelican supporte actuellement : + +* des articles de blog ; +* des pages statiques ; +* les commentaires via un service externe (`disqus `_) + Notez qu'étant bien un service externe assez pratique, vous ne gérez pas + vous même les commentaires. Ce qui pourrait occasionner une perte de vos données; +* support de template (les templates sont crées avec Jinja 2 `jinja2 `_) ; +* génération optionnelle de vos pages et articles en pdf. + +Pourquoi le nom "Pelican" ? +============================ + +Vous n'avez pas remarqué ? "Pelican" est un anagramme pour "Calepin" ;) + +Code source +=========== + +Vous pouvez accéder au code source via mercurial sur http://hg.notmyidea.org/pelican/ +ou via git à l'adresse http://github.com/ametaireau/pelican/ + +Feedback ! +========== + +Si vous voulez de nouvelles fonctionnalitées pour Pelican, n'hésitez pas à me le dire, +à cloner le dépôt, etc … C'est open source !!! + +Contactez Ale "alexis at notmyidea dot org" pour quelques requêtes ou retour d'expérience que ce soi ! + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + + getting_started + settings + themes + internals + faq diff --git a/docs/fr/install.rst b/docs/fr/install.rst new file mode 100644 index 00000000..e853979d --- /dev/null +++ b/docs/fr/install.rst @@ -0,0 +1,67 @@ +Installation et mise à jour de Pelican +###################################### + +Installation +============ + +Il y a deux façons d’installer Pelican sur son système. La première est via l’utilitaire +pip, l’autre façon est de télécharger Pelican via Github. Ici nous allons voir les deux +façons de procéder. + +Via pip +------- + +Pour installer Pelican via pip, vous aurez besoin du paquet python-pip. puis installez Pelican :: + + # apt-get install python-pip + # pip install pelican + + +Via Github +---------- + +Pour installer Pelican en reprenant le code via Github, nous aurons besoin du paquet +git-core pour récupérez les sources de Pelican. Puis nous procédons à l’installation :: + + # apt-get install git-core + $ git clone https://github.com/ametaireau/pelican.git + $ cd pelican + # python setup.py install + +Mises à jour +============ + +Via pip +------- + +Rien de bien compliqué pour mettre à jour via pip :: + + $ cd votreRepertoireSource + $ pip install --upgrade pelican + + +Via Github +---------- + +C'est un peu plus long avec Github par contre :: + + $ cd votreRepertoireSource + $ git pull origin master + $ cd pelican + # python setup.py install + +Vous aurez un message d’erreur si le module setuptools de python n’est pas installé. +La manipulation est la suivante :: + + # apt-get install python-setuptools + +Alors, quelle méthode choisir ? +=============================== + +Vous avez le choix entre deux méthodes, mais aussi entre deux concepts. La méthode +de Github est la version de développement, où les modifications arrivent assez +fréquemment sans être testées à fond. La version de pip est une version arrêtée avec un +numéro de version dans laquelle vous aurez moins de bug. N’oubliez cependant pas +que le projet est très jeune et manque donc de maturité. Si vous aimez avoir les toutes +dernières versions utilisez Github, sinon penchez vous sur pip. + diff --git a/docs/fr/internals.rst b/docs/fr/internals.rst new file mode 100644 index 00000000..80fc8661 --- /dev/null +++ b/docs/fr/internals.rst @@ -0,0 +1,81 @@ +Pelican internals +################# + +This section describe how pelican is working internally. As you'll see, it's +quite simple, but a bit of documentation doesn't hurt :) + +Overall structure +================= + +What `pelican` does, is taking a list of files, and processing them, to some +sort of output. Usually, the files are restructured text and markdown files, +and the output is a blog, but it can be anything you want. + +I've separated the logic in different classes and concepts: + +* `writers` are responsible of all the writing process of the + files. It's writing .html files, RSS feeds and so on. Since those operations + are commonly used, the object is created once, and then passed to the + generators. + +* `readers` are used to read from various formats (Markdown, and Restructured + Text for now, but the system is extensible). Given a file, they return + metadata (author, tags, category etc) and content (HTML formated) + +* `generators` generate the different outputs. For instance, pelican comes with + `ArticlesGenerator` and `PageGenerator`, into others. Given + a configurations, they can do whatever they want. Most of the time it's + generating files from inputs. + +* `pelican` also uses `templates`, so it's easy to write you own theme. The + syntax is `jinja2`, and, trust me, really easy to learn, so don't hesitate + a second. + +How to implement a new reader ? +=============================== + +There is an awesome markup language you want to add to pelican ? +Well, the only thing you have to do is to create a class that have a `read` +method, that is returning an HTML content and some metadata. + +Take a look to the Markdown reader:: + + class MarkdownReader(object): + + def read(self, filename): + """Parse content and metadata of markdown files""" + text = open(filename) + md = Markdown(extensions = ['meta', 'codehilite']) + content = md.convert(text) + + metadatas = {} + for name, value in md.Meta.items(): + if name in _METADATAS_FIELDS: + meta = _METADATAS_FIELDS[name](value[0]) + else: + meta = value[0] + metadatas[name.lower()] = meta + return content, metadatas + +Simple isn't it ? + +How to implement a new generator ? +================================== + +Generators have basically two important methods. You're not forced to create +both, only the existing ones will be called. + +* `generate_context`, that is called in a first place, for all the generators. + Do whatever you have to do, and update the global context if needed. This + context is shared between all generators, and will be passed to the + templates. For instance, the `PageGenerator` `generate_context` method find + all the pages, transform them into objects, and populate the context with + them. Be careful to *not* output anything using this context at this stage, + as it is likely to change by the effect of others generators. + +* `generate_output` is then called. And guess what is it made for ? Oh, + generating the output :) That's here that you may want to look at the context + and call the methods of the `writer` object, that is passed at the first + argument of this function. In the `PageGenerator` example, this method will + look at all the pages recorded in the global context, and output a file on + the disk (using the writer method `write_file`) for each page encountered. diff --git a/docs/fr/settings.rst b/docs/fr/settings.rst new file mode 100644 index 00000000..e59d1b5b --- /dev/null +++ b/docs/fr/settings.rst @@ -0,0 +1,111 @@ +Settings +######## + +Specifying the settings +======================= + +Pelican is configurable thanks to a configuration file, that you can pass to +the command line:: + + $ pelican -s path/to/your/settingsfile.py path + +Settings are given as the form of a python module (a file). You can have an +example by looking at `/samples/pelican.conf.py +`_ + +All the settings identifiers must be set in caps, otherwise they will not be +processed. + +Here are the available settings. Please note that all the settings you put in +this file will be passed to the templates as well. + +======================= ======================================================= +Setting name what it does ? +======================= ======================================================= +`AUTHOR` Default author (put your name) +`CATEGORY_FEED` Where to put the atom categories feeds. default is + `feeds/%s.atom.xml`, where %s is the name of the + category. +`CATEGORY_FEED_RSS` Where to put the categories rss feeds. default is None + (no rss) +`CSS_FILE` To specify the CSS file you want to load, if it's not + the default one ('main.css') +`DEFAULT_CATEGORY` The default category to fallback on. `misc` by default. +`DEFAULT_LANG` The default language to use. Default is 'en'. +`DISPLAY_PAGES_ON_MENU` Display or not the pages on the menu of the template. + Templates can follow or not this settings. +`FALLBACK_ON_FS_DATE` If True, pelican will use the file system dates infos + (mtime) if it can't get informations from the + metadata? +`FEED` relative url to output the atom feed. Default is + `feeds/all.atom.xml` +`FEED_RSS` relative url to output the rss feed. Default is + None (no rss) +`JINJA_EXTENSIONS` A list of any Jinja2 extensions you want to use. + Default is no extensions (the empty list). +`KEEP_OUTPUT_DIRECTORY` Keep the output directory and just update all the generated files. + Default is to delete the output directory. +`MARKUP` A list of available markup languages you want to use. + For the moment, only available values are `rst` and `md`. +`OUTPUT_PATH` Where to output the generated files. Default to + "output" +`PATH` path to look at for input files. +`PDF_PROCESSOR` Put True if you want to have PDF versions of your + documents. You will need to install `rst2pdf`. +`REVERSE_ARCHIVE_ORDER` Reverse the archives order. (True makes it in + descending order: the newer first) +`SITEURL` base URL of your website. +`SITENAME` Your site name, +`STATIC_PATHS` The static paths you want to have accessible on the + output path "static". By default, pelican will copy + the 'images' folder to the output folder. +`STATIC_THEME_PATHS` Static theme paths you want to copy. Default values + is `static`, but if your theme have others static paths, + you can put them here. +`THEME` theme to use to product the output. can be the + complete static path to a theme folder, or chosen + between the list of default themes (see below) +`TRANSLATION_FEED` Where to put the RSS feed for translations. Default + is feeds/all-%s.atom.xml where %s is the name of the + lang. +======================= ======================================================= + +Themes +====== + +3 themes are available. You can specify them using the `-t` option: + +* notmyidea +* simple (a synonym for "full text" :) +* martyalchin + +You can define your own theme too, and specify it's emplacement in the same +way (be sure to specify the full absolute path to it). + +Here is `a guide on how to create your theme +`_ + +The `notmyidea` theme can make good use of the following settings. I recommend +to use them too in your themes. + +======================= ======================================================= +Setting name what it does ? +======================= ======================================================= +`DISQUS_SITENAME` Pelican can handle disqus comments, specify the + sitename you've filled in on disqus +`GITHUB_URL` Your github URL (if you have one), it will then + use it to create a github ribbon. +`GOOGLE_ANALYTICS` 'UA-XXXX-YYYY' to activate google analytics. +`LINKS` A list of tuples (Title, Url) for links to appear on + the header. +`SOCIAL` A list of tuples (Title, Url) to appear in the "social" + section. +`TWITTER_USERNAME` Allows to add a button on the articles to tweet about + them. Add you twitter username if you want this + button to appear. +======================= ======================================================= + +In addition, you can use the "wide" version of the `notmyidea` theme, by +adding that in your configuration:: + + CSS_FILE = "wide.css" diff --git a/docs/fr/themes.rst b/docs/fr/themes.rst new file mode 100644 index 00000000..7d492544 --- /dev/null +++ b/docs/fr/themes.rst @@ -0,0 +1,106 @@ +.. _theming-pelican: + +How to create themes for pelican +################################ + +Pelican uses the great `jinja2 `_ templating engine to +generate it's HTML output. The jinja2 syntax is really simple. If you want to +create your own theme, feel free to take inspiration from the "simple" theme, +which is available `here +`_ + +Structure +========= + +To make your own theme, you must follow the following structure:: + + ├── static + │   ├── css + │   └── images + └── templates + ├── archives.html // to display archives + ├── article.html // processed for each article + ├── categories.html // must list all the categories + ├── category.html // processed for each category + ├── index.html // the index. List all the articles + ├── page.html // processed for each page + ├── tag.html // processed for each tag + └── tags.html // must list all the tags. Can be a tag cloud. + +* `static` contains all the static content. It will be copied on the output + `theme/static` folder then. I've put the css and image folders, but they are + just examples. Put what you need here. + +* `templates` contains all the templates that will be used to generate the content. + I've just put the mandatory templates here, you can define your own if it helps + you to organize yourself while doing the theme. + +Templates and variables +======================= + +It's using a simple syntax, that you can embbed into your html pages. +This document describes which templates should exists on a theme, and which +variables will be passed to each template, while generating it. + +All templates will receive the variables defined in your settings file, if they +are in caps. You can access them directly. + +Common variables +---------------- + +All of those settings will be given to all templates. + +============= =================================================== +Variable Description +============= =================================================== +articles That's the list of articles, ordsered desc. by date + all the elements are `Article` objects, so you can + access their properties (e.g. title, summary, author + etc. +dates The same list of article, but ordered by date, + ascending +tags A dict containing each tags (keys), and the list of + relative articles. +categories A dict containing each category (keys), and the + list of relative articles. +pages The list of pages +============= =================================================== + +category.html +------------- + +This template will be processed for each of the existing categories, and will +finally remain at output/category/`category_name`.html. + +============= =================================================== +Variable Description +============= =================================================== +articles The articles of this category +category The name of the category being processed +============= =================================================== + +article.html +------------- + +This template will be processed for each article. .html files will be outputed +in output/`article_name`.html. Here are the specific variables it gets. + +============= =================================================== +Variable Description +============= =================================================== +article The article object to be displayed +category The name of the category of the current article +============= =================================================== + +tag.html +-------- + +For each tag, this template will be processed. It will create .html files in +/output/tag/`tag_name`.html + +============= =================================================== +Variable Description +============= =================================================== +tag The name of the tag being processed +articles Articles related to this tag +============= ===================================================