首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将web应用从HTML切换到Markdown?

如何将web应用从HTML切换到Markdown?
EN

Stack Overflow用户
提问于 2009-08-11 02:08:42
回答 4查看 1.1K关注 0票数 2

我有一个由django驱动的网站。目前,所有的文本字段都只是采用原始HTML的普通老式文本输入。我没有花哨的编辑器或其他东西。我想开始使用Markdown和WMD,让每个人的事情变得更容易。

我是否必须运行某种脚本来遍历数据库中的每个文本字段,以便将所有HTML转换为markdown?如果我通过markdown过滤器运行HTML,它会在另一端得到相同的结果吗?WMD编辑器会从服务器读取HTML并将其转换为Markdown以供用户编辑吗?

这里正确的行动方向是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-12 14:30:50

显然,将旧的HTML转换为markdown是完全不必要的。我将django.contrib.markup.markdown过滤器应用到我的模板中,遗留数据库记录中的HTML被直接传递。非遗留记录中的Markdown也被正确呈现。

当然,我的web应用程序不允许用户修改这些字段,所以让HTML直接通过是可以的。如果这是一个用户可编辑的字段,比如评论或wiki,那么这个解决方案是不够的。您必须将safe参数传递给markdown模板筛选器,这将剥离所有HTML,并且一些HTML到markdown的转换对于用HTML编写的遗留帖子是必要的。

在这种情况下,另一种解决方案是编写包装markdown筛选器的新模板筛选器。它将允许旧的HTML帖子通过,但将安全标记过滤器应用于非遗留帖子。

票数 0
EN

Stack Overflow用户

发布于 2009-08-11 03:10:56

正如我在your other question中提到的,使用markdown时的一个好模式是在数据库中以markdown和html格式存储文本。这样,你就不需要在每次浏览页面时都转换成html,而且在管理中编辑原始的markdown也很容易。

例如,博客应用程序可能具有

代码语言:javascript
复制
class BlogPost(models.Model):

    ...

    body = models.TextField(help_text='Use Markdown syntax.')
    #field to store generated html
    body_html = models.Textfield(editable=False, blank=True)

    ...

    def save(self):
        body_html=markdown(self.body)
        super(BlogPost, self).save()

    ...

然后,在模板中,您可以使用{{body_html|safe}}

我希望这能让你对如何改变你的模型有一个想法。对于如何处理遗留的html数据,我恐怕没有什么建议。

票数 4
EN

Stack Overflow用户

发布于 2009-08-11 02:36:00

WMD不做Html- to - markdown,只有反之亦然;你可以用html2text将HTML转换为markdown。默认情况下,WMD只使用您的第一个文本区域作为标记编辑器,但您可以覆盖它并添加预览--只需遵循WMD附带的简单示例中的说明即可。API无论如何都在发生变化(值得肯定的是,作者对此并不神秘),因为整个事物都转向了一个更真正的开源概念,所以现在不值得详细解释它,也不值得尝试任何花哨的东西!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1258153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档