身邊應該有很多朋友在寫公衆號,不知道大家用的是什麼編輯器呢?git
上面這些編輯器,應該是小編們用得最多的幾款,它能夠快速添加各類樣式插件,使文章更吸引眼球,讓用戶看起來很爽,欲罷不能。畢竟他們最注重的是閱讀量,而非內容。github
我也有寫文章的習慣,但我不是小編,格式上只追求簡約大方便可,重點在文字上,但願內容能產生一些價值。自從用了 Markdown
標記語言後,寫文章就再也沒用過其餘的編輯器。微信
什麼是 Markdown?它是目前最流行的寫做標記語言,沒有之一。它可以經過簡單標記就能實現文檔格式,讓寫做者專一於內容。編輯器
因爲它是純文本,因此它能夠像代碼同樣進行版本管理,同時,它對 Web 也很是友好,方便轉成 HTML,甚至直接將 Markdown 文檔生成靜態站點,不少免費的自建博客服務都是採用的這種方案。目前幾乎全部主流的寫做平臺,其編輯器都支持 Markdown。工具
一些 Markdown 編輯器,甚至在其基礎上,擴展了不少功能。例如:公式及表格的支持。前段時間,一個外國小哥的數學筆記火了,全程像敲代碼通常,緊追數學老師板書,記了 1700 + 頁筆記。感興趣能夠看下這篇文章:學習
1700頁數學筆記火了!全程敲代碼,速度飛快易搜索,硬核小哥教你上手LaTeX+Vim字體
雖然支持它的編輯器多到數不過來,但是國內最著名的內容發佈平臺 —— 微信公衆號,它的編輯器就不支持 Markdown,可算折騰壞了一幫寫做者。爲何不支持?可能有兩個緣由吧。spa
用戶學習成本
Markdown 語法雖然簡單,但對大部分人來講,畢竟也是一門新的知識,這就增長了用戶的學習使用成本。你要知道,絕大部分的人,哪怕一點點的新東西都是接受不了的,微信沒把編輯器作成 Word 的樣式,我以爲已是剋制了的。插件
支持的樣式並不完整
Markdown 只提供了簡單的樣式標籤,例如:標題,引用,連接等等,而對於複雜的樣式,例如文字背景色等等,它是不支持的。code
而微信面對的是全體創做者,單純使用 Markdown 編輯器定然不能知足基本需求,而兼容 Markdown 的需求優先級並不高。
因此,一直以來,微信並不支持 Markdown,但我猜想,支持 Markdown 的功能早晚仍是會作的。
你不是說了 Markdown 對 Web 很是友好嘛,轉成富文本樣式,而後貼到微信公衆號的編輯器裏,就能夠了呀。道理是沒錯,但這正是折騰人的關鍵所在,由於 Markdown 只定義了基礎的標籤,而沒有樣式。
因而,各家的 Markdown 編輯器導出的樣式都是有差別的,而且,跟微信公衆號上的默認樣式也不兼容。因此,貼進去後,顯示出來的樣式各不相同,若是文章裏再有一些非標準的 Markdown 語法,顯示出來更是五花八門了。一直以來都很糾結,對於一些樣式複雜的文章,幾乎就不發公衆號了,由於調整樣式,就要耗費大量的精力。
除了樣式兼容性問題,還有微信公衆號對外部連接限制問題,公衆號內文章只容許引用微信內部連接,不支持外部連接。文章裏若添加了第三方連接,咱們只能硬生生的將 連接從新再貼進去。或者經過「閱讀原文」連接原文地址。
微信公衆號編輯器都幾乎成爲一種新的行業了,文章開頭的那些編輯器,都能自力更生了,說明對小編們來講,公衆號編輯器問題真的是一個痛點。
而對於適配公衆號樣式的 Markdown 編輯器,幾乎沒有,以前接觸過 Md2All,功能上很完整,可是它並不是只針對微信公衆號,因此在細節方面的處理,老是差強人意。
一直想着,應該寫一款符合本身樣式風格的公衆號編輯器。然而,一個偶然機會,發現了它,花三小時寫這個工具,只爲一分鐘拯救公衆號排版。
在程序世界裏,有句老話說「不要重複造輪子」,你費好大勁去研究怎麼作,沒準別人已經都出成品了,這樣就形成了資源浪費。幸運的是,個人「輪子」尚未開始動手呢。
這款公衆號編輯器基本符合個人內心預期,簡單的界面,優雅的樣式風格,你看到的這篇文章的樣式,就是經過它生成的。
它還有一些特殊的加強項,好比將外部連接自動生成腳註,放在文章底部;支持日語註音假名和漢語拼音,例如:小夜時雨【さ・よ・しぐれ】 上海【Shàng・hǎi】
雖然默認的樣式已經基本知足我了,但仍是缺乏一些自定義的功能,好比字體大小的設置,以及主題切換等功能,做者並無實現。可是,做者已經將源代碼開源了,而咱們不能只知道一味索取,而不懂得付出。
因而,我便動手實現了這部分的功能。好在代碼並不複雜,簡單研究一下,週末花了點時間,就把這部分的功能填補上了。
這個過程仍是頗有趣,不只解決了本身的痛點,還學到了知識,同時還作出了一點點本身的貢獻。
若是你也喜歡這篇文章的樣式,這個微信公衆號編輯器分享給你。微信公衆號格式化編輯器 - 做者原版本
根據源代碼,我重寫了一個後臺服務版本,計劃提供一些在線 API 的功能。倉庫地址:wechat-format-server: 基於 wechat-format 的服務端版本
完