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',
]