文章

如何用Jekyll与Github搭建博客

这条博客写于此站点成功发布之后,由于我对前后端知识的了解比较浅薄,所以本文仅用于记录下自己作为非开发者搭建Jekyll基础环境的过程以及遇到的一些小问题

如何用Jekyll与Github搭建博客

一、安装Ruby环境

Jekyll的官方文档在此处,其关于不同操作系统的配置指引在此处,此篇笔记如无特殊说明,均以Windows端的操作为例

1.1 Windows端

  • Jekyll是由Ruby编写的,所以要安装配置Ruby环境
  • 如果是Windows端的话,从此处下载安装WITH DEVKIT版本进行安装
  • 安装完成后还有一个安装步骤如下(若不小心退出了就使用ridk install即可重新进入),选择选项3,等待安装完成后不需要进行下一次数字的输入,直接退出即可

ruby-msys2.png

  • 打开cmd命令行输入下面的指令检测Ruby是否安装成功
1
ruby -v

1.2 Linux端

  • 如果是Linux端的话,先执行以下命令以使用最新的稳定版本更新系统
1
2
3
apt update -y  
apt upgrade -y
sudo apt update
  • 然后使用以下指令安装Ruby
1
sudo apt-get install ruby-full build-essential zlib1g-dev
  • 安装完成后,我们需要告诉Ruby的gem包管理器将gems放在用户的主文件夹中,我们可以通过修改~/.bashrc文件来达成这个效果,通过以下指令打开~/.bashrc文件
1
nano ~/.bashrc
  • 在该文件末尾添加以下内容
1
2
export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH
  • 保存并关闭文件,然后使用以下命令激活环境变量
1
source ~/.bashrc

二、安装RubyGems

  • RubyGemsRuby的包管理器,下载链接在此处,Linux端无需此步骤
  • 下载zip文件到本地,然后解压到某目录下,在命令行中输入以下指令
1
2
cd your_unzipped_rubygem_dir
ruby setup.rb
  • 等待安装完成后使用下面指令检测
1
gem -v

三、换源以提速

  • 这是针对Windows端的方法
1
gem sources -r https://rubygems.org/ -a https://gems.ruby-china.com/

四、安装Jekyll

  • 在命令行执行此指令以安装
1
gem install jekyll
  • 安装完成后使用下面的指令检测
1
jekyll -v

五、Bundler的使用

  • 也可以使用gem install bundle安装Bundler,这样可以更加方便地管理各模板环境的依赖项
  • 在Windows端为Bundler换源提速
1
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
  • 安装Gemfile中指定的所有依赖的gem
1
bundle install
  • 更新项目中的gem依赖项到最新的兼容版本
1
bundle update
  • 使用以下命令可以在当前项目依赖的上下文环境中执行命令,比如常用的bundle exec jekyll server
1
bundle exec your_command

六、搭建基于Jekyll的博客

  • 在某路径下使用指令创建一个项目,执行完成之后我们就成功创建了一个名为project_nameJekyll项目文件夹
1
jekyll new project_name
  • 我们cd进入到该项目目录下执行jekyll server或者jekyll s命令即可启动本地服务
  • 除了自己创建外,我们还可以使用别人的主题模板来搭建,可以在Jekyll主题官网jekyllthemes.org处寻找合适的模板,社区也有海量由开发者制作的主题可以选择
  • 如果使用模板的话,一定要依据模板作者的要求,配置好环境,一步一步来即可
  • 直到如下图一般成功搭建,我们即可通过其提供的地址在本地实时编辑预览博客了

jekyll-server运行成功.png

  • 在本地调试完毕后,我们即可将模板整合到我们的仓库内并push到Github,然后在对应的仓库设置内创建页面即可,注意大部分主题模板都是以Github Actions的方式创建网页的,而不是像往常一样使用Branch

七、遇到的问题

  • 执行jekyll server命令时如若遇到以下报错,解决方法是执行gem install minima,类似的问题解决方法差不多,把缺失的包下载下来即可
1
Could not find gem 'minima (~> 2.5)' in locally installed gems. (Bundler::GemNotFound)
  • 也有的问题需要通过修改Gemfile文件解决,比如我在使用主题模板搭建博客时就遇到过关于tzinfo包的报错,仅仅通过gem install无法解决报错,需要在Gemfile中添加如下所示的gem "tzinfo-data"才可以解决
1
2
3
4
5
6
7
8
9
10
11
12
# frozen_string_literal: true

source "https://rubygems.org"

gem "jekyll-theme-chirpy", "~> 7.0", ">= 7.0.1"

group :test do
  gem "html-proofer", "~> 5.0"
end

# 若无此项则在Windows端执行jekyll server会产生异常
gem "tzinfo-data"
本文由作者按照 CC BY-NC-SA 4.0 进行授权