Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd6f13a6

Browse files
committed
wip
1 parent8858c5e commitd6f13a6

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

‎build/index.js‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const link_index = require('./plugins/link_index');
1818
constcategories=require('./plugins/categories');
1919
constchangeExt=require('./plugins/change-ext');
2020
constmarkdown=require('./plugins/markdown');
21+
constlocales=require('./plugins/locales');
2122
constlayouts=require('./plugins/layouts');
2223
constorder=require('./plugins/order');
2324
consttoc=require('./plugins/toc');
@@ -51,6 +52,10 @@ Metalsmith(cwd)
5152
"layouts/**/*":'**/*.md',
5253
}
5354
})))
55+
.use(locales({
56+
defaultLocale:'en',
57+
locales:['en','hu']
58+
}))
5459
.use(order())
5560
.use(categories())
5661
// group certain files into collections

‎build/plugins/locales.js‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
constpath=require('path');
2+
constmkdirp=require('mkdirp');
3+
constfs=require('fs');
4+
5+
functionplugin(opts){
6+
7+
returnfunction(files,metalsmith,done){
8+
constmeta=metalsmith.metadata();
9+
constsourcePath=metalsmith.source();
10+
11+
// set global information about the available locales
12+
constdefaultLocale=meta.defaultLocale=opts.defaultLocale;
13+
constlocales=meta.locales=opts.locales;
14+
constpattern=(locales)=>{
15+
if(!Array.isArray(locales)){
16+
locales=[locales]
17+
}
18+
19+
returnnewRegExp(`.*\\/(?:${locales.join('|')})\\/(.+)(\\..+)`)
20+
};
21+
22+
constrequiredFiles=Object.keys(files)
23+
.filter(file=>file.match(pattern(defaultLocale)))
24+
.map(file=>{
25+
returnfile.replace(`${path.sep}${defaultLocale}${path.sep}`,`${path.sep}{LOCALE}${path.sep}`);
26+
});
27+
constotherLocales=locales.filter(l=>l!==defaultLocale);
28+
29+
otherLocales.forEach((locale)=>{
30+
requiredFiles.forEach((file)=>{
31+
constnew_file=file.replace('{LOCALE}',locale);
32+
constdir=path.dirname(file);
33+
mkdirp(dir,(err)=>{
34+
if(err)throwerr;
35+
constexists=fs.existsSync(new_file);
36+
if(!exists){
37+
fs.writeFileSync(new_file,files[file.replace('{LOCALE}',defaultLocale)].contents,()=>{
38+
console.log('Written new file at ',new_file)
39+
})
40+
}
41+
})
42+
})
43+
});
44+
console.log(otherLocales,requiredFiles)
45+
// console.log(path.resolve(sourcePath, defaultLocale));
46+
47+
48+
// done();
49+
}
50+
}
51+
52+
module.exports=plugin;

‎package.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"metalsmith-multi-language":"^0.3.0",
3030
"metalsmith-permalinks":"^0.5.0",
3131
"metalsmith-watch":"^1.0.3",
32+
"mkdirp":"^0.5.1",
3233
"moment":"^2.20.1",
3334
"multimatch":"^2.1.0",
3435
"table-of-contents-json":"^1.2.0",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp