写作环境搭建(git+github+markdown+jekyll)
转载自:
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)的更多相关文章
- day75:luffy:路飞学城项目后端环境搭建&Git相关知识点
目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...
- Windows/Linux 环境搭建Git服务器 + vs2012集成git
1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...
- 使用GitBook, Git github, Markdown 快速发布你的书籍
利用git作为版本管理和发布工具 你可以直接通过npm安装gitbook到全局 npm install -g gitbook gitbook只提供了如下四个命令 gitbook -h Usage: g ...
- Linux 环境 搭建Git 服务器,并且修改SSH端口使用
1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...
- Mac搭建Git/GitHub全过程
在GitHub上注册了账号,建立了第一个hello-world repository,然后打算把Git平台配置在自己的机器上.因为是Mac OS,我也是一个初学者,很多功能需要自己摸索,于是各种百度, ...
- 【centos6.6环境搭建】Github unable to access SSL connect error出错处理
问题 克隆github项目出现SSL connect error git clone https://github.com/creationix/nvm Cloning into 'nvm'... f ...
- 利用Hexo搭建个人博客-环境搭建篇
我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...
- 3.Flink实时项目之流程分析及环境搭建
1. 流程分析 前面已经将日志数据(ods_base_log)及业务数据(ods_base_db_m)发送到kafka,作为ods层,接下来要做的就是通过flink消费kafka 的ods数据,进行简 ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
随机推荐
- FPGA设计的注意事项
设计文档 一个完整的软件是由程序. 数据和文档三部分组成的. 在FPGA电路设计中, 撰写完善的设计文档是非常重要的. 对于一个比较复杂的设计来说, 各个子单元的功能各不相同, 实现的方法也不一样,各 ...
- Linux 查看是否安装 oracle
查看是否用 oracle 的进程 ps -ef | grep ora 一般安装 oracle ,默认会有 oracle 的用户. id oracle
- ET框架之自写模块SmartTimerModule
1.代码结构图 2.SmartTimer 模块Entity: using System; namespace ETModel { [ObjectSystem] public class SmartTi ...
- H5 App设计者需要注意的问题
我们通常在做H5 APP设计的过程中,遇到很多看似很小,且很容易被忽略的问题,正是这些小问题,一次次的撩拨用户的耐心,让用户对你的APP心生怨念.现在WeX5君呕血为大家整理出H5 APP设计的21条 ...
- 使用VSCode的Remote-SSH连接Linux进行远程开发
安装Remote-SSH并配置 首先打开你的VSCode,找到Extensions,搜索Remote,下载Remote-Developoment插件,会自动安装其他的Remote插件,其中会包含Rem ...
- [C++] JsonCPP 的使用 完整配置过程
最近准备开发一个程序 需要用到C++ 解析json 原始的C++解析json是不现实的 自己也写不出来json解析方法(主要是不靠谱) 所以找到了jsoncpp 这个库 但是... 因为各种原因 配置 ...
- java程序员摸爬滚打的三年,这些经历你值得借鉴
不知不觉都2020年2月底了,小羊同学从毕业快开始都一直从事java开发这个行业,前两天开通了头条号,想借此发文分享一下这几年的经历吧,如果你是还没毕业的大学生或者刚入行不久,也许会对你有帮助. 1: ...
- HTML学习(2)编辑器
HTML编辑常用的编辑器:Notepad++.Sublime Text.VS Code 可以使用Emmet插件来提高编码速度. 注:emmet只支持32位的Notepad++. 注意这里要把这两个dl ...
- 每天进步一点点------Allegro 布线完成后如何修改线宽
一.如果要改变整个一条导线的宽度 1.在find栏里选择Cline; 2.在PCB中选择要改的导线,点击右键,选择Change Width 3.在对话框中输入你想要的线宽 3.如果要改变整个导线 ...
- sqlserver 优化语句小助手
我们在开发的过程中,经常会遇到一些性能差的问题,此刻我的解决思路一般是,首先在浏览器端监控查看是哪一个调用的方法占用的时间比较长如下图,然后会根据方法定位到具体的方法,然后可能是自己写的遗传sql语句 ...