all repos — archive/homestead @ 1f2a6245ab1e503dee017ab617aaeda816ecb383

My future indieweb platform

feat: add tags endpoint

Alan Pearce
commit

1f2a6245ab1e503dee017ab617aaeda816ecb383

parent

69af7f12ec17f0aba65b0e23ef4045ee28f2dac8

1 file changed, 16 insertions(+), 0 deletions(-)

changed files
M src/index.jssrc/index.js
@@ -29,6 +29,22 @@ post: posts.get(ctx.params.filename)
}) }) +const tags = new Map() +for (let [, post] of posts) { + if (post.data.has('tags')) { + for (let tag of post.data.get('tags')) { + tags.set(tag, (tags.get(tag) || []).concat([post])) + } + } +} +router.get('/tags/:tag', async function (ctx) { + ctx.assert(tags.has(ctx.params.tag), 404, 'Tag not found') + await ctx.render('tag', { + tag: ctx.params.tag, + posts: tags.get(ctx.params.tag) + }) +}) + app.use(router.routes()).use(router.allowedMethods()) module.exports = app