August 24, 2013

Logdown 的啓發 - StackEdit

台灣雖小,五臟俱全啊,從前一陣子新聞沸沸揚揚的討論『22K薪水』到『台灣應該如何從硬體代工轉型』,本來覺得在現有的政府跟原有的產業體制下要有一番改變是難如登天,但是網路真是無國界,台灣新一代的網路、軟體創業家們 (可以稱他們為 Hackers),上了雲端,跳過了台灣先天環境和人文的限制,一個個的站上了國際舞臺。

我所知道在國際有名的如下列 (如果有遺漏的,歡迎賜教) :

  • Cubie - 一個類似 Line 但是功能更好用的通訊軟體
  • Whoscall - 幫你過濾可能的詐騙電話、意圖不明的來電者
  • POP - Prototyping on paper
  • Driving Curve - 簡單來說就是車輛版的Nike+
  • 阿瑪科技 - 次世代威脅保護技術,讓企業能有效防禦複雜且多元的攻擊

最近台灣又有一個很好的線上服務站上了國際舞臺 - Logdown

Logdown

enter image description here
Logdown 是一個部落格平台,就像無名小站、奇摩部落格、Google Blogger 等類似讓人寫部落格的網上服務。Logdown 跟其他服務不一樣的地方是你只能用 Markdown 的語法來寫部落格 … 阿???

噢,原來是專門給 Hacker 用的部落格平台啊 ~

Logdown 創辦人 - XDite 在填補自己需求的同時解決了其他使用者需求,快速地利用業餘的時間開發功能,Rocodev 團隊在兩、三個月內快速的累積人氣並陸陸續續的有各國使用者從別的部落格跳槽到 Logdown,還因此另外開設了 Logdown 公司。

想更瞭解 Logdown,請看 INSIDE 部落格的對 Logdown 的專訪。

Markdown

網路上對 Markdown 的解釋是

Markdown 是一種專為網路寫作者設計、將文字轉換成 HTML 的語言標記與工具

Github 甚至將之改版做為預設的文件編輯格式

針對使用 Markdown 這個語法我有很大的疑問,個人之前用過的線上編輯器有兩類:

  1. 維基百科所使用的 Markup 語法
  2. WYSIWYG ,What You See is What You Get 的縮寫,也就是像用 MS Word 去編輯出所見即所得的線上編輯器

一直都對 Markup 的語法很感冒,很多簡單的貼圖,Table 或是 Link 都很難用,在使用過一些不錯的 Markdown 編輯器後才瞭解會有這樣的感受一方面是因為維基百科的編輯器本身做得不夠智慧,另一方面是我希望能馬上看到我所編輯出來的成果,很自然在當時 WYSIWYG 的編輯器會是我的首選。

XDite 對WYSIWYG 的看法

enter image description here

當我明白 Markdown 可以幫助我更輕鬆、更有條理的方式編寫文件後,就決定要 Give it a try.

StackEdit

☛ 第一,出師有名,我得有個需要用 Markdown 的目標;那就用 Markdown 來編輯我的 Blog 吧。

☛ 二,工欲善其事必先利其器,要學 Markdown 要先找到好的編輯器,過濾了70餘款的線上和 Mac OSX 專用的 Markdown 編輯器後,我決定落腳 StackEdit 這款跟 Chrome 瀏覽整合的 APP ,嘿嘿,而且還是 Open Source 的。

沒有使用 Logdown 的原因是因為我的部落格在 Blogger 上,在沒有確定要用 Markdown 語法前不會搬家

必須是 Markdown 編輯器 (✓ OK)

ㄟ ….

最好是跨平台的 (✓ OK)

在工作中,我學會了使用 Winodws, Linux , 跟 Mac OSX;我希望所選到的編輯器可以在任何的作業系統上執行。通常,線上編輯器多半是跨平台也跨瀏覽器的。

及時預覽功能 (✓ OK)

除了內容,我也在意呈現方式(不成熟美學主義作祟),所以希望能一邊編輯一邊馬上看到 Markdown 轉譯成 HTML 後會在網頁上的呈現結果。StackEdit 用左右兩欄式的寫作方式,左邊寫作,右邊及時預覽,不是滿分,但是也有 90分,加上 StackEdit 是 Open Source 的,有什麼需求都可以解決。

文件同步備份功能(✓ OK)

enter image description here

如果我換電腦寫作的話,沒有文件同步的功能是無法做到的。大部份的人都知道如果要同步一些文件或檔案到不同的電腦或作業系統可以用 Dropbox 類似的服務。StackEdit 很強大的一下子就內建支援了 Dropbox 跟 GoogleDrive 這兩家大部份人都使用的免費服務,一旦跟 Dropbox 、 Google Drive 連上線後,StackEdit 每3秒都會自動同步,真是讓人省心啊。

要方便我發佈文章到部落格(✓ OK)

enter image description here

StackEdit 不但支援發佈文章到 Google Blogger,同時還支援了被 Yahoo 收購的 TumblrWordpress,還有 Coder 最常用到的 Github。這下我開心了,寫一次,可以發佈到多個平台,剛好最近發佈了自己寫的 open source Nagios monitoring script,需要在 Github 上撰寫文件擋,現在好了,不需要登入 Github 就可以在 StackEdit 裡面直接 Update 文件,爽 ~

跟 Github 文件整合(✓ OK)

Have I mentioned that StackEdit will also work with your Github account?

貼圖、貼聯結要方便(✓ OK)

貼圖貼聯結真是簡單,用快速鍵 Ctrl + L (聯結)或是 Ctrl + G (圖)就會跳出對話框,直接讓你貼入要連的網址或圖,如果有圖需要上傳的也只需要拖曳到編輯器裡 Drag & Drop 就會自動幫你上傳到你 Google Plus 的帳號裡

支援程式語法高亮 (Syntax Highlighting)(✓ OK)

支援 Google Code Prettify 或是 Highlight.js。但是 Blogger 的限制比較麻煩,後來還是得手動在 Blogger 的 Theme 裡面直接使用 Highlight.js。因為我以後會常常寫技術文章,有 Syntax Highlight 的功能對自己或是讀者來說都會比較好閱讀。

echo "Hello World"

數學嘜耶通(LaTeX Support)(✓ OK)

我是沒有這種需求拉,但是看到 Logdown 使用者是真的有人在用,所以也讓大家知道一下 StackEdit 有支援 MathJax 語法的數學公式呈現

$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$

Γ(z)=0tz1etdt.

自動存檔 + 線下編輯(✓ OK)

StackEdit 利用 HTML5 Local Storage 的功能,自動地把你在編輯的文件除存在瀏覽器的資料庫裡面,就算今天網路斷線了,你都可以繼續完成你的文章。因為它是 Chrome 瀏覽器的 APP,不需要登入任何的賬號就可以開始使用及編輯,節省了很多時間。

速切換文章(✓ OK)

enter image description here

這是一個很酷的功能,在 StackEdit 右上角的檔案夾按鈕攤開

  1. List item

後,會呈現著所有你所有你過去所編輯過的檔案,可以讓你快速地在不同的文件中切換。

想像你有兩三個不同的部落格要寫,你在撰寫文章同時需要常常搜集資料,同時要在兩三個文章間切換,可能突然被事情打斷,也可能去參加 Conference 學習新事物,要新增筆記。這些需求,StackEdit 突破一般網頁軟體的限制,達到桌面軟體的強大功能,讓你隨時切換而不用擔心檔案沒有存檔。

匯出功能(✓ OK)

可以存成 Markdown 檔案,HTML 檔案,或是你自己設定的 Template。在網路上還看到網友利用另一套專門讀取 Markdown 文件的 Chrome 插件叫做 Markdown Reader,來匯出成為 PDF 文件檔。

客製功能(✓ OK)

Markable Evernote Support
StackEdit 讓你可以輸入 JavaScript 來達成一些額外的功能,也許我會用它來做一些 StackEdit 原作者不想加入的功能吧,當作是 JavaScript 練習。

跟 Evernote 同步 (✗ Not OK)

好吧,我承認我貪心了。Evernote 是我拿來做技術筆記的,以前的筆記都放在自己架設在家裡伺服器的 Deki Wiki 網站上,結果主機掛了,所有的筆記差點無法回復。有鑑於此,還是用 Evernote 的服務好了,不但可以跨平台,也在多台主機上都有備份。

但是 Evernote 的內件編輯器實在是肉腳,沒有 Syntax Highlighting,也不支援 Headings,總而言之,使用起來真是綁手綁腳的,讓人一點都沒有想要使用的意願,所以到如今我都只是把看到不錯的技術文章整篇的節錄進去。

知道 Markdown 好用後,當然想看看能不能用 Markdown 來寫 Evernote,Google 大神一陣後,得知 Evernote 的使用者們早在幾年前就開始在 Evernote 論壇裡 Request Markdown 功能,在沒有得到官方的支持下,我只好去找支援 Evernote 的 Markdown 編輯器。

Markable

Markable Evernote Support

還真被我找到一個線上編輯器叫做 Markable ,他跟 StackEdit 類似,但是在功能上少許多。既然 Markable 做得到跟 Evernote 整合,Open Source 的 StackEdit 一定有機會,於是在 StackEdit 的 Feature Request 開了這麼一條需求,也被作者接受了,希望能快點被支援囉。

發佈文章到 Logdown 支援 (✗ Not OK)

也許,只是也許 Logdown 團隊可以在 StackEdit 編輯器上開發出一鍵發佈文章到 Logdown 的功能,讓那些同時也需要管理其他部落格的作者可以用單一個編輯器作業。 Have I mentioned that StackEdit is Open Sourced?

UML + Flow Chart (Beta 4.0 新功能)

這真是太令人驚喜了,有了 UML 跟 Flow Chart 功能的加持,什麼技術文章寫不出來啊,廢話不多說,馬上來看看:

UML 語法

Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!

UML 成果
enter image description here

Flow Chart 語法

st=>start: Start
e=>end
op=>operation: My Operation
cond=>condition: Yes or No?

st->op->cond
cond(yes)->e
cond(no)->op

Flow Chart 成果
enter image description here

是不是,一張有意義的圖勝似千言萬語啊。

敏捷部落格發文 (Agile Blogging)

使用 StackEdit 的時候,我可以隨時發文到部落格上,就算只有大綱,就算文章還沒完成,我也可以先發文,馬上在 Blogger 上看看效果如何,慢慢再把細節內容補齊。這種做法就有一點像寫程式,寫到一個程度可以先 Commit,然後再增加功能,先給使用者試用,再來補強,讓產品的 Life Cycle 可以加速。

這是個試驗性的做法,因為讀者應該不會有這種耐性,一次次地回到你的文章看你到底寫到哪裡了。這樣做的想法是想讓讀者先知道我在寫什麼樣的主題,因為很多時候,內容要慢慢熬出來,尤其是跟技術有關的。這樣做也當作是我對整合不同的 Marketing 手法的一個嘗試吧。

歡迎大家的指教,喜不喜歡都留言讓我知道吧,畢竟我的目的還是希望能嘉惠讀者。