閱讀186 返回首頁    go 阿裏雲 go 技術社區[雲棲]


獻給寫作者的完美工具介紹!

一 理想的寫作環境:Git+Github+Markdown+Jekyll

理想的寫作環境,受各類幹擾小、清理廢話及版本管理容易。曾花費較長時間尋找,最後還是找到了。

2010年開始,采取Git+Github+Markdown+Jekyll,完成一些作品。暖色調燈光,黑暗的背景色,全屏的寫作狀態,很有氛圍。

這種搭配,符合心理學原理,背後有著相應理念。分享如下:

Git

讓人不再擔心寫廢,想到哪裏,寫到哪裏。

背後理念

Github

讓人不再擔心備份與遠程協作,一切提交,均有記錄。

補充介紹

購買一個Github的私人賬戶,用於托管個人"不適合公開"的項目。 零散的思考,隨時寫在Jekyll的_drafts目錄下。當思考成熟,予以發布。較係統的思考,尤其需要遠程協作,則參考Github中成功的開源圖書項目,單獨整理為Jekyll的子目錄或獨立項目。

背後理念

Markdown

不再憂慮排版,專注寫作。

背後理念

Jekyll

Octopress出來之後,也向人推薦。但自己不用。之所以用Jekyll,是希望專注於寫作而非版式、圖片等。如果用Octopress,又回歸老路了。 Octopress有兩點細節不能接受:

  • 無法支持Github在線編輯;
  • 分源碼與生成兩個分支,違背簡潔原則。

背後理念

相關參考

二 用Jekyll寫技術博客

建立blog的工具有不少。但是有兩點是我不喜歡的。1是不能讓我像寫代碼一樣寫文章,2是依賴數據庫,很難版本管理。jekyll能夠達到以上兩點功能。讓我像寫code一樣寫post。


緣由

曾經也有過寫技術博客的衝動。申請過bloger,msn space。但總覺得這些blog如果寫一些日常的感受還可以,但總是讓人不能專注於寫作,很小的編輯框,還要時刻注意換行,稍不注意,顯示的格式就不對了。

直到最近,我在一篇blog上知道了--Jekyll

老外寫書已經采用編程和項目的方式了, 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

  上一篇:go 單鏈表的若幹問題
  下一篇:go poj 2583 Series Determination