使用Jekyll+Github Pages搭建博客
为什么选择 Jekyll 和 Github Pages
Jekyll是一个静态网页生成器,使用YAML头信息可以很方便地使用各种布局,内置markdown,新的文章只需加入文件夹即可。Github Pages可以提供免费空间,免费无限流量来给网页当虚拟主机。他们俩配合起来相当默契,而且网上也有很多资料。但是有一点美中不足的是Github Pages是在安全模式下运行的,也就是说它并不支持Jekyll的插件。然而我们可以在本地带着插件生成好网站再放到Github上。虽然听起来不太方便,但是有脚本让我们一步实现。这点我们后面详细说。
准备
- 了解YAML front matter可以让包含头文件的文件自动:
- 拥有部分或全部布局及定义的重复标签
- 变量 (Liquid)
- 如果完全不了解HTML, CSS和JavaScript, 请查看W3School,至少了解基本用法。
- 了解
git
命令,如果不请查看Git tutorial或者其他资料。希望能至少使用命令行一次了解流程,这对以后会有所帮助。
创建仓库
详细步骤在这里。
如果是个人/机构网站,请使用master
分支,如果是项目网站,请使用gh-pages
分支
安装和初始化
步骤在Github help pages有详细解释。
完成安装后,初始化Jekyll在当前文件夹使用基本主题,运行
|
|
如果出现类似directory is not empty
之类的错误,先把文件夹下的内容移动到该文件夹外的临时文件夹内,运行命令后再放回原来的文件即可。
本地运行Jekyll和测试网站
如果您是bundler
使用者,请运行bundle exec jekyll server
或者bundle exec jekyll serve
.
如果不是,请运行jekyll server
或者jekyll serve
。
让命令运行(不要用ctrl+c终止命令),打开网页浏览器,在地址栏输入http://localhost:4000
,就能看见网站啦。
配置
_config.yml文件
_config.yml
文件包含了网站设定,官网上有详细阐述。下面介绍基本用法:
变量 | 用法 |
---|---|
title | 网站名,默认下将是网站在搜索引擎出现的名字 |
在contac-list中显示的邮箱地址, 默认下出现在页脚 | |
description | 网站描述,默认下将出现在页脚 |
baseurl | 网站的子路径, 例如设置成/blog ,完整url将会变成www.pwzxxm./com/blog |
url | 主机名和使用协议,完整url, 例如https://www.pwzxxm.com |
github_username twitter_username | 用于链接Github和Twitter, 默认下出现在页脚 |
markdown | 使用的markdown引擎, e.g. kramdown redcarpet |
highlighter | 语法高亮引擎, e.g. pygments rouge |
permalink | 设置为pretty url将变成这样site_url/time/title 可以自定义例如 /:title/ 查看详情 |
pagination | 每页显示多少篇文章 |
使用自定义域名
官网提供了两个基本版的页数标示,点这里。 然而网上有适配移动端的Timble,非常赞。
多语言支持
请查看Jekyll Multi Language Plugin。
如使用插件,在本地生成网站
简单的说就是另外创建一个“僵尸”仓库,先生成网站,再把_site
文件夹下的文件放到原根目录然后禁止Github再次生成网站。
- 在“僵尸”文件夹下执行
bundle exec jekyll serve build
orjekyll build
。 - 复制当前文件夹下所有文件到原仓库(****.github.io), 除了
README.md
。 - 剪切原仓库的
_site
文件夹下所有文件到原仓库根目录。 touch .nojekyll
禁止Github生成网站。- 提交所有到Github。
这是bash脚本:
|
|
要使用它,复制上面代码到以.sh
结尾的bash脚本文件中,修改路径,给权限,运行即可。
本站代码
如果想使用本站布局或想知道背后的代码,请访问
您可以使用关于本站的任何代码,但禁止转载本站内容。如有需要,请联系我。