Clean up
This commit is contained in:
		
							parent
							
								
									c2a8e29ef9
								
							
						
					
					
						commit
						01e7a01daf
					
				|  | @ -1,9 +0,0 @@ | |||
| extends ./base | ||||
| 
 | ||||
| block main | ||||
| 	!= html | ||||
| 
 | ||||
| block footer | ||||
| 	p | ||||
| 		= i18n('docs.edit-this-page-on-github') | ||||
| 		a(href=src rel="noopener" target="_blank")= i18n('docs.edit-this-page-on-github-link') | ||||
|  | @ -1,50 +0,0 @@ | |||
| doctype html | ||||
| 
 | ||||
| html(lang= lang) | ||||
| 	head | ||||
| 		meta(charset="UTF-8") | ||||
| 		meta(name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no") | ||||
| 		title | ||||
| 			| #{title} | Misskey Docs | ||||
| 		link(rel="stylesheet" href="/docs/assets/style.css") | ||||
| 		link(rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css") | ||||
| 		script(src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js") | ||||
| 		link(rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous") | ||||
| 		block meta | ||||
| 
 | ||||
| 	body | ||||
| 		nav | ||||
| 			ul | ||||
| 				each doc in docs | ||||
| 					li: a(href=`/docs/${lang}/${doc.name}`)= doc.title[lang] || doc.title['ja-JP'] | ||||
| 		main | ||||
| 			article | ||||
| 				block main | ||||
| 				if content | ||||
| 					| !{content} | ||||
| 
 | ||||
| 			aside. | ||||
| 				<div id="disqus_thread"></div> | ||||
| 				<script> | ||||
| 
 | ||||
| 				/** | ||||
| 				*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. | ||||
| 				*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/ | ||||
| 				/* | ||||
| 				var disqus_config = function () { | ||||
| 				this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable | ||||
| 				this.page.identifier = "#{ id }"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable | ||||
| 				}; | ||||
| 				*/ | ||||
| 				(function() { // DON'T EDIT BELOW THIS LINE | ||||
| 				var d = document, s = d.createElement('script'); | ||||
| 				s.src = 'https://misskey.disqus.com/embed.js'; | ||||
| 				s.setAttribute('data-timestamp', +new Date()); | ||||
| 				(d.head || d.body).appendChild(s); | ||||
| 				})(); | ||||
| 				</script> | ||||
| 				<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> | ||||
| 
 | ||||
| 			footer | ||||
| 				block footer | ||||
| 				small= copyright | ||||
|  | @ -1,156 +0,0 @@ | |||
| @import "../client/style" | ||||
| @import "./ui" | ||||
| 
 | ||||
| html | ||||
| 	--accent #fb4e4e | ||||
| 	--link #fb4e4e | ||||
| 	--linkTapHighlight #fb4e4eb3 | ||||
| 
 | ||||
| body | ||||
| 	margin 0 | ||||
| 	color #34495e | ||||
| 	word-break break-word | ||||
| 
 | ||||
| main | ||||
| 	margin 0 0 0 330px | ||||
| 	padding 64px | ||||
| 	width 850px | ||||
| 	max-width calc(100% - 330px) | ||||
| 
 | ||||
| 	h1 | ||||
| 		margin 0 0 24px 0 | ||||
| 		padding 16px 0 | ||||
| 		font-size 1.5em | ||||
| 		border-bottom solid 2px #eee | ||||
| 
 | ||||
| 	h2 | ||||
| 		margin 1em 0 24px 0 | ||||
| 		padding 0 0 16px 0 | ||||
| 		font-size 1.4em | ||||
| 		border-bottom solid 1px #eee | ||||
| 
 | ||||
| 	h3 | ||||
| 		margin 1em 0 0 0 | ||||
| 		padding 0 | ||||
| 		font-size 1.25em | ||||
| 
 | ||||
| 	h4 | ||||
| 		margin 1em 0 0 0 | ||||
| 
 | ||||
| 	p | ||||
| 		margin 1em 0 | ||||
| 		line-height 1.6em | ||||
| 
 | ||||
| 	hr | ||||
| 		border none | ||||
| 		border-bottom solid 2px #eee | ||||
| 
 | ||||
| 	> aside | ||||
| 		margin-top 32px | ||||
| 		padding-top 32px | ||||
| 		border-top solid 2px #eee | ||||
| 
 | ||||
| 	> footer | ||||
| 		margin 32px 0 0 0 | ||||
| 		border-top solid 2px #eee | ||||
| 
 | ||||
| 		> small | ||||
| 			display block | ||||
| 			margin 16px 0 0 0 | ||||
| 			color #aaa | ||||
| 
 | ||||
| nav | ||||
| 	display block | ||||
| 	position fixed | ||||
| 	z-index 10000 | ||||
| 	top 0 | ||||
| 	left 0 | ||||
| 	width 330px | ||||
| 	height 100% | ||||
| 	overflow auto | ||||
| 	padding 32px | ||||
| 	background #fff | ||||
| 	border-right solid 2px #eee | ||||
| 
 | ||||
| 	ul | ||||
| 		padding 0 | ||||
| 		margin 0 | ||||
| 
 | ||||
| @media (max-width 1025px) | ||||
| 	main | ||||
| 		margin 0 | ||||
| 		max-width 100% | ||||
| 
 | ||||
| 	nav | ||||
| 		position relative | ||||
| 		width 100% | ||||
| 		max-height 128px | ||||
| 		background #f9f9f9 | ||||
| 		border-right none | ||||
| 
 | ||||
| @media (max-width 768px) | ||||
| 	main | ||||
| 		padding 32px | ||||
| 
 | ||||
| @media (max-width 512px) | ||||
| 	main | ||||
| 		padding 16px | ||||
| 
 | ||||
| table | ||||
| 	width 100% | ||||
| 	max-width 100% | ||||
| 	overflow auto | ||||
| 	border-spacing 0 | ||||
| 	border-collapse collapse | ||||
| 
 | ||||
| 	thead | ||||
| 		font-weight bold | ||||
| 		border-bottom solid 2px #eee | ||||
| 
 | ||||
| 		tr | ||||
| 			th | ||||
| 				text-align left | ||||
| 
 | ||||
| 	tbody | ||||
| 		tr | ||||
| 			&:nth-child(odd) | ||||
| 				background #fbfbfb | ||||
| 
 | ||||
| 	th, td | ||||
| 		padding 8px 16px | ||||
| 		min-width 128px | ||||
| 
 | ||||
| code | ||||
| 	padding 4px 8px | ||||
| 	font-family Consolas, 'Courier New', Courier, Monaco, monospace | ||||
| 	//color #295c92 | ||||
| 	background #f2f2f2 | ||||
| 	border-radius 4px | ||||
| 
 | ||||
| pre | ||||
| 	overflow auto | ||||
| 
 | ||||
| 	> code | ||||
| 		display block | ||||
| 		padding 16px | ||||
| 
 | ||||
| kbd.group | ||||
| 	display inline-block | ||||
| 	padding 4px | ||||
| 	background #fbfbfb | ||||
| 	border 1px solid #d6d6d6 | ||||
| 	border-radius 4px | ||||
| 	box-shadow 0 1px 1px rgba(0, 0, 0, 0.1) | ||||
| 
 | ||||
| kbd.key | ||||
| 	display inline-block | ||||
| 	padding 6px 8px | ||||
| 	background #fff | ||||
| 	border solid 1px #cecece | ||||
| 	border-radius 4px | ||||
| 	box-shadow 0 1px 1px rgba(0, 0, 0, 0.1) | ||||
| 
 | ||||
| td | ||||
| 	> kbd.group, | ||||
| 	> kbd.key | ||||
| 		margin 4px | ||||
|  | @ -1,19 +0,0 @@ | |||
| .ui.info | ||||
| 	display block | ||||
| 	margin 1em 0 | ||||
| 	padding 0 1em | ||||
| 	font-size 90% | ||||
| 	color rgba(#000, 0.87) | ||||
| 	background #f8f8f9 | ||||
| 	border-radius 4px | ||||
| 	overflow hidden | ||||
| 
 | ||||
| 	> p | ||||
| 		opacity 0.8 | ||||
| 
 | ||||
| 		> [data-icon]:first-child | ||||
| 			margin-right 0.25em | ||||
| 
 | ||||
| 	&.warn | ||||
| 		color #573a08 | ||||
| 		background #FFFAF3 | ||||
|  | @ -1,106 +0,0 @@ | |||
| /** | ||||
|  * Docs | ||||
|  */ | ||||
| 
 | ||||
| import * as fs from 'fs'; | ||||
| import * as path from 'path'; | ||||
| import * as showdown from 'showdown'; | ||||
| import 'showdown-highlightjs-extension'; | ||||
| import ms = require('ms'); | ||||
| import * as Router from '@koa/router'; | ||||
| import * as send from 'koa-send'; | ||||
| import * as glob from 'glob'; | ||||
| import config from '../../config'; | ||||
| import { licenseHtml } from '../../misc/license'; | ||||
| import * as locales from '../../../locales'; | ||||
| import * as nestedProperty from 'nested-property'; | ||||
| 
 | ||||
| function getLang(lang: string): string { | ||||
| 	if (['en-US', 'ja-JP'].includes(lang)) { | ||||
| 		return lang; | ||||
| 	} else { | ||||
| 		return 'en-US'; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| async function genVars(lang: string): Promise<{ [key: string]: any }> { | ||||
| 	const vars = {} as { [key: string]: any }; | ||||
| 
 | ||||
| 	vars['lang'] = lang; | ||||
| 
 | ||||
| 	const cwd = path.resolve(__dirname + '/../../../') + '/'; | ||||
| 
 | ||||
| 	const docs = glob.sync(`src/docs/**/*.${lang}.md`, { cwd }); | ||||
| 	vars['docs'] = {}; | ||||
| 	for (const x of docs) { | ||||
| 		const [, name] = x.match(/docs\/(.+?)\.(.+?)\.md$/)!; | ||||
| 		if (vars['docs'][name] == null) { | ||||
| 			vars['docs'][name] = { | ||||
| 				name, | ||||
| 				title: {} | ||||
| 			}; | ||||
| 		} | ||||
| 		vars['docs'][name]['title'][lang] = fs.readFileSync(cwd + x, 'utf-8').match(/^# (.+?)\r?\n/)![1]; | ||||
| 	} | ||||
| 
 | ||||
| 	vars['kebab'] = (string: string) => string.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\s+/g, '-').toLowerCase(); | ||||
| 
 | ||||
| 	vars['config'] = config; | ||||
| 
 | ||||
| 	vars['copyright'] = '(c) Misskey'; | ||||
| 
 | ||||
| 	vars['license'] = licenseHtml; | ||||
| 
 | ||||
| 	vars['i18n'] = (key: string) => nestedProperty.get(locales[lang], key); | ||||
| 
 | ||||
| 	return vars; | ||||
| } | ||||
| 
 | ||||
| const router = new Router(); | ||||
| 
 | ||||
| router.get('/assets/*', async ctx => { | ||||
| 	await send(ctx as any, ctx.params[0], { | ||||
| 		root: `${__dirname}/../../docs/assets/`, | ||||
| 		maxage: ms('1 days') | ||||
| 	}); | ||||
| }); | ||||
| 
 | ||||
| router.get('/*/*', async ctx => { | ||||
| 	const lang = getLang(ctx.params[0]); | ||||
| 	const doc = ctx.params[1]; | ||||
| 
 | ||||
| 	showdown.extension('urlExtension', () => ({ | ||||
| 		type: 'output', | ||||
| 		regex: /%URL%/g, | ||||
| 		replace: config.url | ||||
| 	})); | ||||
| 
 | ||||
| 	showdown.extension('wsUrlExtension', () => ({ | ||||
| 		type: 'output', | ||||
| 		regex: /%WS_URL%/g, | ||||
| 		replace: config.wsUrl | ||||
| 	})); | ||||
| 
 | ||||
| 	showdown.extension('apiUrlExtension', () => ({ | ||||
| 		type: 'output', | ||||
| 		regex: /%API_URL%/g, | ||||
| 		replace: config.apiUrl | ||||
| 	})); | ||||
| 
 | ||||
| 	const conv = new showdown.Converter({ | ||||
| 		tables: true, | ||||
| 		extensions: ['urlExtension', 'apiUrlExtension', 'highlightjs'] | ||||
| 	}); | ||||
| 	const md = fs.readFileSync(`${__dirname}/../../../src/docs/${doc}.${lang}.md`, 'utf8'); | ||||
| 
 | ||||
| 	await ctx.render('../../../../src/docs/article', Object.assign({ | ||||
| 		id: doc, | ||||
| 		html: conv.makeHtml(md), | ||||
| 		title: md.match(/^# (.+?)\r?\n/)![1], | ||||
| 		src: `https://github.com/syuilo/misskey/tree/master/src/docs/${doc}.${lang}.md` | ||||
| 	}, await genVars(lang))); | ||||
| 
 | ||||
| 	ctx.set('Cache-Control', 'public, max-age=300'); | ||||
| }); | ||||
| 
 | ||||
| export default router; | ||||
|  | @ -10,7 +10,6 @@ import * as send from 'koa-send'; | |||
| import * as favicon from 'koa-favicon'; | ||||
| import * as views from 'koa-views'; | ||||
| 
 | ||||
| import docs from './docs'; | ||||
| import packFeed from './feed'; | ||||
| import { fetchMeta } from '../../misc/fetch-meta'; | ||||
| import { genOpenapiSpec } from '../api/openapi/gen-spec'; | ||||
|  | @ -84,7 +83,6 @@ router.get('/robots.txt', async ctx => { | |||
| //#endregion
 | ||||
| 
 | ||||
| // Docs
 | ||||
| router.use('/docs', docs.routes()); | ||||
| router.get('/api-doc', async ctx => { | ||||
| 	await send(ctx as any, '/assets/redoc.html', { | ||||
| 		root: client | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue