summaryrefslogtreecommitdiff
path: root/src/server/web
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-08-05 00:15:51 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-08-05 00:15:51 +0900
commite044d11782b0f7237b7f1354aba0f00365d91885 (patch)
tree007e186a2b78d984cc7710ef41e5d871871a9ef3 /src/server/web
parentrefactor (diff)
downloadmisskey-e044d11782b0f7237b7f1354aba0f00365d91885.tar.gz
misskey-e044d11782b0f7237b7f1354aba0f00365d91885.tar.bz2
misskey-e044d11782b0f7237b7f1354aba0f00365d91885.zip
Improve docs
Diffstat (limited to 'src/server/web')
-rw-r--r--src/server/web/index.ts29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 50fea757f2..a732e7f5b4 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -121,14 +121,22 @@ router.get('/api.json', async ctx => {
router.get('/docs.json', async ctx => {
const lang = ctx.query.lang;
+ const query = ctx.query.q;
if (!Object.keys(locales).includes(lang)) {
ctx.body = [];
return;
}
- const paths = glob.sync(__dirname + `/../../../src/docs/${lang}/*.md`);
- const docs: { path: string; title: string; }[] = [];
+ const dirPath = `${__dirname}/../../../src/docs/${lang}`.replace(/\\/g, '/');
+ const paths = glob.sync(`${dirPath}/**/*.md`);
+ const docs: { path: string; title: string; summary: string; }[] = [];
for (const path of paths) {
const md = fs.readFileSync(path, { encoding: 'utf8' });
+
+ if (query && query.length > 0) {
+ // TODO: カタカナをひらがなにして比較するなどしたい
+ if (!md.includes(query)) continue;
+ }
+
const parsed = markdown.parse(md, {});
if (parsed.length === 0) return;
@@ -147,9 +155,22 @@ router.get('/docs.json', async ctx => {
}
}
+ const firstParagrapfTokens = [];
+ while (buf[0].type !== 'paragraph_open') {
+ buf.shift();
+ }
+ buf.shift();
+ while (buf[0].type as string !== 'paragraph_close') {
+ const token = buf.shift();
+ if (token) {
+ firstParagrapfTokens.push(token);
+ }
+ }
+
docs.push({
- path: path.split('/').pop()!.split('.')[0],
- title: markdown.renderer.render(headingTokens, {}, {})
+ path: path.replace(`${dirPath}/`, '').split('.')[0],
+ title: markdown.renderer.render(headingTokens, {}, {}),
+ summary: markdown.renderer.render(firstParagrapfTokens, {}, {}),
});
}