老早就听闻Hexo + Github Action这操作,源文件备份,自动化构建,省时省力,真是羡煞我也,但是一直对Git操作和Github Action的写法不熟悉,弄不来。现在总算有时间学一遍Git的操作了,学完刚好来实践一番,顺便把过程记录一下。

阅读全文 »

Git是一个分布式版本控制系统,可以记录仓库中所有文件的改动,每一个提交的改动成为一个版本(commit),可以据此进行版本的切换(通过移动HEAD指向不同的commit实现)等操作。

阅读全文 »

GNU Privacy GuardGnuPGGPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。其主要特点是非对称加密,即公钥加密,私钥解密;其主要应用于不安全的环境下加密通讯。

阅读全文 »

初次接触Linux的时候,安装的是Manjaro(Deepin Desktop),一款基于Arch的桌面发行版,Arch采取的是滚动更新。后来滚动更新完后,时不时出现问题,有时开不了机。大部分都是依赖关系或者包冲突导致,我当时的做法是,先用一个U盘启动Manjaro LiveCD,然后执行chroot切换有问题的Manjaro系统分区作为/,最后升级/更新一次系统或利用timeshift进行系统还原。

阅读全文 »

Hexo迁移到Linux

首先,要在Github上设置有本地Linux的SSH公钥。具体设置过程见Github官方教程,大体操作如下,先生成SSH密钥对

1
2
3
$ ssh-keygen -t ed25519 -C "[email protected]"
$ eval "$(ssh-agent -s)"
> ssh-add ~/.ssh/id_ed25519

并将生成的公钥复制保存到Github的SSH密钥设置里

1
2
3
4
5
$ sudo apt-get install xclip
# Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`)

$ xclip -selection clipboard < ~/.ssh/id_ed25519.pub
# Copies the contents of the id_ed25519.pub file to your clipboard

其次,还要在Linux上安装nodejs, npm和hexo-cli。用apt默认安装的nodejs版本较低,并不能满足Hexo-cli的依赖包,所以要添加额外源进行安装(注意,要安装12.x的,14.x部署到github会报错)

1
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

安装完nodejs后还要安装npm和hexo-cli

1
2
sudo apt install npm -y
sudo npm install hexo-cli

最后,将Hexo文件夹复制(或移动)到Linux操作系统可访问的文件夹下,并在该文件夹下执行如下命令即可

1
npm install

主题升级/更换

  1. 下载最新的主题:
1
git clone https://github.com/next-theme/hexo-theme-next
  1. 修改主题文件夹下的配置文件:
    利用文本比对工具,比对新旧主题文件夹下的_config.yml配置文件,并按需修改。
    复制旧主题文件夹的source/images下的图像到新主题对应的文件夹下。
    修改新主题文件夹的languages下的翻译文件zh-CN.yml: 添加对应的中文翻译。

  2. 修改Hexo的_config.yml配置文件,切换主题为新下载的主题

    1
    theme: next8.0.1
  3. 本地调试

    1
    hexo g && hexo s

DIY主题布局与样式

主题的布局结构文件放在layout文件夹下;而主题的样式文件放在source/css下,其中的_variables里存放着各中css样式的参数设定,主要修改这里即可。

一般要配合开发者调试工具进行样式修改,可先定位css的类名,再在主题文件夹下查找目标类名字符串

1
grep -rn "class_name" *

参考:

Generating a new SSH key and adding it to the ssh-agent

Hexo版本升级和Next主题升级之坑

记一次建站过程。宝塔建站是不可能的,lnmp一键脚本又得编译,小机器顶不住哇,所以选择了手动安装Nginx、MariaDB以及PHP的二进制文件来建站,记录如下。

阅读全文 »

screen是一个非常实用的工具,提供从单个 SSH 会话(或本地会话)中使用多个 shell 窗口(会话)的能力。当会话被分离或网络中断时,screen 各会话中启动的进程仍将运行,而且你可以随时重新连接到 某个指定screen 会话查看情况。

阅读全文 »