This commit is contained in:
syuilo 2020-02-07 19:15:08 +09:00
parent 04db5944d1
commit ff059d1268
5 changed files with 43 additions and 2 deletions

View File

@ -354,6 +354,7 @@ reduceUiAnimation: "UIのアニメーションを減らす"
share: "共有" share: "共有"
notFound: "見つかりません" notFound: "見つかりません"
notFoundDescription: "指定されたURLに該当するページはありませんでした。" notFoundDescription: "指定されたURLに該当するページはありませんでした。"
help: "ヘルプ"
_2fa: _2fa:
registerDevice: "デバイスを登録" registerDevice: "デバイスを登録"

View File

@ -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
View 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>

View File

@ -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') },

View File

@ -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({