起首,我认可题目党的嫌疑是逃不掉的了...然则,诸君请继承看下去,就会发明照样有干货的
源码:https://github.com/shuiRong/m…
Demo:https://shuirong.github.io/src/
写这个Markdown编辑器的难点有两个:
1.对文本举行Markdown语法的剖析
2.及时检测页面文本变化.
针对1,我在Gayhub上找到了markedJS,看README就可以很快地上手.
针对2,我挑选的是VueJS,由于我看中了她的双向绑定特征(固然数据和视图间的单向绑定就够了).而且VueJS异常轻量,简朴轻易上手不说,中文文档几乎业界良知.
注:代码高亮部份我用的是highlight.js
index.html
<div id='container'>
<textarea id='editor' v-model='text'>
</textarea>
<div id='server' v-html='markedText'>
</div>
</div>
main.js
var vm = new Vue({
el: '#container',
data: {
text: ''
},
computed: {
markedText: function(){
return marked(this.text);
}
}
});
中心部份就是这些了.再自定义下相干CSS,一个支撑及时预览的Markdown编辑器就搞定了.
这么简朴?固然不能这么说.由于最难的markdown语法剖析和及时预览部份引用了别处的代码.假如都是本身完成的话,够喝一壶的了.
既然说到这里,那就聊聊MD语法剖析和数据的双向绑定的完成.
MD语法剖析:简朴完成玩玩的话,基础的HTML/CSS/JS,重要正则玩的溜就够了.
及时预览的重点在于数据和视图间的单向绑定.进一步引见看这里