summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/nuldoc-src/components
diff options
context:
space:
mode:
Diffstat (limited to 'vhosts/blog/nuldoc-src/components')
-rw-r--r--vhosts/blog/nuldoc-src/components/GlobalFooter.tsx9
-rw-r--r--vhosts/blog/nuldoc-src/components/GlobalHeader.tsx27
-rw-r--r--vhosts/blog/nuldoc-src/components/PageLayout.tsx61
-rw-r--r--vhosts/blog/nuldoc-src/components/Pagination.tsx45
-rw-r--r--vhosts/blog/nuldoc-src/components/PostPageEntry.tsx39
-rw-r--r--vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx39
-rw-r--r--vhosts/blog/nuldoc-src/components/StaticScript.tsx18
-rw-r--r--vhosts/blog/nuldoc-src/components/StaticStylesheet.tsx11
-rw-r--r--vhosts/blog/nuldoc-src/components/utils.ts8
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">
- {`&copy; ${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={`&copy; ${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();
-}