献给写作者的完美工具介绍!

一 理想的写作环境: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进行版本管理,不再担心写错,想到哪,写到哪。也方便做备份。


上一篇:hduoj2546饭卡


下一篇:参数的排列组合3