summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-01-12 22:17:44 +0900
committernsfisis <nsfisis@gmail.com>2025-01-12 22:17:44 +0900
commitb14dd149e1b5f75bc494623181b19970ef830dec (patch)
treedfff5ee9b9a9e16680fda5cba36e5c817eda1f9e /vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx
parentaecf316775c995f089012d8fec5c5cc77f6300be (diff)
parent16182acfcc1fad2885b9c1a96fe74d8ce56a50e0 (diff)
downloadnsfisis.dev-b14dd149e1b5f75bc494623181b19970ef830dec.tar.gz
nsfisis.dev-b14dd149e1b5f75bc494623181b19970ef830dec.tar.zst
nsfisis.dev-b14dd149e1b5f75bc494623181b19970ef830dec.zip
Merge branch 'feature/blog-nuldoc-jsx'
Diffstat (limited to 'vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx')
-rw-r--r--vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx39
1 files changed, 39 insertions, 0 deletions
diff --git a/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx b/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx
new file mode 100644
index 00000000..d2cf9a17
--- /dev/null
+++ b/vhosts/blog/nuldoc-src/components/SlidePageEntry.tsx
@@ -0,0 +1,39 @@
+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>
+ );
+}