问题
I'm trying to implement the WMD editor used on StackOverflow to create some basic Wiki-style functionality. I'm up to the point where it's time to save to the database, but I'm unsure as to what I should be saving.
If I save the produced HTML then I can retrieve and display it correctly, but on re-edit I'm faced with editing HTML, not Markdown. However, if I save the Markdown I can't see any way of converting this back to HTML to display, and looking at StackOverflow it sends the browser HTML.
I'm guessing that I don't need to save both, so what simple thing am I missing?
回答1:
Absolutely save the Markdown code as entered by the user.
Then you'll need a Markdown converter that will convert it to HTML for displaying it.
You'll find a bunch of these at
http://en.wikipedia.org/wiki/Markdown#Converters
and
http://markdown.infogami.com/
I'd vote against using JS in your case. There appears to be a .NET implementation but I can't tell you how good it is.
While rendering your page you'll have to pass the Markdown code to a converter like the above and then output the returned HTML.
If performance is an issue you might also consider saving both the Markdown code (for later editing) AND the HTML code (for displaying) inthe database. That way it will only be converted once.
回答2:
I would suggest saving the exact entered text to the database, so editing will work with the original markdown or HTML.
When you retrieve the text for display, you parse it on the server side and convert to HTML where necessary
[Edit] At comment: You seem to have a way of parsing and converting to HTML already, if I understand your question correctly. Here you talk about the produced HTML.
If I save the produced HTML then I can retrieve and display it correctly, but on re-edit I'm faced with editing HTML, not Markdown
来源:https://stackoverflow.com/questions/125911/saving-contents-of-the-wmd-editor-control