2023年之前的博客系统是基于wordpress建立的,而Hexo作为另一个广为人知的博客系统(参考:从零开始搭建个人博客),之前研究的不多。
最近倒是整了点歪门邪道,搞出来了一个脚本出来。这个脚本主要面向懒人和Hexo的小白用户,帮助实现Hexo博客系统本地仓库的一键构建,与GitHub deploy相关参数的配置。使用方法也很简单,将代码中标为橙色的几个shell变量改成自己的变量,然后chmod +x
,之后直接在命令行窗口中运行就行。
我们假设读者已经对命令行操作有所了解,并已经在电脑上安装了nodejs
和npm
。此外,还需要准备下面的东西:一个用于存放博客源代码的空文件夹,一个已经注册好的GitHub账户,以及一个GitHub Pages存储库。(理论上其他代码托管平台例如Gitee,GitLab的Pages服务也可以,但是可能需要个人提前踩坑,因此无脑选GitHub总还是好的)
然后,将下面这段代码复制下来,粘贴到一个文本文件中,并命名为init_blog.sh
。
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #!/bin/bash
BLOG_NAME="Blog_name"
REPO="https://github.com/username/username.github.io.git"
BRANCH="main"
EMAIL="user@institute.com"
USERNAME="username"
TOKEN="token"
mkdir $BLOG_NAME cd $BLOG_NAME hexo init --no-clone
hexo new First_Page echo "Hello World\! This is my First blog\!" >> source/_posts/First-Page.md
npm install hexo-theme-next
sed -e 's/theme: landscape/theme: next/' _config.yml > _config.yml.new mv _config.yml.new _config.yml
sed -e "s/ type: ''/ type: git/" _config.yml > _config.yml.new mv _config.yml.new _config.yml
echo " repo: ${REPO}" >> _config.yml echo " branch: ${BRANCH}" >> _config.yml echo " token: ${TOKEN}" >> _config.yml echo " name: ${USERNAME}" >> _config.yml echo " email: ${EMAIL}" >> _config.yml
npm install --save hexo-deployer-git
git init git config user.email ${EMAIL} git config user.name ${USERNAME} git remote add origin ${REPO}
echo echo "博客系统初始化完成!执行下列指令发布第一篇博客吧~" echo "cd ${BLOG_NAME};hexo deploy" echo "执行hexo --help查看更多帮助" echo echo "如果提示没有配置远程rsa密钥,则使用下列方法获得密钥后,复制公钥内容到github个人设置中的SSH and GPG keys中的 New SSH key中:" echo "ssh-keygen -t rsa -C ${EMAIL} #一路回车就行,不用管提示" echo "cat ~/.ssh/id_rsa.pub #这个就是公钥内容" echo echo "如果遇到其他错误,例如无法合并远程分支,或者其他莫名其妙的报错,可以根据报错内容,在互联网上搜索解决方案,或求助于其他人" echo "谢谢您的使用,再会~"
|
之后按照自己的实际情况,修改上面第一部分的几个shell变量的内容,保存后使用chmod +x
授予可执行权限,之后执行即可。
这样我们就得到了一个NexT主题的Hexo博客系统了~
至于之后的更高级配置,可以参考 个人博客第8篇——优化主题 这篇文章,以及有空的话也可以自己折腾呀~
最终效果(这个是我用自己的GitHub Page演示的,但目前的博客还是用现在这个。或许未来某天,我也会选择换到Hexo,谁知道呢?):
以上。