aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/edit.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-05-06 18:21:34 +0100
committerGravatar Gareth Coles <[email protected]>2018-05-06 18:21:34 +0100
commitefb902f3f293db4aac6e57b9f3a84143d84a90e9 (patch)
tree69fd91e690f1b8e150b839927c8bb312ebf81abc /pysite/views/wiki/edit.py
parentI 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.py10
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"]
}