Source code for fobi.reusable.markdown_widget.widgets
from django.forms.utils import flatatt
from django.forms.widgets import Textarea
from django.utils.html import format_html
from fobi.helpers import safe_text
__title__ = "fobi.reusable.markdown_widget.widgets"
__author__ = "Artur Barseghyan <artur.barseghyan@gmail.com>"
__copyright__ = "2014-2019 Artur Barseghyan"
__license__ = "GPL 2.0/LGPL 2.1"
__all__ = ("MarkdownWidget",)
[docs]class MarkdownWidget(Textarea):
"""Markdown widget based on remarkable."""
[docs] def render(self, name, value, attrs=None, **kwargs):
if value is None:
value = ""
if not attrs:
attrs = self.attrs
else:
attrs.update(self.attrs)
final_attrs = self.build_attrs(attrs, extra_attrs={"name": name})
return format_html(
'<div class="markdown-widget-wrapper">'
"<textarea{}>\r\n{}</textarea>"
'<div class="markdown-preview">Preview</div>'
"</div>",
flatatt(final_attrs),
safe_text(value),
)
[docs] class Media(object):
"""Media options."""
js = [
"markdown_widget/remarkable.min.js",
"content_markdown/fobi.plugin.content_markdown.js",
]