这段时间,我发现Hexo博客还是依赖在电脑进行编辑、生成和发布。于是寻思着能否在手机上也能够使用Hexo生成博客,这样在外也可以使用手机来发布博客。
核心思路是在手机上模拟一个 Linux 环境,然后在其上安装运行 Hexo 所需的 Node.js 和 Git。
这一步非常简单,直接通过Google Play商店安装Termux即可,非常简单。如果没有Google Play商店的话,可以去手机应用商店找找,实在不行就去酷安下载吧。
在安装之前,我们需要对Termux进行配置,使其能够访问手机存储。
使用命令termux-setup-storage,这个命令会向 Android 系统请求存储权限,并在你的 Termux 主目录($HOME)下创建一个 storage 文件夹,里面包含指向手机各个公共目录的符号链接。运行后手机会弹出授权窗口,点击“允许”即可。
在 Termux 中执行 pkg install nodejs 来安装 Node.js。使用 npm install hexo-cli -g 全局安装 Hexo 命令行工具。
到这一步以后,就可以将自己电脑上的Hexo博客复制道手机存储当中,然后使用hexo运行了。
在 Termux 中执行 pkg install git ,安装后可以运行 git --version 验证。
先设置好Git:
1 | cd ~ |
生成密钥:在 Termux 中运行 ssh-keygen -t rsa -C "你的邮箱",一路回车即可。
查看公钥:运行 cat ~/.ssh/id_rsa.pub,复制输出的全部内容。
添加到 GitHub:在 GitHub 的 Settings → SSH and GPG keys 中,点击 “New SSH key”,把刚才复制的内容粘贴进去。
配置 Hexo 使用 SSH 地址:在你的 _config.yml 中,把 deploy.repo 的地址从 HTTPS 格式(https://github.com/...)改为 SSH 格式(git@github.com:用户名/仓库名.git)。
验证连接,在 Termux 中运行:ssh -T git@github.com这样配置后,hexo d 推送时就不会再询问密码了。
1 | fatal: detected dubious ownership in repository at 'xxx' |
Git 从 2.35.2 版本开始,会检查仓库目录的“所有者”是否和当前运行 Git 的用户一致。如果发现不一致,就会为了安全拒绝操作,并提示你添加信任目录。Android 的 /storage/emulated/0/ 等存储目录,其底层的所有者被系统固定为 media_rw 用户组,并非你的 Termux 用户。因此,Git 会认为这个仓库“来源不明”,从而报错。
一劳永逸的解决办法:可以全局关闭这项检查。在 Termux 中执行:git config --global --add safe.directory '*',这会让 Git 信任所有目录。考虑到 Android 本质上是个单用户系统,这样做是安全且方便的。
到此,就可以使用我们的Hexo博客,就如同在电脑上一样:
1 | hexo clean |