diff options
Diffstat (limited to 'nuldoc-src/templates/post_list.ts')
| -rw-r--r-- | nuldoc-src/templates/post_list.ts | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/nuldoc-src/templates/post_list.ts b/nuldoc-src/templates/post_list.ts deleted file mode 100644 index f75b8e1..0000000 --- a/nuldoc-src/templates/post_list.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { Document } from "../docbook/document.ts"; -import { Config } from "../config.ts"; -import { - el, - linkElement, - metaElement, - stylesheetLinkElement, - text, -} from "./utils.ts"; - -export default async function convertPostList( - posts: Document[], - config: Config, -): Promise<Document> { - const doc = new Document( - el("__root__", []), - "<postList>", - "/posts/", - "投稿一覧", - "投稿した記事の一覧", - [], - [], - ); - - const head = el( - "head", - [], - metaElement([["charset", "UTF-8"]]), - metaElement([["name", "viewport"], [ - "content", - "width=device-width, initial-scale=1.0", - ]]), - metaElement([["name", "author"], ["content", config.blog.author]]), - metaElement([["name", "copyright"], [ - "content", - `© ${config.blog.siteCopyrightYear} ${config.blog.author}`, - ]]), - metaElement([["name", "description"], ["content", doc.summary]]), - linkElement("icon", "/favicon.svg", "image/svg+xml"), - el("title", [], text(`${doc.title} | ${config.blog.siteName}`)), - await stylesheetLinkElement("/style.css", config), - ); - const body = el( - "body", - [["class", "list"]], - el( - "header", - [["class", "header"]], - el( - "nav", - [["class", "nav"]], - el( - "ul", - [], - el( - "li", - [["class", "logo"]], - el("a", [["href", "/"]], text(config.blog.siteName)), - ), - el( - "li", - [], - el("a", [["href", "/about"]], text("About")), - ), - el( - "li", - [], - el("a", [["href", "/posts"]], text("Posts")), - ), - el( - "li", - [], - el("a", [["href", "/slides"]], text("Slides")), - ), - ), - ), - ), - el( - "main", - [["class", "main"]], - el( - "header", - [["class", "page-header"]], - el( - "h1", - [], - text(doc.title), - ), - ), - ...Array.from(posts).sort((a, b) => { - const ta = a.getCreatedDate(); - const tb = b.getCreatedDate(); - if (ta > tb) return -1; - if (ta < tb) return 1; - return 0; - }).map((post) => - el( - "article", - [["class", "post-entry"]], - el( - "a", - [["href", post.link]], - el( - "header", - [["class", "entry-header"]], - el("h2", [], text(post.title)), - ), - el( - "section", - [["class", "entry-content"]], - el("p", [], text(post.summary)), - ), - el( - "footer", - [["class", "entry-footer"]], - text("Posted on"), - el( - "time", - [["datetime", post.getCreatedDate()]], - text(post.getCreatedDate()), - ), - ...(post.revisions.length > 1 - ? [ - text(", updated on "), - el("time", [[ - "datetime", - post.getUpdatedDate(), - ]], text(post.getUpdatedDate())), - ] - : []), - ), - ), - ) - ), - ), - el( - "footer", - [["class", "footer"]], - text( - `© ${config.blog.siteCopyrightYear} ${config.blog.author}`, - ), - ), - ); - const html = el( - "html", - [["lang", "ja-JP"]], - head, - body, - ); - - doc.root.children = [html]; - return doc; -} |
