summaryrefslogtreecommitdiffhomepage
path: root/services/blog/nuldoc-src/components
diff options
context:
space:
mode:
Diffstat (limited to 'services/blog/nuldoc-src/components')
-rw-r--r--services/blog/nuldoc-src/components/PostPageEntry.tsx9
-rw-r--r--services/blog/nuldoc-src/components/SlidePageEntry.tsx9
-rw-r--r--services/blog/nuldoc-src/components/TagList.tsx18
3 files changed, 34 insertions, 2 deletions
diff --git a/services/blog/nuldoc-src/components/PostPageEntry.tsx b/services/blog/nuldoc-src/components/PostPageEntry.tsx
index 2708b009..23ca88ac 100644
--- a/services/blog/nuldoc-src/components/PostPageEntry.tsx
+++ b/services/blog/nuldoc-src/components/PostPageEntry.tsx
@@ -5,8 +5,12 @@ import {
PostPage,
} from "../generators/post.ts";
import { dateToString } from "../revision.ts";
+import { Config } from "../config.ts";
+import TagList from "./TagList.tsx";
-export default function PostPageEntry({ post }: { post: PostPage }) {
+type Props = { post: PostPage; config: Config };
+
+export default function PostPageEntry({ post, config }: Props) {
return (
<article className="post-entry">
<a href={post.href}>
@@ -32,6 +36,9 @@ export default function PostPageEntry({ post }: { post: PostPage }) {
</time>
)}
{postHasAnyUpdates(post) && " 更新"}
+ {post.tags.length !== 0 && (
+ <TagList tags={post.tags} config={config} />
+ )}
</footer>
</a>
</article>
diff --git a/services/blog/nuldoc-src/components/SlidePageEntry.tsx b/services/blog/nuldoc-src/components/SlidePageEntry.tsx
index d2cf9a17..24017650 100644
--- a/services/blog/nuldoc-src/components/SlidePageEntry.tsx
+++ b/services/blog/nuldoc-src/components/SlidePageEntry.tsx
@@ -5,8 +5,12 @@ import {
} 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";
-export default function SlidePageEntry({ slide }: { slide: SlidePage }) {
+type Props = { slide: SlidePage; config: Config };
+
+export default function SlidePageEntry({ slide, config }: Props) {
return (
<article className="post-entry">
<a href={slide.href}>
@@ -32,6 +36,9 @@ export default function SlidePageEntry({ slide }: { slide: SlidePage }) {
</time>
)}
{postHasAnyUpdates(slide) && " 更新"}
+ {slide.tags.length !== 0 && (
+ <TagList tags={slide.tags} config={config} />
+ )}
</footer>
</a>
</article>
diff --git a/services/blog/nuldoc-src/components/TagList.tsx b/services/blog/nuldoc-src/components/TagList.tsx
new file mode 100644
index 00000000..86ee70bc
--- /dev/null
+++ b/services/blog/nuldoc-src/components/TagList.tsx
@@ -0,0 +1,18 @@
+import { Config, getTagLabel } from "../config.ts";
+
+type Props = {
+ tags: string[];
+ config: Config;
+};
+
+export default function TagList({ tags, config }: Props) {
+ return (
+ <ul className="entry-tags">
+ {tags.map((slug) => (
+ <li className="tag" key={slug}>
+ {getTagLabel(config, slug)}
+ </li>
+ ))}
+ </ul>
+ );
+}