初始化Github Pages
- 创建repository=username.github.io,username必须是github的username,不然后续可能会返回不到这个url
- 给这个repository创建默认的index.html
1
2
3
4
5
6
7
8
9// clone git clone https://github.com/listen2code/listen2code.github.io.git // create index.html cd listen2code.github.io echo "Hello World" > index.html // push git add --all git commit -m "Initial commit" git push -u origin master
- 访问https://listen2code.github.io/
以上步骤参考Github Pages搭建,站点初步已经搭建好了,接下来就要改造index.html,使其可以展示首页,分类等常见博客页面组件,这里需要使用Github Pages官方推荐Jekyll静态网页生成工具。
Step by Step to Jekyll
环境搭建:由于Jekyll是用Ruby写的,所以先搭建Ruby环境(版本>2.4.0)
1 |
|
mac系统默认的ruby可能和Homebrew安装的ruby冲突,需要进行以下配置,使默认找到的ruby为Homebrew下载的最新版本。
1 |
|
- 安装jekyll:
1 |
|
打开/Users/xx/Gemfile文件,将”gem jekyll”添加在末尾
1 |
|
1 |
|
新建首页
新建个目录/User/xx/root,创建index.html
1 |
|
1 |
|
Liquid语法
在html头部定义变量my_content,并可以在”{{}}”中使用Liquid表达式
1 |
|
_layouts目录:用于存放布局模板文件
新建”/User/xx/root/_layouts/default.html”:
1 |
|
修改index.html,设置layout=default,相当于将index的文本内容include到default.html的”{{content}}”标签内,可以通过在_layout目录下定义布局模板,供其他页面引用,实现布局样式的统一:
1 |
|
_includes目录:用于存放可以复用的组件
新建”/User/xx/root/_includes/navigation.html”,设置导航条目的link
1 |
|
修改default.html,通过include表达式将导航栏添加在布局模板中
1 |
|
_data目录:存放数据
新建”/User/xx/root/_data/navigation.yml”,Jekyll默认将生成可以直接访问的site.data.navigation数据集合
1 |
|
修改navigation.html,遍历site.data.navigation生成a标签
1 |
|
_posts目录:存放blog文件的目录111
新建”/User/xx/root/_posts/2019-1-1-blog1.html”,Jekyll将会在/User/xx/root/_site/2019/01/01目录下生成blog1.html
1 |
|
新建”/User/xx/root/_layouts/post.html”,专门用于显示blog的布局模板
1 |
|
新建”/User/xx/root/blog_list.html”,用于展示_posts目录下的blog列表
1 |
|
发布
执行”bundler exec”后自动生成_site目录,将_site目录下的内容拷贝到github的username.github.io目录下即完成发布
1 |
|
jekyllthemes快速搭建
可以在jekyllthemes,选择一个现成的jekyllthemes完成快速搭建
- 选择themes模板NexT,并下载zip
- 解压后获得jekyll-theme-next-master目录
- cd jekyll-theme-next-master,执行”bundle”下载相关gem依赖
- 根据使用教程修改jekyll-theme-next-master/_config.yml完成页面基础设置,如:页面组件布局,主题,头像,分类目录等
- 将blog文件放置在_posts目录下
- cd jekyll-theme-next-master,执行”bundle exec jekyll serve –trace”,生成_site目录
- 将_site目录下的内容拷贝到listen2code.github.io的localpath,并同步到github
- 访问https://listen2code.github.io