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 nine.versions import DJANGO_GTE_1_11

from fobi.helpers import safe_text

__title__ = 'fobi.reusable.markdown_widget.widgets'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2014-2018 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): if value is None: value = '' if not attrs: attrs = self.attrs else: attrs.update(self.attrs) if DJANGO_GTE_1_11: final_attrs = self.build_attrs( attrs, extra_attrs={'name': name} ) else: final_attrs = self.build_attrs(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', ]