10
votes

TOCTREE CONDITIONNEL À SPHINX

Je veux faire plusieurs versions d'une documentation, qui diffère dans les sections incluses. Pour atteindre cet objectif, j'utiliserais habituellement soit le Seulement directive ou le EXTENDEMENT IFCONFIG . Cependant, je ne peux utiliser aucun de ceux en combinaison avec le directive TCRee .

Ce que je veux fondamentalement, c'est quelque chose comme ceci: xxx

existe un moyen de le faire?


1 commentaires

Cette réponse pourrait aider: Stackoverflow.com/a/22024580/407651


4 Réponses :


3
votes

Autant que je sache, il n'y a aucun moyen de faire ce que vous voudriez. J'ai eu du mal avec le même problème, voir https://github.com/sphinx-doc / Sphinx / Problèmes / 1717 .

La raison est que la raison est que Sphinx traite toutes les lignes contenues dans un nœud Toctree comme texte pur.

Je vois deux alternatives:

  1. Vous pouvez écrire votre propre directive Toctree;
  2. Vous pouvez étendre le toctre, y compris une option contenant l'expression à évaluer XXX

    Et puis vous personnalisez l'événement Doctree Resolve.

    1. Vous pouvez utiliser des substitutions de texte sur le texte brut définissant vos propres tags. Vous pouvez faire cette mise en œuvre d'un gestionnaire d'événements pour l'événement de lecture source. Par exemple $$ condition $$ pourrait contenir la condition à évaluer, tandis que $$$ la fin du bloc, c'est-à-dire. XXX

      Selon MyCondition , vous pouvez supprimer les lignes de bloc suivantes.

      numéro 3 est assez simple, tandis que le numéro 2 est le plus élégant. < / p>


0 commentaires

3
votes

Ma solution consiste à placer le contenu conditionnel dans un répertoire distinct 'stagiaire' et à l'aide d'une balise 'interne'.

dans Conf.py j'ai ajouté les lignes xxx P> Maintenant, lorsque je passe le drapeau "interne" sur la ligne de commande, je reçois tout, sinon tout sauf le contenu de l'annuaire de stagiaire.

La balise interne peut être utilisée uniquement avec uniquement.

Le TOC contient des références à stagiaire / somedoc et ils sont inclus ou ignorés selon les besoins. Je reçois un certain nombre d'avertissements sur les pages manquantes, mais celles-ci peuvent être réduites au silence.


0 commentaires

3
votes

Une solution très simple consiste à maintenir deux fichiers d'index distincts sous différents noms. Vous pouvez spécifier quel fichier d'index à utiliser par défaut dans conf.py et le remplacer pour une version spéciale utilisant -d master_doc = alternate-index sur le Sphinx- Construire la ligne de commande .


0 commentaires

6
votes

Ma réponse précédente échoue si vous avez des hiérarchies de table des matières, donc j'ai écrit une simple directive Toctree-Filt capable de filtrer les entrées en fonction d'un préfixe à l'entrée. Par exemple, étant donné une directive toctree-filt comme xxx

et définir la liste d'exclusion sur ["brouillon", 'Erik'] entraînera une Efficace toctree qui ressemble à xxx

ajoutez les lignes suivantes à votre conf.py : xxx < p> Mettez le code suivant dans / sphinx_ext à côté de votre / source : xxx

change maintenant votre existant Toctree Directives à Toctree-Filt Et vous êtes bon à rouler. Notez que Sphinx postera des erreurs car il trouvera des fichiers qui ne sont pas inclus dans le document. Je ne sais pas comment résoudre ce problème.


0 commentaires