利用jekyll在github pages上搭建个人博客

标签: 前端开发


github pages

github page是github提供的一种可以显示自己git库上网页的服务。


如何使用githbu pages

有两种方法:
第一种,在github上创建新的仓库,命名为username.github.io,username就是自己注册的用户名,master分支根目录上创建index.html。打开网页username.github.io,就可以看见新建的index.html。

第二种,没有命名限制,可以基于现有的库来创建,当然也可以开新的仓库 。新建orphan分支git checkout --orphan gh-pages,分支名一定要是gh-pages。然后在username.github.io/reposname上就可以看见根目录上的index.html,reposname就是库名。


什么是jekyll

Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完整的可发布的静态网站,你可以发布在任何你喜爱的服务器上。Jekyll 也可以运行在 GitHub Page 上,也就是说,你可以使用 GitHub 的服务来搭建你的项目页面、博客或者网站,而且是完全免费的。

以下是内容都是介绍jekyll的简单用法,详细请看官方文档


使用jekyll在github上搭建个人博客

github pages 支持jekyll,因此可以直接将源码上传到github pages上,会自动解释并生成网页。

1.目录结构

mulu.png

_name 的是jekyll的默认文件/文件夹,可通过liquid读取
_data/ 里面的文件可通过site.data.xx来读取
_includes/ 里面的文件可被引用到模板上
_layouts/ 模板存放的地方
_posts/存放博文,可通过page.xx来读取相应数据
_site/运行生成的文件存放在这里,自动生成
_config.yml配置文件,里面的属性可通过site.xx来读取
index.html主页
404.html一定要是404.html才能作为404页面

liquid的语法可参见该文: liquid用法笔记

2.配置文件_config.yml
有很多配置,详细参见官方文档,简单的配置如下

encoding: utf-8 //网页的编码
baseurl: /reposname //用于site.baseurl, 适应github pages的路径, 不过好像不用这个,直接用相对路径可以。
permalink: pretty  //生成路径的方法,详细见文档
markdown: kramdown //github 指定的markdown内核
kramdown:
  input: GFM  //github markdown 写法

3.模板_layouts
_layouts/下新建default.html

<!DOCTYPE html>
<html >
<head>
    <title>{{page.title}}</title>
       <!--  调用page.title变量 -->
</head>

<body>
    <main class="container">
        <div class="wrapper">
            {{content}}
 <!--  调用该模板的文件的主内容全部显示在content里 -->
        </div>
    </main>

    {% include sidebar.html %}
<!--  引用_include/sidebar.html -->

</body>
</html>

4.index.html

---
layout: default
title: Hello World
---
<p>hello world</p>
<!-- 
虚线中间layout 表示要调用的模板,其他变量可通过page.xxx来引用。
虚线下面的内容为主内容,显示在content中。
-->

现在打开github page上的网页(username.github.io 或者 username.github.io/reposname 视乎你用哪种方法创建github pages)应该就能看见hello world。

5.post博文
_posts文件夹里创建文件2016-05-01-this-is-post.html
注意post的命名格式是yyyy-mm-dd-title.html/md,之后生成链接可以用post.url来指向博文

//2016-05-01-this-is-post.html
---
layout: default
title: this is post 1
---
<p>this is post one</p>

修改index.html,加入新博文的链接

//index.html
---
layout: default
title: Hello World
---
<h1>hello world</h1>
{% for post in site.posts %}
  <a href="{{ site.baseurl }}{{ post.url }}"> {{post.title}}</a>
  {% comment %} 
  注意site.baseurl 与 post.url中间没有 "/" ,因为post.url自带了"/"
  {% endcomment %}
{% endfor %}

6.命令行

jekyll serve --baseurl "" --watch #本地测试
jekyll build #生成文件

--baseurl "" 是为了发布的地址设为/,方便测试
--watch 就是自动监控文件变化了,使用中文件是刷新了,但网页不会自动刷新,需要配合gulp和chrome插件LiveReload来使用,gulp的配置可以参考我的。

var gulp = require('gulp'),
    refresh = require('gulp-refresh');

gulp.task('refresh', function(){
  refresh.listen();
  gulp.watch('blogJekyll/_site/**/*.*', function(){
    gulp.src('blogJekyll/_site/**/*.*')
    .pipe(refresh());
  });
});

build之后可以将_site文件夹内里的内容发布到gh-pages上,然后上http://username.github.io/baseurl/就可以看到了,不过好像github支持解析jekyll,只要直接将完整的项目上传到gh-pages上就可以

7.语法高亮
想要引用的代码块语法高亮,要引用外部的资源

<link rel="stylesheet" href="http://yandex.st/highlightjs/7.1/styles/default.min.css">
<script src="http://yandex.st/highlightjs/7.1/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

这样就有语法高亮了,其实也可以根据生成后的DOM元素自己加CSS.
例如code { background: #f0f0f0 ;}


结束

以上就是jekyll的简单用法,大家可以看看我创建的博客,很简单的,一看就懂。
源码点这里

也可以看看别人的jekyll模板

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容