我们通常使用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 文件的名称改回来。