配置记录
由于原来电脑故障,HEXO 的博客源文件丢失,导致博客断更很久,并且无法恢复。 经调研,jekyll 博客生成更加便捷,且能直接以源文件方式发布,非常符合我想法 决定研究一下,使用 jekyll 重新重拾博客,记录工作和生活
过程记录
jekyll 首页有安装体验命令,不料第一步就直接卡死了。
1
2
3
4
5
6
7
gem install jekyll bundler
jekyll new my-awesome-site
cd my-awesome-site
bundle install
bundle exec jekyll serve
# => 打开浏览器 http://localhost:4000
报错如下:意思是没有 gems 文件夹的写入权限
1
2
3
➜ ~ gem install jekyll bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
随后查了一下 RubyGems 官网 发现版本已经差了很多,决定升级版本先。 按官网升级操作后依旧报上面错误。就想到同时同时升级一下 Ruby 本身,遂去 Ruby 官网 查看,发现最新版 3.1.2, 与我当前版本也差很多。我当前版本如下
1
2
➜ ~ ruby -v
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]
官方介绍要使用三方工具更新 ruby, 因为系统原生工具预装版本都比较老,遂使用 homebrew 来安装 Ruby。命令如下
1
2
3
4
➜ ~ brew install ruby
Updating Homebrew...
// 这个命令之后就直接开始了 Homebrew 自己的更新。 我这些软件看来都是老古董版本了 😭,登录挺长时间算是更新完了
Ruby 安装完成后有如下提示,核心意思是 ruby 本身在系统中预置了,为了不和系统预置版本冲突放到单独的位置,使用此版本需要自己配置环境变量,直接按提示配置即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/3.0.0/bin
You may want to add this to your PATH.
ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have ruby first in your PATH, run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
For compilers to find ruby you may need to set:
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
For pkg-config to find ruby you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"
完了,pod 不能用了
经过上边一波操作,jekyll 是安装了,但是影响到了 cocoapods 的使用。报下面的错误
1
2
3
4
➜ ~ pod -v
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': can't find gem cocoapods (>= 0.a) with executable pod (Gem::GemNotFoundException)
from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
from /usr/local/bin/pod:23:in `<main>'
看样子系统的 ruby 文件还是 2.6.0 ,本来尝试修改重装一下 cocoapods, 发现问题并不能解决
1
2
3
➜ sudo gem update --system
➜ sudo gem install cocoapods
➜ pod -v // 还是一样的错误
所以想到删除系统的 Ruby.framework 然后彻底重装。发现由于系统文件 /System/Library/Frameworks/Ruby.framework
的保护机制,无法删除,重新想方法,尝试用 rvm 来管理 ruby 版本. 参考官网其安装命令如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
➜ \curl -sSL https://get.rvm.io | bash -s stable
Downloading https://bitbucket.org/mpapis/rvm/get/1.29.12.tar.gz
Downloading https://bitbucket.org/mpapis/rvm/downloads/1.29.12.tar.gz.asc
Found PGP signature at: 'https://bitbucket.org/mpapis/rvm/downloads/1.29.12.tar.gz.asc',
but no GPG software exists to validate it, skipping.
Installing RVM to /Users/quxiaoyou/.rvm/
Adding rvm PATH line to /Users/quxiaoyou/.profile /Users/quxiaoyou/.mkshrc /Users/quxiaoyou/.bashrc /Users/quxiaoyou/.zshrc.
Adding rvm loading line to /Users/quxiaoyou/.profile /Users/quxiaoyou/.bash_profile /Users/quxiaoyou/.zlogin.
Installation of RVM in /Users/quxiaoyou/.rvm/ is almost complete:
* To start using RVM you need to run `source /Users/quxiaoyou/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
Thanks for installing RVM 🙏
Please consider donating to our open collective to help us maintain RVM.
👉 Donate: https://opencollective.com/rvm/donate
安装好 rvm 后,需要设置 ruby 版本。 经验证,cocoapods 只能在默认 ruby 版本下安装并使用
1
2
3
4
5
6
7
8
9
rvm automount // 挂载所有的 ruby 版本,包含系统和自己下载的
rvm list // 查看当前所有 ruby 版本
rvm list known // 查看远端所有的 ruby 版本
rvm install {远端版本的版本号} // 安装远端 ruby 版本, 卸载命令 remove
rvm use ext-ruby-2.6.8 --default // 切换某版本为默认版本
核心来了,cocoapods 不能用是因为 pod 和 ruby 版本不对应,经实践,只有将系统 ruby 版本设置为默认版本并卸载和重装 cocoapods 才行
1
2
3
4
rvm use ext-ruby-2.6.8 --default
sudo gem uninstall cocoapods
gem install cocoapods
pod -v // OK,已经可以正常使用 pod 命令了
安装主题
我选择的主题 chirpy, 我采用的是直接 clone 源码,本地安装的方式,因为我原来的博客暂时不想直接删除,并且主题满足我的需要。
- git clone https://github.com/cotes2020/jekyll-theme-chirpy.git
- cd jekyll-theme-chirpy
- bundle
- bundle exec jekyll s
好了,可以去 http://127.0.0.1:4000/
看效果了
配置和发布
配置
配置主题的一些用户/头像/社交媒体链接等,可以直接在网站目录下找到 _config.yml
打开并配置即可,我只配置了下面几项,其余尽量保持原样
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
28
29
30
31
32
33
lang: zh-CN
title: xiaoyouPrince # the main title
tagline: 芝兰生于空谷,不以无人而不芳 # it will display as the sub-title
description: >- # used by seo meta and the atom feed
这里是晓友(xiaoyouPrince) 的博客,用来记录一些技术和想法,主要专注于 Swift 和 iOS 开发.
# fill in the protocol & hostname for your site, e.g., 'https://username.github.io'
url: 'https://xiaoyouPrince.github.io'
github:
username: xiaoyouPrince # change to your github username
twitter:
username: xiaoyouprince # change to your twitter username
social:
# Change to your full name.
# It will be displayed as the default author of the posts and the copyright owner in the Footer
name: xiaoyouPrince
email: xiaoyouPrince@gmail.com # change to your email address
links:
# The first element serves as the copyright owner's link
- https://twitter.com/xiaoyouprince # change to your twitter homepage
- https://github.com/xiaoyouPrince # change to your github homepage
# Uncomment below to add more social links
# - https://www.facebook.com/username
# - https://www.linkedin.com/in/username
# the avatar on sidebar, support local or CORS resources
avatar: ./assets/img/favicons/favicon.ico
发布
编辑文件,命名规范 YYYY-MM-DD-TITLE.EXTENSION
并放到 _post 文件夹中。
编辑文件头部如下
1
2
3
4
5
6
7
---
title: TITLE
date: YYYY-MM-DD HH:MM:SS +/-TTTT
categories: [TOP_CATEGORIE, SUB_CATEGORIE]
tags: [TAG] # TAG names should always be lowercase
layout: post # 这个在本主题中已经默认,可以不用写,但是最好还是写上,万一以后换主题呢
---
编辑好了,就在终端,在网站根目录下执行启动本地服务的命令
1
bundle exec jekyll s
参考
https://github.com/cotes2020/jekyll-theme-chirpy
https://chirpy.cotes.page/posts/write-a-new-post/