博客搭建指南

Posted by 小星星也变奏 on June 1, 2023

博客搭建指南

基础框架

我的方案

  1. Fork 别人的网页

    我用的是黄玄大神的博客模板,github 仓库在这里,进入仓库,点击 Fork。帮助文档:github.com

  2. 重命名仓库

    username.github.io,username 就是你的 github 用户名

  3. 创建 github codespace,用来编辑以及 git
  4. 在环境中安装 Ruby and Bundler
  5. 在终端,Installed dependencies in the Gemfile:
    1
    
    bundle install
    
  6. 修改 jekyll 目录
    1. _config.yml 配置
    2. _posts 文件夹下放文章
    3. img 文件夹下放图片
    4. GemfileGemfile.lock 文件,这两个文件是用来管理整个项目的依赖的。主题就是在 Gemfile 中指定的,可以在 gem 属性中找到
    5. _site 文件夹:一旦 Jekyll 完成转换,就会将生成的页面放在这里(默认)。最好将这个目录放进你的 .gitignore 文件中。
  7. 在本地,Serve the website (localhost:4000 by default):
    1
    2
    
    bundle exec jekyll serve --livereload
    # livereload 相当于前端开发中自动刷新浏览器
    
  8. 提交到 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