This commit is contained in:
syuilo
2017-12-15 06:41:57 +09:00
parent 5725e39a70
commit 169b99a358
12 changed files with 220 additions and 84 deletions

View File

@@ -12,7 +12,7 @@ block main
p#url= url
p#desc: +i18n(desc)
p#desc= desc[lang] || desc['ja']
section
h2 Params
@@ -27,4 +27,3 @@ block main
section
h2 Response
+propTable(res)

View File

@@ -10,7 +10,7 @@ block meta
block main
h1= name
p#desc: +i18n(desc)
p#desc= desc[lang] || desc['ja']
section
h2 Properties

View File

@@ -12,6 +12,12 @@ import * as mkdirp from 'mkdirp';
import config from './../../../conf';
import generateVars from '../vars';
const commonVars = generateVars();
const langs = ['ja', 'en'];
const kebab = string => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
const parseParam = param => {
@@ -102,20 +108,25 @@ gulp.task('doc:api:endpoints', () => {
paramDefs: extractDefs(ep.params),
res: sortParams(ep.res.map(p => parseParam(p))),
resDefs: extractDefs(ep.res),
kebab
kebab,
common: commonVars
};
pug.renderFile('./src/web/docs/api/endpoints/view.pug', vars, (renderErr, html) => {
if (renderErr) {
console.error(renderErr);
return;
}
const htmlPath = `./built/web/docs/api/endpoints/${ep.endpoint}.html`;
mkdirp(path.dirname(htmlPath), (mkdirErr) => {
if (mkdirErr) {
console.error(mkdirErr);
langs.forEach(lang => {
pug.renderFile('./src/web/docs/api/endpoints/view.pug', Object.assign({}, vars, {
lang
}), (renderErr, html) => {
if (renderErr) {
console.error(renderErr);
return;
}
fs.writeFileSync(htmlPath, html, 'utf-8');
const htmlPath = `./built/web/docs/${lang}/api/endpoints/${ep.endpoint}.html`;
mkdirp(path.dirname(htmlPath), (mkdirErr) => {
if (mkdirErr) {
console.error(mkdirErr);
return;
}
fs.writeFileSync(htmlPath, html, 'utf-8');
});
});
});
});
@@ -135,20 +146,25 @@ gulp.task('doc:api:entities', () => {
desc: entity.desc,
props: sortParams(entity.props.map(p => parseParam(p))),
propDefs: extractDefs(entity.props),
kebab
kebab,
common: commonVars
};
pug.renderFile('./src/web/docs/api/entities/view.pug', vars, (renderErr, html) => {
if (renderErr) {
console.error(renderErr);
return;
}
const htmlPath = `./built/web/docs/api/entities/${kebab(entity.name)}.html`;
mkdirp(path.dirname(htmlPath), (mkdirErr) => {
if (mkdirErr) {
console.error(mkdirErr);
langs.forEach(lang => {
pug.renderFile('./src/web/docs/api/entities/view.pug', Object.assign({}, vars, {
lang
}), (renderErr, html) => {
if (renderErr) {
console.error(renderErr);
return;
}
fs.writeFileSync(htmlPath, html, 'utf-8');
const htmlPath = `./built/web/docs/${lang}/api/entities/${kebab(entity.name)}.html`;
mkdirp(path.dirname(htmlPath), (mkdirErr) => {
if (mkdirErr) {
console.error(mkdirErr);
return;
}
fs.writeFileSync(htmlPath, html, 'utf-8');
});
});
});
});

View File

@@ -14,13 +14,13 @@ mixin propTable(props)
if prop.kind == 'id'
if prop.entity
| (
a(href=`/docs/api/entities/${kebab(prop.entity)}`)= prop.entity
a(href=`/docs/${lang}/api/entities/${kebab(prop.entity)}`)= prop.entity
| ID)
else
| (ID)
else if prop.kind == 'entity'
| (
a(href=`/docs/api/entities/${kebab(prop.entity)}`)= prop.entity
a(href=`/docs/${lang}/api/entities/${kebab(prop.entity)}`)= prop.entity
| )
else if prop.kind == 'object'
if prop.def
@@ -30,4 +30,4 @@ mixin propTable(props)
else if prop.kind == 'date'
| (Date)
td.optional= prop.optional.toString()
td.desc: +i18n(prop.desc)
td.desc!= prop.desc[lang] || prop.desc['ja']