From 57315c52be96d2a2c013f0cfb0de5429980e301a Mon Sep 17 00:00:00 2001
From: nsfisis <nsfisis@gmail.com>
Date: Sun, 2 Nov 2025 17:49:34 +0900
Subject: refactor(blog): rename directory, services/{blog => nuldoc}/

---
 .../nuldoc-src/components/SlidePageEntry.tsx       | 46 ++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx

(limited to 'services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx')

diff --git a/services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx b/services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx
new file mode 100644
index 0000000..2401765
--- /dev/null
+++ b/services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx
@@ -0,0 +1,46 @@
+import {
+  getPostPublishedDate,
+  getPostUpdatedDate,
+  postHasAnyUpdates,
+} from "../generators/post.ts";
+import { SlidePage } from "../generators/slide.ts";
+import { dateToString } from "../revision.ts";
+import { Config } from "../config.ts";
+import TagList from "./TagList.tsx";
+
+type Props = { slide: SlidePage; config: Config };
+
+export default function SlidePageEntry({ slide, config }: Props) {
+  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) && " 更新"}
+          {slide.tags.length !== 0 && (
+            <TagList tags={slide.tags} config={config} />
+          )}
+        </footer>
+      </a>
+    </article>
+  );
+}
-- 
cgit v1.2.3-70-g09d2

