今天突发奇想,想给自己的博客加个留言功能。但是,一般的留言框又太简陋,连个换行都不方便,更别说代码高亮。所以我就琢磨着,能不能搞个带代码编辑功能的留言框?
于是我就开始在网上到处找资料。我想的挺美,找个现成的插件不就完事?结果,搜一圈,发现要么是功能太复杂,我用不上;要么就是太老旧,跟不上时代。
没办法,只能自己动手,丰衣足食。我先是想到几个比较出名的在线代码编辑器,像什么 PlayCode、Atom 之类的。但是这些要么是针对特定语言的,要么就是太重量级,不适合用在留言这种小地方。
后来我又把目光转向手机上的代码编辑器。毕竟现在大家都习惯用手机嘛像什么 code editor、c4droid、acode 这些,我都试个遍。但是,这些都是 APP ,总不能让访客为留个言,还专门下个 APP ?这不现实。
就在我快要放弃的时候,我突然想到 Markdown!这玩意儿既能排版,又能写代码,简直完美!于是我又开始找支持 Markdown 的编辑器。这回我找到 Marktext,这东西是基于 Vue 和 electron 构建的,看起来挺现代化的。
不过Marktext 还是有点太大,我只是想要个留言框而已。然后,我又发现,很多代码编辑器都支持 Markdown,比如 Markdown Monster、IntelliJ IDEA、SynWrite 等等。但是,这些都是桌面端的编辑器,不适合直接嵌到网页里。
我还是决定用最简单的方法:自己写一个!
我先用 HTML 搭个基本的框架,就是一个 textarea,然后在它上面加一些按钮,用来控制格式。然后,我用 JavaScript 写一些简单的逻辑,实现基本的 Markdown 语法解析和代码高亮。代码高亮这块,我还是偷懒,直接用现成的库。
- 先搞定HTML的结构,一个textarea是必须的。
- 然后用JS实现Markdown解析,这步有点麻烦。
- 是代码高亮,还好有现成的库可以用。
经过一番折腾,总算是搞定。虽然功能还比较简陋,但是基本的 Markdown 语法和代码高亮都支持。以后访客留言,就可以直接写 Markdown ,再也不用担心格式乱七八糟。
这回的实践,让我深刻体会到“自己动手,丰衣足食”的道理。虽然过程有点曲折,但是最终还是实现自己的目标。而且通过这回实践,我还学到不少新东西,感觉收获满满的!
以后,我还会继续完善这个留言代码编辑器,让它变得更加好用!