From 36e0a3f8486bb2a8b288694dcf460a75d0517f57 Mon Sep 17 00:00:00 2001
From: nsfisis
Date: Wed, 2 Jul 2025 00:15:42 +0900
Subject: feat(blog/nuldoc): show entry tags in list page
---
.../blog/nuldoc-src/components/PostPageEntry.tsx | 9 +-
.../blog/nuldoc-src/components/SlidePageEntry.tsx | 9 +-
services/blog/nuldoc-src/components/TagList.tsx | 18 +
services/blog/nuldoc-src/pages/PostListPage.tsx | 4 +-
services/blog/nuldoc-src/pages/SlideListPage.tsx | 4 +-
services/blog/nuldoc-src/pages/TagPage.tsx | 4 +-
services/blog/public/404.html | 2 +-
services/blog/public/about/index.html | 2 +-
services/blog/public/index.html | 2 +-
services/blog/public/posts/2/index.html | 80 +++-
.../posts/2021-03-05/my-first-post/index.html | 2 +-
.../posts/2021-03-30/phperkaigi-2021/index.html | 2 +-
.../index.html | 2 +-
.../python-unbound-local-error/index.html | 2 +-
.../ruby-detect-running-implementation/index.html | 2 +-
.../ruby-then-keyword-and-case-in/index.html | 2 +-
.../rust-where-are-primitive-types-from/index.html | 2 +-
.../index.html | 2 +-
.../vim-swap-order-of-selected-lines/index.html | 2 +-
.../2022-04-09/phperkaigi-2022-tokens/index.html | 2 +-
.../index.html | 2 +-
.../posts/2022-05-01/phperkaigi-2022/index.html | 2 +-
.../php-conference-okinawa-code-golf/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../phperkaigi-2023-unused-token-quiz-1/index.html | 2 +-
.../setup-server-for-this-site/index.html | 2 +-
.../phperkaigi-2023-unused-token-quiz-2/index.html | 2 +-
.../phperkaigi-2023-unused-token-quiz-3/index.html | 2 +-
.../rewrite-this-blog-generator/index.html | 2 +-
.../index.html | 2 +-
.../2023-04-04/phperkaigi-2023-report/index.html | 2 +-
.../2023-06-25/phpconfuk-2023-report/index.html | 2 +-
.../compile-php-runtime-to-wasm/index.html | 2 +-
.../index.html | 2 +-
.../public/posts/2023-12-03/isucon-13/index.html | 2 +-
.../posts/2023-12-31/2023-reflections/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../2024-02-10/yapcjapan-2024-report/index.html | 2 +-
.../2024-02-22/phpkansai-2024-report/index.html | 2 +-
.../2024-03-17/phperkaigi-2024-report/index.html | 2 +-
.../posts/2024-03-20/my-bucket-list/index.html | 2 +-
.../phpcon-odawara-2024-report/index.html | 2 +-
.../pipefail-option-in-gitlab-ci-cd/index.html | 2 +-
.../index.html | 2 +-
.../2024-05-11/phpconkagawa-2024-report/index.html | 2 +-
.../2024-06-19/scalamatsuri-2024-report/index.html | 2 +-
.../reparojson-fix-only-json-formatter/index.html | 2 +-
.../index.html | 2 +-
.../posts/2024-09-28/mncore-challenge-1/index.html | 2 +-
.../posts/2024-12-04/cohackpp-report/index.html | 2 +-
.../posts/2024-12-33/2024-reflections/index.html | 2 +-
.../phperkaigi-2023-tokens-q1/index.html | 2 +-
.../index.html | 2 +-
.../phpcon-nagoya-2025-report/index.html | 2 +-
.../index.html | 2 +-
.../http-1-1-send-multiple-same-headers/index.html | 2 +-
.../trick-2025-most-ruby-on-ruby-award/index.html | 2 +-
.../index.html | 2 +-
.../make-tiny-self-hosted-c-compiler/index.html | 2 +-
.../public/posts/2025-06-14/baba-is-you/index.html | 2 +-
services/blog/public/posts/3/index.html | 80 +++-
services/blog/public/posts/4/index.html | 58 ++-
services/blog/public/posts/5/index.html | 68 +++-
services/blog/public/posts/6/index.html | 13 +-
services/blog/public/posts/index.html | 77 +++-
.../2023-01-18/phpstudy-tokyo-148/index.html | 2 +-
.../2023-02-15/phpstudy-tokyo-149/index.html | 2 +-
.../2023-03-15/phpstudy-tokyo-150/index.html | 2 +-
.../slides/2023-03-24/phperkaigi-2023/index.html | 2 +-
.../2023-03-25/phperkaigi-2023-tokens/index.html | 2 +-
.../2023-04-12/phpstudy-tokyo-151/index.html | 2 +-
.../2023-06-21/phpstudy-tokyo-153/index.html | 2 +-
.../2023-06-23/phpconfuk-2023-eve/index.html | 2 +-
.../2023-07-26/phpstudy-tokyo-154/index.html | 2 +-
.../2023-08-24/phpstudy-tokyo-155/index.html | 2 +-
.../2023-10-25/phpstudy-tokyo-157/index.html | 2 +-
.../2024-01-24/phpstudy-tokyo-160/index.html | 2 +-
.../slides/2024-03-08/phperkaigi-2024/index.html | 2 +-
.../public/slides/2024-03-15/ya8-2024/index.html | 2 +-
.../2024-04-13/phpcon-odawara-2024/index.html | 2 +-
.../2024-04-25/phpstudy-tokyo-163/index.html | 2 +-
.../2024-07-18/phpstudy-tokyo-166/index.html | 2 +-
.../2024-10-30/phpstudy-tokyo-169/index.html | 2 +-
.../public/slides/2024-11-30/cohackpp/index.html | 2 +-
.../2025-02-22/phpcon-nagoya-2025/index.html | 2 +-
.../slides/2025-03-23/phperkaigi-2025/index.html | 2 +-
.../2025-04-12/phpcon-odawara-2025/index.html | 2 +-
services/blog/public/slides/index.html | 205 ++++++++++-
services/blog/public/style.css | 7 +
services/blog/public/tags/c/index.html | 7 +-
services/blog/public/tags/ci-cd/index.html | 10 +-
services/blog/public/tags/cohackpp/index.html | 18 +-
services/blog/public/tags/composer/index.html | 24 +-
services/blog/public/tags/conference/index.html | 264 +++++++++++++-
services/blog/public/tags/cpp/index.html | 10 +-
services/blog/public/tags/cpp17/index.html | 10 +-
services/blog/public/tags/game/index.html | 7 +-
services/blog/public/tags/gitlab/index.html | 10 +-
services/blog/public/tags/go/index.html | 7 +-
services/blog/public/tags/http/index.html | 7 +-
services/blog/public/tags/index.html | 2 +-
services/blog/public/tags/isucon/index.html | 7 +-
services/blog/public/tags/macos/index.html | 13 +-
.../blog/public/tags/mncore-challenge/index.html | 7 +-
services/blog/public/tags/neovim/index.html | 18 +-
services/blog/public/tags/note-to-self/index.html | 20 +-
services/blog/public/tags/ouj/index.html | 7 +-
services/blog/public/tags/perl/index.html | 13 +-
services/blog/public/tags/php/index.html | 404 ++++++++++++++++++++-
services/blog/public/tags/phpcon-nagoya/index.html | 24 +-
.../blog/public/tags/phpcon-odawara/index.html | 35 +-
services/blog/public/tags/phpconfuk/index.html | 21 +-
services/blog/public/tags/phpconkagawa/index.html | 13 +-
services/blog/public/tags/phpconokinawa/index.html | 13 +-
services/blog/public/tags/phperkaigi/index.html | 142 +++++++-
services/blog/public/tags/phpkansai/index.html | 13 +-
.../blog/public/tags/phpstudy-tokyo/index.html | 98 ++++-
services/blog/public/tags/piet/index.html | 16 +-
services/blog/public/tags/python/index.html | 10 +-
services/blog/public/tags/python3/index.html | 10 +-
services/blog/public/tags/ruby/index.html | 29 +-
services/blog/public/tags/ruby3/index.html | 10 +-
services/blog/public/tags/rubykaigi/index.html | 16 +-
services/blog/public/tags/rust/index.html | 7 +-
services/blog/public/tags/scala/index.html | 13 +-
services/blog/public/tags/scalamatsuri/index.html | 13 +-
services/blog/public/tags/trick/index.html | 16 +-
services/blog/public/tags/vim/index.html | 20 +-
services/blog/public/tags/wasm/index.html | 35 +-
services/blog/public/tags/wireguard/index.html | 10 +-
services/blog/public/tags/ya8/index.html | 13 +-
services/blog/public/tags/yaml/index.html | 7 +-
services/blog/public/tags/yapc/index.html | 13 +-
services/blog/public/tags/zsh/index.html | 13 +-
services/blog/static/style.css | 7 +
137 files changed, 2137 insertions(+), 135 deletions(-)
create mode 100644 services/blog/nuldoc-src/components/TagList.tsx
(limited to 'services/blog')
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 (
@@ -32,6 +36,9 @@ export default function PostPageEntry({ post }: { post: PostPage }) {
)}
{postHasAnyUpdates(post) && " 更新"}
+ {post.tags.length !== 0 && (
+
+ )}
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 (
@@ -32,6 +36,9 @@ export default function SlidePageEntry({ slide }: { slide: SlidePage }) {
)}
{postHasAnyUpdates(slide) && " 更新"}
+ {slide.tags.length !== 0 && (
+
+ )}
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 (
+
+ {tags.map((slug) => (
+ -
+ {getTagLabel(config, slug)}
+
+ ))}
+
+ );
+}
diff --git a/services/blog/nuldoc-src/pages/PostListPage.tsx b/services/blog/nuldoc-src/pages/PostListPage.tsx
index 054955e6..b825f69d 100644
--- a/services/blog/nuldoc-src/pages/PostListPage.tsx
+++ b/services/blog/nuldoc-src/pages/PostListPage.tsx
@@ -39,7 +39,9 @@ export default function PostListPage(
basePath="/posts/"
/>
- {posts.map((post) => )}
+ {posts.map((post) => (
+
+ ))}
tb) return -1;
if (ta < tb) return 1;
return 0;
- }).map((slide) => )}
+ }).map((slide) => (
+
+ ))}