Ich bin eine Person, die Reveal.js Folien in Sphinx schreibt, basierend auf meinen eigenen "Sphinx-Enthüllungen".
Beim Schreiben der Folienquelle mit der Kombination von Sphinx + Revealjs gibt es eine solche Szene.
presentation.rst
Ansible Bewegung(Inhalt)
-------------------
.. 60sec
.. todo::Playbook der obigen Demo
Inventardatei
*Definieren Sie eine Liste von Servern, um die Verarbeitung und einfache Informationen auszuführen
Mit der hier verwendeten Direktive "todo" können Sie todo wie in Sphinx anzeigen. Dies ist nützlich, um Notizen wie "Was soll danach geschrieben werden" oder "Was Sie schreiben wollten" zu machen.
Da es sich also nicht um eine integrierte Erweiterung handelt, muss sie als Erweiterung in "conf.py" angegeben werden, die beim Erstellen mit Sphinx verwendet wird, aber ...
conf.py
extensions = [
'sphinx.ext.todo',
'sphinx_revealjs',
]
Wenn ich es ausführe, erhalte ich eine solche Fehlermeldung und der Build schlägt fehl.
$ pipenv run make revealjs
Ausnahme aufgetreten
File "/home/attakei/.local/share/virtualenvs/slides-P9x2JL-m/lib/python3.7/site-packages/sphinx/writers/html5.py", line 885, in unknown_visit
raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: todo_node
Nun, ich erhalte diesen Fehler, obwohl die Sphinx-Erweiterung ordnungsgemäß registriert sein sollte. Wenn ich den Builder auf "html" setze, scheint der Build normal abgeschlossen zu sein. Das scheint am eigenen Enthüllungsbauer zu liegen
Das Ändern der Bibliothek riecht sehr, also spielen Sie vorerst mit conf.py
** "Wenn Sie als Builder" disclosejs "angeben, registrieren Sie" sphinx.ext.todo "nicht in der Erweiterung" ** "
Zum Ziel.
conf.py
extensions = [
'sphinx_revealjs',
]
if is_not_builder_revealjs:
extensions += [
'sphinx.ext.todo',
]
So was
Sphinx empfiehlt einen make-basierten Build.
%: Makefile
@$(SPHINXBUILD) -b $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Auf diese Weise wird der Befehl sphinx-build
übergeben.
Und zum Glück scheint das Modul sphinx.cmd.build
, das die Quelle des Befehls ist, in der Befehlszeile verwendet zu werden, nachdem ein Argumentparser mit einer Funktion separat generiert wurde.
https://github.com/sphinx-doc/sphinx/blob/master/sphinx/cmd/build.py#L97
Es fühlt sich wie ein rauer Blick an und es scheint, dass es so verwendet werden kann, wie es ist, also werde ich mich in "conf.py" stürzen.
conf.py
import sys
from sphinx.cmd.build import get_parser
sphinx_args = get_parser().parse_args(sys.argv[1:])
extensions = [
'sphinx_revealjs',
]
if sphinx_args.builder != 'revealjs':
extensions += [
'sphinx.ext.todo',
]
Jetzt das. Wenn Sie bauen, ...
$ pipenv run make revealjs
Statische Datei kopieren... ...Erledigt
copying extra files...Erledigt
dumping search index in Japanese (code: ja)...Erledigt
dumping object inventory...Erledigt
Erfolg aufbauen, 3 warnings.
Erfolgreich: +1:
Recommended Posts