12行代码实现一个Web版Markdown编辑器: 实时预览

首先,我承认标题党的嫌疑是逃不掉的了...但是,诸君请继续看下去,就会发现还是有干货的


源码https://github.com/shuiRong/m...
Demohttps://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,主要正则玩的溜就够了.

  • 实时预览的重点在于数据和视图间的单向绑定.进一步介绍看这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值