diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-06-27 23:39:31 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-06-27 23:39:31 +0900 |
| commit | 674fe965550444db87edc7937ff6932e1a918d9d (patch) | |
| tree | e8a80dd958d3e082485286bf5785a7992b6e6b0e /vhosts/blog/nuldoc-src/components | |
| parent | fe4d1d625b53796c5f20399790e5ff8c7a7e1608 (diff) | |
| download | nsfisis.dev-674fe965550444db87edc7937ff6932e1a918d9d.tar.gz nsfisis.dev-674fe965550444db87edc7937ff6932e1a918d9d.tar.zst nsfisis.dev-674fe965550444db87edc7937ff6932e1a918d9d.zip | |
feat(meta): rename vhosts/ directory to services/
Diffstat (limited to 'vhosts/blog/nuldoc-src/components')
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/GlobalFooter.tsx | 9 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/GlobalHeader.tsx | 27 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/PageLayout.tsx | 61 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/Pagination.tsx | 45 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/PostPageEntry.tsx | 39 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx | 39 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/StaticScript.tsx | 18 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/StaticStylesheet.tsx | 11 | ||||
| -rw-r--r-- | vhosts/blog/nuldoc-src/components/utils.ts | 8 |
9 files changed, 0 insertions, 257 deletions
diff --git a/vhosts/blog/nuldoc-src/components/GlobalFooter.tsx b/vhosts/blog/nuldoc-src/components/GlobalFooter.tsx deleted file mode 100644 index 757beced..00000000 --- a/vhosts/blog/nuldoc-src/components/GlobalFooter.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Config } from "../config.ts"; - -export default function GlobalFooter({ config }: { config: Config }) { - return ( - <footer className="footer"> - {`© ${config.blog.siteCopyrightYear} ${config.blog.author}`} - </footer> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/GlobalHeader.tsx b/vhosts/blog/nuldoc-src/components/GlobalHeader.tsx deleted file mode 100644 index c0fa7e8b..00000000 --- a/vhosts/blog/nuldoc-src/components/GlobalHeader.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Config } from "../config.ts"; - -export default function GlobalHeader({ config }: { config: Config }) { - return ( - <header className="header"> - <div className="site-logo"> - <a href="/">{config.blog.siteName}</a> - </div> - <nav className="nav"> - <ul> - <li> - <a href="/about/">About</a> - </li> - <li> - <a href="/posts/">Posts</a> - </li> - <li> - <a href="/slides/">Slides</a> - </li> - <li> - <a href="/tags/">Tags</a> - </li> - </ul> - </nav> - </header> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/PageLayout.tsx b/vhosts/blog/nuldoc-src/components/PageLayout.tsx deleted file mode 100644 index 1cd0aebf..00000000 --- a/vhosts/blog/nuldoc-src/components/PageLayout.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { Config } from "../config.ts"; -import { JSXNode } from "myjsx/jsx-runtime"; -import StaticStylesheet from "./StaticStylesheet.tsx"; - -type Props = { - metaCopyrightYear: number; - metaDescription: string; - metaKeywords?: string[]; - metaTitle: string; - metaAtomFeedHref?: string; - requiresSyntaxHighlight?: boolean; - config: Config; - children: JSXNode; -}; - -export default function PageLayout( - { - metaCopyrightYear, - metaDescription, - metaKeywords, - metaTitle, - metaAtomFeedHref, - requiresSyntaxHighlight: _, - config, - children, - }: Props, -) { - return ( - <html lang="ja-JP"> - <head> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="author" content={config.blog.author} /> - <meta - name="copyright" - content={`© ${metaCopyrightYear} ${config.blog.author}`} - /> - <meta name="description" content={metaDescription} /> - {metaKeywords && metaKeywords.length !== 0 && - <meta name="keywords" content={metaKeywords.join(",")} />} - <meta property="og:type" content="article" /> - <meta property="og:title" content={metaTitle} /> - <meta property="og:description" content={metaDescription} /> - <meta property="og:site_name" content={config.blog.siteName} /> - <meta property="og:locale" content="ja_JP" /> - {metaAtomFeedHref && - ( - <link - rel="alternate" - href={metaAtomFeedHref} - type="application/atom+xml" - /> - )} - <link rel="icon" href="/favicon.svg" type="image/svg+xml" /> - <title>{metaTitle}</title> - <StaticStylesheet fileName="/style.css" config={config} /> - </head> - {children} - </html> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/Pagination.tsx b/vhosts/blog/nuldoc-src/components/Pagination.tsx deleted file mode 100644 index 5527c924..00000000 --- a/vhosts/blog/nuldoc-src/components/Pagination.tsx +++ /dev/null @@ -1,45 +0,0 @@ -type Props = { - currentPage: number; - totalPages: number; - basePath: string; -}; - -export default function Pagination( - { currentPage, totalPages, basePath }: Props, -) { - if (totalPages <= 1) { - return <div></div>; - } - - const prevPage = currentPage > 1 ? currentPage - 1 : null; - const nextPage = currentPage < totalPages ? currentPage + 1 : null; - - const prevHref = prevPage === 1 ? basePath : `${basePath}${prevPage}/`; - const nextHref = `${basePath}${nextPage}/`; - - return ( - <nav className="pagination"> - <div className="pagination-prev"> - {prevPage - ? ( - <a href={prevHref}> - 前のページ - </a> - ) - : null} - </div> - <div className="pagination-info"> - {String(currentPage)} / {String(totalPages)} - </div> - <div className="pagination-next"> - {nextPage - ? ( - <a href={nextHref}> - 次のページ - </a> - ) - : null} - </div> - </nav> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/PostPageEntry.tsx b/vhosts/blog/nuldoc-src/components/PostPageEntry.tsx deleted file mode 100644 index 2708b009..00000000 --- a/vhosts/blog/nuldoc-src/components/PostPageEntry.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { - getPostPublishedDate, - getPostUpdatedDate, - postHasAnyUpdates, - PostPage, -} from "../generators/post.ts"; -import { dateToString } from "../revision.ts"; - -export default function PostPageEntry({ post }: { post: PostPage }) { - return ( - <article className="post-entry"> - <a href={post.href}> - <header className="entry-header"> - <h2>{post.title}</h2> - </header> - <section className="entry-content"> - <p>{post.description}</p> - </section> - <footer className="entry-footer"> - <time datetime={dateToString(getPostPublishedDate(post))}> - {dateToString(getPostPublishedDate(post))} - </time> - {" 投稿"} - { - // TODO(jsx): support Fragment and merge them. - postHasAnyUpdates(post) && "、" - } - {postHasAnyUpdates(post) && - ( - <time datetime={dateToString(getPostUpdatedDate(post))}> - {dateToString(getPostUpdatedDate(post))} - </time> - )} - {postHasAnyUpdates(post) && " 更新"} - </footer> - </a> - </article> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx b/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx deleted file mode 100644 index d2cf9a17..00000000 --- a/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { - getPostPublishedDate, - getPostUpdatedDate, - postHasAnyUpdates, -} from "../generators/post.ts"; -import { SlidePage } from "../generators/slide.ts"; -import { dateToString } from "../revision.ts"; - -export default function SlidePageEntry({ slide }: { slide: SlidePage }) { - return ( - <article className="post-entry"> - <a href={slide.href}> - <header className="entry-header"> - <h2>{slide.description}</h2> - </header> - <section className="entry-content"> - <p>{slide.title}</p> - </section> - <footer className="entry-footer"> - <time datetime={dateToString(getPostPublishedDate(slide))}> - {dateToString(getPostPublishedDate(slide))} - </time> - {" 登壇"} - { - // TODO(jsx): support Fragment and merge them. - postHasAnyUpdates(slide) && "、" - } - {postHasAnyUpdates(slide) && - ( - <time datetime={dateToString(getPostUpdatedDate(slide))}> - {dateToString(getPostUpdatedDate(slide))} - </time> - )} - {postHasAnyUpdates(slide) && " 更新"} - </footer> - </a> - </article> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/StaticScript.tsx b/vhosts/blog/nuldoc-src/components/StaticScript.tsx deleted file mode 100644 index 0e3ab194..00000000 --- a/vhosts/blog/nuldoc-src/components/StaticScript.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { join } from "@std/path"; -import { Config } from "../config.ts"; -import { calculateFileHash } from "./utils.ts"; - -export default async function StaticScript( - { fileName, type, defer, config }: { - fileName: string; - type?: string; - defer?: "true"; - config: Config; - }, -) { - const filePath = join(Deno.cwd(), config.locations.staticDir, fileName); - const hash = await calculateFileHash(filePath); - return ( - <script src={`${fileName}?h=${hash}`} type={type} defer={defer}></script> - ); -} diff --git a/vhosts/blog/nuldoc-src/components/StaticStylesheet.tsx b/vhosts/blog/nuldoc-src/components/StaticStylesheet.tsx deleted file mode 100644 index 52b695e5..00000000 --- a/vhosts/blog/nuldoc-src/components/StaticStylesheet.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { join } from "@std/path"; -import { Config } from "../config.ts"; -import { calculateFileHash } from "./utils.ts"; - -export default async function StaticStylesheet( - { fileName, config }: { fileName: string; config: Config }, -) { - const filePath = join(Deno.cwd(), config.locations.staticDir, fileName); - const hash = await calculateFileHash(filePath); - return <link rel="stylesheet" href={`${fileName}?h=${hash}`} />; -} diff --git a/vhosts/blog/nuldoc-src/components/utils.ts b/vhosts/blog/nuldoc-src/components/utils.ts deleted file mode 100644 index 14059b5b..00000000 --- a/vhosts/blog/nuldoc-src/components/utils.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Hash } from "checksum/mod.ts"; - -export async function calculateFileHash( - filePath: string, -): Promise<string> { - const content = await Deno.readFile(filePath); - return new Hash("md5").digest(content).hex(); -} |
