[PYTHON] Ich habe "sphinx-quickstart-plus" erstellt, um die Erstellung von Sphinx-Dokumenten zu vereinfachen.

Sagte: Ich möchte, dass Sie Sphinx bequem machen und für alle verwenden

Sphinx ist sehr praktisch, aber der Dokumentationsprozess war sehr umständlich. Deshalb habe ich ein Modul "sphinx-quickstart-plus" erstellt, das Sphinx erweitert.

https://github.com/pashango2/sphinx-qsp

Wie installiert man

Dies hängt vom Sphinx-Modul ab. Bitte installieren Sie Sphinx im Voraus.

$ pip install sphinx-quickstart-plus

Wie benutzt man

Bisher wurde die Dokumenterstellung als "Sphinx-Schnellstart" eingegeben, aber nur als "Sphinx-Schnellstart-Plus".

$ sphinx-quickstart-plus

Dann wird die folgende Nachricht abgespielt.

Ausgabe


Welcome to the Sphinx 1.5.1 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 [.]: document_path

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]: y

...

Die Ausgabe ist genau die gleiche wie beim vorherigen "Sphinx-Schnellstart". Sie könnten denken, "Nichts hat sich geändert", aber bitte bleiben Sie in Kontakt.

Ausgabe


...
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]: 
> Create Windows command file? (y/n) [y]: 

> ext_commonmark:use CommonMark and AutoStructify (y/n) [n]: y
> ext_nbshpinx:provides a source parser for *.ipynb files (y/n) [n]: y
> ext_blockdiag:Sphinx extension for embedding blockdiag diagrams (y/n) [n]: y
> ext_fontawesome:use font awesome (y/n) [n]: y
> ext_rtd_theme:use Read the Doc theme (y/n) [n]: y
> ext_autobuild:autobuild: Watch a directory and rebuild the documentation (y/n) [n]: y

Schließlich gibt es Fragen, die nicht in "Sphinx-Schnellstart" waren. Die aktuellen Erweiterungen und Beschreibungen lauten wie folgt:

Erweiterter Name Erläuterung
ext_commonmark .rstnicht nur.md(CommonMark)Wird verfügbar sein
ext_nbshpinx Jupyter Notebook kann importiert werden
ext_blockdiag Sie können Blockdiagramme zeichnen
ext_fontawesome Font Awesome ist bei reST erhältlich
ext_rtd_theme Sie können das Thema "Dokumente lesen" verwenden
ext_autobuild Sie können Auto Build verwenden

Diese Sphinx-Erweiterungen sind verfügbar, ohne conf.py zu bearbeiten.

Nicht nur das, wenn Sie sphinx-quickstart-plus erneut starten, ändert sich die Frage am Anfang.

Ausgabe


> Use latest setting? (y/n) [y]: y

Wenn Sie "y" eingeben, beantworten Sie einfach die 5 Elemente "Pfad", "Projektname", "Autor", "Version" und "Freigabe". Ein Dokument mit den gleichen Einstellungen wie das vorherige Dokument wird erstellt. Erinnert sich an die Dokumenteinstellungen, die im vorherigen "Sphinx-Schnellstart-Plus" erstellt wurden.

Übrigens, wenn Sie "n" eingeben, wird die übliche "Sphinx-Schnellstart" -Frage abgespielt. Da die Standardeinstellung jedoch die letzte Einstellung ist, können Sie die Eingabetaste bis auf den geänderten Teil wiederholt drücken, so dass dies einfach ist. ist.

$ sphinx-quickstart-plus

> Use latest setting? (y/n) [y]: n

...

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) [y]: <-Der Standardwert ist die letzte Eingabe

Code, der bei jeder Erweiterungsauswahl zu "conf.py" hinzugefügt wurde

ext_commonmark

conf.py


# ----- CommonMark
source_suffix = [source_suffix, '.md']

from recommonmark.parser import CommonMarkParser
source_parsers = {
    '.md': CommonMarkParser,
}

from recommonmark.transform import AutoStructify

github_doc_root = 'https://github.com/rtfd/recommonmark/tree/master/doc/'
def setup(app):
    app.add_config_value('recommonmark_config', {
            'url_resolver': lambda url: github_doc_root + url,
            'auto_toc_tree_section': 'Contents',
            }, True)
    app.add_transform(AutoStructify)

ext_nbshpinx

conf.py


# ----- Jupyter Notebook nbsphinx
extensions.append('nbsphinx')
exclude_patterns.append('**.ipynb_checkpoints')

ext_blockdiag

conf.py


# ----- blockdiag settings
extensions.extend([
    'sphinxcontrib.blockdiag',
    'sphinxcontrib.seqdiag',
    'sphinxcontrib.actdiag',
    'sphinxcontrib.nwdiag',
    'sphinxcontrib.rackdiag',
    'sphinxcontrib.packetdiag',
])
blockdiag_html_image_format = 'SVG'
seqdiag_html_image_format = 'SVG'
actdiag_html_image_format = 'SVG'
nwdiag_html_image_format = 'SVG'
rackiag_html_image_format = 'SVG'
packetdiag_html_image_format = 'SVG'

ext_fontawesome

conf.py


# ----- sphinx-fontawesome
import sphinx_fontawesome
extensions.append('sphinx_fontawesome')

ext_rtd_theme

conf.py


# ----- Read the Docs Theme
html_theme = "sphinx_rtd_theme"

ext_autobuild

auto_build schreibt conf.py nicht neu, sondern schreibt Makefile neu.

$ make livehtml

Wenn Sie eingeben, wird die automatische Erstellung gestartet. Für Windows-Benutzer wird "auto_build.bat" generiert. Führen Sie es daher aus.

$ auto_build.bat

Wenn Sie .md wie PyCharm bearbeiten, wird eine temporäre Datei erstellt und auch erstellt. Daher gibt es auch eine Einstellung, mit der das Erstellen einiger temporärer Dateien ignoriert werden kann.

Über die Lizenz

"Sphinx-quickstart-plus" ist lizenzfrei, Sie können es gerne verwenden. Bitte beachten Sie, dass wir nicht für Nachteile verantwortlich sind, die durch die Verwendung dieses Moduls verursacht werden.

https://github.com/pashango2/sphinx-qsp

Da meine Umgebung Ubuntu ist, konnte ich sie auch nicht in Windows- und Mac-Umgebungen testen. Ich denke, es gibt Fehler. Wenn Sie Probleme haben, teilen Sie uns dies bitte im GitHub-Problem- oder Kommentarbereich mit.

Codekommentar

Dieses Modul selbst ist ein kleines Modul mit weniger als 400 Zeilen einschließlich Kommentaren. Der Erstellungszeitraum beträgt ungefähr 6 Stunden, und das meiste davon ist Debugging-Arbeit. Es unterstützt jedoch voll und ganz die umfangreichen Argumente und Funktionen von "Sphinx-Schnellstart".

Der Grund, warum Sie dies tun können, ist, dass Sie eine Technologie namens ** Monkey Patch ** verwenden.

Was ist ein Affenfeld?

Ein Affen-Patch ist ein Patch, der das Verhalten einer vorhandenen Bibliothek missbraucht und dynamisch neu schreibt. Dies ist eine Leistung, die die Eigenschaften dynamischer Sprachen ausnutzt und eine Technik ist, die von kompilierten Sprachen nicht nachgeahmt werden kann. [^ 1]

[^ 1]: Ich habe einen Affen-Patch der Kompilierungssprache unter http://postd.cc/monkey-patching-in-go/ erstellt. Es ist eine ziemlich schwarze Magie mit einem Assembler