diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-11-02 17:49:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-11-02 17:49:34 +0900 |
| commit | 57315c52be96d2a2c013f0cfb0de5429980e301a (patch) | |
| tree | 5d691497772fddfe401cd970ead4e9a74b34ef38 /services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx | |
| parent | cf4091a93ed831456e8b30e2a9e1fc2650dcae02 (diff) | |
| download | nsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.tar.gz nsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.tar.zst nsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.zip | |
refactor(blog): rename directory, services/{blog => nuldoc}/
Diffstat (limited to 'services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx')
| -rw-r--r-- | services/nuldoc/nuldoc-src/components/SlidePageEntry.tsx | 46 |
1 files changed, 46 insertions, 0 deletions
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> + ); +} |
