--- title: Hugo博客批量更换url结构 abbrlink: b75ec1fe categories: - 工具 tags: - hugo - Blog - markdown date: 2022-03-01 14:33:48 --- 之前修改过hugo的url结构,config.toml内容如下: ```toml [Permalinks] posts = ":slug" ``` 生成的URL类似于: 不过这样随着文件越来越多,发布用的仓库根目录文件夹也越来越多,不好看,再加上域名后加上光秃秃的无意义的字符串也不优雅,所以决定改成这样的域名结构。 ## 修改config.toml 我们需要修改config.toml,改变默认的url结构 ```toml [Permalinks] posts = "/posts/:slug" ``` 这样重新生成博客,url路径就会变成新的了 ## 配置自动跳转 这样配置的话,之前的url连接就会全部404了,对于做了SEO的同学来说就是个灾难,所以我们需要做个跳转 在frontmatter添加aliases: ```yml --- title: "安装和配置samba共享" date: 2022-02-11T11:18:21+08:00 abbrlink: a7c8660c aliases: - /a7c8660c/ typora-root-url: ../../static typora-copy-images-to: ../../static/img categories: ["Operations"] tags: ["samba", "配置记录"] --- ``` 这样每次访问就会自动跳转到 ## 自动替换脚本 写了个脚本可以批量给md文件添加aliases:,脚本和md文件放在一起 ```bash #!/bin/bash IFS=$'\n' for i in $(ls *.md): do slug=$(grep "^slug:" $i | head -1 | sed "s/slug://g" | sed "s/ //g") echo $i echo $slug sed -i "5a aliases:\n - /$slug/" $i done ```