]> git.p6c8.net - pcdenotes.git/commitdiff
Changed way of generating HTML
authorPatrick Canterino <patrick@patrick-canterino.de>
Sun, 13 Feb 2022 10:23:20 +0000 (11:23 +0100)
committerPatrick Canterino <patrick@patrick-canterino.de>
Sun, 13 Feb 2022 10:26:21 +0000 (11:26 +0100)
-  Use python-markdown directly without django-markdownify
- Don't use linebreaksbr template filter
- Linebreaks are now created using <p> and so on
- blockquotes work now (they didn't work because of linebreaksbr)

notes/templates/note.html
notes/templates/note_detail.html
notes/templatetags/__init__.py [new file with mode: 0644]
notes/templatetags/notes_extras.py [new file with mode: 0644]
pcdenotes/settings.py
requirements.txt

index ddc9c119681f6c9ff7ed95ef410ab88422f9e1e3..b2b7519ebbed305b78603c975aa6d8cce17b7fd7 100644 (file)
@@ -1,7 +1,7 @@
-{% load markdownify %}
+{% load notes_extras %}
 <article{% if note.is_draft %} class="text-muted"{% endif %}>
     <h2><a href="{{ note.get_absolute_url }}"{% if note.is_draft %} class="text-muted"{% endif %}>{{ note.title }}</a></h2>
     {% if note.is_draft %}<p class="fw-bold">Status: Draft</p>{% endif %}
 <article{% if note.is_draft %} class="text-muted"{% endif %}>
     <h2><a href="{{ note.get_absolute_url }}"{% if note.is_draft %} class="text-muted"{% endif %}>{{ note.title }}</a></h2>
     {% if note.is_draft %}<p class="fw-bold">Status: Draft</p>{% endif %}
-    <div>{{ note.content|linebreaksbr|markdownify }}</div>
+    <div>{{ note.content|markdown|safe }}</div>
     <p class="publication-date">Published on {{ note.created_at|date:"Y-m-d, H:i" }}</p>
 </article>
\ No newline at end of file
     <p class="publication-date">Published on {{ note.created_at|date:"Y-m-d, H:i" }}</p>
 </article>
\ No newline at end of file
index 0feb681cc5d1a2b303d5e255c5d38b5ccdd3e94f..d15296dd6dc1f010ed56c7267bd2c57546113fe6 100644 (file)
@@ -1,5 +1,4 @@
 {% extends "note_base.html" %}
 {% extends "note_base.html" %}
-{% load markdownify %}
 
 {% block title %}{{ note.title }} – Notes{% endblock %}
 
 
 {% block title %}{{ note.title }} – Notes{% endblock %}
 
diff --git a/notes/templatetags/__init__.py b/notes/templatetags/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/notes/templatetags/notes_extras.py b/notes/templatetags/notes_extras.py
new file mode 100644 (file)
index 0000000..3cdb233
--- /dev/null
@@ -0,0 +1,18 @@
+from django import template
+from django.template.defaultfilters import stringfilter
+
+import markdown as md
+from markdown.extensions import Extension
+
+register = template.Library()
+
+# See https://python-markdown.github.io/change_log/release-3.0/#safe_mode-and-html_replacement_text-keywords-deprecated
+class EscapeHtml(Extension):
+    def extendMarkdown(self, md):
+        md.preprocessors.deregister('html_block')
+        md.inlinePatterns.deregister('html')
+
+@register.filter
+@stringfilter
+def markdown(value):
+    return md.markdown(value, extensions=[EscapeHtml(), 'nl2br'])
\ No newline at end of file
index 88b705dd8298b1c8d2c3b8e6e843965c3f51aee8..1c79c5c97d42cb62f246e8aef23214b3ac08135f 100644 (file)
@@ -43,8 +43,8 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'markdownify.apps.MarkdownifyConfig',
     'notes',
     'notes',
+    'notes.templatetags.notes_extras'
 ]
 
 MIDDLEWARE = [
 ]
 
 MIDDLEWARE = [
@@ -139,11 +139,4 @@ STATICFILES_DIRS = [BASE_DIR / 'notes/static']
 
 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 
 
 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 
-MARKDOWNIFY = {
-    "default": {
-        #"STRIP": False,
-        "BLEACH": False
-    }
-}
-
 NOTES_PER_PAGE = 5
\ No newline at end of file
 NOTES_PER_PAGE = 5
\ No newline at end of file
index 5d7373287108b7a0e3211519a955eee0eb6c4dbc..f37921d604df2425b45a42506890ec3d5cc2076d 100644 (file)
@@ -1,7 +1,5 @@
 asgiref==3.4.1
 asgiref==3.4.1
-bleach==4.1.0
 Django==3.2.12
 Django==3.2.12
-django-markdownify==0.9.0
 importlib-metadata==4.8.3
 Markdown==3.3.6
 mysqlclient==2.1.0
 importlib-metadata==4.8.3
 Markdown==3.3.6
 mysqlclient==2.1.0

patrick-canterino.de