博客搭建指南
基础框架
我的方案
- Fork 别人的网页
我用的是黄玄大神的博客模板,github 仓库在这里,进入仓库,点击 Fork。帮助文档:github.com
- 重命名仓库
username.github.io,
username
就是你的 github 用户名 - 创建 github codespace,用来编辑以及 git
- 在环境中安装 Ruby and Bundler
- 在终端,Installed dependencies in the Gemfile:
1
bundle install
- 修改 jekyll 目录
_config.yml
配置_posts
文件夹下放文章img
文件夹下放图片Gemfile
和Gemfile.lock
文件,这两个文件是用来管理整个项目的依赖的。主题就是在Gemfile
中指定的,可以在gem
属性中找到_site
文件夹:一旦 Jekyll 完成转换,就会将生成的页面放在这里(默认)。最好将这个目录放进你的.gitignore
文件中。
- 在本地,Serve the website (
localhost:4000
by default):1 2
bundle exec jekyll serve --livereload # livereload 相当于前端开发中自动刷新浏览器
- 提交到 github 上,需要等待几分钟才会更新。
配置
- Jekyll 有这非常灵活和强大的配置功能,既可以在网站根目录下的 _config.yml 文件中进行配置,也可以作为命令行参数来配置。
- yml 文件使用了 YAML 语法,如果想更好的理解 Jekyll 就需要了解一下 YAML 语法的内容,这里引用一下阮一峰老师写的一篇 YAML 语法教程
- 一般来说_config.yml 的默认内容不需要太大改动,只需要往里面添加你需要的自定义属性,然后你就可以在页面模板中使用 site.属性名来取得对应的值,例如 site.title 的值就是 Your awesome title。
写博客
- _posts 目录就是专门存放博客文件的,文件格式很重要,必须要符合:YEAR-MONTH-DAY-title.MARKUP。可以在文章中自己定制,但是数据和标记语言都是根据文件名来确定的。永久链接
- 可以使用 markdown 或者 html 格式的文件来写博客。但是不管是哪种格式的文件都需要包含 YAML 头信息, Jekyll 才会把它当做一个特殊的文件来处理。
- 在_posts 目录下新建一个 markdown 文件,头信息必须在文件的开始部分,并且需要按照 YAML 的格式写在两行三虚线之间。
1
2
3
4
5
6
7
8
9
---
layout: post
title: "Welcome to Jekyll!"date: 2018-03-31 02:36:26 +0800
tags:
- example
---
...
这里就可以使用markdown格式或其他格式写博客内容啦
变量名称 | 描述 |
---|---|
layout | 如果设置的话,会指定使用该模板文件。指定模板文件时候不需要文件扩展名。模板文件必须放在 _layouts 目录下。 |
permalink | 如果你需要让你发布的博客的 URL 地址不同于默认值 /year/month/day/title.html,那你就设置这个变量,然后变量值就会作为最终的 URL 地址。 |
published | 如果你不想在站点生成后展示某篇特定的博文,那么就设置(该博文的)该变量为 false。 |
date | 这里的日期会覆盖文章名字中的日期。这样就可以用来保障文章排序的正确。日期的具体格式为 YYYY-MM-DD HH:MM:SS +/-TTTT;时,分,秒和时区都是可选的。 |
category、categories | 除过将博客文章放在某个文件夹下面外,你还可以指定博客的一个或者多个分类属性。这样当你的站点生成后,这些文章就可以根据这些分类来阅读。categories 可以通过 YAML list,或者以逗号隔开的字符串指定。 |
tags | 类似分类 categories,一篇文章也可以给它增加一个或者多个标签。同样,tags 可以通过 YAML 列表或者以逗号隔开的字符串指定。 |
- 除了这些预定义的变量,也可以自定义变量,然后在布局文件中 “/{/{ page.自定义变量 /}/}” 来引用
- 设置 date 的时候,如果加上了具体时间(小时:分钟:秒),必须在后面写上
+0800
(时区偏移),否则将不会生成该文章页面 - YAML 语法是不允许用
tab
来缩进,只能用空格。
飞书转 md(存在一些问题不建议使用)
- 软件 ——
feishu2md
- 无需添加到
PATH
,直接解压后在当前文件夹下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PS C:\tools\feishu2md-v1.4.0-windows-amd64> ./feishu2md config --appId cli_a4f2f1f536ff500d --appSecret 18KSPuM1V8qYnTzPhcAlChPEd8ZEEO0L
{
"feishu": {
"app_id": "cli_a4f2f1f536ff500d",
"app_secret": "18KSPuM1V8qYnTzPhcAlChPEd8ZEEO0L"
},
"output": {
"image_dir": "static",
"title_as_filename": false
}
}
PS C:\tools\feishu2md-v1.4.0-windows-amd64> ./feishu2md config
{
"feishu": {
"app_id": "cli_a4f2f1f536ff500d",
"app_secret": "18KSPuM1V8qYnTzPhcAlChPEd8ZEEO0L"
},
"output": {
"image_dir": "static",
"title_as_filename": false
}
}
PS C:\tools\feishu2md-v1.4.0-windows-amd64> ./feishu2md https://b0d7hoori7.feishu.cn/docx/PuNLd7tNwoAufaxNkUNcjfVInxb
Captured document token: PuNLd7tNwoAufaxNkUNcjfVInxb
Downloaded markdown file to PuNLd7tNwoAufaxNkUNcjfVInxb.md