From 2ee549f5f3b1a05f2a769a4e0daa5507997a3159 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 18 Mar 2023 21:27:42 +0900 Subject: feat(nuldoc): include slides in tag pages --- nuldoc-src/pages/tag.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'nuldoc-src/pages/tag.ts') diff --git a/nuldoc-src/pages/tag.ts b/nuldoc-src/pages/tag.ts index c0b6262..dd7a5c0 100644 --- a/nuldoc-src/pages/tag.ts +++ b/nuldoc-src/pages/tag.ts @@ -4,7 +4,8 @@ import { pageLayout } from "../components/page_layout.ts"; import { Config } from "../config.ts"; import { el, text } from "../dom.ts"; import { Page } from "../page.ts"; -import { getPostCreatedDate, getPostUpdatedDate, PostPage } from "./post.ts"; +import { getPostCreatedDate, getPostUpdatedDate } from "./post.ts"; +import { TaggedPage } from "./tagged_page.ts"; export interface TagPage extends Page { tagSlug: string; @@ -13,7 +14,7 @@ export interface TagPage extends Page { export async function generateTagPage( tagSlug: string, - posts: PostPage[], + pages: TaggedPage[], config: Config, ): Promise { const tagLabel = @@ -28,22 +29,22 @@ export async function generateTagPage( "main", [["class", "main"]], el("header", [["class", "page-header"]], el("h1", [], text(pageTitle))), - ...posts.map((post) => + ...pages.map((page) => el( "article", [["class", "post-entry"]], el( "a", - [["href", post.href]], + [["href", page.href]], el( "header", [["class", "entry-header"]], - el("h2", [], text(post.title)), + el("h2", [], text("event" in page ? `登壇: ${page.event} (${page.talkType})` : page.title)), ), el( "section", [["class", "entry-content"]], - el("p", [], text(post.summary)), + el("p", [], text("event" in page ? page.title : page.summary)), ), el( "footer", @@ -51,16 +52,16 @@ export async function generateTagPage( text("Posted on "), el( "time", - [["datetime", getPostCreatedDate(post)]], - text(getPostCreatedDate(post)), + [["datetime", getPostCreatedDate(page)]], + text(getPostCreatedDate(page)), ), - ...(post.revisions.length > 1 + ...(page.revisions.length > 1 ? [ text(", updated on "), el("time", [[ "datetime", - getPostUpdatedDate(post), - ]], text(getPostUpdatedDate(post))), + getPostUpdatedDate(page), + ]], text(getPostUpdatedDate(page))), ] : []), ), @@ -74,9 +75,9 @@ export async function generateTagPage( const html = await pageLayout( { metaCopyrightYear: parseInt( - getPostCreatedDate(posts[posts.length - 1]).substring(0, 4), + getPostCreatedDate(pages[pages.length - 1]).substring(0, 4), ), - metaDescription: `タグ「${tagLabel}」のついた記事一覧`, + metaDescription: `タグ「${tagLabel}」のついた記事またはスライドの一覧`, metaKeywords: [tagLabel], metaTitle: `${pageTitle} | ${config.blog.siteName}`, requiresSyntaxHighlight: false, -- cgit v1.2.3-70-g09d2