编程技术分享平台

网站首页 > 技术教程 正文

hugo slug标签使用教程(标签gogo)

xnh888 2024-10-27 16:17:48 技术教程 40 ℃ 0 评论

hugo slug标签使用

一、前因

博客上面的URL是中文(我用的dream主题),复制分享给别人就成一串乱码了,不免让人瑟瑟发抖,避之不及。

那就给它打扮一番,脱下类病毒外套。

二、教程

添加slug属性

hugo提供了slug属性为每篇博客添加自定义标题。

用法在头部添加。

slug 后面就是你要在网页显示的标题,具体取啥名见仁见智。

现在你需要为每个文章都添加,开始干吧。

修改默认生成

hugo每次新建文章都会按照archetypes/posts.md的模板来新建。

因此,不想每次新建文章都手打slug,可以在archetypes/posts.md中新增slug标签。

建议不要用主题文件夹里面的,拷贝出来放在自己项目中,实现无侵入修改。

匹配原有地址

加了slag后地址已然变成新的了,可若原先有人钟情你的内容将网址保存或者收藏了呢?

打开后没有内容,去到404页面,岂不是人在家中坐,骂从天空来。

因此需要将原有URL跳转到现有URL。

hugo 提供了aliases属性实现页面重定向。

用法也是在头部添加aliases属性

测试一下,访问老页面就会跳转到新页面了。

三、优化

可能你也以为aliases就是把title复制进来就可以了。

年轻,还是太年轻,标题的空格hugo默认给转成“-”了。

老老实实去浏览器一个一个页面点击复制标题吧。

文章多的,独独框选中文可太费眼费神费力了,高手选择地址栏ctrl+a | ctrl+c ,最后用 vscode 全局替换掉域名。

可是复制出来的中文是乱码,贴个乱码在aliases中,重定向压根不甩你。

最后为了一个转码,学了一天代码,颇有捡到块砖头,硬是去把盖房给学会了的霸气。

代码如下:用的 go 语言的 colly 框架。

package main

import (
	"fmt"
	"github.com/gocolly/colly/v2"
	"net/url"
	"strings"
)

func main() {
  // blog 改成你自己的博客地址,hugo搭建的基本可用
	var blog = "https://blog.freecrazy.cn/"
	var href []string

	c := colly.NewCollector()

	//查找页面a元素 ul>li>a
	c.OnHTML("ul>li>a", func(e *colly.HTMLElement) {
		//fmt.Println(e.DOM.Attr("href"))
		if r, exists := e.DOM.Attr("href"); exists {
			href = append(href, r)
		}
	})
	//访问地址
	c.Visit(blog + "posts")

	//乱码转换
	for _, s := range href {
		unescape, _ := url.QueryUnescape(s)
		replace := strings.Replace(unescape, blog, "/", -1)
		fmt.Println(replace)
	}
}


至于后面要不要加进入文件,为指定一行插入代码的逻辑,我就不去薅头发了,毕竟我标题有空格的文章屈指可数。

不懂代码的,老老实实复制粘贴好了,无他法。

还没完呢。

想想,要是某一天你编了个故事,slug取名story。

第二个某一天,你又编了个故事,slug也给取名story。

那这两篇的地址岂不都是 posts/story/ 吗?

无聊的你可以试下会发生什么状况,记得告诉我。

为了杜绝这种情况,可以在总配置文件 config.toml 中添加如下标签:

就不给复制,懒得你。

然后你的页面标题就会自动增加年月。

日就不用加了,一天也写不了几篇。

四、总结

收工。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表