如何让你的Hexo博客网址使用全英文路径

本文将帮助你使用文章id和category_map实现URL路径全英文。第一节可跳过不看。重点在二、三小节。

1. 为什么使用英文网址?

一般来说,URL只能使用英文和数字和一些标点符号表示。这是因为网络标准RFC 1738 做了硬性规定。

虽然在Hexo中引用:title可以显示中文的网址,但是复制粘贴到记事本会发现得到的是一大串百分号之类的“乱码”(其实这并不是乱码,而是中文被转码成十六进制编码的结果),看起来不怎么好看:

因此下面我们通过一种简单的方式使发布的文章的网址变得简洁:

如图所示我只用了十位数字作为文章的唯一标识,你也可以自定义此数字:


2. 在permalink中使用文章id替代“:title”

在官方文档永久链接(Permalinks) | Hexo一章中有这样一段描述:

permalink的变量就这几个,其中文章id这个变量非常有用。

我们可以在博客根目录的配置文件(_config.yml)中这样修改:

#permalink: :year/:month/:day/:title # 这是原配置
permalink: :year/:id/ # 替换为此新配置

并且在.\scaffolds\post.md中修改为:

(注意新增了一个id:

---
title: {{ title }}
id: 
date: {{ date }}
updated: {{ date }}
categories:
tags:
permalink: 
---

在我们的具体文章中,你可以使用任意字符串作为此文章的id,例如:

---
title: 如何让你的Hexo博客网址使用全英文路径
id: 123456789-abcd
date: 2017-12-30 20:57:46
updated: 2017-12-30
categories: 后台01 文档管理
tags:
permalink:
---

不过为了命名规范(同时也是为了方便记忆),我的做法是使用创建日期中的月+日+时+分+秒来定义一个id,比如此篇文章我使用1230-205746作为id。


3. 使用category_map实现分组映射

有同学也注意到了,官方文档中还提到permalink可以使用:category变量,比如我们想要这样定义永久链接:

修改博客配置文件_config.yml

permalink: :year/:category/:id/

...

# Category & Tag
default_category: uncatalog
## 为了让中文分组名在网址中显示为英文,我们可以创建分组名映射(category_map):
category_map:
  Adobe脚本语言学习: adobe-extendscript
  Android基础: android-base
  Android案例实现: android-training
  Hexo: hexo
  LK字幕脚本开发: lk-ae-subtitlescript
  从零开发Anykey: passport-pandora
  统计: statistics
  未分类: uncatalog
  文档管理: doc-manage
  正则表达式: regex
  正则表达式学习: regex
  字幕组: fansub
tag_map:

同理tag_map可以实现标签的中英文转换。


特别注意

Hexo permalink似乎有一个bug,如果id设为纯数字(比如1230205746),那么有一定几率出现网址中的id与设置的不符的问题。

具体原因还不清楚,因此建议强烈建议不要使用纯数字作为id。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值