转载自:

https://site.douban.com/196781/widget/notes/12161495/note/264946576/

2013-03-04 19:33:10

 
---

layout: post
categories: [Tools]
tags: [jekyll, github, git, markdown]

---

## 缘起

读了阳志平大神的一篇博文[理想的写作环境:git+github+markdown+jekyll](http://www.yangzhiping.com/tech/writing-space.html),不由感叹,这就是我想要的,于是就开始着手做这件事。在小站里也推荐了一下,然后发现,好多朋友早就已经搞起了,有的已经玩腻了,我果然又落伍了=。 =。这将是我第一篇用Markdown写的博文,当作练手~,真的很简单。

## 参考

这方面的好文章网上相当多,我挑几个自己用上的列出来:

- git/github相关:
        + [阳志平:Git与Github入门资料](http://www.yangzhiping.com/tech/git.html
        + [阳志平:如何高效利用GitHub](http://www.yangzhiping.com/tech/github.html
- markdown相关:
        + [Markdown 语法说明 (简体中文版)](http://wowubuntu.com/markdown/)
        + [图灵社区 : 怎样使用Markdown](http://www.ituring.com.cn/article/23)
        + [阳志平:Markdown写作浅谈](http://www.yangzhiping.com/tech/r-markdown-knitr.html)
- jekyall相关:
        + [搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门](http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html)
- 综述:
        + [Github Pages极简教程 - 雁起平沙的网络日志](http://yanping.me/cn/blog/2012/03/18/github-pages-step-by-step/)
        + [Play with Jekyll](http://blog.skydark.info/programming/2012/03/23/play-with-jekyll/)

说实话,这几篇看完了尤其是综述,就不用往下看了,以下作为我个人记录,只给出简单的过程以及排错经验,再无概念上的陈述,以备后用。

## 过程记录

### 以下过程在ubuntu 12.04下进行
1. apt-get安装rubygems之后,*gem install jekyll*安装jekyll,并用同样的gem命令安装directory_watcher、liquid、open4、maruku、classifier,rdiscount这几个包。Jekyll默认用maruku来解析markdown语言,你也可以用别的程序来解析,比如上面的rdiscount。

2. github上建立名为*username*.github.com的项目,其中*username*是你自己的github用户名。

3. *git clone*该项目至本地同名文件夹*username*.github.com。

4. 偷懒下载别人改好的jekyll模板框架,比较有名的是Octopress和Jekyll Bootstrap,另外[https://github.com/mojombo/jekyll/wiki/sites](https://github.com/mojombo/jekyll/wiki/sites)里面有很多可供参考的模板,我使用的是[kejinlu.github.com](https://github.com/kejinlu/kejinlu.github.com)。由于这些模板一般都是github上的,所以你可以直接*git clone*到本地,然后将其内容copy到你的*username*.github.com本地文件夹中。

5. 接下来就是改动其内容,美其名曰hack,实际上我对前端代码完全看不懂,所以只做了最低级的修改,比如个人信息和文章神马的,注意一定要将他人的.git文件删掉。改完后,push到github上,就算大功告成了,过个10分钟左右访问http://*username*.github.com,就可以看到你的blog雏形了。注意如果接到github发来的邮件告诉你发生错误,就说明没有正确配置,无法显示你的blog,我遇到过两个错误:

>For information on troubleshooting Jekyll see https://help.github.com/articles/using-jekyll-with-pages#troubleshooting

这个错误一般是本地安装的jekyll或者ruby,rubygems等软件包版本不符合github的版本要求。你可以使用*gem list*命令查看本地的软件包版本号。以下是github上软件包的版本号要求。 
                gem 'jekyll', '=0.12.0' 
                gem 'liquid', '=2.4.1' 
                gem 'redcarpet', '=2.1.1' 
                gem 'maruku', '=0.6.0' 
                gem 'rdiscount', '=1.6.8' 
                gem 'RedCloth', '=4.2.9'
        
        
        >CNAME already taken: ...... 
 
        这个错误需要把本地文件夹下的CNAME文件删掉,这个应该是别人定义自己自定义域名用的,如果你没有自定义域名,那就不需要。

6. 如果你的blog可以正确访问了,你就可以在_posts文件夹下添加.md文件作为你的博文,注意命名格式一定要是yy-mm-dd-*title*.md,title是你文章的标题。写完之后push到github上就可以在你的blog上显示了,其中每篇文章的开头都要指定一定的格式,如本文:

---
                layout: post
                categories: [Tools]
                tags: [jekyll, github, git, markdown]
                ---

*layout: post*指的是博文格式安装_layouts文件夹下的post.html指定的格式来显示。 
        *categories: [Tools]*指定博文分类。 
        *tags: [jekyll, github, git, markdown]*指定博文标签。

7. 如上所述,每次对博文做出改动都需要push到github上才能看到效果,那么如何不需要联网直接在本地调试呢,显然是可以的,因为你本地已经安装了jekyll(在第一步骤中),具体做法就是在本地*username*.github.com文件夹下运行命令,*jekyll serve*,在jekyll 0.12.0以前的命令好像是*jekyll --server*,这样就启动了jekyll本地端口的监听,当你访问*localhost:4000*时,就会看到你blog显示出来了。

## **注意事项**

1. 整个过程中最让我困扰的的是rubygems软件包版本的问题,用apt-get怎么也搞不定,可能是源的问题,最终我是从[rubygems.org](http://rubygems.org/)中搜索所有我想要的版本的包的,然后用*gem instll*安装包就可以了。

2. 在家里我用的ubuntu搭建的环境,在公司的时候我用windows想往github上push文章,但是发现都是乱码,这是因为我用的mysgit对中文支持不好,于是我按照[windows下git bash显示中文](http://blog.csdn.net/self001/article/details/7337182)的方法做了修改,并按照[git编辑器改用本机gvim](http://www.cuiguojie.com/msysgit_editor_gvim.html)的方法在mysgit下使用gvim或notepad++打开我的博文,保存为utf-8格式,这样再push就好用了。

写作环境搭建(git+github+markdown+jekyll)的更多相关文章

  1. day75:luffy:路飞学城项目后端环境搭建&Git相关知识点

    目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...

  2. Windows/Linux 环境搭建Git服务器 + vs2012集成git

    1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...

  3. 使用GitBook, Git github, Markdown 快速发布你的书籍

    利用git作为版本管理和发布工具 你可以直接通过npm安装gitbook到全局 npm install -g gitbook gitbook只提供了如下四个命令 gitbook -h Usage: g ...

  4. Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  5. Mac搭建Git/GitHub全过程

    在GitHub上注册了账号,建立了第一个hello-world repository,然后打算把Git平台配置在自己的机器上.因为是Mac OS,我也是一个初学者,很多功能需要自己摸索,于是各种百度, ...

  6. 【centos6.6环境搭建】Github unable to access SSL connect error出错处理

    问题 克隆github项目出现SSL connect error git clone https://github.com/creationix/nvm Cloning into 'nvm'... f ...

  7. 利用Hexo搭建个人博客-环境搭建篇

    我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...

  8. 3.Flink实时项目之流程分析及环境搭建

    1. 流程分析 前面已经将日志数据(ods_base_log)及业务数据(ods_base_db_m)发送到kafka,作为ods层,接下来要做的就是通过flink消费kafka 的ods数据,进行简 ...

  9. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

随机推荐

  1. python3练习100题——012

    今天继续,答案都通过py3测试. 原题链接:http://www.runoob.com/python/python-exercise-example12.html 题目:判断101-200之间有多少个 ...

  2. codeblocks汉化

    1.- 汉化包 腾讯微云 2.首先打开codeblocks安装文件夹,如:D:\CodeBlocks\share\CodeBlocks\locale\zh_CN,注意:zh_CN文件夹需自行创建 3. ...

  3. Python之路【第三十二篇】:django 分页器

    Django的分页器paginator 文件为pageDemo models.py from django.db import models # Create your models here. cl ...

  4. JavaScript 开胃菜

    注释 单行注释:// 快捷键: CTRL + / 多行注释: /* 内容 */ 快捷键: ctrl + shift + / 变量 申明变量 var name; 赋值 name = 'peach'; 初 ...

  5. 我竟然把today = new Date();写在了全局变量里面

    let today = new Date();应该在每次用之前重新生成新的对象,因为对于例如 today.getTime() 这种方法,取得是today对象的time,而非调用today对象取得实时时 ...

  6. Java-POJ1010-STAMP

    说良心话,题目不难,但是题目真的很不好懂,解读一下吧 题意: 读入分两行,第一行为邮票面额(面额相同也视为种类不同)以0结束,第二行为顾客要求的面额,以0结束 要求:每个顾客最多拿4张邮票,并求最优解 ...

  7. 等差数列Arithmetic Progressions题解(USACO1.4)

    Arithmetic Progressions USACO1.4 An arithmetic progression is a sequence of the form a, a+b, a+2b, . ...

  8. Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task 数学 mod运算的性质

    C. Ehab and a 2-operation task 数学 mod运算的性质 题意: 有两种对前缀的运算 1.对前缀每一个\(a +x\) 2.对前缀每一个\(a\mod(x)\) 其中x任选 ...

  9. 劳动人民万岁(拒绝惰性)------- 浅谈迭代对象(Iterable) 迭代器(Iterator)

    一.前戏 问题:如果一次抓取所有城市天气 再显示,显示第一个城市气温时有很高的延时,并且很浪费储存空间 解决方案:以“用时访问”策略,并且能把说有城市气温封装到一个对象里,可用for一句进行迭代 二. ...

  10. sqlldr总结参数介绍

    有效的关键字: userid --    ORACLE username/password control -    控制文件 log -        记录的日志文件 *            表示 ...