diff options
Diffstat (limited to 'nuldoc-src/templates/post.ts')
| -rw-r--r-- | nuldoc-src/templates/post.ts | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/nuldoc-src/templates/post.ts b/nuldoc-src/templates/post.ts deleted file mode 100644 index 51b9aa9..0000000 --- a/nuldoc-src/templates/post.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { Element } from "../dom.ts"; -import { Document } from "../docbook/document.ts"; -import { Config } from "../config.ts"; -import { - el, - linkElement, - metaElement, - stylesheetLinkElement, - text, -} from "./utils.ts"; - -export default async function convertPost( - doc: Document, - config: Config, -): Promise<Document> { - const headChildren = [ - 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", - `© ${doc.getCreatedDate().substring(0, 4)} ${config.blog.author}`, - ]]), - metaElement([["name", "description"], ["content", doc.summary]]), - ]; - if (doc.tags.length !== 0) { - headChildren.push( - metaElement([["name", "keywords"], [ - "content", - doc.tags.map((slug) => - (config.blog.tagLabels as { [key: string]: string })[slug] - ).join(","), - ]]), - ); - } - headChildren.push(linkElement("icon", "/favicon.svg", "image/svg+xml")); - headChildren.push( - el("title", [], text(`${doc.title} | ${config.blog.siteName}`)), - ); - headChildren.push(await stylesheetLinkElement("/style.css", config)); - headChildren.push(await stylesheetLinkElement("/hl.css", config)); - const head = el("head", [], ...headChildren); - const body = el( - "body", - [["class", "single"]], - 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( - "article", - [["class", "post-single"]], - el( - "header", - [["class", "post-header"]], - el( - "h1", - [["class", "post-title"]], - text(doc.title), - ), - ...(doc.tags.length === 0 ? [] : [ - el( - "ul", - [["class", "post-tags"]], - ...doc.tags.map((slug) => - el( - "li", - [["class", "tag"]], - el( - "a", - [["href", `/tags/${slug}`]], - text( - (config.blog.tagLabels as { - [key: string]: string; - })[slug], - ), - ), - ) - ), - ), - ]), - ), - el( - "div", - [["class", "post-content"]], - el( - "section", - [], - el( - "h2", - [["id", "changelog"]], - text("更新履歴"), - ), - el( - "ol", - [], - ...doc.revisions.map((rev) => - el( - "li", - [["class", "revision"]], - el( - "time", - [["datetime", rev.date]], - text(rev.date), - ), - text(`: ${rev.remark}`), - ) - ), - ), - ), - // TODO: refactor - ...(doc.root.children[0] as Element).children, - // TODO: footnotes - // <div id="footnotes"> - // <% for footnote in footnotes %> - // <div class="footnote" id="_footnotedef_<%= footnote.index %>"> - // <a href="#_footnoteref_<%= footnote.index %>"><%= footnote.index %></a>. <%= footnote.text %> - // </div> - // <% end %> - // </div> - ), - ), - ), - el( - "footer", - [["class", "footer"]], - text( - `© ${config.blog.siteCopyrightYear} ${config.blog.author}`, - ), - ), - ); - const html = el( - "html", - [["lang", "ja-JP"]], - head, - body, - ); - doc.root = el("__root__", [], html); - return doc; -} |
