0%

写 blog 的 "奇技淫巧"

通过 win+r 来运行 powershell 脚本, 以达到快速创建, 发布博客的目的.

背景

以前要写博客过程如下:

  1. 打开 hexo 文件夹, 在该文件夹中运行 powershell
  2. ‘hexo new blog-title’
  3. 进入 sources 文件夹, 找到并打开刚才创建的 ‘blog-title.md’
  4. 编写内容
  5. 返回 hexo 根目录, 运行 powershell
  6. ‘hexo clean’, ‘hexo g’, ‘set-proxy ‘http:\127.0.0.1:1080’’, ‘firebase deploy’, ‘set-proxy’

整个过程很繁琐, 其中 1-3 和 5-6 可以用脚本实现, 解放劳动力.

思路

编写可以自动创建和发布博客的脚本

通过 win+r 运行这些脚本

实现

创建博客的脚本: nblog.ps1

1
2
3
4
5
6
7
8
cd '博客路径'
$title = read-host 'please enter blog title'
hexo new $title
$path = '博客路径\source\_posts\'+$title
Remove-Item -path $path
cd '博客路径\source\_posts'
$blog = $title + '.md'
Invoke-Item $blog

发布博客的脚本: dblog.ps1

1
2
3
4
5
6
cd '博客路径'
set-proxy 'http:\\127.0.0.1:1080'
hexo clean
hexo g
firebase deploy
set-proxy

创建快捷方式

在 C 盘创建一个 WinR 文件夹, 将该文件夹路径加入 系统变量 的 path 中 ( 在其他地方创建其他文件夹也可以, 只要加入 path 就行 ).

在 WinR 中创建一个 ‘script’ 的文件夹, 并将两个脚本放到这个文件夹中.

复制两个脚本, 粘贴快捷方式到 WinR, 并修改名称, 去掉最后的 ps1

测试

win+r

输入 nblog

输入 dblog

通过在脚本最后加 pause 可以像上图一样不关闭 powershell 窗口

可能遇到的问题

powershell 中文路径乱码

由于我的博客文件夹放在 ‘google 云端硬盘’ 这个文件夹中同步备份, 路径中存在中文, 因此在运行脚本的时候可能会报错.

通过 ‘更改系统区域设置’ 可解决该问题test

set-prox 是什么

由于我的博客是部署在 firebase 的, 需要翻墙后才能访问到, 因此需要给 powershell 设置代理.

具体步骤参考 在 firebase 上部署 hexo 静态博客

如果你的博客是部署在 github 或其他国内能直接访问到的地方, 则可以省略这一步.

无法运行 powershell 脚本

同样参考 在 firebase 上部署 hexo 静态博客

创建博客的脚本: nblog.ps1 中删去文件夹

我的博客图片都放在推特中, 不需要用到这些文件夹, 为了好看把他们删掉了.

然后发现使用 ![]() 语句插入图片时也会自动创建这个文件夹…

一个解决方法是, 用 <img src=’url’/> 标签来代替 ![](), 而且前者写起来也更方便