Tips:博客已搬家,新地址:http://wanxudong.top

首先说明两个关键术语:

Octopress

  • Octopress是基于 Jekyll 的博客框架。他们的关系就像 jQueryjs 的关系一样。
  • 它为我们提供了现成的美观的主题模板,并且配置简单,使用方便,大大降低了我们建站的门槛。

    What is Octopress?(摘自Octopress官方文档)

    Octopress is Jekyll blogging at its finest.

  • Octopress sports a clean responsive theme written in semantic HTML5, focused on readability and friendliness toward mobile devices.
  • Code blogging is easy and beautiful. Embed code (with Solarized styling) in your posts from gists, jsFiddle or from your filesystem.
  • Third party integration is simple with built-in support for Pinboard, Delicious, GitHub Repositories, Disqus Comments and Google Analytics.
  • It’s easy to use. A collection of rake tasks simplifies development and makes deploying a cinch.
  • Ships with great plug-ins some original and others from the Jekyll community — tested and improved.

Note: Octopress requires a minimum Ruby version of 1.9.3-p0.

GitHub Pages

  • GitHub Pages 是 GitHub 提供的一项服务。它用于显示托管在 GitHub 上的静态网页。所以我们可以用 Github Pages 搭建博客,当然我们也可以把项目的文档和主页放在上面。

大致思路是通过Octopress生成本地静态博客网页,然后将静态网页布置到GitHub提供的GitHub Pages上面。

安装


下面是具体的安装步骤(这里使用RVM安装,还可以通过rbenv安装,Octopress给出的官方安装文档:Octopress Setup):

查看ruby版本

1
ruby --version  # 根据Octopress官方文档Ruby必须 >= 1.9.3-p0

如果ruby版本 >= 1.9.3-p0 ,跳过RVM和Ruby的安装。

安装RVM

1
curl -L https://get.rvm.io | bash -s stable --ruby

安装Ruby 1.9.3

1
2
3
rvm install 1.9.3
rvm use 1.9.3
rvm rubygems latest

安装 Octopress

将 Octopress的项目clone到本地:

1
2
git clone git://github.com/imathis/octopress.git octopress
cd octopress

更新ruby源,将官方的ruby源替换成国内淘宝的源。

1
2
3
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

接下来,安装依赖:

1
2
gem install bundler # 若遇权限问题加上sudo重新执行,并输入密码。
bundle install

最后安装 Octopress

1
rake install       # 安装octopress默认主题

修改Octopress初始配置

1
2
ls                 # 查看当前目录所有文件
vim _config.yml # 通过vim编辑主要配置

可以看到如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ----------------------- #
# Main Configs #
# ----------------------- #
#网站地址,这里是GitHub项目地址,为必填
url: http://userName.github.io
#网站标题
title: user的博客
#网站副标题
subtitle: 天行健,君子以自强不息。
#网址作者
author: userName
#搜索引擎
simple_search: https://www.google.com/search
#网站的描述,出现在HTML页面中的 meta 中的 description
description:

确保在octopress目录,执行命令

1
2
rake generate  # 生成静态站点
rake preview # 预览静态站点,在http://localhost:4000

在浏览器输入localhost:4000可看到生成的博客。
Tips: 最好把里面的twitter相关的信息全部删掉,否则由于GFW的原因,将会造成页面load很慢。

部署到GitHub Pages上

在 GitHub 上创建一个New repository,Repository name即项目名称命名规则为 userName.github.iouserName必须与用户名称一致。

Tips:最好不要勾选README,免得同步到远程仓库的时候需要做额外的pull操作。


将本地代码仓库同步到GitHub.

1
rake setup_github_pages

绑定远程仓库

1
git@github.com:your_username/your_username.github.io.git  # 或者https://github.com/your_username/your_username.github.io

创建一篇文章

1
rake new_post["title"]

生成新的文章在source/_posts/目录下

1
2
cd source/_posts   # 命令行cd到posts目录下
open ./ # 打开目录文件夹

这个时候会在目录里看到.markdown后缀的文件,我们可以通过一些第三方的Markdown编辑器打开。在这里我使用的是Mou(下载地址:这里),Mou附带实时预览,文档说明里也将markdown语法说的很详细,这里不再赘述。

编辑完成后生成静态站点,终端执行命令:

1
rake generate     # 此命令需在octopress根目录执行,若当前目录为source/_posts,执行两次cd ..返回到根目录再执行此命令。

预览本地的站点,执行指令:

1
rake preview

在浏览器打开localhost:4000 查看网页效果效果。如果没有问题可以将静态站点同步到 GitHub远程仓库中。执行命令

1
rake deploy      #同步到GitHub服务器

打开GitHub稍等一会儿,就会看到我们的静态网页已经被同步到GitHub仓库的master分支上了。浏览器访问访问username.github.io,就会发现个人博客已经创建成功。

最后,创建source分支。Octopress的Git仓库(repository)有两个分支,分别是mastersource

  • source分支存储的是生成博客的源文件,在octopress根目录下。
  • master分支存储的是博客网站本身master的内容,在根目录的_deploy文件夹内,当你push源文件时会忽略,它使用的是rake deploy命令来更新的。
1
2
3
4
git checkout source
git add .
git commit -m "comment" #"comment"为提交的log日志
git push origin source

git操作代码如下:

1
2
3
4
5
6
git remote -v               # 显示所有远程仓库
git pull origin source # 取回远程仓库的变化
git branch # 列出所有本地分支
git checkout [branch-name] # 切换到指定分支,并更新工作区
git merge [branch] # 合并指定分支到当前分支
git log # 查看当前分支的版本历史

Tips: 关于Octopress的个性化配置和在多台设备间同步使用,会在之后的文章中更新。

原文地址:http://wanxudong.top/blog/2017/04/07/octopress-plus-github-page-da-jian-ge-ren-bo-ke/


参考文章:

Octopress + GitHub Page 搭建个人博客的更多相关文章

  1. (踩过的坑)使用Github Page搭建个人博客

    最近需要搭建一个网站,作为导航网址,但是自己的域名备案还要等上几天,就想着有没有别的办法来搭建一个公网可以访问的网站. Github Page的话是一个github个人主页,完全适合用来搭建普通网站. ...

  2. github page+jekyll搭博客初体验

    div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 10px; padding ...

  3. 基于 Hexo + GitHub Pages 搭建个人博客(一)

    前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之. 很快到了 16 年,开始接触网上各大博客网站,接触最多的当属 CSDN,萌生了注册一个博客 ...

  4. 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  5. 使用 github + jekyll 搭建个人博客

    github + jekyll 本地写markdown,然后push到github,就成了博客 其实我一早就知道这两者可以搭建个人博客,因为本人有个很好的习惯——每天都会去看看一些热门文章,了解行业最 ...

  6. 基于 Hexo + GitHub Pages 搭建个人博客(二)

    在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...

  7. 使用github pages搭建个人博客

    一.环境准备 使用Github Pages搭建个人博客,一劳永逸,可以让我们更加专注于博客的撰写.博客的更新是通过将新建或改动的博客放在指定文件夹并推送到远程Github仓库来完成的,所以我们本地需要 ...

  8. 使用Hexo + GitHub Pages 搭建个人博客

    一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...

  9. Linux下使用 github+hexo 搭建个人博客06-next主题接入数据统计

    之前说了 next 主题的优化和接入评论系统.让我们完成了自己所需的页面风格和排版,也可让访问用户在每篇博文评论,完成博主和访问用户的交互. 本章我们继续讲解其他重要功能. 既然是一个网站,那么我们就 ...

随机推荐

  1. Ubuntu之设置应用开机自启动

    前言 前面使用oricle-Linux的时候,设置开机自启动使用的是chkconfig,现在使用ubuntu的时候发现Ubuntu系统没有了RH系统中的 chkconfig命令,因此研究了一下ubun ...

  2. UVALive 3668 A Funny Stone Game

    题目链接:UVALive - 3668 题目大意为给定n堆石子,每次的操作是选择三个数i<j<=k,从i中拿一枚石子,在j和k中分别放入一枚石子.不能操作者输.求先手是否能赢,若可以,则输 ...

  3. python中的pydoc

    在终端上输入pydoc会显示以下信息 pydoc - the Python documentation tool pydoc <name> ... Show text documentat ...

  4. 运行级别(run level)

    inittab是很多linux版本的启动脚本.Linux在完成核内引导以后,就开始运行init程序,它的进程号是1,是所有其他进程的起点.init需要读取/etc/inittab,该文件告诉init在 ...

  5. ImageNet Classification with Deep Convolutional Neural Network(转)

    这篇论文主要讲了CNN的很多技巧,参考这位博主的笔记:http://blog.csdn.net/whiteinblue/article/details/43202399 https://blog.ac ...

  6. Windows内核读书笔记——SEH结构化异常处理

    SEH是对windows系统中的异常分发和处理机制的总称,其实现分布在很多不同的模块中. SEH提供了终结处理和异常处理两种功能. 终结处理保证终结处理块中的程序一定会被执行 __try { //要保 ...

  7. jmeter----计数器

    在测试过程中,往往需要一些有一定规则的数字,这个时候,可以使用配置元件中的计数器去实现. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.启动:是指计数器开始的值 4.递增:每次增加的 ...

  8. python collections模块详解

    参考老顽童博客,他写的很详细,例子也很容易操作和理解. 1.模块简介 collections包含了一些特殊的容器,针对Python内置的容器,例如list.dict.set和tuple,提供了另一种选 ...

  9. review-反思当程序猿的小一年来

    误打误撞进入这个行业,也算是缘分把,不到一年的时光里,剖析一下自己,别写了半天代码,学了一堆东西,不知道干嘛.反省一下. 1.目标与知识库 就目前在我看来,是想成为一名优秀的数据工程师,掌握全栈数据分 ...

  10. Web前端开发最佳实践(2):前端代码重构

    前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...