献给写作者的完美工具介绍!
2013-10-09 21:13
399 查看
一 理想的写作环境:Git+Github+Markdown+Jekyll
理想的写作环境,受各类干扰小、清理废话及版本管理容易。曾花费较长时间寻找,最后还是找到了。2010年开始,采取Git+Github+Markdown+Jekyll,完成一些作品。暖色调灯光,黑暗的背景色,全屏的写作状态,很有氛围。
这种搭配,符合心理学原理,背后有着相应理念。分享如下:
Git
让人不再担心写废,想到哪里,写到哪里。
背后理念
http://zh-cn.whygitisbetterthanx.com/
Github
让人不再担心备份与远程协作,一切提交,均有记录。
补充介绍
购买一个Github的私人账户,用于托管个人"不适合公开"的项目。 零散的思考,随时写在Jekyll的_drafts目录下。当思考成熟,予以发布。较系统的思考,尤其需要远程协作,则参考Github中成功的开源图书项目,单独整理为Jekyll的子目录或独立项目。
背后理念
How ITurned Down $300,000 from Microsoft to go Full-Time on GitHub
Markdown
不再忧虑排版,专注写作。
背后理念
Markdown语法中译献给写作者的 Markdown 新手指南
Jekyll
Octopress出来之后,也向人推荐。但自己不用。之所以用Jekyll,是希望专注于写作而非版式、图片等。如果用Octopress,又回归老路了。 Octopress有两点细节不能接受:无法支持Github在线编辑;
分源码与生成两个分支,违背简洁原则。
背后理念
BloggingLike a Hacker
相关参考
如何提高创作型任务的效率?如何提高创作型任务的效率?(MAC版)
如何高效利用Github
Markdown写作浅谈
快速写作模式谈
二 用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
[code]$ rake post title="Jekyll-Intrduction"
本地preview
在_post目录中完成编辑,使用vim 本地启动server,进行预览,如果在预览的过程中又对文件进行了编辑,会动态生成新的网页。[code]$ rake preview
提交到github
将文章提交到github上。如果使用了github提供的个人主页服务,则提交之后即能够访问。首先要创建一个 “用户名.github.com”的仓库.具体步骤参见[code]$ git add . $ git commit $ git push
通过ftp自动发布
如果不是使用github提供的个人主页服务,使用自己托管的空间,通过ftp上传,可以通过下面的方式完成网站的部署_deploy.sh
[code]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
然后执行
[code]$ bash _deploy.sh
就完成blog的发布 可以把发布脚本写在git的post commit hook里面,但是我更习惯于多次提交,一次push,一次deploy的节奏。
markdown格式类似于wiki格式又不同于wiki编写,比wiki的语法更简单,也够用了。 非常适合在vim中进行编辑,可以将注意力集中在写作上,不再分散精力。文章托管在github上,如果是重要一点的内容,可以申请付费的repo,托管私有项目。通过git进行版本管理,不再担心写错,想到哪,写到哪。也方便做备份。
相关文章推荐
- 笔试题1
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
- xhEditor支持HTML5的文件上传解决application/octet-stream
- 华为面试2:1分2分5分的硬币,组成1角,共有多少种组合。
- Linux下JsonCpp安装
- SMTP Error: Could not connect to SMTP host.
- 转:Linux 文件IO理解
- 怎样写好一份IT技术岗位的简历
- git pll and notice: untracked working tree files would be overwritten by merge
- sqlserver实例无法加锁或者多于一个的连接时处理方法
- 360免费带给我的思考
- 浅谈MySQL外键
- Sparse Index实验
- win7下编译chromium
- mysql 1067错误
- [LeetCode]Maximum Depth of Binary Tree解题报告
- svm理论与实验之2: 线性分类器
- 提高关键词排名的28个SEO技巧
- Android 布局优化
- 使用标准模板库 (STL)之二