/
config.js
46 lines (39 loc) · 969 Bytes
/
config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const { merge } = require("./utils");
/**
* 合并语言
* @param {*} hexo
* @param {*} languages
*/
function mergeLanguages(hexo, languages) {
const { language } = hexo.config;
const { i18n } = hexo.theme;
const mergeLang = (lang) => {
i18n.set(lang, merge(i18n.get([lang]), languages[lang]));
};
if (Array.isArray(language)) {
for (let lang of language) {
mergeLang(lang);
}
} else {
mergeLang(language);
}
}
module.exports = (hexo) => {
const data = hexo.locals.get("data");
/**
* Merge configs from _data/yun.yml into hexo.theme.config.
*/
if (data.yun) {
merge(hexo.config, data.yun);
merge(hexo.theme.config, data.yun);
// hexo auto merge theme.config & config.theme_config
}
// config for test
if (data.test && process.env.NODE_ENV === "test") {
merge(hexo.theme.config, data.test);
}
// merge languages
if (data.languages) {
mergeLanguages(hexo, data.languages);
}
};