[PYTHON] So konvertieren Sie das Format einfach aus Markdown

Ich wurde gebeten, ein Produkthandbuch mit einem Mechanismus zu erstellen, der einer vereinfachten Version von O'Reilly Atlas ähnelt. Ich wollte Ascii Doctor verwenden, um das Handbuch zu erstellen, deshalb habe ich beschlossen, es im AsciiDoc-Format zu schreiben, aber es war einfacher, mich an das Markdown-Format zu gewöhnen, sodass ich vom Markdown-Format in das AsciiDoc-Format konvertieren musste. Es war. Ich dachte, ich könnte es mir leisten, Pandoc zu verwenden, aber ich konnte nicht so konvertieren, wie ich es beabsichtigt hatte.

Was ich nachgeschlagen habe

Wenn Sie Pandoc verwenden, sollten Sie Haskell studieren und das Problem beheben, aber ich habe keine Zeit. Daher habe ich mich gefragt, ob ich mit der Markdown-Parser-Bibliothek von Python ein Konvertierungsprogramm erstellen kann.

Die Tabelle ist wie folgt.

Bewertungsgegenstand Python-Markdown Misaka Mistune
URL https://github.com/waylan/Python-Markdown https://github.com/FSX/misaka https://github.com/lepture/mistune
Lizenz BSD MIT BSD
Implementierung python python + C python
Entsprechende Version Python 2.7, 3.3+ and PyPy Python 2.7, 3.2+ and PyPy 2.6 Python 2.6+, Python 3.3+ and PyPy
Benutzerdefinierte Ausgabe ×
Bemerkungen Kommt auf Hoedown an

Python-Markdown ist ein Pfad, da die Ausgabe nicht angepasst werden kann. Misaka scheint tot zu sein, aber es ist ein Pass, weil es von Hoedown abhängt.

Ich habe mich für Mistune durch die Eliminierungsmethode entschieden, daher werde ich es mit dieser implementieren.

Einfach zu verwenden

Installation

Es scheint mit Python 2.6 oder höher zu funktionieren, daher habe ich den Vorgang mit 2.7.11 bestätigt.

pip install mistune

Es ist einfach!

Von Markdown in HTML konvertieren

Wir haben die folgenden Dateien und Quellen im Markdown-Format für die HTML-Konvertierung vorbereitet. Es ist fast das gleiche wie in der offiziellen Grundverwendung.

test.md


#Beispieldokumentation
##Kapitel XX
###Abschnitt XXX

convert.py


import mistune

with open('test.md', 'r') as test_file:
    markdown = mistune.Markdown()
    print markdown(test_file.read())

Und lass es laufen.

python convert.py

Dann ist das Ausgabeergebnis wie folgt.

output


<h1>Beispieldokumentation</h1>
<h2>Kapitel XX</h2>
<h3>Abschnitt XXX</h3>

Da es teilweise angewendet wird, scheint es gut, eine Vorlage getrennt von der HTML-Definition usw. vorzubereiten und so zu gestalten, als würde nur der Inhalt des Körpers neu geschrieben.

Von Markdown in freies Format konvertieren

Nun zum Hauptthema.

Es scheint, dass Mistune die Renderer-Klasse erben und das Element (die Methode) überschreiben sollte, das Sie ausgeben möchten. Dieses Mal möchte ich das Überschriften-Tag durch Section im AsciiDoc-Format ersetzen, daher habe ich es wie folgt erstellt.

custom_render.py


import mistune

class CustomRenderer(mistune.Renderer):
    def header(self, text, level, raw=None):
        section = '=' * level
        return '{0} {1}\n'.format(section, text)

if __name__ == '__main__':
    custom_renderer = CustomRenderer()
    with open('test.md', 'r') as test_file:
        markdown = mistune.Markdown(renderer=custom_renderer)
        print markdown(test_file.read())

Ich werde das machen.

python custom_render.py

Das Ergebnis ist wie folgt.

output


=Beispieldokumentation
==Kapitel XX
===Abschnitt XXX

Ich habe die erwarteten Ergebnisse erzielt!

Danach können Sie das Format konvertieren, indem Sie die Methode aus der erforderlichen Syntax überschreiben und das Ausgabeformat anpassen.

Recommended Posts

So konvertieren Sie das Format einfach aus Markdown
So konvertieren Sie von .mgz nach .nii.gz
Linux-Skript zum Konvertieren von Markdown-Dateien vom JupyterLab-Format in das Qiita-Format
In Python von Markdown in HTML konvertieren
[Tensorflowjs_converter] So konvertieren Sie das Tensorflow-Modell in das Format Tensorflow.js
So konvertieren Sie Json-Dateien in das CSV- oder EXCEL-Format
[Caffe] Konvertiert die mittlere Datei vom binären Proto-Format in das npy-Format
Konvertieren Sie Markdown in Python in PDF
So konvertieren Sie 0,5 in 1056964608 auf einmal
Konvertierung von pdf nach txt 2 [pyocr]
So starten Sie den Explorer über die WSL
So konvertieren Sie das Tensorflow-Modell in Lite
So greifen Sie über Python auf Wikipedia zu
Konvertieren Sie Bilder aus dem PIL-Format, die mit Django aus dem Formular gelesen wurden, in das base64-Format
[Python] So konvertieren Sie eine Datenbankdatei in CSV
So erstellen Sie einen Klon aus Github
Konvertieren Sie Daten im XML-Format in Daten im TXT-Format (yolov3)
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So konvertieren Sie csv in tsv in CLI
So aktualisieren Sie Google Sheets von Python
So konvertieren Sie Python in eine exe-Datei
Konvertieren Sie das Matplotlib-Diagramm in das EMF-Dateiformat
Konvertieren Sie mit pdfplumber von PDF in CSV
[TF] Verwendung von Tensorboard von Keras
Verwendung von Multi-Core aus der Sicht mehrerer Sprachen
Konvertieren Sie von Katakana zu Vokal Kana [Python]
Konvertieren Sie an E-Mails angehängte PDF-Dateien in das Textformat
Zugriff auf RDS von Lambda (Python)
So bedienen Sie Linux von der Konsole aus
Wie man relativ einfach Gesichtsbilder sammelt
Konvertieren Sie den Python-Datumstyp in das RFC822-Format
So erstellen Sie ein Repository aus Medien
So greifen Sie von außen auf den Datenspeicher zu
So bedienen Sie IOT-Haushaltsgeräte von Siri aus einfach durch API-Hacking
So konvertieren Sie von iTunes erworbenes m4a in wav
So öffnen Sie einen Webbrowser über Python
Zum HSV konvertieren
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
[Python] So ändern Sie das Datumsformat (Anzeigeformat)
Studie aus Python Hour7: Verwendung von Klassen
[Python] Konvertieren von DICOM in PNG oder CSV
So erhalten Sie Ergebnisse von id in Celery
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Konvertieren Sie Jupyter-Notizbücher ganz einfach in Blogs mit Fastpages
So generieren Sie ein Python-Objekt aus JSON
Summe von 1 bis 10
So rufen Sie die Cloud-API über GCP-Cloud-Funktionen auf
[Einführung in Python] Umgang mit Daten im JSON-Format
So bedienen Sie Linux von außen Vorgehensweise
Wie man gut mit Linux-Befehlen aus Python umgeht
So extrahieren Sie den Koeffizienten aus der Minutenformel
So messen Sie die Leitungsgeschwindigkeit vom Terminal aus
[Python] So löschen Sie einfach einen untergeordneten Prozess, der durch Multiprozess gestartet wurde, von einem anderen Prozess
Wie man GSR von Jupyter Lab of GCP git
Konvertieren Sie Daten im JSON-Format in txt (mit yolo)
Konvertieren von (32,32,3) in einen 4-dimensionalen Tensor (1,32,32,1) mit ndarray-Typ
Erfahren Sie, wie Sie Bilder aus dem TensorFlow-Code aufblasen
Konvertieren Sie Binärpakete für Windows in das Radformat
Konvertieren Sie die Zeichenfolge mit Python in ein zeichenweises Listenformat