diff --git a/www/Dockerfile b/www/Dockerfile index 931f8d8419185cdfe31ab7d0a4f0b3bf3bca66dd..e718b7d5617789e0bb8366eb404a33fa7588c453 100644 --- a/www/Dockerfile +++ b/www/Dockerfile @@ -31,6 +31,7 @@ RUN pip3 install \ uwsgi \ django-two-factor-auth \ matterhook \ + markdown \ --upgrade RUN pip3 install git+https://github.com/nkunihiko/django-bootstrap3-datetimepicker.git diff --git a/www/web/warpmain/templates/warpmain/main.html b/www/web/warpmain/templates/warpmain/main.html index f2fc14dbe285b6f48bb82beb9b6dfb539779f429..46fd97ecfe80b29defdf449d3b294b89441b50be 100644 --- a/www/web/warpmain/templates/warpmain/main.html +++ b/www/web/warpmain/templates/warpmain/main.html @@ -21,7 +21,24 @@ </div> </div> </form> + <div class="panel-body"> + <H4>{%trans "markdown_support" %}</H4> + <pre> +# h1 +## h2 +### h3 +#### h4 + +1. Ordered item 1 +2. Ordered item 2 + +* Unordered item 1 +* Unordered item 2 +</pre> + <br> + </div> </div> + </div> {% endif %} {% for news in news_list %} @@ -30,7 +47,7 @@ <span class="lead">{{ news.title }}</span><div class="pull-right">{% if user.is_superuser %}<a href="/news/delete/{{ news.id }}" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span></a>{% endif %}</div> </div> <div class="panel-body"> - {{ news.message|linebreaksbr }} + {{ news.message|safe }} </div> <div class="panel-footer"> {% trans "created_by" %} {{ news.user }} {{ news.created | naturaltime }} diff --git a/www/web/warpmain/views.py b/www/web/warpmain/views.py index 97a5ea2b484c3604b6af49148d469004b7f9f4d9..07455afef0e0df7679affaabd171429eaa338a05 100644 --- a/www/web/warpmain/views.py +++ b/www/web/warpmain/views.py @@ -5,6 +5,8 @@ from warpmain.models import News, NewsForm from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from warpzone.util import send_to_mattermost +import markdown +from django.utils.html import escape @login_required(login_url=settings.LOGIN_URL, redirect_field_name=None) def index(request, news_id=0): @@ -26,7 +28,11 @@ def index(request, news_id=0): news_form = NewsForm(News.objects.get(id=news_id)) page_context['create_news_form'] = news_form - page_context['news_list'] = News.objects.order_by("-created") + page_context['news_list'] = [] + news_list = News.objects.order_by("-created") + for news in news_list: + news.message = markdown.markdown(escape(news.message), extensions=['markdown.extensions.nl2br','markdown.extensions.sane_lists']) + page_context['news_list'].append(news) return HttpResponse(render(request, 'warpmain/main.html', page_context))