Je suis une personne qui écrit des diapositives Reveal.js dans Sphinx sur la base de mes propres sphinx-revealjs
.
Lors de l'écriture de la source de la diapositive avec la combinaison de Sphinx + Revealjs, il existe une telle scène.
presentation.rst
Mouvement Ansible(Contenu)
-------------------
.. 60sec
.. todo::Playbook de la démo ci-dessus
Fichier d'inventaire
*Définir une liste de serveurs pour exécuter des traitements et des informations simples
La directive todo
utilisée ici vous permet d'afficher todo comme dans Sphinx.
Ceci est utile pour prendre des notes telles que «quoi écrire après ceci» ou «ce que vous vouliez écrire».
Donc, comme ce n'est pas une extension intégrée, il est nécessaire de la spécifier comme une extension dans conf.py
utilisée lors de la construction avec sphinx, mais ...
conf.py
extensions = [
'sphinx.ext.todo',
'sphinx_revealjs',
]
Lorsque je l'exécute, j'obtiens une erreur comme celle-ci et la construction échoue.
$ pipenv run make revealjs
Une exception s'est produite
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
Eh bien, j'obtiens cette erreur même si l'extension Sphinx doit être enregistrée correctement.
Lorsque je règle le générateur sur html
, il semble que la construction se termine normalement. Cela semble être dû au propre constructeur de
conf.py
Modifier la librairie sent beaucoup, donc pour le moment, jouez avec conf.py
** "Si vous spécifiez describejs
comme constructeur, n'enregistrez pas sphinx.ext.todo
dans l'extension "**
Au but.
conf.py
extensions = [
'sphinx_revealjs',
]
if is_not_builder_revealjs:
extensions += [
'sphinx.ext.todo',
]
Comme ça
conf.py
(sous des conditions limitées)Sphinx recommande une construction basée sur la marque,
%: Makefile
@$(SPHINXBUILD) -b $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
De cette manière, la commande sphinx-build
est passée.
Et heureusement, le module sphinx.cmd.build
, qui est la source de la commande, semble être utilisé sur la ligne de commande après avoir généré séparément un analyseur d'arguments avec une fonction.
https://github.com/sphinx-doc/sphinx/blob/master/sphinx/cmd/build.py#L97
Cela ressemble à un aspect rugueux, et il semble que cela puisse être utilisé tel quel, alors je vais plonger dans conf.py
.
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',
]
Maintenant ça. Lorsque vous construisez, ...
$ pipenv run make revealjs
Copie d'un fichier statique... ...Terminé
copying extra files...Terminé
dumping search index in Japanese (code: ja)...Terminé
dumping object inventory...Terminé
construire le succès, 3 warnings.
Réussi: +1:
Recommended Posts