using md metadata title field as document name + using pypandoc for the markdown-to-html convertion now to support 'extra' features such as {.classname}

This commit is contained in:
manetta 2022-02-21 18:05:47 +01:00
parent dc07b810a6
commit e257d5359e
4 changed files with 14 additions and 8 deletions

View File

@ -9,6 +9,7 @@ from flask import escape
# To sanitize Markdown input # To sanitize Markdown input
import markdown import markdown
import pypandoc
import bleach import bleach
APP = Flask(__name__) APP = Flask(__name__)
@ -72,7 +73,8 @@ def create_pad_on_first_run(name, ext):
def md_to_html(md_pad_content): def md_to_html(md_pad_content):
# Convert Markdown to HTML # Convert Markdown to HTML
html = markdown.markdown(md_pad_content, extensions=['meta']) # html = markdown.markdown(md_pad_content, extensions=['meta', 'attr_list']) # attr_list does not work
html = pypandoc.convert_text(md_pad_content, 'html', format='md')
# Sanitize the Markdown # Sanitize the Markdown
# html = bleach.clean(html) # html = bleach.clean(html)
@ -153,8 +155,9 @@ def preview(name):
html = md_to_html(md_pad_content) html = md_to_html(md_pad_content)
metadata = get_md_metadata(md_pad_content) metadata = get_md_metadata(md_pad_content)
lang = metadata['language'][0] lang = metadata['language'][0]
title = metadata['title'][0]
return render_template('preview.html', name=name.strip(), pad_content=html, lang=lang) return render_template('preview.html', name=name.strip(), pad_content=html, lang=lang, title=title)
@APP.route('/<name>/pagedjs.html') @APP.route('/<name>/pagedjs.html')
def pagedjs(name): def pagedjs(name):
@ -163,8 +166,9 @@ def pagedjs(name):
html = md_to_html(md_pad_content) html = md_to_html(md_pad_content)
metadata = get_md_metadata(md_pad_content) metadata = get_md_metadata(md_pad_content)
lang = metadata['language'][0] lang = metadata['language'][0]
title = metadata['title'][0]
return render_template('pagedjs.html', name=name.strip(), pad_content=html, lang=lang) return render_template('pagedjs.html', name=name.strip(), pad_content=html, lang=lang, title=title)
# ////////////////// # //////////////////

View File

@ -2,7 +2,7 @@
<html lang='en'> <html lang='en'>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>{{ name }}</title> <title>{{ name }} in octomode</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css') }}"> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css') }}">
{% block head %} {% block head %}
{% endblock %} {% endblock %}

View File

@ -6,11 +6,12 @@
<script src="/static/paged.polyfill.js" type="text/javascript"></script> <script src="/static/paged.polyfill.js" type="text/javascript"></script>
<link href="/static/pagedjs.css" rel="stylesheet" type="text/css" media="screen"> <link href="/static/pagedjs.css" rel="stylesheet" type="text/css" media="screen">
<link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="print"> <link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="print">
<title>{{ name }}</title> <title>{{ title }}</title>
</head> </head>
<body> <body>
<section id="cover"> <section id="cover">
<h1>{{ name }}</h1> <h1 id="cover_title">{{ title }}</h1>
<div id="cover_container"></div>
</section> </section>
<section id="main"> <section id="main">

View File

@ -4,11 +4,12 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="screen"> <link href="/{{ name }}/stylesheet.css" rel="stylesheet" type="text/css" media="screen">
<title>{{ name }}</title> <title>{{ title }}</title>
</head> </head>
<body> <body>
<section id="cover"> <section id="cover">
<h1>{{ name }}</h1> <h1 id="cover_title">{{ title }}</h1>
<div id="cover_container"></div>
</section> </section>
<section id="main"> <section id="main">