diff options
author | 2018-05-06 18:21:34 +0100 | |
---|---|---|
committer | 2018-05-06 18:21:34 +0100 | |
commit | efb902f3f293db4aac6e57b9f3a84143d84a90e9 (patch) | |
tree | 69fd91e690f1b8e150b839927c8bb312ebf81abc /pysite/views/wiki/edit.py | |
parent | I linted that, I swear (diff) |
[Wiki] Misc improvements, plus a beta search feature
Diffstat (limited to 'pysite/views/wiki/edit.py')
-rw-r--r-- | pysite/views/wiki/edit.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pysite/views/wiki/edit.py b/pysite/views/wiki/edit.py index 2cd4181c..bb39ed2b 100644 --- a/pysite/views/wiki/edit.py +++ b/pysite/views/wiki/edit.py @@ -1,5 +1,7 @@ import datetime import difflib +import html +import re import requests from flask import redirect, request, url_for @@ -11,6 +13,8 @@ from pysite.decorators import csrf, require_roles from pysite.mixins import DBMixin from pysite.rst import render +STRIP_REGEX = re.compile(r"<[^<]+?>") + class EditView(RouteView, DBMixin): path = "/edit/<path:page>" # "path" means that it accepts slashes @@ -55,11 +59,12 @@ class EditView(RouteView, DBMixin): @csrf def post(self, page): rst = request.form.get("rst") + title = request.form["title"] - if not rst: + if not rst or not not rst.strip(): raise BadRequest() - if not rst.strip(): + if not title or not title.strip(): raise BadRequest() rendered = render(rst) @@ -69,6 +74,7 @@ class EditView(RouteView, DBMixin): "title": request.form["title"], "rst": rst, "html": rendered["html"], + "text": html.unescape(STRIP_REGEX.sub("", rendered["html"]).strip()), "headers": rendered["headers"] } |