用 Markdown 寫作的另一個選擇: ACE X Markdown Editor 與 RemoteImage

Written by Simon Asika on

akmarkdown-remoteimage.png

前陣子 XDite 推出了 Logdown 蠻紅的,看來想用 Markdown 認真寫作的人也是不少。

其實在 Logdown 推出之前幾個月,為了要寫 Joomla! 開發教學,我也是想喝牛奶開了一間牧場的自己寫了一個整合 ACEMarkItUp 的 Joomla! 編輯器 ACE X Markdown Editor,再加上支援 FTP 與本地端拖拉上傳圖片的媒體管理器 RemoteImage。(結果我到現在都還沒動手寫教學)

這兩套都在Joomla!線上套件目錄免費釋出一陣子了,整體風評不錯,本來想說國內沒什麼人在用Joomla寫技術部落格,所以想說在國外推廣就好了。

後來想想,稍微寫點介紹文章也好,因為平時實在太忙了,最近整個轉向去協助 Joomla Framework 的開發,很久沒理這些 joomla 套件了,多讓些人知道這些工具,以後想丟到 Github 射後不理看看會不會有人來幫忙發展。

ACE X Markdown Editor

Asikart-Markdown-LOGO-300-white.png

套件目錄 / 官網

先來介紹一下 Asikart Markdown,其實 Github 與 Logdown 都有整合視覺化編輯器,對於高亮度、縮排等等功能都是支援的。當然,工具列的部份就沒那麼好用了,例如 Logdown 的清單功能就不能一次圈選多排轉換清單(起碼免費版我用到現在是不能啦),Github 則是連工具列都沒有。

主要優點

相較之下 Asikart Markdown 主要著重在便利性與操作性,除了 ACE 編輯器本身的流暢操作以外,還有例如清單可以方變的圈選後直接轉換:

130925-0005.jpg

插入程式碼的前後框不需要手動 key in,可以直接在對話框輸入語言:

130925-0006.jpg

130925-0007.jpg

Inline Code 標籤也可以快速插入:

130925-0010.jpg

另外是前台提供一系列方變的文字樣式化功能,例如圖片置中,連結自動開新視窗,H2, H3 自動產生錨點連結與索引等等,除了部落格以外,要編寫公司內部教學文件也很方便。

130627-0001.jpg

自動產生「回到最上」與「章節清單」等等。

130925-0008.jpg

130925-0009.jpg

缺點

目前 Asikart Markdown 我自己自認為的幾個缺點如下:

只支援 Joomla!

所以一般 Framework 開發者或 WP, Drupal 使用者無福消受囉。雖然用這兩套寫技術部落格的是大宗,更搞剛點的可能都改用 Octopress 了。

按鈕不能從後台 UI 介面自定化

其實你會修改 MarkItUp 的話,可以自己打開 JS 檔更改按鈕配置文件,這是 MarkItUp 本身就支援的修改功能,就像 TinyMCE 一樣,當然希望未來可以像 JCE 般直接在後台用拖拉修改按鈕囉。

沒有 Github Flavor Markdown

當初用的是 PHP Markdown Extra,因為延伸了很多原生 Markdown 不支援的功能。其實大多數都通用啦,寫好的東西要複製到 Github 上也不難。不過 Markdown Extra 用的是 ~~~ php 當做程式區塊的符號,而不像 GFM 是 ``` php ,所以可能得要習慣一下。

其實我也早就找到支援 GFM 解析的 PHP 函式庫了啦,只是這東西從寫完到現在幾個月真的太忙了,沒有時間持續維護,未來真的有需求再說吧。

(謎之音:是有多忙?七天每天工作十二小時嗎? 我:對.....)

沒有自動拖拉上傳圖片

這就要靠下面提到的 RemoteImage 了,畢竟使用 Joomla 就偏向個人空間,所以我是改用比較完整的媒體管理器來整合圖片功能。

程式碼高亮功能有點兩光

當初在尋找完美支援 Markdown Extra 程式碼高亮 <pre><code class="sql"></code></pre> 這種結構的 的 JS 套件,但一直找不到順手的,目前用的這一套 highlight.js 不支援行號,而且用 evernote 轉存時程式碼會黏在一起。

有空再換掉吧。

沒有 Latex 與函式符號產生器

這人家 Logdown 的 features 我幹嘛來亂......XD


RemoteImage

Asikart-RemoteImage-LOGO-SQ-300-white.png

套件目錄 / 官網

Asikart Markdown 的插入圖片功能就要依賴 RemoteImage 來強化,雙劍和壁才能變成神器。

RemoteImage 一樣是給我喝牛奶的牧場罷了,最初是要解決 AnimApp 動畫社群 網站中,為了把圖片存在遠端 FTP 又要能快速上傳管理,批次插入,才寫出來的功能,後來連本地端管理也支援,所以中文稱作「遠近端圖片管理器」。

130415-0002-1.jpg

還好有個俄羅斯團隊搞出了 elFinder ,不然我差點要用 jQueryUI 搞一套管理器客戶端出來,當初連介面布局都擺好了XD (是要蓋幾座牧場?)

其實當初我還最早在留言板提交了 elFinder 的繁體中文翻譯,但後來有個人直接用 pull-request 搶過去(好啦,我懶,我的錯XD)

主要特色

快速拖拉上傳與批次插入大量圖片

一次圈選多個檔案上傳,再圈選多個檔案批次插入,一口氣全部滿足,用在像飛鳥新樂園這樣的大量圖片網站實在潮爽der~~~

130925-0011.jpg

正常情況下,如果用的是 TinyMCE 等編輯器會直接插入圖片。

130415-0005.jpg

Asikart Markdown 會自動把圖片 html 轉成 markdown 語法

130925-0013.jpg

還可以用網址插入

130925-0012.jpg

遠端圖庫管理,完全隱藏本地端圖片

這就是為什麼叫做 RemoteImage 的關係。

方變的圖片編輯功能

可以縮放、旋轉與裁切,遠端 FTP 的檔案照樣支援喔。

130415-0003.jpg

也是檔案管理器

130925-0014.jpg

基本上任何檔案都可以管啦,插入非圖片檔案會自動轉成檔名的連結文字。

為了安全性考量預設是關閉重命名與解壓縮功能,避免有人上傳圖片檔再改名成 php 或用 zip 來包含危險檔案,不過你膽子夠大的話,管理區可以把安全功能全關,順便再把根目錄設到網站全檔案,有沒有超刺激的!

待改善項目

尚不支援 Amazon 與 Dropbox 等儲存空間

我知道越來越多人把遠端圖片放在各個不同的平台上管理,其實 elFinder 與 RemoteImage 核心是支援的,開發過程的設計也是可以有完善的多重遠端來源,而且可以在同一個視窗內自由拖拉管理,目前唯一缺的是要有 UI 介面可以讓人填入帳號與 API key。不過還是老話一句,寫完以後放到現在就真的沒時間管了。而且這是免費套件耶!免費免費免費!!!!

為什麼不寫出來賣呢?做過客服就知道多累了.....

沒有多重使用者權限控管與自動分配圖片路徑

原因同上。

很多老外天天在煩我說想要這些功能,快放上 Github 給他改 blah blah........(我好想跟他說這裡是血汗島,我好羨慕你這麼閒~~~)

上傳的圖片不能自動縮成固定大小

你上傳 2048px 的圖片,就真的那麼大塞在主機上,現在還沒辦法自動縮圖。

elFinder 的 Server 端不提供 hook,阿他本身又長年不 Stable ,所以我不想 hack 原始碼的情況下暫時不實作。

只支援 Joomla!

我就用 Joomla 有問題膩?


好啦大概介紹完這兩個套件的優點,不是要來跟 Logdown 做什麼比較,單純是給想要用 Markdown 快速編寫程式教學文件或部落格的人一些新選擇。

我想其實用在內部文件管理更實用啦,畢竟 Joomla 是一套 CMS ,你還可以方變的做文件存取權控管、專案管理或內部教學系統。

這兩套做了很深度的 UX 優化,應該不太需要教學就能直接上手使用,當然前提是你會 Joomla (笑)

想下載的請到這邊來: http://ext.asikart.com/

這裡沒有留言板,需要客服請洽官網 Support Forum 喔。(講中文者可獲得優先回應權)


關於 Joomla! 與 Joomla!Framework

一個人在台灣寫 Joomla! 套件拿去國外上架挺孤單的,這年頭 Node.js 與 RoR 比較潮,用 PHP 的也要來個 Symfony 或 Laravel 才有型,其實Joomla 核心框架一直以來是跟 Symfony 與 Zend 同期發展的企業級 MVC 框架,可惜在人家都飛也似進步的情況下,作為一個公開發行 CMS 的 joomla 不能隨便更改自己的架構,所以有點跟不上腳步(當然這是有好處的,你看 Joomla 可以從 1.6 一路用自動更新升級到 3.5 都不會出問題)。

也因此 Joomla Framework 今年開始從舊框架中獨立出來,支援 Composer, Dependency Injectionpsr-0 namespace 等全新架構,我也就順勢加入開發行列,沒空理 CMS 上的套件了。也許哪天有空真的都不賣了,全部上到 Github 去給人家玩 XD

這裡介紹一下 J!Framework 的特色,基本上他跟 Symfony 比較親(Symfony 作者 Fabot 都還貢獻了點修改),整體上走純 DI 風格,各個 Componet 可以獨立引用,是 Full-Stack 級的框架。不過因為才抽出來不到一年,而且官方忙著在準備 CMS 3.5 LTS 的發佈,目前發展進度有點慢,很多功能如 Bundle 都還沒加進去。我現在的工作是在幫忙產生一個類似 Symfony Standard Edition 的應用端,同時也可以幫忙研究 Bundle 機制的實現。

就以我兩套框架的程式碼幾乎看遍的情況下,我對 J!Framework 有蠻高的期許,因為他是目前少數有能力跟 Symfony 一樣自由運用 DI 創造超高彈性,但代碼又簡潔優雅好幾倍的框架。(DI 跟 Lazyloading 是有點衝突的兩個 pattern ,為了整合兩者我寫到快瘋掉)。想尋找高彈性但又對 Symfony 的效能感冒的人不如關注一下吧,但應該還要一兩年才能成氣候啦。


附註:100% 五燈獎超難拿的,一群刁民們...

review.png

Control Tools

WS-logo