Py学习  »  公告

社区发布: 正式采用Markdown作为编辑器

Py站长 • 12 年前 • 10795 次点击  

Markdown 的目标是实现「易读易写」。Markdown 语法的目标是:成为一种适用于网络的书写语言。Markdown的使用方法请看 http://wowubuntu.com/markdown/

社区之所以采用markdown的原因在于:

  1. 用 MARDOWN 书写的语言特别漂亮干净
  2. 有越来越多的程序员使用 MARKDOWN 来写文章,文章包括文字、代码。
  3. Markdown对于展示代码特别棒
  4. markdown是国际著名网站 stackoverflow , 以及国内一些知名社区如 rubychina, pythonchina 等所采用。

这样,大家未来,可以在本社区讨论代码问题了 :)

还有一个好消息时,社区在发布消息时,支持实时预览啦,大家可以看自己编辑框的下面。

补充说明一下,平时大家可以不使用markdown进行讨论问题,也可以采用markdown进行讨论,这是大家的自由:)

enter image description here

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36
 
10795 次点击  
文章 [ 6 ]  |  最新文章 12 年前
delong
Reply   •   1 楼
delong    12 年前

github 就是用markdown做本文格式的, 个人只用过ReStructuredText 平时主要是读别人的文档 自己写的不多

Py站长
Reply   •   2 楼
Py站长    12 年前

@木头lbj 支持使用 pagedown 就可以啦~

木头lbj
Reply   •   3 楼
木头lbj    12 年前

楼主,最近做个东西,也想做markdown支持,楼主能给些资料和建议么?

Py站长
Reply   •   4 楼
Py站长    12 年前

我是研究 Pagedown https://github.com/ujifgc/pagedown 这个开源项目 做出来的,有问题可以讨论 :)

honkin2011-weibo
Reply   •   5 楼
honkin2011-weibo    12 年前

怎么配置Markdown的?是用wmd吗?最近正愁这个,有教程能分享下吗?

Py站长
Reply   •   6 楼
Py站长    12 年前

正面演示一下 代码展示方法(代码片段取自 Pagedown https://github.com/ujifgc/pagedown )

怎么样,代码好看吧,

class PagedownWidget(forms.Textarea):

    def __init__(self, attrs = None):
        super(PagedownWidget, self).__init__(attrs)

    class Media:
        css = {
            'all': ('pagedown/demo/browser/demo.css',)
        }
        js = ('%s/pagedown/Markdown.Converter.js' % settings.STATIC_URL.rstrip('/'),
              '%s/pagedown/Markdown.Sanitizer.js' % settings.STATIC_URL.rstrip('/'),
              '%s/pagedown/Markdown.Editor.js' % settings.STATIC_URL.rstrip('/'),)

    def render(self, name, value, attrs = None):

        panel = "wmd-panel"
        input = "wmd-input"
        if self.attrs.get('id', "") == "reply_content":
            panel = "wmd-panel-reply"
            input = "wmd-input-reply"

        if value is None:
            value = ''
        if 'class' in self.attrs:
            self.attrs['class'] += (" " + input)
        else:
            self.attrs['class'] = input

        final_attrs = self.build_attrs(attrs, name = name)
        html = """
            <div class="wmd-wrapper">
                <div class="%(panel)s">
                <div id="%(id)s_wmd_button_bar"></div>
                <textarea%(attrs)s>%(body)s</textarea>
                </div>
                <div id="%(id)s_wmd_preview" class="wmd-panel wmd-preview"></div>
            </div>
            <script type="text/javascript">
                (function () {
                    var converter = Markdown.getSanitizingConverter();
                    selectors = {
                        input : "%(id)s",
                        button : "%(id)s_wmd_button_bar",
                        preview : "%(id)s_wmd_preview",
                    }
                    var editor = new Markdown.Editor(converter, "", selectors);
                    editor.run();
                })();
            </script>
            """ % {
                'panel': panel,
                'attrs': flatatt(final_attrs),
                'body': conditional_escape(force_unicode(value)),
                'id': final_attrs['id'],
            }
        return mark_safe(html)


class AdminPagedownWidget(admin_widgets.AdminTextareaWidget, PagedownWidget):

    class Media:
        css = {
            'all': ('admin/css/pagedown.css',)
        }