[English]
2011-11-30 12:48 墳墓 (Brian Hsu) 話說 GitHub 的 Gist 是一個很方便的程式碼剪貼板,支援了版本控制、程式碼上色,另外也提供非常不錯的網頁內嵌功能,我也丟了不少程式碼到 GitHub Gist 上。
另一方面 XDite 之前介紹的 OctoPress 支援在 Markdown 裡內嵌 Gist,這確實是個非常吸引人的功能。
可惜這個功能在 Pelican 裡本身沒有,但因為 reStructuredText 和 DocUtils 的設計上本來就有考慮到讓使用者新增指令,所以要讓 Pelican 可以在 reStructuredText 裡加入 Gist 籤入其實很簡單。
要達成這樣的功能,只要在 pelican/rstdirectives.py 裡加入下面的 GitHubGist 類別,以及註冊函數。
我也把這個功能丟到了 GitHub 的我的 Pelican fork 上面,所以可以直接用下面的指令安裝
# pip uninstall pelican
# pip install git+http://brianhsu@github.com/brianhsu/pelican.git#egg=pelican
安裝完之後,就可以用 .. gist:: [GistID] 的方式來嵌入 Gist 到文章裡囉,舉例來講要嵌入上面的那段程式碼的話,可以在文章裡加入下面這段,這樣在生出來的網頁裡就會嵌入指定的 Gist 囉。
另外,這個指令會直接從 GitHub 抓當下 Gist 的版本,並且將他放到一個 <noscript> 標籤中,所以若使用者是用 RSS 讀取文章,也一樣可以看到得程式碼。
下面的指令會嵌入 GitHub Gist
.. gist:: 1407759
回響