2

I want to implement markdown to my forums.

I research many possible approaches how I would do that and this is what I thought:

A simple approach would involve pagedown on client side and php-markdown on the server.

My approach is to save pure markdown to database and when displaying convert to HTML (with pagedown). Since I already have security layer for my server side (HTML elements whitelist) and all the necessary staff I don't see anything to lose here.

What I win in this case? well I have to modify pagedown to use custom buttons and patterns. That would be hard for me to maintain both php and JavaScript.

My question is: is this good aproach? To break this question:

  1. Is there any serious overhead on client side loading about 30 posts and converting it to HTML (performance)
  2. With the Idea that I check elements whitelist, is there any security issue I need to know about? (Security)
4

4 回答 4

4

我不会使用客户端降价引擎。从一些快速的谷歌搜索来看,它的 CPU 非常密集。加载 30 个帖子会增加相当多的开销。

如果您将 MD 存储在数据库中,动态呈现为 HTML,然后使用一些可以很好地工作的缓存(memcached 或 redis)。

关于安全性,这里有一个很好的阅读,它需要一些额外的清理删除脚本/链接/重定向等。

进一步阅读

于 2014-04-04T03:39:37.597 回答
2

正如@Lex 所说,不建议从客户端转换降价。相反,您可以使用一些在线服务为您转换markdown top html。
看看http://daringfireball.net/projects/markdown/dingus。您可以使用 curl 或其他东西将降价发布到网站,然后废弃网站以获取 html 部分。你也可以看看这里http://parsedown.org/

于 2014-04-04T03:59:31.723 回答
2

你有两个选择建议:

  • Strapdown - 允许在没有服务器端处理的情况下创建降价文档,正如您在该页面上看到的那样,即使没有代码,只需使用静态文件即可
  • markdown-js - 允许使用客户端处理 (javascript) 创建 Markdown 文档
于 2014-04-08T08:07:39.457 回答
1

这是我的做法:

将降价代码保存在 db 中并在渲染时将结果缓存在文件中(文件、Memcached 或您想要的任何缓存存储引擎)。这样,我将原始文件保存在数据库中,并且不会在每次访问页面时浪费资源来编译 markdown,而是提供缓存文件,直到它因更改而过期或删除。

于 2014-04-10T16:48:33.333 回答