Sphinx-Quickstart¶
Um ein neues Sphinx-Projekt von Grund auf zu starten, gibt man in einem neuen
Ordner sphinx-quickstart
ein. Nach einigen Abfragen, mit denen einige
Angaben zum Dokument gemacht und einige Optionen festgelegt werden, Hilfe die in
jedem Projekt vorhandene Konfigurationsdatei conf.py
automatisch angelegt
bzw. angepasst werden kann:
$ sphinx-quickstart
Welcome to the Sphinx 1.1.3 quickstart utility.
Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).
Enter the root path for documentation.
> Root path for the documentation [.]:
Gewöhnlich mag man die Sphinx-Dokumentation in genau dem Ordner erstellen, von
dem aus man sphinx-quickstart
aufgerufen hat. Es genügt somit die
Bestätigung der Vorgabe [.]
(aktuelles Verzeichnis) mit der Enter-Taste.
In der nächsten Abfrage geht es darum, ob für die Quelldateien ein eigener
Ordner angelegt werden soll. Auch hier ist die Vorgabe [n]
empfehlenswert,
es genügt somit eine Bestätigung mit der Enter
-Taste. Der Quelltext befindet
sich dann im aktuellen Verzeichnis bzw. in Unterverzeichnissen für
umfangreichere Kapitel. Der von Sphinx erzeugte HTML- bzw. LaTeX-Code wird in
separaten Unterverzeichnissen _build/html
bzw. _build/latex
abgelegt.[1]
You have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.
> Separate source and build directories (y/N) [n]:
Die nächste Abfrage kann ebenfalls kurzerhand mit Enter
-Taste bestätigt
werden. Gemäß der Vorgabe werden dann Sphinx-Unterordner, die Erweiterungen oder
Templates beinhalten, mit einem beginnenden Underline-Zeichen gekennzeichnet.
Inside the root directory, two more directories will be created; "_templates"
for custom HTML templates and "_static" for custom stylesheets and other static
files. You can enter another prefix (such as ".") to replace the underscore.
> Name prefix for templates and static dir [_]:
Bei der nächsten Abfrage werden der Projekt- und der Autorname der Dokumentation sowie eine (beliebig wählbare) Versions- und Releasenummer angegeben. Die Release-Nummer kann üblicherweise gleich der Versionsnummer gewählt werden.[2]
The project name will occur in several places in the built documentation.
> Project name:
> Author name(s):
Sphinx has the notion of a "version" and a "release" for the
software. Each version can have multiple releases. For example, for
Python the version is something like 2.5 or 3.0, while the release is
something like 2.5.1 or 3.0a1. If you don't need this dual structure,
just set both to the same value.
> Project version:
> Project release:
Bei der nächsten Abfrage kann der Benutzer eine beliebige Datei-Endung für den
RestructuredText-Quellcode festlegen. Auch hier ist es empfehlenswert die
Vorgabe [rst]
mit der Enter
-Taste zu bestätigen, da man gewöhnlich
Texteditoren wie Vim zum Bearbeiten der Textdateien nutzt, die
anhand der Datei-Endung beispielsweise ein entsprechendes Syntax-Highlighting
aktivieren.
The file name suffix for source files. Commonly, this is either ".txt"
or ".rst". Only files with this suffix are considered documents.
> Source file suffix [.rst]:
Bei der nächsten Abfrage geht es darum, ob eine Hauptdatei index.rst
im
Basispfad der Dokumentation angelegt werden soll. Auch hier ist eine Bestätigung
der Vorgabe der Enter
-Taste sinnvoll. In der Datei index.rst
befindet
sich üblicherweise ein Inhaltsverzeichnis (“toctree”), der auf weitere
Quelltext-Dateien verlinkt.
One document is special in that it is considered the top node of the
"contents tree", that is, it is the root of the hierarchical structure
of the documents. Normally, this is "index", but if your "index"
document is a custom template, you can also set this to another filename.
> Name of your master document (without suffix) [index]:
Bei der nächsten Abfrage wird festgelegt, ob ein Epub-Builder gewünscht ist
oder nicht. Gewöhnlich kann hier die Vorgabe [n]
mit der Enter
-Taste
bestätigt werden.
Sphinx can also add configuration for epub output:
> Do you want to use the epub builder (y/N) [n]: n
Mit der Abfrage, welche Erweiterungen genutzt werden sollen, ist man (fast) am
Ende angekommen. Je nach Art des Dokumentationsprojekts kann die Wahl
beispielsweise folgendermaßen ausfallen (sie kann jederzeit in der
Konfigurationsdatei conf.py
angepasst werden):
Please indicate if you want to use one of the following Sphinx extensions:
> autodoc:
automatically insert docstrings from modules (y/N) [n]: y
> doctest:
automatically test code snippets in doctest blocks (y/N) [n]: n
> intersphinx:
link between Sphinx documentation of different projects (y/N) [n]: y
> todo:
write "todo" entries that can be shown or hidden on build (y/N) [n]: y
> coverage:
checks for documentation coverage (y/N) [n]: n
> pngmath:
include math, rendered as PNG images (y/N) [n]: y
> mathjax:
include math, rendered in the browser by MathJax (y/N) [n]: n
> ifconfig:
conditional inclusion of content based on config values (y/N) [n]: n
> viewcode:
include links to the source code of documented Python objects (y/N) [n]: y
Zu guter Letzt wird abgefragt, ob eine Makefile (für
Linux-Systeme) und/oder eine Commandfile
(für Windows-Systeme) angelegt
werden soll:
A Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html' instead of invoking sphinx-build
directly.
> Create Makefile? (Y/n) [y]: y
> Create Windows command file? (Y/n) [y]: n
Damit ist das Projekt fertig angelegt und kann beliebig angepasst und mit
Inhalten gefüllt werden. Aus dem Quellcode der Dokumentation können jederzeit,
sofern man sich in einem Shellfenster im Hauptverzeichnis des Projekts befindet,
mit make html
HTML-Dateien und mittels make latexpdf
LaTeX-Code sowie
eine gleichnamige PDF-Datei erzeugt werden (die fertigen Dateien befinden sich
dann im _build
-Verzeichnis).
Anmerkung:
[1] | Ein Vorteil dieser Methode liegt beispielsweise darin, dass komplexere
Unterverzeichnisse selbst mit einer Makefile - und conf.py -Datei
ausgestattet und eigenständig nach HTML bzw. LaTeX übersetzt werden können. |
[2] | Die Angaben können zu jedem späteren Zeitpunkt in der
Konfigurationsdatei Durch die Vergabe von Versionsnummern kann beispielsweise bei der Dokumentation von Software-Quellcode sichergestellt werden, dass eine Anleitung auch zur jeweiligen Software-Version passt. Auch bei allgemeinen Dokumentationsprojekten ist eine Versionsnummer sinnvoll, um den jeweiligen Entwicklungsstand aufzuzeigen; mit einem Versions-Upgrade können außerdem eine Rundmail über einen Verteiler, ein neuer Commit eines Versionsverwaltungs-Programms, ein Weblog-Eintrag o.ä. verbunden werden. |