首先,我知道有很多Markdown解析器。比如Parsedown(这个是用下来最好的),还有Michelf's PHP Markdown。但是由于项目需要在多处使用(不仅仅是发布文章的地方),所以需要能够自由定制的,还能跟项目配合的好。
在决定发这个帖子之前,我已经琢磨着自己写解析器很久了,但是进展缓慢,(一边玩一边写 + 本来数学就不好的掩面),特别是今天发现之前写的Tokenizer没办法完全满足要求可能需要重新设计(主要是通配符批匹配规则不完美)(艹,我都在写标签解析结果的渲染合并了)。于是我就有点小崩溃了……
要求是这样的:
- 可以关闭一些标签的解析,比如不允许解析 ` XXX ` 标签;
- 可以自定义产生的HTML代码(也就是说不一定是Markdown规范的输出代码);
- 可以设定一些标签解析的结果。比如可以设定 # 标题 # 从 H3开始,超过的就使用样式代替,这样可以在评论系统里方便的使用;
- 可以自行添加标签,然后自定义这个标签的解析器类。
比如我可以添加一个“附件”标记,格式类似于 +[附件标题](附件ID)。用户提交给解析器之后,解析器类会自动查询数据库找到这个附件,然后根据附件信息渲染成HTML输出到最终的渲染结果。
好吧,不知道有没有这样的,如果没有看来我只能硬着头皮重新写了。
PS:是的,我知道可以在得到渲染后的HTML里直接替换字符,但是……这样很明显不是最佳操作。
感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/137284
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.