- http://blog.xdite.net/posts/2011/10/07/what-is-octopress/
- http://tzangms.com/2011/10/09/from-blogofile-to-octopress/
![]() |
http://octopress.org/ |
雖然我一直用 Blogger 寫網誌,也陸續使用 Wordpress 架設過幾次,但大部分技術類的筆記,還是用 Wiki 整理(目前偏好 dokuwiki)。
如果你也是 Programmer ,曾經想過要把學習心得記錄下來,寫過又要貼圖、又要放程式碼的文章,就會瞭解 Blogger 、 Wordpress 並不是那麼順手。
Programmer 總是想盡辦法提高效率,讓程式碼能少寫一些、步驟能簡化一點、流程能更簡潔,最好是大部分的東西都可以自動生出來,讓 Programmer 工作時只要 focus 那些真正需要動手的事情。
因此 Programmer 應該要學習用 Markdown 語法,它可以幫助快速撰寫學習筆記、電子郵件、會議記錄、系統文件等等,雖然寫出來的文件是純文字格式,但本身就具有 WYSIWYG 的效果。
舉例來說,以下是三種不同純文字標記方式。
HTML syle
<h2>title</h2>
<p>contents line1</p>
<p>line2</p>
<ulp><
>li>item1</li>
<li>item2</li>
</ul>
LaTeX style
\section{title}
contents line1
line2
line2
\begin{enumerate}
\item item1
\item item2
Markdown style
## title
contents line1
line2
* item1
* item2
這三種文字格式,都能透過程式自動化處理,讓排版輸出結果可以顯示在瀏覽器,或是發佈成PDF等其他格式。
Markdown 顯然比其他標記語法更容易看懂,因為夠直覺,即使從來沒學習 Markdown 標記的人,第一次看也不會覺得有什麼困擾。對於撰寫者本身,不太需要去記憶標籤用法,需要撰寫的字數也很少。
在平板電腦的時代,這種寫法就相當具有優勢,例如聽演講時需要撰寫一篇記錄,又不方便攜帶筆電;因為輸入文字的速度有限,又要能兼具基本的排版,避免之後還要花太多時間處理,這時候簡單易寫的語法就相當管用。
* 如果你有一台 iPad ,建議可以參考這幾款運用 Markdown 的文字編輯軟體:iA Writer、Byword 。
如果你開始習慣用 Markdown 寫文件,就會覺得「回不去了!」
雖然許多 Blog 或 Wiki 軟體,也可以安裝擴充套件,讓文章可以用 Markdown 語法撰寫。
\item item1
\item item2
Markdown style
## title
contents line1
line2
* item1
* item2
這三種文字格式,都能透過程式自動化處理,讓排版輸出結果可以顯示在瀏覽器,或是發佈成PDF等其他格式。
Markdown 顯然比其他標記語法更容易看懂,因為夠直覺,即使從來沒學習 Markdown 標記的人,第一次看也不會覺得有什麼困擾。對於撰寫者本身,不太需要去記憶標籤用法,需要撰寫的字數也很少。
在平板電腦的時代,這種寫法就相當具有優勢,例如聽演講時需要撰寫一篇記錄,又不方便攜帶筆電;因為輸入文字的速度有限,又要能兼具基本的排版,避免之後還要花太多時間處理,這時候簡單易寫的語法就相當管用。
* 如果你有一台 iPad ,建議可以參考這幾款運用 Markdown 的文字編輯軟體:iA Writer、Byword 。
如果你開始習慣用 Markdown 寫文件,就會覺得「回不去了!」
雖然許多 Blog 或 Wiki 軟體,也可以安裝擴充套件,讓文章可以用 Markdown 語法撰寫。
- http://wordpress.org/extend/plugins/markdown-for-wordpress-and-bbpress/
- http://www.dokuwiki.org/plugin:markdownextra
可是,這樣還是不夠 Simple 阿!
因為 Programmer 通常會有用得很順手的 Text Editor,例如 vim、emacs、TextMate、BBEdit、gedit 等等,強大的文字編輯軟體,不僅有 Syntax Highlighting 功能,還可以使用 Template、Macro、Shortcuts 等等功能。不僅拿來寫程式碼很好用,用來編寫 Markdown 文件當然也是游刃有餘。
如果你已經很熟手邊的文字編輯器,每天花不少時間寫 Code,可是為了把一些學習心得記錄成網誌,又要打開網頁、使用另一種編輯器,才能寫 Markdown 語法;過程中手指要不斷離開鍵盤、受滑鼠折磨,這真是受夠啦!!!
既然是撰寫跟程式有關的文件,何不就用撰寫程式的方式,開啟新文件、打字、存檔、執行 deploy 程式,不用再多那些礙手礙腳的步驟,就能發佈成網誌文章!
Octopress 很簡單、管用!
- Octopress 內建了一個簡單、好看的 HTML5 theme,也支援行動裝置顯示的最佳化,讓你的部落格一開始就有很好的外觀基礎。
- Octopress 支援各種你想用的功能:Twitter, Google Plus One, Disqus Comments, Pinboard, Delicious, and Google Analytics ,不夠用也可以很容易自己擴充。
- Octopress 使用最近很夯的 Compass and Sass ,讓你可以用輕鬆省事又炫的技巧,調整版面外觀。
- Octopress 使用 Solarized 幫程式碼著色,漂亮!
Octopress 可以幫你使用 Markdown 撰寫的網誌文章, compile 為靜態(static)網站,並內建 deploy 到 GitHub 的功能!!!
也就是說,使用 Octopress + GitHub 架設部落格,可以不用花一毛錢(除了網址註冊費)!
發佈到 GitHub 的網址,預設是:
http://yourname.github.com/
你也可以設定成自己購買的網域名稱。
![]() |
使用 MacVim 編輯 Markdown 格式的網誌文章 |
在建立好 GitHub Pages Repository 之後,使用 Octopress 內建的指令即可自動設定 GitHub 發佈。
# 設定 GitHub 發佈
rake setup_github_pages
*這邊需要填入 Git URL,格式如: git@github.com:yourname/yourname.github.com.git
*這邊需要填入 Git URL,格式如: git@github.com:yourname/yourname.github.com.git
在安裝好 Octopress + GitHub 的機器上,撰寫網誌變成一項簡單的工作,就樣每天照三餐寫 Code 一樣容易,常用的指令示範如下。
# 建立新文章,保存在 source/_posts/日期-標題.markdown
rake new_post["標題"]
# 產生網站檔案
rake generate
# 發佈到 GitHub
rake deploy
有興趣開始使用 Octopress ?請參考以下詳細安裝及設定教學:
運行rake setup_github_pages時,碰到錯誤了,不知道是否可指點迷津。。。
回覆刪除Juanito:octopress Mac$ rake setup_github_pages --trace
** Invoke setup_github_pages (first_time)
** Execute setup_github_pages
Enter the read/write url for your repository: http://juanitofatas.github.com
rake aborted!
undefined method `[]' for nil:NilClass
/Users/Mac/projects/octopress/Rakefile:284:in `block in '
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/Users/Mac/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/bin/rake:32:in `'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in `load'
/Users/Mac/.rvm/gems/ruby-1.9.2-p290/bin/rake:19:in `'
Tasks: TOP => setup_github_pages
應該是 Git Repo URL 有誤:
回覆刪除請試試:
git@github.com:juanitofatas/juanitofatas.github.com.git
it works!!! So many thanks!!! :D:D:D
回覆刪除