wip docs
This commit is contained in:
parent
04db5944d1
commit
ff059d1268
5 changed files with 43 additions and 2 deletions
|
@ -354,6 +354,7 @@ reduceUiAnimation: "UIのアニメーションを減らす"
|
||||||
share: "共有"
|
share: "共有"
|
||||||
notFound: "見つかりません"
|
notFound: "見つかりません"
|
||||||
notFoundDescription: "指定されたURLに該当するページはありませんでした。"
|
notFoundDescription: "指定されたURLに該当するページはありませんでした。"
|
||||||
|
help: "ヘルプ"
|
||||||
|
|
||||||
_2fa:
|
_2fa:
|
||||||
registerDevice: "デバイスを登録"
|
registerDevice: "デバイスを登録"
|
||||||
|
|
|
@ -137,7 +137,7 @@
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import { faChevronLeft, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faListUl, faPlus, faUserClock, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faGamepad, faServer, faFileAlt, faSatellite, faInfoCircle } from '@fortawesome/free-solid-svg-icons';
|
import { faChevronLeft, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faListUl, faPlus, faUserClock, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faGamepad, faServer, faFileAlt, faSatellite, faInfoCircle, faQuestionCircle } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { faBell, faEnvelope, faLaugh, faComments } from '@fortawesome/free-regular-svg-icons';
|
import { faBell, faEnvelope, faLaugh, faComments } from '@fortawesome/free-regular-svg-icons';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
import i18n from './i18n';
|
import i18n from './i18n';
|
||||||
|
@ -258,7 +258,7 @@ export default Vue.extend({
|
||||||
help() {
|
help() {
|
||||||
this.$router.push('/docs/keyboard-shortcut');
|
this.$router.push('/docs/keyboard-shortcut');
|
||||||
},
|
},
|
||||||
|
|
||||||
back() {
|
back() {
|
||||||
if (this.canBack) window.history.back();
|
if (this.canBack) window.history.back();
|
||||||
},
|
},
|
||||||
|
@ -486,6 +486,11 @@ export default Vue.extend({
|
||||||
to: '/games',
|
to: '/games',
|
||||||
icon: faGamepad,
|
icon: faGamepad,
|
||||||
}, null] : []), {
|
}, null] : []), {
|
||||||
|
type: 'link',
|
||||||
|
text: this.$t('help'),
|
||||||
|
to: '/docs',
|
||||||
|
icon: faQuestionCircle,
|
||||||
|
}, {
|
||||||
type: 'link',
|
type: 'link',
|
||||||
text: this.$t('about'),
|
text: this.$t('about'),
|
||||||
to: '/about',
|
to: '/about',
|
||||||
|
|
29
src/client/pages/docs.vue
Normal file
29
src/client/pages/docs.vue
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<portal to="icon"><fa :icon="faQuestionCircle"/></portal>
|
||||||
|
<portal to="title">{{ $t('help') }}</portal>
|
||||||
|
<main class="_card">
|
||||||
|
<div class="_content">
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import Vue from 'vue';
|
||||||
|
import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
metaInfo() {
|
||||||
|
return {
|
||||||
|
title: this.$t('help') as string,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
faQuestionCircle
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -21,6 +21,7 @@ export const router = new VueRouter({
|
||||||
{ path: '/announcements', component: page('announcements') },
|
{ path: '/announcements', component: page('announcements') },
|
||||||
{ path: '/about', component: page('about') },
|
{ path: '/about', component: page('about') },
|
||||||
{ path: '/featured', component: page('featured') },
|
{ path: '/featured', component: page('featured') },
|
||||||
|
{ path: '/docs', component: page('docs') },
|
||||||
{ path: '/docs/:doc', component: page('doc'), props: true },
|
{ path: '/docs/:doc', component: page('doc'), props: true },
|
||||||
{ path: '/explore', component: page('explore') },
|
{ path: '/explore', component: page('explore') },
|
||||||
{ path: '/explore/tags/:tag', props: true, component: page('explore') },
|
{ path: '/explore/tags/:tag', props: true, component: page('explore') },
|
||||||
|
|
|
@ -96,6 +96,11 @@ router.get('/api.json', async ctx => {
|
||||||
ctx.body = genOpenapiSpec();
|
ctx.body = genOpenapiSpec();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get('/docs.json', async ctx => {
|
||||||
|
const lang = ctx.query.lang;
|
||||||
|
// TODO: glob mds and extract title
|
||||||
|
});
|
||||||
|
|
||||||
const getFeed = async (acct: string) => {
|
const getFeed = async (acct: string) => {
|
||||||
const { username, host } = parseAcct(acct);
|
const { username, host } = parseAcct(acct);
|
||||||
const user = await Users.findOne({
|
const user = await Users.findOne({
|
||||||
|
|
Loading…
Reference in a new issue