forked from Jamling/hexo-generator-i18n
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
63 lines (55 loc) · 1.7 KB
/
index.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
'use strict';
var _ = require('lodash');
//------------> Init langs
if (!hexo.config.i18n) {
hexo.log.info('i18n not config in _config.yml, use default config!\nPlease visit https://github.com/Jamling/hexo-generator-i18n for more information');
hexo.config.i18n = {
type: ["page", "post"],
generator: ["index", "archive", "category", "tag"]
}
}
if (!hexo.config.i18n.languages){
var languages = hexo.config.language;
if(!Array.isArray(languages)){
languages = [languages];
}
_.pull(languages, 'default');
hexo.config.i18n.languages = languages;
}
//------------> Helper
var helper = require('./lib/helpers');
hexo.extend.helper.register('get_langs', helper.langs);
hexo.extend.helper.register('default_lang', helper.defaultLang);
hexo.extend.helper.register('switch_lang', helper.switchLang);
hexo.extend.helper.register('url_for_lang', helper.url);
//------------> Generator
var i18n = require('./lib/i18n');
var type = hexo.config.i18n.type;
if (type){
if(!Array.isArray(type)){
type = [type];
}
type.forEach(function(item){
if (item == 'page') {
hexo.extend.generator.register('page-i18n', i18n.page);
}
else if (item == 'post') {
hexo.extend.generator.register('post-i18n', i18n.post);
}
});
}
var generator = hexo.config.i18n.generator;
if (generator){
if(!Array.isArray(generator)){
generator = [generator];
}
hexo.config.i18n.generator = generator;
var gs = hexo.extend.generator.list();
generator.forEach(function(item){
var g = gs[item];
if (!g && !_.endsWith(item, '-i18n')){
_.pull(hexo.config.i18n.generator, item);
}
});
hexo.extend.generator.register('other-i18n', i18n.archive);
}