Add: markdown for note field

This commit is contained in:
Stepan Zhukovsky 2023-08-06 17:41:00 +09:00
parent 02a5492cd5
commit 95352ff5f0
5 changed files with 35 additions and 5 deletions

View File

@ -1,5 +1,6 @@
{% extends 'collector/base.html' %} {% extends 'collector/base.html' %}
{% load static %} {% load static %}
{% load collector_extras %}
{% block title %}<title>{{ title }}</title>{% endblock title %} {% block title %}<title>{{ title }}</title>{% endblock title %}
{% block main %} {% block main %}
<div class="container mt-3"> <div class="container mt-3">
@ -15,7 +16,9 @@
Note: Note:
</div> </div>
<div class="card-body"> <div class="card-body">
<p class="card-text">{{ ticket.note }}</p> <div class="card-text">
{{ ticket.note | markdown | safe }}
</div>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View File

@ -1,5 +1,6 @@
{% extends 'collector/base.html' %} {% extends 'collector/base.html' %}
{% load static %} {% load static %}
{% load collector_extras %}
{% block title %}<title>{{ title }}</title>{% endblock title %} {% block title %}<title>{{ title }}</title>{% endblock title %}
{% block main %} {% block main %}
<div class="container mt-3"> <div class="container mt-3">
@ -15,20 +16,21 @@
{% if ticket.note %} {% if ticket.note %}
<div class="accordion-item"> <div class="accordion-item">
<h2 class="accordion-header"> <h2 class="accordion-header">
<button <button
class="accordion-button collapsed" class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" type="button" data-bs-toggle="collapse"
data-bs-target="#collapse_{{ ticket.number}}_note" data-bs-target="#collapse_{{ ticket.number}}_note"
aria-expanded="false" aria-expanded="false"
aria-controls="collapse_{{ ticket.number }}" aria-controls="collapse_{{ ticket.number }}"
>Note</button> ><i class="bi bi-journal-text me-2"></i> Note</button>
</h2> </h2>
<div id="collapse_{{ ticket.number }}_note" <div id="collapse_{{ ticket.number }}_note"
class="accordion-collapse collapse" class="accordion-collapse collapse"
data-bs-parent="#archive_{{ ticket.number }}_note" data-bs-parent="#archive_{{ ticket.number }}_note"
> >
<div class="accordion-body"> <div class="accordion-body">
<p class="mb-1">{{ ticket.note }}</p> <p class="mb-1">{{ ticket.note |markdown |safe }}</p>
</div> </div>
</div> </div>
</div> </div>
@ -43,7 +45,7 @@
data-bs-toggle="collapse" data-bs-toggle="collapse"
data-bs-target="#collapse_{{ ticket.number }}" data-bs-target="#collapse_{{ ticket.number }}"
aria-expanded="true" aria-controls="collapse_{{ ticket.number }}" aria-expanded="true" aria-controls="collapse_{{ ticket.number }}"
>Logs</button> ><i class="bi bi-file-zip me-2"></i> Logs</button>
</h3> </h3>
<div <div
id="collapse_{{ ticket.number }}" id="collapse_{{ ticket.number }}"

View File

@ -1,4 +1,7 @@
import markdown as md
from django import template from django import template
from django.template.defaultfilters import stringfilter
from collector.models import Platform from collector.models import Platform
@ -46,3 +49,9 @@ def clean_filename(filename: str) -> str:
str: only filename str: only filename
""" """
return filename.rpartition('/')[-1] return filename.rpartition('/')[-1]
@register.filter(name='markdown')
@stringfilter
def markdown(value):
return md.markdown(value, extensions=['markdown.extensions.fenced_code'])

17
poetry.lock generated
View File

@ -151,6 +151,21 @@ mccabe = ">=0.7.0,<0.8.0"
pycodestyle = ">=2.10.0,<2.11.0" pycodestyle = ">=2.10.0,<2.11.0"
pyflakes = ">=3.0.0,<3.1.0" pyflakes = ">=3.0.0,<3.1.0"
[[package]]
name = "markdown"
version = "3.4.4"
description = "Python implementation of John Gruber's Markdown."
optional = false
python-versions = ">=3.7"
files = [
{file = "Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"},
{file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"},
]
[package.extras]
docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.0)", "mkdocs-nature (>=0.4)"]
testing = ["coverage", "pyyaml"]
[[package]] [[package]]
name = "mccabe" name = "mccabe"
version = "0.7.0" version = "0.7.0"
@ -253,4 +268,4 @@ files = [
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.10" python-versions = "^3.10"
content-hash = "23169e9f6f71a2b23a984051083562a0b5cc0eb95a224bcd6dbef2b3dffe7b7b" content-hash = "1fc8f57d5dd1b53de4879607d1c7e7c8d9acafd9cbafe4ff64763766d69a4d51"

View File

@ -15,6 +15,7 @@ django-environ = "^0.10.0"
django-cleanup = "^8.0.0" django-cleanup = "^8.0.0"
django-crispy-forms = "^2.0" django-crispy-forms = "^2.0"
crispy-bootstrap5 = "^0.7" crispy-bootstrap5 = "^0.7"
markdown = "^3.4.4"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
flake8 = "^6.0.0" flake8 = "^6.0.0"