用Octopress在Github pages上写博客
安装Git环境
- 下载msysgit(git for windows),并安装。
- 可以选择安装TortoiseGit,这个在windows的资源管理器里装了很多git的右键菜单,对git命令行不熟悉的同学用起来很方便。
安装Ruby环境
- 从RubyInstaller下载RubyInstaller,直接安装。
- 从RubyInstaller下载Devkit。
注意下载合适的版本:- Ruby 1.8.6 to 1.9.3: tdm-32-4.5.2
- Ruby 2.0.0: mingw64-32-4.7.2
- Ruby 2.0.0 x64 (64bits): mingw64-64-4.7.2
- 下载的Devkit其实就是7zip的压缩包,双击时候选择解压位置,比如
c:\devkit
。 - 在命令行运行如下命令安装devkit:
cd DevKit
ruby dk.rb init
ruby dk.rb install
注意如果安装失败(不是两个[INFO]),可以在跑完ruby dk.rb init
之后跑一下ruby dk.rb review
来看看生成的.yml
文件对不对,如果没有正确的找到ruby的安装目录,就手动加在下面。 - 可以把gem的源更换到淘宝的镜像,这样比较快。
gem sources -a http://ruby.taobao.org/
然后可以
gem sources -r https://rubygems.org/gem sources -l
看看结果。
安装Octorpress
1 . 首先把Octopress的代码拿到本地。 git clone git://github.com/imathis/octopress.git blog
2 . 修改Octopress目录下的Gemfile文件,将第一行的http://rubygems.org/
修改为http://ruby.taobao.org/
3 . 然后进入文件夹,安装Octopress。 gem install bundler
bundle install
rake install
4 . 解决中文问题。
在环境变量中设置下面的键值对:
LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8
含有中文的文件需要保存为UTF-8无BOM格式编码。
- 在Ruby的安装路径找到文件convertible.rb,将27行修改为:
self.content = File.read(File.join(base, name), :encoding => 'utf-8')
5 . 配置Octopress,修改_config.yml
。重点修改如下几个: url: http://fresky.github.io title: Flying in the free sky
subtitle: Dawei's Blog author: Dawei XU simple_search: http://google.com/search
description:
写博客
博客必须存放在source/_posts
目录下,并且满足Jekyll的命名规范:YYYY-MM-DD-post-title.markdown
。
1 . 用rake new_post["Title of the post"]
自动生成一个新的符合命名规范的博文。注意这里的标题不能有中文。
2 . 这个自动生成的文件的开头如下:
---
layout: post
title: "Tutorial: Create a blog with octopress and host it in github pages"
date: 2013-04-22T21:24:21+02:00
comments: true
categories: [ruby,octopress]
---
在这里可以修改title为中文。
3 . 用你喜欢的编辑器编辑Markdown文本。我用的是MarkdownPad。
4 . 编辑完之后可以运行rake preview
来预览自己的博客(本地机器4000端口)。
发布到Github Pages上
1 . 在Github上创建一个新的repository,名字叫做your-username.github.io
。名字一定要符合这个规范。
2 . 运行命令绑定到Github Pages上: rake setup_github_pages[git@github.com:fresky/fresky.github.com.git(reponame)]
Github pages需要有2个分支,一个是main
,一个是source
。main
上的内容用来显示。
3 . 运行命令来发布:rake deploy
4 . 调用git push origin source
来把你的博文的markdown也放到github上。
在另一台机器上发布博文
Octopress的repository有2个分支,一个是source
,相当于源代码,包含我们写的博文等文件,这些文件会被处理然后用来生成blog。另一个是main
,包含博客本身。 main
分支存储在_deploy
的目录下,这个目录以下划线开头,所以在git push origin source
时会被忽略掉。当运行rake deploy
时,会提交master
。所以我们要做的就是在新机器上重建一个Octopress的repository。
1 . 克隆source
到一个本地目录。 $ git clone -b source git@github.com:fresky/fresky.github.com.git blog
2 . 克隆master
到_deploy
目录。
$ cd blog $ git clone git@github.com:fresky/fresky.github.com.git _deploy
3 . 运行rake来配置 $ gem install bundler $ bundle install $ rake setup_github_pages
跟上面的步骤一样。这样就在一个新的机器上设置好了Octopress的环境。
如果在多台机器上用,需要每次发布前都pull,发布完都push两个分支。
参考
- Tutorial: Create a Blog With Octopress and Host It in Github Pages
- Clone Your Octopress to Blog From Two Places
- Windows下搭建Octopress博客
用Octopress在Github pages上写博客的更多相关文章
- 利用Octopress在github pages上搭建个人博客
利用Octopress在github pages上搭建个人博客 SEP 29TH, 2013 在GitHub Pages上用Octopress搭建博客,需要安装ruby环境.git环境等.本人在Fed ...
- 用Jekyll在github上写博客——《搭建一个免费的,无限流量的Blog》的注脚
本来打算买域名,买空间,用wordpress写博客的.后来问了一个师兄,他说他是用github的空间,用Jekyll写博客,说很多人都这么做.于是我就研究了一下. 比较有价值的文章有这么几篇: htt ...
- 用Jekyll在github上写博客
用Jekyll在github上写博客——<搭建一个免费的,无限流量的Blog>的注脚 本来打算买域名,买空间,用wordpress写博客的.后来问了一个师兄,他说他是用github的空间, ...
- 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- ruby开源项目之Octopress:像黑客一样写博客(zhuan)
ruby开源项目之Octopress:像黑客一样写博客 百度权重查询 词库网 网站监控 服务器监控 SEO监控 Swift编程语言教程 今年一直推荐的一种写作方式.markdown语法快速成文,git ...
- 使用Hexo + GitHub Pages 搭建个人博客
一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(二)
在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...
- 基于 Hexo + GitHub Pages 搭建个人博客(三)
一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...
- 使用github pages搭建个人博客
一.环境准备 使用Github Pages搭建个人博客,一劳永逸,可以让我们更加专注于博客的撰写.博客的更新是通过将新建或改动的博客放在指定文件夹并推送到远程Github仓库来完成的,所以我们本地需要 ...
随机推荐
- eclipse和cygwin搭建C++环境的修正版本
最近嫌弃切换系统麻烦.用了cygwin作为netbeans下C++的环境继续学习.我学的很渣,就不卖弄了. 网络上有很多这样的文章.经过对比和实验发现一个深坑.教程部分还是跟其他的一样,重点部分红字做 ...
- Frameset布局
<FRAMESET> <FRAME> <NOFRAMES> <IFRAME> ■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得多个 URL. ...
- Visual Studio 2008中添加运行按钮 转载
在Visual Studio 2008中添加运行按钮 默认情况下,VS2008中的工具栏上没有运行按钮,只有调试(Debug)按钮,可按照以下方法添加 1.点击菜单Tools(工具)->Cust ...
- memcached 入门
memcached 是什么? Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. memcached 能够做些什么? 适用于大型网站,处理千万及的数据,而且 ...
- lamp环境中的/到底是指的网站根目录还是linux的根
在lamp中经常会用到 require,require_once等包含文件的语句. 如果你使用相对路径没有问题. 但是如果你使用了这样的语句就要小心了. 对于如图网站目录 require_once ' ...
- 【POJ1743】不可重叠最长重复子串
题意:求一个字符串里两个不重叠的最长重复子串 代码如下: #include<cstdio> #include<cstdlib> #include<cstring> ...
- java中的信号量Semaphore
Semaphore(信号量)充当了操作系统概念下的“信号量”.它提供了“临界区中可用资源信号量”的相同功能.以一个停车场运作为例.为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的.这时如果 ...
- 解除網頁無法選取文字、鎖右鍵限制:Enable Copy(Chrome 擴充套件)
有些网页因会因为某些因素而禁止浏览者直接复制网页上的内容,虽然我们了解站方的意思,不过有些时候会造成一些不必要的困扰. Enable Copy 这款Chrome 扩充套件可以帮你一键解除封锁右键和选取 ...
- lc面试准备:Power of Two
1 题目 Given an integer, write a function to determine if it is a power of two. 接口 boolean isPowerOfTw ...
- 【HDOJ】5203 Rikka with wood sticks
/* 1002 */ #include <iostream> #include <string> #include <map> #include <queue ...