✌️
This commit is contained in:
parent
0711d29f6f
commit
da279f9e50
13 changed files with 104 additions and 32 deletions
|
@ -183,6 +183,24 @@ common:
|
||||||
mk-uploader:
|
mk-uploader:
|
||||||
waiting: "Waiting"
|
waiting: "Waiting"
|
||||||
|
|
||||||
|
docs:
|
||||||
|
edit-this-page-on-github: "Caught a mistake or want to contribute to the documentation? "
|
||||||
|
edit-this-page-on-github-link: "Edit this page on Github!"
|
||||||
|
|
||||||
|
api:
|
||||||
|
entities:
|
||||||
|
properties: "Properties"
|
||||||
|
endpoints:
|
||||||
|
params: "Parameters"
|
||||||
|
res: "Response"
|
||||||
|
props:
|
||||||
|
name: "Name"
|
||||||
|
type: "Type"
|
||||||
|
optional: "Optional"
|
||||||
|
description: "Description"
|
||||||
|
yes: "Yes"
|
||||||
|
no: "No"
|
||||||
|
|
||||||
ch:
|
ch:
|
||||||
tags:
|
tags:
|
||||||
mk-index:
|
mk-index:
|
||||||
|
|
|
@ -10,12 +10,12 @@ const loadLang = lang => yaml.safeLoad(
|
||||||
|
|
||||||
const native = loadLang('ja');
|
const native = loadLang('ja');
|
||||||
|
|
||||||
const langs = Object.entries({
|
const langs = {
|
||||||
'en': loadLang('en'),
|
'en': loadLang('en'),
|
||||||
'ja': native
|
'ja': native
|
||||||
});
|
};
|
||||||
|
|
||||||
langs.map(([, locale]) => {
|
Object.entries(langs).map(([, locale]) => {
|
||||||
// Extend native language (Japanese)
|
// Extend native language (Japanese)
|
||||||
locale = Object.assign({}, native, locale);
|
locale = Object.assign({}, native, locale);
|
||||||
});
|
});
|
|
@ -183,6 +183,24 @@ common:
|
||||||
mk-uploader:
|
mk-uploader:
|
||||||
waiting: "待機中"
|
waiting: "待機中"
|
||||||
|
|
||||||
|
docs:
|
||||||
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
|
||||||
|
api:
|
||||||
|
entities:
|
||||||
|
properties: "プロパティ"
|
||||||
|
endpoints:
|
||||||
|
params: "パラメータ"
|
||||||
|
res: "レスポンス"
|
||||||
|
props:
|
||||||
|
name: "名前"
|
||||||
|
type: "型"
|
||||||
|
optional: "オプション"
|
||||||
|
description: "説明"
|
||||||
|
yes: "はい"
|
||||||
|
no: "いいえ"
|
||||||
|
|
||||||
ch:
|
ch:
|
||||||
tags:
|
tags:
|
||||||
mk-index:
|
mk-index:
|
||||||
|
|
|
@ -1,8 +1,21 @@
|
||||||
@import "../style"
|
@import "../style"
|
||||||
|
|
||||||
#url
|
#url
|
||||||
padding 8px 12px
|
padding 8px 12px 8px 8px
|
||||||
font-family Consolas, 'Courier New', Courier, Monaco, monospace
|
font-family Consolas, 'Courier New', Courier, Monaco, monospace
|
||||||
color #fff
|
color #fff
|
||||||
background #222e40
|
background #222e40
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
|
> .method
|
||||||
|
display inline-block
|
||||||
|
margin 0 8px 0 0
|
||||||
|
padding 0 6px
|
||||||
|
color #f4fcff
|
||||||
|
background #17afc7
|
||||||
|
border-radius 4px
|
||||||
|
user-select none
|
||||||
|
pointer-events none
|
||||||
|
|
||||||
|
> .host
|
||||||
|
opacity 0.7
|
||||||
|
|
|
@ -7,12 +7,17 @@ block meta
|
||||||
block main
|
block main
|
||||||
h1= endpoint
|
h1= endpoint
|
||||||
|
|
||||||
p#url= url
|
p#url
|
||||||
|
span.method POST
|
||||||
|
span.host
|
||||||
|
= url.host
|
||||||
|
| /
|
||||||
|
span.path= url.path
|
||||||
|
|
||||||
p#desc= desc[lang] || desc['ja']
|
p#desc= desc[lang] || desc['ja']
|
||||||
|
|
||||||
section
|
section
|
||||||
h2 Params
|
h2= common.i18n[lang]['docs']['api']['endpoints']['params']
|
||||||
+propTable(params)
|
+propTable(params)
|
||||||
|
|
||||||
if paramDefs
|
if paramDefs
|
||||||
|
@ -23,5 +28,5 @@ block main
|
||||||
|
|
||||||
if res
|
if res
|
||||||
section
|
section
|
||||||
h2 Response
|
h2= common.i18n[lang]['docs']['api']['endpoints']['res']
|
||||||
+propTable(res)
|
+propTable(res)
|
||||||
|
|
|
@ -10,7 +10,7 @@ block main
|
||||||
p#desc= desc[lang] || desc['ja']
|
p#desc= desc[lang] || desc['ja']
|
||||||
|
|
||||||
section
|
section
|
||||||
h2 Properties
|
h2= common.i18n[lang]['docs']['api']['entities']['properties']
|
||||||
+propTable(props)
|
+propTable(props)
|
||||||
|
|
||||||
if propDefs
|
if propDefs
|
||||||
|
|
|
@ -16,7 +16,7 @@ import generateVars from '../vars';
|
||||||
|
|
||||||
const commonVars = generateVars();
|
const commonVars = generateVars();
|
||||||
|
|
||||||
const langs = ['ja', 'en'];
|
const langs = Object.keys(commonVars.i18n);
|
||||||
|
|
||||||
const kebab = string => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
|
const kebab = string => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase();
|
||||||
|
|
||||||
|
@ -102,7 +102,10 @@ gulp.task('doc:api:endpoints', () => {
|
||||||
const ep = yaml.safeLoad(fs.readFileSync(file, 'utf-8'));
|
const ep = yaml.safeLoad(fs.readFileSync(file, 'utf-8'));
|
||||||
const vars = {
|
const vars = {
|
||||||
endpoint: ep.endpoint,
|
endpoint: ep.endpoint,
|
||||||
url: `${config.api_url}/${ep.endpoint}`,
|
url: {
|
||||||
|
host: config.api_url,
|
||||||
|
path: ep.endpoint
|
||||||
|
},
|
||||||
desc: ep.desc,
|
desc: ep.desc,
|
||||||
params: sortParams(ep.params.map(p => parseParam(p))),
|
params: sortParams(ep.params.map(p => parseParam(p))),
|
||||||
paramDefs: extractDefs(ep.params),
|
paramDefs: extractDefs(ep.params),
|
||||||
|
@ -113,6 +116,7 @@ gulp.task('doc:api:endpoints', () => {
|
||||||
pug.renderFile('./src/web/docs/api/endpoints/view.pug', Object.assign({}, vars, {
|
pug.renderFile('./src/web/docs/api/endpoints/view.pug', Object.assign({}, vars, {
|
||||||
lang,
|
lang,
|
||||||
title: ep.endpoint,
|
title: ep.endpoint,
|
||||||
|
src: `https://github.com/syuilo/misskey/tree/master/src/web/docs/api/endpoints/${ep.endpoint}.yaml`,
|
||||||
kebab,
|
kebab,
|
||||||
common: commonVars
|
common: commonVars
|
||||||
}), (renderErr, html) => {
|
}), (renderErr, html) => {
|
||||||
|
@ -152,6 +156,7 @@ gulp.task('doc:api:entities', () => {
|
||||||
pug.renderFile('./src/web/docs/api/entities/view.pug', Object.assign({}, vars, {
|
pug.renderFile('./src/web/docs/api/entities/view.pug', Object.assign({}, vars, {
|
||||||
lang,
|
lang,
|
||||||
title: entity.name,
|
title: entity.name,
|
||||||
|
src: `https://github.com/syuilo/misskey/tree/master/src/web/docs/api/entities/${kebab(entity.name)}.yaml`,
|
||||||
kebab,
|
kebab,
|
||||||
common: commonVars
|
common: commonVars
|
||||||
}), (renderErr, html) => {
|
}), (renderErr, html) => {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
mixin propTable(props)
|
mixin propTable(props)
|
||||||
table.props
|
table.props
|
||||||
thead: tr
|
thead: tr
|
||||||
th Name
|
th= common.i18n[lang]['docs']['api']['props']['name']
|
||||||
th Type
|
th= common.i18n[lang]['docs']['api']['props']['type']
|
||||||
th Optional
|
th= common.i18n[lang]['docs']['api']['props']['optional']
|
||||||
th Description
|
th= common.i18n[lang]['docs']['api']['props']['description']
|
||||||
tbody
|
tbody
|
||||||
each prop in props
|
each prop in props
|
||||||
tr
|
tr
|
||||||
|
@ -29,5 +29,9 @@ mixin propTable(props)
|
||||||
| )
|
| )
|
||||||
else if prop.kind == 'date'
|
else if prop.kind == 'date'
|
||||||
| (Date)
|
| (Date)
|
||||||
td.optional= prop.optional.toString()
|
td.optional
|
||||||
|
if prop.optional
|
||||||
|
= common.i18n[lang]['docs']['api']['props']['yes']
|
||||||
|
else
|
||||||
|
= common.i18n[lang]['docs']['api']['props']['no']
|
||||||
td.desc!= prop.desc[lang] || prop.desc['ja']
|
td.desc!= prop.desc[lang] || prop.desc['ja']
|
||||||
|
|
|
@ -37,7 +37,8 @@ gulp.task('doc:docs', () => {
|
||||||
const vars = {
|
const vars = {
|
||||||
common: commonVars,
|
common: commonVars,
|
||||||
lang: lang,
|
lang: lang,
|
||||||
title: fs.readFileSync(file, 'utf-8').match(/^h1 (.+?)\r?\n/)[1]
|
title: fs.readFileSync(file, 'utf-8').match(/^h1 (.+?)\r?\n/)[1],
|
||||||
|
src: `https://github.com/syuilo/misskey/tree/master/src/web/docs/${name}.${lang}.pug`,
|
||||||
};
|
};
|
||||||
pug.renderFile(file, vars, (renderErr, content) => {
|
pug.renderFile(file, vars, (renderErr, content) => {
|
||||||
if (renderErr) {
|
if (renderErr) {
|
||||||
|
|
|
@ -27,6 +27,12 @@ html(lang= lang)
|
||||||
each endpoint in common.endpoints
|
each endpoint in common.endpoints
|
||||||
li: a(href=`./api/endpoints/${common.kebab(endpoint)}`)= endpoint
|
li: a(href=`./api/endpoints/${common.kebab(endpoint)}`)= endpoint
|
||||||
main
|
main
|
||||||
block main
|
article
|
||||||
if content
|
block main
|
||||||
| !{content}
|
if content
|
||||||
|
| !{content}
|
||||||
|
|
||||||
|
footer
|
||||||
|
p
|
||||||
|
= common.i18n[lang]['docs']['edit-this-page-on-github']
|
||||||
|
a(href=src target="_blank")= common.i18n[lang]['docs']['edit-this-page-on-github-link']
|
||||||
|
|
|
@ -37,6 +37,14 @@ main
|
||||||
margin 1em 0
|
margin 1em 0
|
||||||
line-height 1.6em
|
line-height 1.6em
|
||||||
|
|
||||||
|
footer
|
||||||
|
margin 32px 0 0 0
|
||||||
|
border-top solid 2px #eee
|
||||||
|
|
||||||
|
.copyright
|
||||||
|
margin 16px 0 0 0
|
||||||
|
color #aaa
|
||||||
|
|
||||||
nav
|
nav
|
||||||
display block
|
display block
|
||||||
position fixed
|
position fixed
|
||||||
|
@ -48,15 +56,6 @@ nav
|
||||||
padding 32px
|
padding 32px
|
||||||
border-right solid 2px #eee
|
border-right solid 2px #eee
|
||||||
|
|
||||||
footer
|
|
||||||
padding:32px 0 0 0
|
|
||||||
margin 32px 0 0 0
|
|
||||||
border-top solid 1px #eee
|
|
||||||
|
|
||||||
.copyright
|
|
||||||
margin 16px 0 0 0
|
|
||||||
color #aaa
|
|
||||||
|
|
||||||
table
|
table
|
||||||
width 100%
|
width 100%
|
||||||
border-spacing 0
|
border-spacing 0
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as glob from 'glob';
|
import * as glob from 'glob';
|
||||||
import * as yaml from 'js-yaml';
|
import * as yaml from 'js-yaml';
|
||||||
|
import langs from '../../../locales';
|
||||||
import config from '../../conf';
|
import config from '../../conf';
|
||||||
|
|
||||||
export default function() {
|
export default function(): { [key: string]: any } {
|
||||||
const vars = {};
|
const vars = {} as { [key: string]: any };
|
||||||
|
|
||||||
const endpoints = glob.sync('./src/web/docs/api/endpoints/**/*.yaml');
|
const endpoints = glob.sync('./src/web/docs/api/endpoints/**/*.yaml');
|
||||||
vars['endpoints'] = endpoints.map(ep => {
|
vars['endpoints'] = endpoints.map(ep => {
|
||||||
|
@ -35,5 +36,7 @@ export default function() {
|
||||||
|
|
||||||
vars['config'] = config;
|
vars['config'] = config;
|
||||||
|
|
||||||
|
vars['i18n'] = langs;
|
||||||
|
|
||||||
return vars;
|
return vars;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
import module_ from './module';
|
import module_ from './module';
|
||||||
import plugins from './plugins';
|
import plugins from './plugins';
|
||||||
|
|
||||||
import langs from './langs';
|
import langs from '../locales';
|
||||||
import version from '../src/version';
|
import version from '../src/version';
|
||||||
|
|
||||||
module.exports = langs.map(([lang, locale]) => {
|
module.exports = Object.entries(langs).map(([lang, locale]) => {
|
||||||
// Chunk name
|
// Chunk name
|
||||||
const name = lang;
|
const name = lang;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue