如何在我的django表单上连接WMD编辑器?

8 django wmd-editor

如何将WMD编辑器连接到我的django表单上?

zgo*_*oda 10

这是完整的Django小部件类:

class WMDEditor(forms.Textarea):

    def __init__(self, *args, **kwargs):
        attrs = kwargs.setdefault('attrs', {})
        if 'cols' not in attrs:
            attrs['cols'] = 58
        if 'rows' not in attrs:
            attrs['rows'] = 8
        super(WMDEditor, self).__init__(*args, **kwargs)

    def render(self, name, value, attrs=None):
        rendered = super(WMDEditor, self).render(name, value, attrs)
        return rendered + mark_safe(u'''<script type="text/javascript">
            wmd_options = {
                output: "Markdown",
                buttons: "bold italic | link blockquote code image | ol ul"
            };
            </script>
            <script type="text/javascript" src="%sjs/wmd/wmd.js"></script>''' % settings.MEDIA_URL)
Run Code Online (Sandbox Code Playgroud)

在表单定义中使用它text = forms.CharField(widget=WMDEditor).

  • 应该归功于Jannis Leidel,我借鉴了他的想法.:) (2认同)

Har*_*lby 3

从当前 WMD 下载中的 readme.txt 中:

要安装编辑器,请在结束<body> 标记之前包含 wmd.js:

<script type="text/javascript" src="wmd/wmd.js"></script>
Run Code Online (Sandbox Code Playgroud)

例子:

<!DOCTYPE html>
<html>
  <head>
    <title>My Page</title>
  </head>
  <body>
    <textarea></textarea>
    <script type="text/javascript" src="wmd/wmd.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

默认情况下,WMD 会将页面上的第一个文本区域变成编辑器。您可以使用类修改此行为 wmd-ignore,如下所述。(也可以禁用自动启动并通过 JavaScript 实例化编辑器,如 中所示 apiExample.html。但请注意,当前的 API 将在即将发布的开源版本中发生很大变化;它实际上从未供公众使用。)

因此,将必要的代码添加到用于呈现表单的模板中,并确保要使用 WMD 的文本区域是页面上的第一个,然后就可以开始了。