0%

用 Hexo-Console-Rename 修改文件名

我们通常使用hexo new [layout] "title" 来新建博文,但常常会在创建博文后对又对原标题 title 不满意,如果仅仅修改内文标题,就会造成 source/_post(假设layout= post) 下的文件名 oldFileName.md 和内文标题 title不一致的情况。

手工的方法是将oldFilename 修改为和 front-matter 中的 title 一致。

如果站点配置文件 _config.yml 中post_asset_folder: true,则需要修改 oldFileName.md 对应的 source/oldFileName 文件夹的名称。

如果 new_post_name: :year_:month_:date_:title.md ,那么修改时更容易出错。

当然,另一个解决办法是:新建新标题博文,将老博文内容复制过来,删除老博文。

但总之而言,hexo 改名都不容易。

好在有插件可以解决这个问题, hexo-console-rename ,它可以根据 md 文件的 front-matter 中的 title 修改文件名,支持单个文件改名、批量文件改名等操作,我们仅需要修改 title 属性为我们想要的标题,再执行 hexo rename source/_post/oldFileName.md。

具体用法参见 github 即可,不多废话。

这里要说下几个遇到的问题。

1.npm 安装后无法使用。
原因是 npm 安装时没有把 lib 放入 node_module/hexo-console-rename 文件夹,解决办法是新建 lib 文件夹,从 github 下载 lib 中的所有 .js 文件,手工拷入即可。

2.利用 hexo rename source/**/*.md 对所有源文件批量改名后,会导致 source/categories/index.md , source/tags/index.md, source/404/index.md 这些 page layout 的 md 文件名被修改,造成这些页面无法访问,这是个 bug 。 解决办法:运行批量改名后,将这些 md 文件的名称改回来。

-------------本文结束,感谢您的阅读-------------