layout: post
title: "第一篇文章-jekyll的配置"
date: 2021-04-04 20:47:14 +0800
categories: envs
tags: [jekyll, envs, ruby, web, blog]
记录心得:
第一次应用jekyll搭建博客,记录下之间的过程。
- 为什么应用jekyll
- 怎么的搭建过程
- 怎么保护和更新
- 遇到的问题
1. 为什么应用jekyll
之前应用过hexo
,具体的地址是在实验室的主页上:xialab
长处是:
- 容易更改主题
- 中文反对
- 应用nodejs,容易部署。
毛病是:
- 须要本人生成页面,只能把动态页面推送到github仓库,而src源码文件须要额定备份
因为这个毛病,我抉择了jekyll
然而jekyll毛病也很显著,就是ruby这个环境真的很麻烦,目前也没怎么用过,冀望只是初期配置麻烦一点吧。
2. 搭建过程
我在云服务器和本地PC设立了两个仓库
- 云服务器在腾讯云,CentOS
- 本地PC是Windows,基于WSL搭建环境
2.1 CentOS搭建
通过yum装置ruby (此条不行),因为版本比拟老,是2.0版本,jekyll须要2.4
sudo yum install ruby
遂通过源码装置
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.gztar -zxvf ruby-2.7.1.tar.gzcd ruby-2.7.1mkdir -p /usr/local/ruby./configure --prefix=/usr/local/rubymake && make install
批改profile,增加到全局变量
nano /etc/profile
将如下内容增加到开端
export PATH="/usr/local/ruby/bin:$PATH"
而后按Ctrl+X
保留,而后激活
source /etc/profile
2.1.1 装置及配置jekyll
应用gem间接装置即可
gem install jekyll
而后查看一下版本,这里我是3.7
jekyll -v
生成页面文件(如果是新建博客站点的话)
jekyll new myblog
2.1.2 批改_config.yml
目前我的配置文件如下,当前还须要批改
# 站点文件门路#source: .#destination: ./_siteencoding: utf-8# 指标网站门路设置permalink: :year/:month/:title.htmlmarkdown: Kramdown# 时区timezone: Asia/Shanghai# 设置导航目录nav:- name: Home link: /- name: About link: /about.html
2.1.3 批改Gemfile
这个文件,次要是管着jekyll的构建环境
我参照谷歌来的教程,间接应用了如下内容
source 'https://mirrors.cloud.tencent.com/rubygems/'require 'json'require 'open-uri'versions = JSON.parse(open('https://pages.github.com/versions.json').read)gem 'github-pages', versions['github-pages']
这里的source应用的是腾讯云的源,因为官网源太慢了。此外,还有一个淘宝源,不过如同曾经死了,连不上。
应用bundle能够间接装置Gemfile要求的环境
bundle install
这样,就和github的构建环境统一了。
2.1.4 运行
间接通过bundle运行
bundle exec jekyll serve
默认是 http://127.0.0.1:4000
2.2 Windows搭建
不要应用windows下的exe文件来装置,比方rubyinstall
,总是因为msys2
,呈现一堆问题,我放弃了,而后间接应用的WSL下的Ubuntu 18搭建实现。
首先更新一下apt
sudo apt update
而后装置ruby-dev
,这个外面就蕴含了gem
,我的源外面是ruby2.5,也够用了。
sudo apt install ruby-dev
而后装置bundle和jekyll
gem install jekyllgem install bundle
而后通过bundle运行即可(为什么要bundle,当成python中的conda治理就行了)
bundle exec jekyll serve
3. 怎么保护和更新
我这里采纳的是github + webhook的办法
通过在本地批改,而后上传到github,而后github触发webhook,主动同步到腾讯云的主机上。
3.1 构建webhook
webhook是什么,能够自行谷歌。
因为云主机是应用的宝塔面板,所以比拟不便,在面板软件核心装置webhook管理器即可
参考的是宝塔论坛
在运行脚本内增加如下内容:
#!/bin/bashecho ""#输入以后工夫date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"echo "Start"#判断宝塔WebHook参数是否存在if [ ! -n "$1" ];then echo "param参数谬误" echo "End" exitfi#git我的项目门路gitPath="/www/wwwroot/$1"#git 网址gitHttp="git@github:com/$1.git"echo "Web站点门路:$gitPath"#判断我的项目门路是否存在if [ -d "$gitPath" ]; then echo "目录存在" cd $gitPath #判断是否存在git目录 if [ ! -d ".git" ]; then echo "在该目录下克隆 git" git clone $gitHttp gittemp mv gittemp/.git . rm -rf gittemp fi #拉取最新的我的项目文件 git reset --hard origin/main git pull #设置目录权限 chown -R www:www $gitPath source /etc/profile bundle exec jekyll build echo "End" exitelse echo "该我的项目门路不存在" echo "End" exitfi
须要留神的坑: 肯定要留神缩进,shell语言对缩进比拟严,而后就是判断语句中的[]这个括号,其中的内容和括号之间要有空格,不然不会进行判断。
而后会生成如下的url:
http://[ipaddress]:[port]/hook?access_key=DzsH8SQdasdQTBOllSy3477asdasQwJN8XP9VWIt2kajsdkj¶m=xxx.github.io
- ipaddress: ip地址
- port:端口
- access_key:生成的接入码
- param: 设定的参数,倡议间接设置为你的
github page
的网址
而后来到Github
的我的项目页面,顺次'Setting'>'Webhooks'>'Add webhook'
将url填入,而后在选项“Which events would you like to trigger this webhook?”中抉择“Just the push event.
”
那么当前当push到github时,就能主动在本人的服务器刷新网站内容了。
4. 遇到的问题
- 图片还不晓得怎么治理比拟好
- 文章的分类
暂且先上线,后续再管