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
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',
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.
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