Custom markdown filter, 3rd party one wasn't thread safe
This commit is contained in:
parent
d61371a495
commit
5d21399a73
3 changed files with 18 additions and 3 deletions
2
setup.py
2
setup.py
|
|
@ -23,7 +23,7 @@ INSTALL_REQUIRES = [
|
|||
"Flask-Principal>=0.3.5,<0.4",
|
||||
"Flask-Babel>=0.9,<0.10",
|
||||
"Flask-Assets>=0.10,<0.11",
|
||||
"Flask-Markdown>=0.3,<0.4",
|
||||
"markdown>=2.6.4,<2.7",
|
||||
"pyserial>=2.7,<2.8",
|
||||
"netaddr>=0.7.17,<0.8",
|
||||
"watchdog>=0.8.3,<0.9",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ from flask.ext.login import LoginManager, current_user
|
|||
from flask.ext.principal import Principal, Permission, RoleNeed, identity_loaded, UserNeed
|
||||
from flask.ext.babel import Babel, gettext, ngettext
|
||||
from flask.ext.assets import Environment, Bundle
|
||||
from flaskext.markdown import Markdown
|
||||
from babel import Locale
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.observers.polling import PollingObserver
|
||||
|
|
@ -649,7 +648,8 @@ class Server(object):
|
|||
response.headers.add("X-Clacks-Overhead", "GNU Terry Pratchett")
|
||||
return response
|
||||
|
||||
Markdown(app)
|
||||
from octoprint.util.jinja import MarkdownFilter
|
||||
MarkdownFilter(app)
|
||||
|
||||
def _setup_i18n(self, app):
|
||||
global babel
|
||||
|
|
|
|||
|
|
@ -159,3 +159,18 @@ class ExceptionHandlerExtension(Extension):
|
|||
return "Unknown error"
|
||||
|
||||
trycatch = ExceptionHandlerExtension
|
||||
|
||||
|
||||
class MarkdownFilter(object):
|
||||
|
||||
def __init__(self, app, **markdown_options):
|
||||
self._markdown_options = markdown_options
|
||||
app.jinja_env.filters.setdefault("markdown", self)
|
||||
|
||||
def __call__(self, stream):
|
||||
from jinja2 import Markup
|
||||
from markdown import Markdown
|
||||
|
||||
# Markdown is not thread safe
|
||||
markdown = Markdown(**self._markdown_options)
|
||||
return Markup(markdown.convert(stream))
|
||||
|
|
|
|||
Loading…
Reference in a new issue