獻給寫作者的完美工具介紹!
一 理想的寫作環境:Git+Github+Markdown+Jekyll
理想的寫作環境,受各類幹擾小、清理廢話及版本管理容易。曾花費較長時間尋找,最後還是找到了。
2010年開始,采取Git+Github+Markdown+Jekyll,完成一些作品。暖色調燈光,黑暗的背景色,全屏的寫作狀態,很有氛圍。
這種搭配,符合心理學原理,背後有著相應理念。分享如下:
Git
讓人不再擔心寫廢,想到哪裏,寫到哪裏。
背後理念
Github
讓人不再擔心備份與遠程協作,一切提交,均有記錄。
補充介紹
購買一個Github的私人賬戶,用於托管個人"不適合公開"的項目。 零散的思考,隨時寫在Jekyll的_drafts目錄下。當思考成熟,予以發布。較係統的思考,尤其需要遠程協作,則參考Github中成功的開源圖書項目,單獨整理為Jekyll的子目錄或獨立項目。
背後理念
Markdown
不再憂慮排版,專注寫作。
背後理念
Jekyll
Octopress出來之後,也向人推薦。但自己不用。之所以用Jekyll,是希望專注於寫作而非版式、圖片等。如果用Octopress,又回歸老路了。 Octopress有兩點細節不能接受:
- 無法支持Github在線編輯;
- 分源碼與生成兩個分支,違背簡潔原則。
背後理念
相關參考
二 用Jekyll寫技術博客
緣由
曾經也有過寫技術博客的衝動。申請過bloger,msn space。但總覺得這些blog如果寫一些日常的感受還可以,但總是讓人不能專注於寫作,很小的編輯框,還要時刻注意換行,稍不注意,顯示的格式就不對了。
老外寫書已經采用編程和項目的方式了, The Pragmatic Bookshelf 的書都是這麼寫出來的,通過git做版本管理,通過Rake執行圖書排版,甚至通過hudson進行每次提交進行排版。
Jekyll時ruby的一個項目。允許通過git進行版本管理,托管在github上作為一個項目。並通過靜態頁麵進行訪問。Tom是Jekyll的作者,同時也是github的創始人,這篇文章中Tom介紹了開發jekyll的初衷。
使用
更詳細的使用步驟參見這裏
寫post
$ rake post title="Jekyll-Intrduction"
本地preview
在_post目錄中完成編輯,使用vim 本地啟動server,進行預覽,如果在預覽的過程中又對文件進行了編輯,會動態生成新的網頁。
$ rake preview
提交到github
將文章提交到github上。如果使用了github提供的個人主頁服務,則提交之後即能夠訪問。首先要創建一個 “用戶名.github.com”的倉庫.具體步驟參見
$ git add .
$ git commit
$ git push
通過ftp自動發布
如果不是使用github提供的個人主頁服務,使用自己托管的空間,通過ftp上傳,可以通過下麵的方式完成網站的部署
_deploy.sh
function data_upload_lftp() {
HOST="174.XXX.XXX.XXX"
USER=""
PASS=""
LCD="_site"
RCD="public_html/"
lftp -c "
set ssl:verify-certificate no
set ftp:list-options -a;
open ftp://$USER:$PASS@$HOST;
lcd $LCD;
cd $RCD;
mirror --reverse \
--delete \
--verbose \
--exclude-glob a-dir-to-exclude/ \
--exclude-glob a-file-to-exclude \
--exclude-glob a-file-group-to-exclude* \
--exclude-glob other-files-to-esclude"
}
data_upload_lftp
然後執行
$ bash _deploy.sh
就完成blog的發布 可以把發布腳本寫在git的post commit hook裏麵,但是我更習慣於多次提交,一次push,一次deploy的節奏。
markdown格式類似於wiki格式又不同於wiki編寫,比wiki的語法更簡單,也夠用了。 非常適合在vim中進行編輯,可以將注意力集中在寫作上,不再分散精力。文章托管在github上,如果是重要一點的內容,可以申請付費的repo,托管私有項目。通過git進行版本管理,不再擔心寫錯,想到哪,寫到哪。也方便做備份。
最後更新:2017-04-03 14:53:41