Add markdown support

This commit is contained in:
2022-04-09 23:02:22 +02:00
parent c1315332e3
commit 28d2f5a68e
10 changed files with 71 additions and 39 deletions

View File

@@ -1,23 +1,4 @@
import os
import subprocess
def git_suffix(fname):
"""
:returns: `<short git hash>` if Git repository found
"""
try:
gh = subprocess.check_output(
['git', 'rev-parse', '--short', 'HEAD'],
stderr=open(os.devnull, 'w')).strip()
gh = "-git" + gh.decode() if gh else ''
except Exception:
# trapping everything on purpose; git may not be installed or it
# may not work properly
gh = ''
return gh
from dcc.utils import git_suffix
__version__ = '0.0.1'
__version__ += git_suffix(__file__)

View File

@@ -18,21 +18,20 @@ from django.conf.urls.static import static
from django.contrib import admin
from django.urls import include, path
from portal.utils import get_site_conf
from portal.views import GetHome
from consist import urls as consist_urls
from roster import urls as roster_urls
from driver import urls as driver_urls
admin.site.site_header = "Trains assets manager"
site_conf = get_site_conf()
admin.site.site_header = site_conf.site_name
urlpatterns = [
path('', GetHome.as_view(), name='index'),
path('page/<int:page>', GetHome.as_view(), name='index_pagination'),
path("", GetHome.as_view(), name="index"),
path("page/", include("portal.urls")),
path("ht/", include("health_check.urls")),
path("admin/", admin.site.urls),
path("api/v1/consist/", include(consist_urls)),
path("api/v1/roster/", include(roster_urls)),
path("api/v1/dcc/", include(driver_urls)),
path("api/v1/consist/", include("consist.urls")),
path("api/v1/roster/", include("roster.urls")),
path("api/v1/dcc/", include("driver.urls")),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# if settings.DEBUG:

View File

@@ -1,7 +1,27 @@
import os
import subprocess
from django.utils.html import format_html
from django.utils.text import slugify as django_slugify
def git_suffix(fname):
"""
:returns: `<short git hash>` if Git repository found
"""
try:
gh = subprocess.check_output(
['git', 'rev-parse', '--short', 'HEAD'],
stderr=open(os.devnull, 'w')).strip()
gh = "-git" + gh.decode() if gh else ''
except Exception:
# trapping everything on purpose; git may not be installed or it
# may not work properly
gh = ''
return gh
def get_image_preview(url):
return format_html(
'<img src="%s" style="max-width: 150px; max-height: 150px;'

View File

@@ -0,0 +1,17 @@
# Generated by Django 4.0.3 on 2022-04-09 21:01
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('portal', '0004_rename_footer_short_siteconfiguration_footer_extended_and_more'),
]
operations = [
migrations.RemoveField(
model_name='siteconfiguration',
name='homepage_content',
),
]

View File

@@ -16,8 +16,6 @@ class SiteConfiguration(SingletonModel):
(str(x * 3), str(x * 3)) for x in range(2, 11)],
default='6'
)
homepage_content = models.TextField(blank=True)
footer = models.TextField(blank=True)
footer_extended = models.TextField(blank=True)
show_version = models.BooleanField(default=True)

View File

@@ -1,10 +1,12 @@
{% load markdown %}
<footer class="text-muted py-5">
<div class="container">
<p class="float-end mb-1">
<a href="#">Back to top</a>
</p>
<p class="mb-1">&copy; {% now "Y" %} {{ site_conf.footer }}</p>
<p class="mb-0">{{ site_conf.footer_extended }}</p>
<p class="mb-1">&copy; {% now "Y" %} {{ site_conf.footer | markdown | safe }}</p>
<p class="mb-0">{{ site_conf.footer_extended | markdown | safe }}</p>
</div>
{% if site_conf.show_version %}
<div class="container">

View File

@@ -1,5 +1,6 @@
{% load static %}
{% load solo_tags %}
{% load markdown %}
{% get_solo 'portal.SiteConfiguration' as site_conf %}
<!doctype html>
@@ -11,11 +12,8 @@
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Hugo 0.88.1">
<title>{{ site_conf.site_name }}</title>
<link rel="canonical" href="https://getbootstrap.com/docs/5.1/examples/album/">
<!-- Bootstrap core CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="{% static "css/main.css" %}" rel="stylesheet">
@@ -35,8 +33,6 @@
}
}
</style>
</head>
<body>
@@ -57,7 +53,7 @@
<div class="row py-lg-5">
<div class="mx-auto">
<h1 class="fw-light">About</h1>
<p class="lead text-muted">{{ site_conf.about | safe }}</p>
<p class="lead text-muted">{{ site_conf.about | markdown | safe }}</p>
</div>
</div>
</section>

View File

View File

@@ -0,0 +1,12 @@
from django import template
from django.template.defaultfilters import stringfilter
import markdown as md
register = template.Library()
@register.filter
@stringfilter
def markdown(value):
return md.markdown(value, extensions=['markdown.extensions.fenced_code'])

7
dcc/portal/urls.py Normal file
View File

@@ -0,0 +1,7 @@
from django.urls import path
from portal.views import GetHome
urlpatterns = [
path("<int:page>", GetHome.as_view(), name='index_pagination'),
]