Jekyll建站

发布于 2020 年 09 月 24 日 | 更新于 2021 年 09 月 15 日

Ruby

Ruby 是一种开源的面向对象程序设计的服务器端脚本语言 Ruby 教程

Gem

RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pipRuby RubyGems

本地Jekyll环境搭建

目的

为实现Jekyll博客的本地预览

安装Jekyll

运行已有项目

  1. 切换到项目根目录(即Gemfile所在目录),运行cli.bat(实际分为以下两步)

    1. 安装依赖bundle install,会根据Gemfile安装依赖的gem包,并生成Gemfile.lock文件

    2. 启动服务bundle exec jekyll serve --watch --host=127.0.0.1 --port=8899(8899可以更改为其他端口号)或直接bundle exec jekyll serve

    If you’re not using a Gemfile you can just run jekyll serve

    from https://www.jekyll.com.cn/docs/ruby-101/

    You can now prefix all jekyll commands listed in this tutorial with bundle exec to make sure you use the jekyll version defined in your Gemfile.

    https://www.jekyll.com.cn/docs/step-by-step/01-setup/

  2. 浏览器打开<127.0.0.1:8899>

命令介绍

  1. jekyll s --host=`hostname -I` --port=4001:监听本机ip的4001端口(WSL中很好用
  2. jekyll new <myblog>会根据默认模板创建一个站点,里面包含index,Gemfile等一些文件
  3. bundle exec jekyll serve --drafts可以显示位于_drafts下的草稿(若未设定日期,则使用文件修改时间作为日期)

可能出现的问题

文件说明

参考资料

Jekyll主题的github地址

菜鸟教程 Ruby安装-Windows

Jekyll官方文档

YAML Front Matter

任何包含YAML front matter块的文件都将由Jekyll作为特殊文件进行处理。Front Matter必须是文件中的第一个事物,并且必须采用在三条虚线之间设置的有效YAML的形式。

Jekyll使用教程笔记 三

YAML 入门教程

功能扩展

GitHub Pages默认运行在safe模式,仅支持部分gem包

利用GitHub Action,部署包含任意gem包的Jekyll站点:jekyll-deploy-action

语法高亮

使用prismjs实现Jekyll代码语法高亮并显示行号

我的prism配置

文章目录

scrollnav.js

Implement Scroll Spy in Jekyll without Bootstrap

Emoji支持

Jemoji

Jekyll + Jemoji : How to config emoji size?

jekyll-spaceship

文章更新日期

由于Git不会保留文件的修改时间(?),pull下来的文件修改时间会变成当前时间,目前找到2种获取修改时间的方案(大概):

从 Git 提交历史中「恢复」文件修改时间