[PYTHON] Extension Sphinx pour convertir arbitrairement du texte en pré-traitement de la génération de documents

supposition

Récemment, j'écris un document avec Sphinx.

Je l'ai donc résolu une fois, mais lors de l'utilisation de PlantUML, il est devenu stressant de ne pas pouvoir prévisualiser sur VS Code.

Chose que tu veux faire

Lors de la création de HTML

```plantuml

Joindre

.. uml::

Je veux convertir automatiquement en.

#politique

Documentation officielleIl y a une méthode d'implémentation d'événement à l'intérieur.

#Implémentation du plug-in d'extension

Je l'ai écrit comme ça.

uml_change.py


def uml_change(app, docname, source):  
    umlFlg = False
    lines = []
    for line in source[0].split("\n"):
        if umlFlg:
            if line.strip() == "```":
                #Supprimer lorsque la fin de la boîte arrive
                line = ""
                umlFlg = False
            else:
                #Retrait à l'intérieur de la boîte
                line = "    " + line

        ###Convertir la notation markdown en notation reST
        if line.strip() == "```plantuml":
            line = ".. uml::"
            umlFlg = True
           
        lines.append(line)

    source[0] = "\n".join(lines)
  
def setup(app):  
    app.connect("source-read", uml_change)  

conf.paramètres py

conf.Ajoutez la description suivante à py.

conf.py


import sys
import os
 sys.path.append (os.path.abspath ("./ bin")) # Le nom du dossier est un exemple

Stockez le script ci-dessus dans le dossier spécifié (sous bin dans l'exemple ci-dessus).

Ajoutez le nom du plug créé aux extensions.

conf.py


extensions = ['uml_change']

Essayez de créer du html, et si l'image uml est affichée, elle réussit.

#Supplément

Vous devriez pouvoir écrire divers prétraitements en appliquant cette méthode. Convertir le format de lien de démarque en format restructuredText, etc.

Recommended Posts

Extension Sphinx pour convertir arbitrairement du texte en pré-traitement de la génération de documents
Comment sortir un document au format pdf avec Sphinx
Convertir un fichier Excel en texte en Python à des fins de comparaison
Convertir le HTML en fichier texte
Parler avec Python [synthèse vocale]
Convertissez un grand nombre de fichiers PDF en fichiers texte à l'aide de pdfminer
Résumé de la netteté et du lissage des probabilités + Applicable à la génération simple de documents
Convertir Markdown en PDF en Python
Comment convertir 0,5 en 1056964608 en un seul coup
Convertir le PDF des magasins disponibles de Go To EAT dans la préfecture de Kagoshima en CSV
Convertir un document XML stocké dans une base de données XML (BaseX) au format CSV (en utilisant Python)
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Convertir le PDF des magasins membres Go To EAT de la préfecture d'Ishikawa en CSV
Convertir le PDF d'un nouveau cas d'épidémie corona dans la préfecture d'Aichi en CSV