What is the best way to store WMD input/markdown in SQL server and display later?

后端 未结 2 1961
深忆病人
深忆病人 2020-12-24 03:59

I\'m looking at using WMD in my project instead of my existing RadEditor. I have been reading a few posts on how to store and retrieve the data, and I want to make sure I h

相关标签:
2条回答
  • 2020-12-24 04:12

    So one of the ides behind Markdown is that it will produce "safe" html - there should be no need for separate encoding.

    More generally I would recommend storing "raw" data in the database, without transforming it or sanitising it. You should always sanitise or transform as close to the rendering point as possible - it gives greater flexibility (oh, suddenly I need to render as RSS. Or JSON. Damn, I can't because I pre-formatted for HTML) and, should the sanitiser or renderer be updated you see the effects of the update on every piece of data.

    I would say store the markdown text in the database, and then convert it when you want it rendered, using the markdown library for this which, in theory, should all safe HTML built from its safe list of tags and attributes.

    0 讨论(0)
  • 2020-12-24 04:37

    I'm implementing Markdown in a Blog engine I'm writing (who doesn't write blog engines?), and I've also implemented Markdown in a number of customized CMSs I've written for clients.

    I do it very similarly to how the Stack Overflow team does it:

    1. I use the wmd.js as the client side editor.
    2. I use the MarkdownSharp server side processing.
    3. I use Jeff Atwood's Sanitize HTML to cover processing HTML.

    Here are some resources that talk about Markdown:

    • Introducing MarkdownSharp
    • Three Markdown Gotchas
    • Markdown, One Year Later
    • Reverse Engineering the Markdown Editor
    • WMD Edtior Reverse Engineered

    Bottom line:

    1. I store the post in the form it was submitted in; It's displayed using MarkdownSharp.
    2. I sanitize the HTML using Jeff Atwood's approach (On output, not on input).
    3. I utilize ASP.NET MVC 'best practices' (a highly subjective term) to deal with XSS and XSRF.
    0 讨论(0)
提交回复
热议问题