Markdown和编辑器
赖永炫   Thu Dec 08 2016 22:33:21 GMT+0800 (中国标准时间) [ 技术 ]     浏览次数:2585
版权声明: 本文发自http://mocom.xmu.edu.cn,为 赖永炫 老师的个人博文,文章仅代表个人观点。无需授权即可转载,转载时请务必注明作者。

目前自己写一些东西,都用的是Markdown格式的编辑器。比如Typora和Ulysses,非常轻量级,界面也非常干净整洁。写起文字来,总是有一种如释重负之感,这种感觉,犹如初高中时候新买了一个非常漂亮的日记本。

客户端写的舒服,不免想要在发布博客的时候,与markdown无缝的对接。由于网页编辑器采用的是ckEditor,因此,发现它有一个markdown的插件,这个插件用了好一段时间。但有几次,感觉非常的不好用。主要原因是用户必须先点击“markdown”的按钮,输入markdown文本;然后在点击提交之前再次点击这个按钮,才能把输入的文本转化成html文本。否则,文本都将丢失。而且好几次,在输入代码模块的时候,html和markdown文本之间的转换会丢失信息。

因此,痛下决心,要改造这个网页编辑器。找来找去,找到了以下几个控件:

<script src="/mdeditor/js/markdown.js"></script>
    <script src="/mdeditor/js/to-markdown.js"></script>
    <script src="/mdeditor/js/bootstrap-markdown.js"></script>

实现了markdown编辑器的功能,仅需要一行语句:

 <textarea id="txtContent" name="txtContent" type="text"
                          rows="30" class="form-control"                      
                          data-provide="markdown"                      
                          placeholder="内容*">  </textarea>

在网页渲染的时候,也很容易转化成html文本:

markdown.toHTML($("#textcontent").text()

此外,写技术博客最需要的代码的高亮显示和latex的公式编辑。前者的解决方法是调用highlight库,会自动的对code内的文本进行高亮,且还可自选主题。

<link rel="stylesheet" href="/highlight/styles/googlecode.css">
<script src="/highlight/highlight.pack.js"></script>

而后者,解决方案不少,但相对技术资料较少。方法一是调用某个能提供latex图片显示的网址,从该网址上获取转换后的图片。比如ckeditor就支持eqneditor的插件,可以把数学公司转化成图片,并集成进来。但这种方法的图片总是觉得模糊,且万一提供图片转化的服务器不可用了,则无法显示公式图片了。方法二呢,利用第三方的js库,直接生成非图片的数学公式。公示显示非常清晰,也不担心第三方服务器不可用的问题。找来找去,发现一个非常好用的库 mathjax(http://docs.mathjax.org/en/latest/index.html)。 仅需要导入这个库,即可把latex文本转化成公式。一个例子是

IDF(t,D) = log \frac{\left| D \right| + 1}{DF(t,D) + 1}

将被解析成:

$$ IDF(t,D) = log \frac{\left| D \right| + 1}{DF(t,D) + 1} $$


自动标签  : Markdown   编辑器   高亮   图片   文本   显示   网页编辑器   一个非常   公式   方法   输入   latex    

更多 [ 技术 ] 文章

请先 登录, 查看相关评论.