This commit is contained in:
syuilo 2017-12-17 04:02:30 +09:00
parent 0711d29f6f
commit da279f9e50
13 changed files with 104 additions and 32 deletions

View file

@ -1,8 +1,21 @@
@import "../style"
#url
padding 8px 12px
padding 8px 12px 8px 8px
font-family Consolas, 'Courier New', Courier, Monaco, monospace
color #fff
background #222e40
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

View file

@ -7,12 +7,17 @@ block meta
block main
h1= endpoint
p#url= url
p#url
span.method POST
span.host
= url.host
| /
span.path= url.path
p#desc= desc[lang] || desc['ja']
section
h2 Params
h2= common.i18n[lang]['docs']['api']['endpoints']['params']
+propTable(params)
if paramDefs
@ -23,5 +28,5 @@ block main
if res
section
h2 Response
h2= common.i18n[lang]['docs']['api']['endpoints']['res']
+propTable(res)

View file

@ -10,7 +10,7 @@ block main
p#desc= desc[lang] || desc['ja']
section
h2 Properties
h2= common.i18n[lang]['docs']['api']['entities']['properties']
+propTable(props)
if propDefs

View file

@ -16,7 +16,7 @@ import generateVars from '../vars';
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();
@ -102,7 +102,10 @@ gulp.task('doc:api:endpoints', () => {
const ep = yaml.safeLoad(fs.readFileSync(file, 'utf-8'));
const vars = {
endpoint: ep.endpoint,
url: `${config.api_url}/${ep.endpoint}`,
url: {
host: config.api_url,
path: ep.endpoint
},
desc: ep.desc,
params: sortParams(ep.params.map(p => parseParam(p))),
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, {
lang,
title: ep.endpoint,
src: `https://github.com/syuilo/misskey/tree/master/src/web/docs/api/endpoints/${ep.endpoint}.yaml`,
kebab,
common: commonVars
}), (renderErr, html) => {
@ -152,6 +156,7 @@ gulp.task('doc:api:entities', () => {
pug.renderFile('./src/web/docs/api/entities/view.pug', Object.assign({}, vars, {
lang,
title: entity.name,
src: `https://github.com/syuilo/misskey/tree/master/src/web/docs/api/entities/${kebab(entity.name)}.yaml`,
kebab,
common: commonVars
}), (renderErr, html) => {

View file

@ -1,10 +1,10 @@
mixin propTable(props)
table.props
thead: tr
th Name
th Type
th Optional
th Description
th= common.i18n[lang]['docs']['api']['props']['name']
th= common.i18n[lang]['docs']['api']['props']['type']
th= common.i18n[lang]['docs']['api']['props']['optional']
th= common.i18n[lang]['docs']['api']['props']['description']
tbody
each prop in props
tr
@ -29,5 +29,9 @@ mixin propTable(props)
| )
else if prop.kind == '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']

View file

@ -37,7 +37,8 @@ gulp.task('doc:docs', () => {
const vars = {
common: commonVars,
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) => {
if (renderErr) {

View file

@ -27,6 +27,12 @@ html(lang= lang)
each endpoint in common.endpoints
li: a(href=`./api/endpoints/${common.kebab(endpoint)}`)= endpoint
main
block main
if content
| !{content}
article
block main
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']

View file

@ -37,6 +37,14 @@ main
margin 1em 0
line-height 1.6em
footer
margin 32px 0 0 0
border-top solid 2px #eee
.copyright
margin 16px 0 0 0
color #aaa
nav
display block
position fixed
@ -48,15 +56,6 @@ nav
padding 32px
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
width 100%
border-spacing 0

View file

@ -1,10 +1,11 @@
import * as fs from 'fs';
import * as glob from 'glob';
import * as yaml from 'js-yaml';
import langs from '../../../locales';
import config from '../../conf';
export default function() {
const vars = {};
export default function(): { [key: string]: any } {
const vars = {} as { [key: string]: any };
const endpoints = glob.sync('./src/web/docs/api/endpoints/**/*.yaml');
vars['endpoints'] = endpoints.map(ep => {
@ -35,5 +36,7 @@ export default function() {
vars['config'] = config;
vars['i18n'] = langs;
return vars;
}