SF社区目前用的语法是基于wiki和markdown衍生的,已经不止一个人跟我提过这个东西比较诡异了,我目前想在问题数还不是那么多的时候把这个问题解决掉。也就是换成完全标准的Markdown语法。它的语法解析完全没啥问题,网上都有很成熟的解析库。
但是如何把现在的语法格式转换成标准的markdown呢?希望大家能给出完整的解决方案
就是希望能有一个php实现的class或者function,输入现在的语法文字输出Markdown格式文字
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
关于这个,我记得我之前有提到过一个想法,就是通过元标记来辨别,类似于 vim 的 modeline。
从某个时间点开始,旧的内容头部统一添加类似 “!!syntax:sgwiki” 这样的标记用以区别旧的 wiki 语法,新的内容默认使用 markdown 撰写。当然,也可以支持更多的轻量的语法标记,不局限于 markdown,只要头部有相应的元标记即可。比如,“!!syntax:markdown” "!!syntax:multimarkdown" 等等。
十分不建议做自动的语法转换,这就好比用 RegEx 解析 HTML 一个道理,因为你永远也不可能考虑全部的情况,而且,最好保持用户的输入 intact,只提供兼容机制。这是最简单的方案。
方案:界面上渲染出的是html,如果把现在语法渲染后得到的界面上的html转成markdown呢?然后将库洗一遍。
最终的效果是不是这样的:界面上提供一个markdown语法的editor,然后从这个新editor上线后,对于以前的数据,用户点击‘编辑’时出现的是markdown的语法格式,对于以后新添的数据,也是用markdown语法编辑。
如果是这样的话:
洗库的工作量也是很大吧 , 支持 咳嗽di小鱼 , 这样最简单了 ,几步既可搞定, 功能扩展优于数据重构。