爲了用 Markdown 寫微信公衆號,自定義了一個編輯器

身邊應該有不少朋友在寫公衆號,不知道你們用的是什麼編輯器呢?

上面這些編輯器,應該是小編們用得最多的幾款,它可以快速添加各種樣式插件,使文章更吸引眼球,讓用戶看起來很爽,欲罷不能。畢竟他們最注重的是閱讀量,而非內容。

我也有寫文章的習慣,但我不是小編,格式上只追求簡約大方即可,重點在文字上,希望內容能產生一些價值。自從用了 Markdown 標記語言後,寫文章就再也沒用過其他的編輯器。

什麼是 Markdown?

什麼是 Markdown?它是目前最流行的寫作標記語言,沒有之一。它能夠通過簡單標記就能實現文檔格式,讓寫作者專注於內容

由於它是純文本,所以它可以像代碼一樣進行版本管理,同時,它對 Web 也非常友好,方便轉成 HTML,甚至直接將 Markdown 文檔生成靜態站點,很多免費的自建博客服務都是採用的這種方案。目前幾乎所有主流的寫作平臺,其編輯器都支持 Markdown。

一些 Markdown 編輯器,甚至在其基礎上,擴展了很多功能。例如:公式及表格的支持。前段時間,一個外國小哥的數學筆記火了,全程像敲代碼一般,緊追數學老師板書,記了 1700 + 頁筆記。感興趣可以看下這篇文章:

1700頁數學筆記火了!全程敲代碼,速度飛快易搜索,硬核小哥教你上手LaTeX+Vim

爲什麼不支持 Markdown?

雖然支持它的編輯器多到數不過來,可是國內最著名的內容發佈平臺 —— 微信公衆號,它的編輯器就不支持 Markdown,可算折騰壞了一幫寫作者。爲什麼不支持?可能有兩個原因吧。

用戶學習成本

Markdown 語法雖然簡單,但對大部分人來說,畢竟也是一門新的知識,這就增加了用戶的學習使用成本。你要知道,絕大部分的人,哪怕一點點的新東西都是接受不了的,微信沒把編輯器做成 Word 的樣式,我覺得已經是剋制了的。

支持的樣式並不完整

Markdown 只提供了簡單的樣式標籤,例如:標題,引用,鏈接等等,而對於複雜的樣式,例如文字背景色等等,它是不支持的。

而微信面對的是全體創作者,單純使用 Markdown 編輯器定然不能滿足基本需求,而兼容 Markdown 的需求優先級並不高。

所以,一直以來,微信並不支持 Markdown,但我猜測,支持 Markdown 的功能遲早還是會做的。

Markdown 寫公衆號的痛

你不是說了 Markdown 對 Web 非常友好嘛,轉成富文本樣式,然後貼到微信公衆號的編輯器裏,就可以了呀。道理是沒錯,但這正是折騰人的關鍵所在,因爲 Markdown 只定義了基礎的標籤,而沒有樣式。

於是,各家的 Markdown 編輯器導出的樣式都是有差異的,並且,跟微信公衆號上的默認樣式也不兼容。所以,貼進去後,顯示出來的樣式各不相同,如果文章裏再有一些非標準的 Markdown 語法,顯示出來更是五花八門了。一直以來都很糾結,對於一些樣式複雜的文章,幾乎就不發公衆號了,因爲調整樣式,就要耗費大量的精力。

除了樣式兼容性問題,還有微信公衆號對外部鏈接限制問題,公衆號內文章只允許引用微信內部鏈接,不支持外部鏈接。文章裏若添加了第三方鏈接,我們只能硬生生的將 鏈接重新再貼進去。或者通過「閱讀原文」鏈接原文地址。

解決方案

微信公衆號編輯器都幾乎成爲一種新的行業了,文章開頭的那些編輯器,都能自力更生了,說明對小編們來說,公衆號編輯器問題真的是一個痛點。

而對於適配公衆號樣式的 Markdown 編輯器,幾乎沒有,之前接觸過 Md2All,功能上很完整,但是它並非只針對微信公衆號,所以在細節方面的處理,總是差強人意。

一直想着,應該寫一款符合自己樣式風格的公衆號編輯器。然而,一個偶然機會,發現了它,花三小時寫這個工具,只爲一分鐘拯救公衆號排版

在程序世界裏,有句老話說「不要重複造輪子」,你費好大勁去研究怎麼做,沒準別人已經都出成品了,這樣就造成了資源浪費。幸運的是,我的「輪子」還沒有開始動手呢。

總要做點自己的貢獻

這款公衆號編輯器基本符合我的心裏預期,簡單的界面,優雅的樣式風格,你看到的這篇文章的樣式,就是通過它生成的。

它還有一些特殊的增強項,比如將外部鏈接自動生成腳註,放在文章底部;支持日語注音假名和漢語拼音,例如:小夜時雨【さ・よ・しぐれ】 上海【Shàng・hǎi】

雖然默認的樣式已經基本滿足我了,但還是缺少一些自定義的功能,比如字體大小的設置,以及主題切換等功能,作者並沒有實現。但是,作者已經將源代碼開源了,而我們不能只知道一味索取,而不懂得付出。

於是,我便動手實現了這部分的功能。好在代碼並不複雜,簡單研究一下,週末花了點時間,就把這部分的功能填補上了。

最後

這個過程還是很有趣,不僅解決了自己的痛點,還學到了知識,同時還做出了一點點自己的貢獻。

如果你也喜歡這篇文章的樣式,這個微信公衆號編輯器分享給你。微信公衆號格式化編輯器 - 作者原版本

根據源代碼,我重寫了一個後臺服務版本,計劃提供一些在線 API 的功能。倉庫地址:wechat-format-server: 基於 wechat-format 的服務端版本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章