1. 程式人生 > >從零開始造一個Markdown編輯器(一)

從零開始造一個Markdown編輯器(一)

實時 需要 自己實現 自己 背景 學習正則表達式 tex ID img

背景

最近學習正則表達式,於是要挑一個練手項目,恰好對markdown編輯器十分感興趣,於是就進行了一些常識。做了一個簡單的markdown解析器和編輯器。

網頁端的地址(不支持文件的操作):

https://github.com/cuijinyu/markdown-editor

結果如下圖:

技術分享圖片

分析:

要完成我們制作這個編輯器的需求,總共有以下幾個要求:

  1. 需要一個markdown解析器
  2. 需要編輯功能
  3. 需要實時預覽的功能
  4. 需要能夠完成對文件的操作

我們一一分析以上要求

markdown解析器:

本來應該有兩種選擇,一種是選擇開源成熟的markdown解析器,一種是自己實現一個markdown解析器。這裏因為要練習正則表達式,於是,選擇自己去實現一個markdown解析器。

因為是出於練習正則為目的,所以,我們在這裏實現的markdown解析器以正則表達式作為主要工具。當然,效率最高的方式當然不是這樣啦,不過這都是後話了,在之後實現了整個功能後再考慮這個,暫且略過。

編輯功能和實時預覽

編輯功能的話,我的方案是基於textarea,封裝一些操作。

預覽功能的話,我的方案是在有新的輸入的情況下,定時解析文本,然後渲染。

對文件的操作

一個不能打開和保存文件的編輯器就顯得很累贅,雖然我們這裏完成的也像是一個玩具,但是玩具也要有成為工具的心呀!

這裏我的想法是將整個項目構建於electron之上,利用node的fs實現對文件的操作。

技術選型:

Vue+vuex+electron+nodejs+es6

其實只需要實現一個觀察者就可以達成我們的需求,但是出於最近正在學習vue,於是就順手用了,嘿嘿~

至於vuex的話的嘛,因為是用的electron-vue的腳手架生成的,所以生成項目就有了,所以就用吧,嘿嘿~

electron的話,用於生成desktop的應用,並且配合node完成對文件的操作。

大概分析清楚了我們應該應該做什麽,接下來就是做了,在接下來幾篇隨筆裏,我們一一實現其中的所有功能。

從零開始造一個Markdown編輯器(一)