关于 og:locale 我想多了

我以为 og:locale 的取值会影响浏览器对元素的语言判定,而且我以为它的值和 HTML 中的 lang 属性一样,可以包括 script 和 region subtag。

我以为 Hexo 的实现是有缺陷的,没在列表里的语言就会把这项留空,我甚至还特意为它写了个脚本,写到一半,想到去搜一下,发现自己想多了。其实它只能包括语言和地区。

我看 Jekyll 的实现就直接复制过去的,结果是 Jekyll 实现的不合规……

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const originalOpenGraph = hexo.extend.helper.get('open_graph');

hexo.extend.helper.register('open_graph', function(options = {}) {
const { config, page } = this;
const { content } = page;
let og = originalOpenGraph.bind(this)(options);
const language = options.language || page.lang || page.language || config.language;
const renderedLanguage = og.match(/<meta property="og:locale" content="(.*?)">/)[1];
if (renderedLanguage === ''){
// no language in og:locale

}
return og;
});