github + jekyll

本地写markdown,然后push到github,就成了博客

其实我一早就知道这两者可以搭建个人博客,因为本人有个很好的习惯——每天都会去看看一些热门文章,了解行业最新动态,所以什么新鲜事儿我都知道点,可能不熟悉而已。

于是今晚就试着弄一下,去百度找了几个文章,结果一注意时间(程序员职业病)都是好几年之前的了,我瞬间就怀疑了时效性,因为技术发展太快了。于是就摸着石头过河,果然踩了几个雷。

雷就不说了,这不重要,重要的是总结一下正确的步骤。

创建github帐号和项目

github——俗称全球程序员社交网站(我觉得应该叫全球程序员伸手即得网站)——如果你作为一名程序员竟然没有github帐号,那你看到这篇文章时,就应该自罚三杯牛栏山了——好喝不上头!

登录github站点,然后接下来要做一个重要的事儿————如果你的用户名是gebilaowang,那么你要创建一个名为gebilaowang.github.io的项目,我的用户名是wangfupeng1988,所以我当时创建了名为 wangfupeng1988.github.io 的项目。

什么?你不会创建项目?—— 那你先暂停,先去了解一下github的基本应用

安装 jekyll

首先,本抱歉,我这里只有mac笔记本,windows的安装过程我不清楚,自己个儿查去吧——所谓,你不自己动手、谁闲的教你呀?

我用 mac os 安装 jekyll 算是经历了一点波折。从网上搜的安装过程都是这样的

## 检查gem版本
$ gem -v
## 更新Gem(提示权限)
$ gem update --system
安装jekyll(提示权限)
$ gem install jekyll
安装成功之后,查看版本号
$ jekyll -v

但是我既然这么说,那肯定这样就是失败的,据说是由于『10.11对系统文件安全进行了更新,所谓的(SIP)』。后来才发现,原来只有默认的安装路径才会有这个权限的问题,那干脆就把路径改了就是了。打印出系统的$PATH然后另外找一个路径安装就是了,这样的好处就是安装完了不用再修改$PATH——否则安装这个也改、安装那个改,时间长了就乱了。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin ## 换个路径安装
$ gem install jekyll -n /usr/local/git/bin

还有执行gem update --system的时候可能需要科学(fan)上网(qiang),这个就得自己想办法了。不过没有购买vpn的同学,我推荐使用Lantern(mac用户),没用过的搜一下。虽然速度慢、有时不行,但毕竟免费的,要啥自行车?

哦 对了,以上安装完了之后呢,最好安装一个rdiscount,据说是解析markdown用的,方法跟安装jekyll一样

gem install rdiscount -n /usr/local/git/bin

初始化博客

上一步,jekyll、rdiscount已经安装成功了。

然后进入你置顶的文章目录,执行以下命令,然后你就能看到jekyll已经为你创建了一些基本的文章。

$ jekyll new gebilaowang_blog
$ cd gebilaowang_blog
$ ls

这面的文件夹名称、作用都是规定好的,想对他们有简单的了解,还是去看看阮一峰老师的这篇文章吧,我就不再赘述了。但是,这篇文章有些信息已经过时,只准看,不准照着做!

想要看效果,运行

$ jekyll serve
$ open http://127.0.0.1:4000/

这时候你会看到运行除了一个基本的页面,但是都是英文。这个没关系,都是应为咱们可以改成中文。

先打开./_config.yml,把里面的信息改成你个人的信息,姓名、邮箱、描述什么的,能改的都改了。然后打开./about.md./index.html将里面的英文看着能修改的也都修改了。

注意,代码中``和\{\% ... \%\}内容不能修改,这都是变量,不是普通文字。还要注意,每个页面类似如下代码,即有两个---的部分,只能修改,不能删除!

---
layout: page
title: 关于
permalink: /about/
---

好,全部改完之后,重新运行jekyll serve,刷新页面,即可看到效果了。

你说,刚才改英文改的是模板和个人信息的,但是博客内容怎么办?我怎么写博客呀?—— 别急,饭得一口一口吃

提交到github

运行jekyll serve通过浏览器本地查看没问题之后,可以提交到github了。提交之前,要创建一个.gitignore文件,编写如下内容(表示./_site文件夹及其内容无需提交到远程,因为它本地临时文件,github不需要它)

_site/*

提交过程就简单写一下了,不再赘述,都是git的常用知识。看以前的文章说非得建一个gh-pages分支,但是经过我验证,不需要。

$ git init
$ git add .
$ git commit -m "init blog"
$ git remote add origin xxxxxxx(拷贝github的地址)xxxxxxx.git
$ git push origin master

好了,然后你浏览器访问gebilaowang.github.io试试(假如github用户名是gebilaowang),是否看到效果了?

写文章

有两个规定先记下:

  • 文章必须新建在./_posts文件夹中
  • 文章名称必须是yyyy-mm-dd-xxxxx-xxx-xxx格式,后缀名可以是.markdown | .html | .textile (但我只推荐markdown形式,因为易学、通用、效率高)

例如,我写这篇文章,我就要新建一个./_posts/2016-07-24-github-jekyll-blog.markdown的文件,此时你们应该可以在这里看到这个文件及其源码。

开始编写博客源码。

一开始要这样写,下面的内容中,layout: post不能修改,其他的可自行修改。

---
layout: post
title: "使用 github + jekyll 搭建个人博客"
date: -- :: +
categories: share
---

写完这几行之后,剩下的就可以自己轻松愉快的写markdown了。是不是很简单?

运行jekyll serve,即可在任何时候通过浏览器及时查看效果。待文章写完并查看效果没问题之后,即可push到github上,这样就OK了。

总结

建议大家都弄一个个人站点,很简单也很方便,提升bi格、形象的同时,也为自己积累平时的知识。

 
 

-------------------------------------------------------------------------------------------------------------

欢迎关注我的教程:

使用grunt搭建全自动web前端开发环境json2.js源码解读视频

深入理解javascript原型和闭包系列》《css知多少》《微软petshop4.0源码解读视频

------------------------------------------------------------------------------------------------------------

wangEditor,轻量化web富文本编辑器

-------------------------------------------------------------------------------------------------------------

使用 github + jekyll 搭建个人博客的更多相关文章

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

    聊聊起初 每次看到大牛们的博客,都会激起一颗一定要搭建自己博客的心,毕竟有着一颗向大牛们看齐的心.但是一直不知道如何下手,从最初的csdn写写博客到在github上建立仓库写代码分享,虽然也能够记录一 ...

  2. 使用GitHub Pages+Jekyll搭建个人博客

    GitHub Pages 免费无限容量的站点数据托管工具(国内访问速度较慢),内置Jekyll服务,能将特定名称的代码仓库动态编译为静态网页 Jekyll 基于Ruby的静态网页生成系统,采用模板将M ...

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

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

  4. 使用github + Octopress 搭建免费博客 + 碰到问题的解决方法

    使用github + Octopress 搭建免费博客,先说碰到的问题,具体创建方法见下面. 问题1, 添加ruby淘宝链接问题,显示无法获取, 解决: source “http://ruby.tao ...

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

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

  6. Octopress + GitHub Page 搭建个人博客

    Tips:博客已搬家,新地址:http://wanxudong.top 首先说明两个关键术语: Octopress Octopress是基于 Jekyll 的博客框架.他们的关系就像 jQuery 与 ...

  7. 在github上搭建个人博客并在线更新

    换博客比更博还勤的我终于决定写一篇博客搭建教程了.. FAQ Q:\(hexo\)需要本地编译.\(jekyll\)虽然可以直接上传\(md\)..但是如果在github上直接编译也太难受了叭,毕竟不 ...

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

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

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

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

随机推荐

  1. SDWebImage清除图片缓存

    背景: 使用 SDWebImage 库,由于内存中一直缓存着加载的图片,而导致内存过高(我们无法手动管理内存),弹出内存警告而导致程序很卡或者直接crash掉. 我的解决方法: 在AppDelegat ...

  2. 查看SSIS Package 部署的历史记录

    1,通过Integration Services Catalogs来查看 打开SSISDB->Projects,查看指定project的version history,这种方式查看Deploye ...

  3. hdu4750Count The Pairs(最小生成树找瓶颈边)

    /* 题意:就是给你一个图,图的每两个点都有多条路径,每一条路径中都有一条最大边, 所有最大边的最小边(也就是瓶颈边)就是这两点之间的val值!然后给你一个值f, 问有多少个顶点对的val>=f ...

  4. Javascript定时器(三)——setTimeout(func, 0)

    setTimeout(func, 0)可以使用在很多地方,拆分循环.模拟事件捕获.页面渲染等 一.setTimeout中的delay参数为0,并不是指马上执行 <script type=&quo ...

  5. Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

    前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...

  6. Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书

    <Windows Azure Platform 系列文章目录> 在某些时候,我们需要在Azure PaaS Cloud Service配置HTTPS连接.本章将介绍如何在本地创建证书,然后 ...

  7. Azure REST API (2) Azure Storage

    <Windows Azure Platform 系列文章目录> 注意:本文适用于国内由世纪互联运维的Azure China. 本文将会介绍如何使用REST API来直接访问Storage ...

  8. Struts2 源码分析——调结者(Dispatcher)之准备工作

    章节简言 上一章笔者讲到关于struts2过滤器(Filter)的知识.让我们了解到StrutsPrepareFilter和StrutsExecuteFilter的作用.特别是StrutsPrepar ...

  9. 基于HT for Web矢量实现HTML5文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  10. 一个比较有意思的C语言问题

    先看代码吧,学习c语言结构体中看到的一个问题 #include<stdio.h> int main(){ struct{ int a:2; }x; x.a=; x.a=x.a+; prin ...