Merge pull request #40 from Sagittal-ai/FLAS-67_markdown_in_post_body

FLAS-67: Implement Markdown Support in Blog Post Body
This commit is contained in:
JP 2024-09-17 10:51:12 +01:00 committed by GitHub
commit 6a07547875
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 3 deletions

View file

@ -1,6 +1,7 @@
import os
from flask import Flask, request, g
import markdown
def create_app(test_config=None):

View file

@ -6,6 +6,7 @@ from flask import render_template
from flask import request
from flask import url_for
from werkzeug.exceptions import abort
import markdown
from .auth import login_required
from .db import get_db
@ -22,6 +23,11 @@ def index():
" FROM post p JOIN user u ON p.author_id = u.id"
" ORDER BY created DESC"
).fetchall()
# Convert the immutable cursor to a list of dictionaries
posts = [dict(post) for post in posts]
# Convert markdown to HTML for each post body
for post in posts:
post['body'] = markdown.markdown(post['body'])
return render_template("blog/index.html", posts=posts)

View file

@ -8,7 +8,7 @@
<form method="post">
<label for="title">Title</label>
<input name="title" id="title" value="{{ request.form['title'] }}" required>
<label for="body">Body</label>
<label for="body">Body (Markdown supported)</label>
<textarea name="body" id="body">{{ request.form['body'] }}</textarea>
<input type="submit" value="Save">
</form>

View file

@ -19,7 +19,7 @@
<a class="action" href="{{ url_for('blog.update', id=post['id']) }}">Edit</a>
{% endif %}
</header>
<p class="body">{{ post['body'] }}</p>
<p class="body">{{ post['body']|safe }}</p>
</article>
{% if not loop.last %}
<hr>

View file

@ -8,7 +8,7 @@
<form method="post">
<label for="title">Title</label>
<input name="title" id="title" value="{{ request.form['title'] or post['title'] }}" required>
<label for="body">Body</label>
<label for="body">Body (Markdown supported)</label>
<textarea name="body" id="body">{{ request.form['body'] or post['body'] }}</textarea>
<input type="submit" value="Save">
</form>