零、引言
自從養成了碼字寫筆記的習慣,我先後接觸過一些文檔編輯器,Word、WPS、Onenote、為知筆記、Evernote、幕布、Typora、VNote、Notion等等。誠然,這些都是一些非常優秀的文檔編輯器,但是實際使用下來,總感覺體驗上有一些不如意的地方,這時我會問自己:理想文檔編輯器是怎樣的?
我覺得應該滿足以下幾點:
- 面向具體使用情景,內容與形式分離;
- 簡潔美觀而友好的界面;
- 功能滿足書寫和排版的需求;
- 引導用戶養成良好書寫的習慣;
- 確定感,主要是格式的確定感,意味著更少的格式混亂;
- 兼容性,方便導入導出,用戶擁有數據的主權;
- 書寫體驗好;
- 面向未來,智能化; ……
Word與Markdown
Word是所見即所得編輯器的標杆,經過2013和2016的成長,現在體驗上已經優化了很多 。儘管如此,Word的基因決定了無法實現內容形式分離,比起書寫,他更適合排版。
Markdown是個新鮮的事物,我對Markdown的理解是網路界的標點符號(雖然目前並未完全普及),如果對比中英文的標點符號和Markdown的符號設計,會發現二者有異曲同工的地方。有的網站會把文章中小括弧()
內的文字識別為解釋類文字,用灰色小一號楷體顯示,這種做法就是模糊了標點符號與Markdown的界限。而從編輯器方面看,VNote之類支持高亮語法的編輯器是最符合這種理解的。
Markdown的優勢與不足都非常明顯,優勢自不多言,而天生的不足是語法對功能的束縛,其功能上的增長會帶來語法增加和兼容性問題。
從以上對理想文檔編輯器的要求來看,Word和Markdown都有不完善的地方,下面我腦洞一個我覺得較為理想的文檔編輯器雛形以供參考。為方便說明,假設軟體名字為「Wonder」。
一、文檔類型
與一般的編輯器不同,Wonder需要區分文檔的類型。
書寫是有目的的行為,我們創建一個文檔是一本書、是一篇公眾號文章、是一篇讀書筆記還是一頁辦公的表格?
書寫的目的決定了文檔的類型,不同的文檔類型對應了不同的工作情景。
參考了LaTex的分類,Wonder將文檔分為5類:
- 文章(article)
- 論文(paper)
- 書籍(book)
- 學位論文(report)
- 辦公文檔(office document)
文章(article) 是最基本的類型,一篇筆記,一篇頭條,一篇公眾號文章,一篇科普文,一篇隨筆,一篇博客。
書籍(book) 是多篇文章(article)文檔的集合。
論文(paper) 是特殊的文章(article)類型, 學位論文(report) 是特殊的書籍(book)類型,兩者特殊的地方在於它們是十分嚴格的出版物,從文章的內容到格式排版都有相當嚴格的要求。我至今仍不能忘記被論文格式所支配的恐懼,特別是我不得不用Word幫朋友調整用WPS創建的論文格式的時候,剪不斷,理還亂……
辦公文檔(office document) 的特點在於,創建文檔的人不一定是提供文檔內容的主要貢獻者,比如公司做了一張問卷,讓員工填寫。
二、組成文檔內容的元素
Wonder採用內容與形式分離,並將組成文檔內容的元素分為 塊元素(block element) 和 行內元素(inline element) ,元素按書寫的順序依次排列(類似Html和Markdown)。
注意:此處元素不包括排版用到的元素。
塊元素(block element) 包括:段落、標題、圖片、表格、有序列表、無序列表、代碼塊、區塊公式、專業圖表……
行內元素(inline element) 包括:文字、強調、行內公式、鏈接、引用……
在Word裏,元素是分佈在一張固定大小(默認是A4)的紙張上,而在Wonder中,文檔元素是默認是排列在大小不定(彈性寬度,無限長度)的窗口中,與網頁類似。其中塊元素就像積木,一個接一個上下排列構成文檔,而行內元素就像多米諾骨牌,在塊元素內橫向排列。