diff --git a/markdownblog/Dockerfile b/markdownblog/Dockerfile index cd375d3..4458d0a 100644 --- a/markdownblog/Dockerfile +++ b/markdownblog/Dockerfile @@ -2,6 +2,9 @@ FROM python:3.10-alpine ENV PYTHONBUFFERED 1 RUN apk update && apk upgrade +RUN apk add curl bash jq +RUN curl https://raw.githubusercontent.com/hedgedoc/cli/master/bin/hedgedoc > /bin/hedgedoc +RUN chmod +x /bin/hedgedoc RUN mkdir "/markdownblog" WORKDIR "/markdownblog" ADD ./requirements.txt /markdownblog/ diff --git a/markdownblog/blog/urls.py b/markdownblog/blog/urls.py index 6fedce4..7d455c8 100644 --- a/markdownblog/blog/urls.py +++ b/markdownblog/blog/urls.py @@ -1,9 +1,10 @@ -from blog.views import viewblog, addpost, createmocks, order +from blog.views import viewblog, addpost, createmocks, order, index from django.urls import path urlpatterns = [ - path('', viewblog, name="index"), + path('', index, name="index"), path('manage/addpost', addpost, name='addpost'), path('manage/order', order, name='order'), path('mock///', createmocks, name='mock'), + path('read/', viewblog, name='readpost'), ] diff --git a/markdownblog/blog/views.py b/markdownblog/blog/views.py index aa5fbd8..1890ce2 100644 --- a/markdownblog/blog/views.py +++ b/markdownblog/blog/views.py @@ -1,5 +1,6 @@ import os import random +import markdown2 from django.contrib.auth.decorators import login_required from django.db import IntegrityError @@ -12,13 +13,26 @@ from django.views.decorators.csrf import csrf_exempt from markdownblog import settings -def viewblog(request) -> HttpResponse: +def viewblog(request, title) -> HttpResponse: + post = Blogpost.objects.get(title=title) + filepath = os.path.join(os.environ.get("MD_FILE_PATH"), title + ".md") + with open(filepath, 'r') as mdfile: + md_file_content = mdfile.read() + mdfile.close() + + html = markdown2.markdown(md_file_content, extras=['footnote', 'task_list', 'strike']) + + context = {'post': post, 'html': html} + return render(request, 'blog/viewpost.html', context) + + +def index(request) -> HttpResponse: return render(request, 'blog/index.html', {"debug": settings.DEBUG}) @login_required @csrf_exempt -def order(request): +def order(request) -> HttpResponse: if request.method == "POST": root_id = int(request.POST['rootID']) if request.POST['rootID'] != 'root_list' else None child_id = int(request.POST['childID']) @@ -67,7 +81,7 @@ def addpost(request) -> HttpResponse: with open(filepath, "w+") as mdfile: mdfile.write(markdown) mdfile.close() - context['error'] = "Post " + title + " created." + context['error'] = "Post \"" + title + "\" created." return render(request, 'blog/addpost.html', context) diff --git a/markdownblog/markdownblog/templates/blog/order.html b/markdownblog/markdownblog/templates/blog/order.html index 808f96c..a38a89a 100644 --- a/markdownblog/markdownblog/templates/blog/order.html +++ b/markdownblog/markdownblog/templates/blog/order.html @@ -18,7 +18,7 @@ {% if post.topic == None %}
  • - Post: {{ post }} + {{ post }}
  • {% endif %} {% endfor %} diff --git a/markdownblog/markdownblog/templates/blog/tree_view_template.html b/markdownblog/markdownblog/templates/blog/tree_view_template.html index a789867..e36e30a 100644 --- a/markdownblog/markdownblog/templates/blog/tree_view_template.html +++ b/markdownblog/markdownblog/templates/blog/tree_view_template.html @@ -15,7 +15,7 @@ {% if post.topic.id == topic.id %}
  • - Post: {{ post }} + {{ post }}
  • {% endif %} {% endfor %} diff --git a/markdownblog/markdownblog/templates/blog/viewpost.html b/markdownblog/markdownblog/templates/blog/viewpost.html index de155ea..c14d707 100644 --- a/markdownblog/markdownblog/templates/blog/viewpost.html +++ b/markdownblog/markdownblog/templates/blog/viewpost.html @@ -1,10 +1,12 @@ - - - - - Title - - - - - \ No newline at end of file +{% extends 'base/base.html' %} +{% load static %} +{% block title %} + {{ post.title }} +{% endblock %} +{% block includehere %} +{% endblock %} +{% block content %} + {% autoescape off %} + {{ html }} + {% endautoescape %} +{% endblock %} \ No newline at end of file diff --git a/markdownblog/requirements.txt b/markdownblog/requirements.txt index 1ae8113..e678d35 100644 --- a/markdownblog/requirements.txt +++ b/markdownblog/requirements.txt @@ -1,3 +1,4 @@ django==4.0.5 psycopg2-binary>=2.9.3 -factory-boy>=3.2.1 \ No newline at end of file +factory-boy>=3.2.1 +markdown2>=2.4.3 \ No newline at end of file