[PYTHON] Die Django-Vorlage lädt Makdown und reStructuredText, die in einer externen Datei als HTML geschrieben sind

1. Übersicht

Es ist schwierig, Dokumentseiten (Nutzungsbedingungen, FAQ, Datenschutzbestimmungen, Info-Seite usw.) in HTML zu schreiben. Schreiben Sie sie daher in eine externe Datei mit Markdown, laden Sie sie in die Django-Vorlage (wie das Include-Tag) und verwenden Sie sie als HTML. Ausgabe.

templates/myapp/about.html


{% load markup %}
{% load my_tags %}

{% read_file 'myapp/about.md' as source %}
{{ source|markdown:"safe" }}

templates/myapp/about.md


#Über diese App

Diese App ist ...

* Django
* Python
* uwsgi

Ausgabeergebnis

スクリーンショット 2016-10-07 11.22.56.png

2. Realisierungsmethode

1. Installieren Sie django-markwhat

Dieses Mal verwenden wir django-markwhat (+ Markdown) als Kernbibliothek für das Rendern. Wenn Sie dieses eingeben, kann es sowohl Markdown als auch reStructuredText unterstützen, was praktisch ist.

python


$ pip install django-markwhat Markdown

Zu INSTALLED_APPS hinzugefügt

python


  'django_markwhat',

2. Entwicklung von Tags zum Suchen und Lesen von Dateien aus dem Vorlagenverzeichnis

templatetags/my_tags.py


from django import template
from django.template import TemplateDoesNotExist

register = template.Library()


@register.simple_tag(takes_context=True)
def read_file(context, template_name):
    """
Laden Sie eine Textdatei mit dem Template Loader

Beispiel: {% read_file 'admin_doc/pages/about.md' as source %}
    """

    for loader in context.template.engine.template_loaders:
        try:
            source, _path = loader.load_template_source(template_name)
            return source

        except TemplateDoesNotExist:
            pass
    else:
        raise TemplateDoesNotExist(template_name)

Erstellen Sie auf diese Weise ein Vorlagen-Tag, das den Inhalt der Datei aus dem Vorlagenverzeichnis abruft, indem Sie nur die Dateilesefunktion von Djangos Vorlagenladeprogramm verwenden.

3. Führen Sie aus

Ich schrieb am Anfang,

templates/myapp/about.html


{% load markup %}
{% load my_tags %}

{% read_file 'myapp/about.md' as source %}
{{ source|markdown:"safe" }}

Der Markdown wird jetzt in HTML angezeigt.

Qiitas Markdown ist übrigens leistungsstark und einfach zu bedienen, aber dieser Markdown ist viel ärmer.

Recommended Posts

Die Django-Vorlage lädt Makdown und reStructuredText, die in einer externen Datei als HTML geschrieben sind
Schleife Für umgekehrte Anweisung in HTML-Datei auf Django
[Django] Lesen von Variablen / Konstanten, die in einer externen Datei definiert sind
Django HTML Vorlage Teil 2
Django HTML-Vorlage
Lesen Sie die Protokollierungseinstellungen mit Flask aus einer externen Datei
Django gibt den Inhalt der Datei als HTTP-Antwort zurück
Erstellen Sie eine Authentifizierungsfunktion mit django-allauth und CustomUser in Django
Django # 2 (Vorlage)
Django HTML Vorlage Teil 2
Django HTML-Vorlage
Tipps für Django-Vorlagen
(Hinweis) Suchreihenfolge der Vorlagendateien in Django
Datei-Upload mit Django
Vorlagenregistrierung von Django Bootstrap
Zeigen Sie Django ManyToManyField in der Vorlage
Verwenden Sie die jinja2-Vorlage in einer Excel-Datei
Django
Zusammenfassung der Einstellungen für statische Django-Dateien (statisch)
Machen Sie einen Filter mit einer Django-Vorlage
Vorlage
Erstellen Sie mit Django einen Datei-Uploader
So führen Sie eine arithmetische Verarbeitung mit der Django-Vorlage durch
Entwicklung einer WEB-Anwendung mit Django [Zusätzliche Vorlage]
(Für mich) Django_1 (Basic / Hello World / Template)
Lösen Sie Angural JS- und Django-Vorlagenkonflikte
Schreiben Sie kurz if-else von Django Template
Die Django-Vorlage lädt Makdown und reStructuredText, die in einer externen Datei als HTML geschrieben sind