From e0a8e1b595dd5a636f49edce7c08b2fd12c1e452 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 21 Jun 2025 15:03:29 +0900 Subject: feat(blog/nuldoc): implement pagination --- vhosts/blog/nginx.conf | 6 +- vhosts/blog/nuldoc-src/commands/build.ts | 20 +- vhosts/blog/nuldoc-src/components/Pagination.tsx | 45 ++ vhosts/blog/nuldoc-src/config.ts | 1 + vhosts/blog/nuldoc-src/generators/post_list.ts | 48 +- vhosts/blog/nuldoc-src/pages/PostListPage.tsx | 37 +- vhosts/blog/nuldoc.toml | 1 + vhosts/blog/public/404.html | 2 +- vhosts/blog/public/about/index.html | 2 +- vhosts/blog/public/index.html | 2 +- vhosts/blog/public/posts/2/index.html | 222 +++++++ .../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 +- vhosts/blog/public/posts/3/index.html | 222 +++++++ vhosts/blog/public/posts/4/index.html | 222 +++++++ vhosts/blog/public/posts/5/index.html | 222 +++++++ vhosts/blog/public/posts/6/index.html | 100 ++++ vhosts/blog/public/posts/index.html | 662 +-------------------- .../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 +- vhosts/blog/public/slides/index.html | 2 +- vhosts/blog/public/style.css | 51 ++ vhosts/blog/public/tags/c/index.html | 2 +- vhosts/blog/public/tags/ci-cd/index.html | 2 +- vhosts/blog/public/tags/cohackpp/index.html | 2 +- vhosts/blog/public/tags/composer/index.html | 2 +- vhosts/blog/public/tags/conference/index.html | 2 +- vhosts/blog/public/tags/cpp/index.html | 2 +- vhosts/blog/public/tags/cpp17/index.html | 2 +- vhosts/blog/public/tags/game/index.html | 2 +- vhosts/blog/public/tags/gitlab/index.html | 2 +- vhosts/blog/public/tags/go/index.html | 2 +- vhosts/blog/public/tags/http/index.html | 2 +- vhosts/blog/public/tags/index.html | 2 +- vhosts/blog/public/tags/isucon/index.html | 2 +- vhosts/blog/public/tags/macos/index.html | 2 +- .../blog/public/tags/mncore-challenge/index.html | 2 +- vhosts/blog/public/tags/neovim/index.html | 2 +- vhosts/blog/public/tags/note-to-self/index.html | 2 +- vhosts/blog/public/tags/ouj/index.html | 2 +- vhosts/blog/public/tags/perl/index.html | 2 +- vhosts/blog/public/tags/php/index.html | 2 +- vhosts/blog/public/tags/phpcon-nagoya/index.html | 2 +- vhosts/blog/public/tags/phpcon-odawara/index.html | 2 +- vhosts/blog/public/tags/phpconfuk/index.html | 2 +- vhosts/blog/public/tags/phpconkagawa/index.html | 2 +- vhosts/blog/public/tags/phpconokinawa/index.html | 2 +- vhosts/blog/public/tags/phperkaigi/index.html | 2 +- vhosts/blog/public/tags/phpkansai/index.html | 2 +- vhosts/blog/public/tags/phpstudy-tokyo/index.html | 2 +- vhosts/blog/public/tags/piet/index.html | 2 +- vhosts/blog/public/tags/python/index.html | 2 +- vhosts/blog/public/tags/python3/index.html | 2 +- vhosts/blog/public/tags/ruby/index.html | 2 +- vhosts/blog/public/tags/ruby3/index.html | 2 +- vhosts/blog/public/tags/rubykaigi/index.html | 2 +- vhosts/blog/public/tags/rust/index.html | 2 +- vhosts/blog/public/tags/scala/index.html | 2 +- vhosts/blog/public/tags/scalamatsuri/index.html | 2 +- vhosts/blog/public/tags/trick/index.html | 2 +- vhosts/blog/public/tags/vim/index.html | 2 +- vhosts/blog/public/tags/wasm/index.html | 2 +- vhosts/blog/public/tags/wireguard/index.html | 2 +- vhosts/blog/public/tags/ya8/index.html | 2 +- vhosts/blog/public/tags/yaml/index.html | 2 +- vhosts/blog/public/tags/yapc/index.html | 2 +- vhosts/blog/public/tags/zsh/index.html | 2 +- vhosts/blog/static/style.css | 51 ++ 138 files changed, 1376 insertions(+), 780 deletions(-) create mode 100644 vhosts/blog/nuldoc-src/components/Pagination.tsx create mode 100644 vhosts/blog/public/posts/2/index.html create mode 100644 vhosts/blog/public/posts/3/index.html create mode 100644 vhosts/blog/public/posts/4/index.html create mode 100644 vhosts/blog/public/posts/5/index.html create mode 100644 vhosts/blog/public/posts/6/index.html (limited to 'vhosts') diff --git a/vhosts/blog/nginx.conf b/vhosts/blog/nginx.conf index 7cc8bda1..eb1d9136 100644 --- a/vhosts/blog/nginx.conf +++ b/vhosts/blog/nginx.conf @@ -18,7 +18,10 @@ server { error_page 404 /404.html; - # Old URLs. + # Redirect to canonical path. + rewrite ^/posts/1/?$ /posts/ permanent; + + # Old URL patterns. rewrite ^/posts/(my-first-post)/?$ /posts/2021-03-05/$1/ permanent; rewrite ^/posts/(phperkaigi-2021)/?$ /posts/2021-03-30/$1/ permanent; rewrite ^/posts/(cpp-you-can-use-keywords-in-attributes)/?$ /posts/2021-10-02/$1/ permanent; @@ -33,5 +36,6 @@ server { # I mistakenly wrote 2023 in the URL instead of 2024. rewrite ^/posts/2023-01-10/(neovim-insert-namespace-declaration-to-empty-php-file)/?$ /posts/2024-01-10/$1/ permanent; + # Renamed posts. rewrite ^/posts/2024-03-20/todos-in-my-life/?$ /posts/2024-03-20/my-bucket-list/ permanent; } diff --git a/vhosts/blog/nuldoc-src/commands/build.ts b/vhosts/blog/nuldoc-src/commands/build.ts index 52aca1f7..3f765441 100644 --- a/vhosts/blog/nuldoc-src/commands/build.ts +++ b/vhosts/blog/nuldoc-src/commands/build.ts @@ -14,7 +14,7 @@ import { getPostPublishedDate, PostPage, } from "../generators/post.ts"; -import { generatePostListPage } from "../generators/post_list.ts"; +import { generatePostListPages } from "../generators/post_list.ts"; import { generateSlidePage, SlidePage } from "../generators/slide.ts"; import { generateSlideListPage } from "../generators/slide_list.ts"; import { generateTagPage, TagPage } from "../generators/tag.ts"; @@ -70,10 +70,22 @@ async function parsePosts( } async function buildPostListPage(posts: PostPage[], config: Config) { - const postListPage = await generatePostListPage(posts, config); - await writePage(postListPage, config); + // Sort posts by published date (newest first) + const sortedPosts = [...posts].sort((a, b) => { + const ta = dateToString(getPostPublishedDate(a)); + const tb = dateToString(getPostPublishedDate(b)); + if (ta > tb) return -1; + if (ta < tb) return 1; + return 0; + }); + + const postListPages = await generatePostListPages(sortedPosts, config); + for (const page of postListPages) { + await writePage(page, config); + } + const postFeedPage = await generateFeedPageFromEntries( - postListPage.href, + "/posts/", "posts", `投稿一覧|${config.blog.siteName}`, posts, diff --git a/vhosts/blog/nuldoc-src/components/Pagination.tsx b/vhosts/blog/nuldoc-src/components/Pagination.tsx new file mode 100644 index 00000000..5527c924 --- /dev/null +++ b/vhosts/blog/nuldoc-src/components/Pagination.tsx @@ -0,0 +1,45 @@ +type Props = { + currentPage: number; + totalPages: number; + basePath: string; +}; + +export default function Pagination( + { currentPage, totalPages, basePath }: Props, +) { + if (totalPages <= 1) { + return
; + } + + const prevPage = currentPage > 1 ? currentPage - 1 : null; + const nextPage = currentPage < totalPages ? currentPage + 1 : null; + + const prevHref = prevPage === 1 ? basePath : `${basePath}${prevPage}/`; + const nextHref = `${basePath}${nextPage}/`; + + return ( + + ); +} diff --git a/vhosts/blog/nuldoc-src/config.ts b/vhosts/blog/nuldoc-src/config.ts index 5a07896f..adcb5632 100644 --- a/vhosts/blog/nuldoc-src/config.ts +++ b/vhosts/blog/nuldoc-src/config.ts @@ -18,6 +18,7 @@ const ConfigSchema = z.object({ fqdn: z.string(), siteName: z.string(), siteCopyrightYear: z.number(), + postsPerPage: z.number().default(10), tagLabels: z.record(z.string(), z.string()), }), }); diff --git a/vhosts/blog/nuldoc-src/generators/post_list.ts b/vhosts/blog/nuldoc-src/generators/post_list.ts index 67a4b996..b05f7ee6 100644 --- a/vhosts/blog/nuldoc-src/generators/post_list.ts +++ b/vhosts/blog/nuldoc-src/generators/post_list.ts @@ -6,18 +6,58 @@ import { PostPage } from "./post.ts"; export type PostListPage = Page; -export async function generatePostListPage( +export async function generatePostListPages( posts: PostPage[], config: Config, +): Promise { + const postsPerPage = config.blog.postsPerPage; + const totalPages = Math.ceil(posts.length / postsPerPage); + const pages: PostListPage[] = []; + + for (let pageIndex = 0; pageIndex < totalPages; pageIndex++) { + const pagePosts = posts.slice( + pageIndex * postsPerPage, + (pageIndex + 1) * postsPerPage, + ); + + const page = await generatePostListPage( + pagePosts, + config, + pageIndex + 1, + totalPages, + ); + + pages.push(page); + } + + return pages; +} + +async function generatePostListPage( + posts: PostPage[], + config: Config, + currentPage: number, + totalPages: number, ): Promise { const html = await renderToDOM( - PostListPage(posts, config), + PostListPage( + posts, + config, + currentPage, + totalPages, + ), ); + const destFilePath = currentPage === 1 + ? "/posts/index.html" + : `/posts/${currentPage}/index.html`; + + const href = currentPage === 1 ? "/posts/" : `/posts/${currentPage}/`; + return { root: html, renderer: "html", - destFilePath: "/posts/index.html", - href: "/posts/", + destFilePath, + href, }; } diff --git a/vhosts/blog/nuldoc-src/pages/PostListPage.tsx b/vhosts/blog/nuldoc-src/pages/PostListPage.tsx index c1c5214c..054955e6 100644 --- a/vhosts/blog/nuldoc-src/pages/PostListPage.tsx +++ b/vhosts/blog/nuldoc-src/pages/PostListPage.tsx @@ -1,22 +1,28 @@ import GlobalFooter from "../components/GlobalFooter.tsx"; import GlobalHeader from "../components/GlobalHeader.tsx"; import PageLayout from "../components/PageLayout.tsx"; +import Pagination from "../components/Pagination.tsx"; import PostPageEntry from "../components/PostPageEntry.tsx"; import { Config } from "../config.ts"; -import { dateToString } from "../revision.ts"; -import { getPostPublishedDate, PostPage } from "../generators/post.ts"; +import { PostPage } from "../generators/post.ts"; export default function PostListPage( posts: PostPage[], config: Config, + currentPage: number, + totalPages: number, ) { const pageTitle = "投稿一覧"; + const pageInfoSuffix = ` (${currentPage}ページ目)`; + const metaTitle = `${pageTitle}${pageInfoSuffix}|${config.blog.siteName}`; + const metaDescription = `投稿した記事の一覧${pageInfoSuffix}`; + return ( @@ -24,15 +30,22 @@ export default function PostListPage(
-

{pageTitle}

+

{pageTitle}{pageInfoSuffix}

- {Array.from(posts).sort((a, b) => { - const ta = dateToString(getPostPublishedDate(a)); - const tb = dateToString(getPostPublishedDate(b)); - if (ta > tb) return -1; - if (ta < tb) return 1; - return 0; - }).map((post) => )} + + + + {posts.map((post) => )} + +
diff --git a/vhosts/blog/nuldoc.toml b/vhosts/blog/nuldoc.toml index f9ed1fc2..99ade657 100644 --- a/vhosts/blog/nuldoc.toml +++ b/vhosts/blog/nuldoc.toml @@ -11,6 +11,7 @@ author = "nsfisis" fqdn = "blog.nsfisis.dev" siteName = "REPL: Rest-Eat-Program Loop" siteCopyrightYear = 2021 +postsPerPage = 10 [blog.tagLabels] c = "C" diff --git a/vhosts/blog/public/404.html b/vhosts/blog/public/404.html index 77336cae..4ec4d011 100644 --- a/vhosts/blog/public/404.html +++ b/vhosts/blog/public/404.html @@ -13,7 +13,7 @@ Page Not Found|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/about/index.html b/vhosts/blog/public/about/index.html index b19a49ed..82609ac7 100644 --- a/vhosts/blog/public/about/index.html +++ b/vhosts/blog/public/about/index.html @@ -13,7 +13,7 @@ About|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/index.html b/vhosts/blog/public/index.html index 2cc31b2b..576fdcbd 100644 --- a/vhosts/blog/public/index.html +++ b/vhosts/blog/public/index.html @@ -14,7 +14,7 @@ REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2/index.html b/vhosts/blog/public/posts/2/index.html new file mode 100644 index 00000000..9d03cad2 --- /dev/null +++ b/vhosts/blog/public/posts/2/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + 投稿一覧 (2ページ目)|REPL: Rest-Eat-Program Loop + + + +
+ + +
+
+ + + + + + + + + + + + + +
+
+ © 2021 nsfisis +
+ + diff --git a/vhosts/blog/public/posts/2021-03-05/my-first-post/index.html b/vhosts/blog/public/posts/2021-03-05/my-first-post/index.html index 89340459..f1a3bc89 100644 --- a/vhosts/blog/public/posts/2021-03-05/my-first-post/index.html +++ b/vhosts/blog/public/posts/2021-03-05/my-first-post/index.html @@ -13,7 +13,7 @@ My First Post|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-03-30/phperkaigi-2021/index.html b/vhosts/blog/public/posts/2021-03-30/phperkaigi-2021/index.html index 8459a549..6815783c 100644 --- a/vhosts/blog/public/posts/2021-03-30/phperkaigi-2021/index.html +++ b/vhosts/blog/public/posts/2021-03-30/phperkaigi-2021/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2021|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html b/vhosts/blog/public/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html index ff62c2e9..53bd4c70 100644 --- a/vhosts/blog/public/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html +++ b/vhosts/blog/public/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html @@ -14,7 +14,7 @@ 【C++】 属性構文の属性名にはキーワードが使える|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/python-unbound-local-error/index.html b/vhosts/blog/public/posts/2021-10-02/python-unbound-local-error/index.html index 0e8c595b..6b9c4172 100644 --- a/vhosts/blog/public/posts/2021-10-02/python-unbound-local-error/index.html +++ b/vhosts/blog/public/posts/2021-10-02/python-unbound-local-error/index.html @@ -14,7 +14,7 @@ 【Python】 クロージャとUnboundLocalError: local variable 'x' referenced before assignment|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/ruby-detect-running-implementation/index.html b/vhosts/blog/public/posts/2021-10-02/ruby-detect-running-implementation/index.html index d8effaf6..9af43f11 100644 --- a/vhosts/blog/public/posts/2021-10-02/ruby-detect-running-implementation/index.html +++ b/vhosts/blog/public/posts/2021-10-02/ruby-detect-running-implementation/index.html @@ -14,7 +14,7 @@ 【Ruby】 自身を実行している処理系の種類を判定する|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html b/vhosts/blog/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html index e8da5364..5d8600f3 100644 --- a/vhosts/blog/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html +++ b/vhosts/blog/public/posts/2021-10-02/ruby-then-keyword-and-case-in/index.html @@ -14,7 +14,7 @@ 【Ruby】 then キーワードと case in|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/rust-where-are-primitive-types-from/index.html b/vhosts/blog/public/posts/2021-10-02/rust-where-are-primitive-types-from/index.html index a480b6a4..840109c8 100644 --- a/vhosts/blog/public/posts/2021-10-02/rust-where-are-primitive-types-from/index.html +++ b/vhosts/blog/public/posts/2021-10-02/rust-where-are-primitive-types-from/index.html @@ -14,7 +14,7 @@ Rust のプリミティブ型はどこからやって来るか|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html b/vhosts/blog/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html index b35db7fb..b053944a 100644 --- a/vhosts/blog/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html +++ b/vhosts/blog/public/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html @@ -14,7 +14,7 @@ 【Vim】 autocmd events の BufWrite/BufWritePre の違い|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html b/vhosts/blog/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html index ffbc2abc..fcdbec23 100644 --- a/vhosts/blog/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html +++ b/vhosts/blog/public/posts/2021-10-02/vim-swap-order-of-selected-lines/index.html @@ -14,7 +14,7 @@ Vimで選択した行の順番を入れ替える|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html index 46ccdb89..ee215a60 100644 --- a/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html +++ b/vhosts/blog/public/posts/2022-04-09/phperkaigi-2022-tokens/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2022 トークン問題の解説|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal/index.html b/vhosts/blog/public/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal/index.html index 392de62d..0b8b6d14 100644 --- a/vhosts/blog/public/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal/index.html +++ b/vhosts/blog/public/posts/2022-04-24/term-banner-write-tool-showing-banner-in-terminal/index.html @@ -13,7 +13,7 @@ term-banner: ターミナルにバナーを表示するツールを書いた|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-05-01/phperkaigi-2022/index.html b/vhosts/blog/public/posts/2022-05-01/phperkaigi-2022/index.html index c87a9287..9e9613d5 100644 --- a/vhosts/blog/public/posts/2022-05-01/phperkaigi-2022/index.html +++ b/vhosts/blog/public/posts/2022-05-01/phperkaigi-2022/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2022|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html b/vhosts/blog/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html index 9c4eb273..5835615d 100644 --- a/vhosts/blog/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html +++ b/vhosts/blog/public/posts/2022-08-27/php-conference-okinawa-code-golf/index.html @@ -14,7 +14,7 @@ PHP カンファレンス沖縄で出題されたコードゴルフの問題を解いてみた|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-08-31/support-for-communty-is-employee-benefits/index.html b/vhosts/blog/public/posts/2022-08-31/support-for-communty-is-employee-benefits/index.html index bc097fa3..3f5c70e8 100644 --- a/vhosts/blog/public/posts/2022-08-31/support-for-communty-is-employee-benefits/index.html +++ b/vhosts/blog/public/posts/2022-08-31/support-for-communty-is-employee-benefits/index.html @@ -13,7 +13,7 @@ 弊社の PHP Foundation への寄付に寄せて|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html b/vhosts/blog/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html index 2f471ec7..ab8c9867 100644 --- a/vhosts/blog/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html +++ b/vhosts/blog/public/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line/index.html @@ -14,7 +14,7 @@ 【PHP】 fizzbuzz を書く。1行あたり2文字で。|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html b/vhosts/blog/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html index 270ca0c2..364bfb9c 100644 --- a/vhosts/blog/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html +++ b/vhosts/blog/public/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2023: ボツになったトークン問題 その 1|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html b/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html index 95b2d08d..8ca361a6 100644 --- a/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html +++ b/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html @@ -14,7 +14,7 @@ 【備忘録】 このサイト用の VPS をセットアップしたときのメモ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2/index.html b/vhosts/blog/public/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2/index.html index 5a97f3f7..551a3700 100644 --- a/vhosts/blog/public/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2/index.html +++ b/vhosts/blog/public/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2023: ボツになったトークン問題 その 2|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3/index.html b/vhosts/blog/public/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3/index.html index 48d04436..4999317a 100644 --- a/vhosts/blog/public/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3/index.html +++ b/vhosts/blog/public/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2023: ボツになったトークン問題 その 3|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-03-10/rewrite-this-blog-generator/index.html b/vhosts/blog/public/posts/2023-03-10/rewrite-this-blog-generator/index.html index a0e6c642..d70cf265 100644 --- a/vhosts/blog/public/posts/2023-03-10/rewrite-this-blog-generator/index.html +++ b/vhosts/blog/public/posts/2023-03-10/rewrite-this-blog-generator/index.html @@ -13,7 +13,7 @@ このブログのジェネレータを書き直した|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-04-01/implementation-of-minimal-png-image-encoder/index.html b/vhosts/blog/public/posts/2023-04-01/implementation-of-minimal-png-image-encoder/index.html index ff7e58c7..83d597ed 100644 --- a/vhosts/blog/public/posts/2023-04-01/implementation-of-minimal-png-image-encoder/index.html +++ b/vhosts/blog/public/posts/2023-04-01/implementation-of-minimal-png-image-encoder/index.html @@ -13,7 +13,7 @@ PNG 画像の最小構成エンコーダを実装する|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-04-04/phperkaigi-2023-report/index.html b/vhosts/blog/public/posts/2023-04-04/phperkaigi-2023-report/index.html index da788f05..2fb7421b 100644 --- a/vhosts/blog/public/posts/2023-04-04/phperkaigi-2023-report/index.html +++ b/vhosts/blog/public/posts/2023-04-04/phperkaigi-2023-report/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2023 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-06-25/phpconfuk-2023-report/index.html b/vhosts/blog/public/posts/2023-06-25/phpconfuk-2023-report/index.html index cba287cb..0ee28741 100644 --- a/vhosts/blog/public/posts/2023-06-25/phpconfuk-2023-report/index.html +++ b/vhosts/blog/public/posts/2023-06-25/phpconfuk-2023-report/index.html @@ -14,7 +14,7 @@ PHP カンファレンス福岡 2023 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-10-02/compile-php-runtime-to-wasm/index.html b/vhosts/blog/public/posts/2023-10-02/compile-php-runtime-to-wasm/index.html index bd286a6d..34070bf9 100644 --- a/vhosts/blog/public/posts/2023-10-02/compile-php-runtime-to-wasm/index.html +++ b/vhosts/blog/public/posts/2023-10-02/compile-php-runtime-to-wasm/index.html @@ -14,7 +14,7 @@ PHP の処理系を Emscripten で WebAssembly にコンパイルする|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-10-13/i-entered-the-open-university-of-japan/index.html b/vhosts/blog/public/posts/2023-10-13/i-entered-the-open-university-of-japan/index.html index 99656273..b7454af0 100644 --- a/vhosts/blog/public/posts/2023-10-13/i-entered-the-open-university-of-japan/index.html +++ b/vhosts/blog/public/posts/2023-10-13/i-entered-the-open-university-of-japan/index.html @@ -14,7 +14,7 @@ 放送大学に入学しました|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html b/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html index 077d873c..0a476a84 100644 --- a/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html +++ b/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html @@ -14,7 +14,7 @@ ISUCON 13 に参加した|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2023-12-31/2023-reflections/index.html b/vhosts/blog/public/posts/2023-12-31/2023-reflections/index.html index b3717000..423eade4 100644 --- a/vhosts/blog/public/posts/2023-12-31/2023-reflections/index.html +++ b/vhosts/blog/public/posts/2023-12-31/2023-reflections/index.html @@ -13,7 +13,7 @@ 2023年の振り返り|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html b/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html index 2ed2dd3a..a85e5bb5 100644 --- a/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html +++ b/vhosts/blog/public/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file/index.html @@ -14,7 +14,7 @@ 【Neovim】 空の PHP ファイルに namespace 宣言を挿入する|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-02-03/install-wireguard-on-personal-server/index.html b/vhosts/blog/public/posts/2024-02-03/install-wireguard-on-personal-server/index.html index e2f70edd..fe9be513 100644 --- a/vhosts/blog/public/posts/2024-02-03/install-wireguard-on-personal-server/index.html +++ b/vhosts/blog/public/posts/2024-02-03/install-wireguard-on-personal-server/index.html @@ -14,7 +14,7 @@ 【備忘録】 個人用サーバに WireGuard を導入する|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-02-10/yapcjapan-2024-report/index.html b/vhosts/blog/public/posts/2024-02-10/yapcjapan-2024-report/index.html index 1541d425..65e18ba8 100644 --- a/vhosts/blog/public/posts/2024-02-10/yapcjapan-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-02-10/yapcjapan-2024-report/index.html @@ -14,7 +14,7 @@ YAPC::Hiroshima 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-02-22/phpkansai-2024-report/index.html b/vhosts/blog/public/posts/2024-02-22/phpkansai-2024-report/index.html index 4081d1e9..f3f42d6a 100644 --- a/vhosts/blog/public/posts/2024-02-22/phpkansai-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-02-22/phpkansai-2024-report/index.html @@ -14,7 +14,7 @@ PHPカンファレンス関西 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-03-17/phperkaigi-2024-report/index.html b/vhosts/blog/public/posts/2024-03-17/phperkaigi-2024-report/index.html index d37dc3ed..fef781ed 100644 --- a/vhosts/blog/public/posts/2024-03-17/phperkaigi-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-03-17/phperkaigi-2024-report/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-03-20/my-bucket-list/index.html b/vhosts/blog/public/posts/2024-03-20/my-bucket-list/index.html index 6de7de2a..2a074a11 100644 --- a/vhosts/blog/public/posts/2024-03-20/my-bucket-list/index.html +++ b/vhosts/blog/public/posts/2024-03-20/my-bucket-list/index.html @@ -13,7 +13,7 @@ 死ぬまでに作る自作○○一覧あるいは人生の TODO リスト|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-04-14/phpcon-odawara-2024-report/index.html b/vhosts/blog/public/posts/2024-04-14/phpcon-odawara-2024-report/index.html index 676416f7..1d971870 100644 --- a/vhosts/blog/public/posts/2024-04-14/phpcon-odawara-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-04-14/phpcon-odawara-2024-report/index.html @@ -14,7 +14,7 @@ PHP カンファレンス小田原 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd/index.html b/vhosts/blog/public/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd/index.html index f2d709da..31fee59b 100644 --- a/vhosts/blog/public/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd/index.html +++ b/vhosts/blog/public/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd/index.html @@ -14,7 +14,7 @@ 【GitLab】 GitLab CI/CD 上での bash/sh は pipefail が有効になっている|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands/index.html b/vhosts/blog/public/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands/index.html index 66682843..3262c137 100644 --- a/vhosts/blog/public/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands/index.html +++ b/vhosts/blog/public/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands/index.html @@ -14,7 +14,7 @@ 【Zsh】 Composer のカスタムコマンドに対する Zsh 補完で引数にファイルを補完させる|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-05-11/phpconkagawa-2024-report/index.html b/vhosts/blog/public/posts/2024-05-11/phpconkagawa-2024-report/index.html index 7f436a84..58395722 100644 --- a/vhosts/blog/public/posts/2024-05-11/phpconkagawa-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-05-11/phpconkagawa-2024-report/index.html @@ -14,7 +14,7 @@ PHP カンファレンス香川 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-06-19/scalamatsuri-2024-report/index.html b/vhosts/blog/public/posts/2024-06-19/scalamatsuri-2024-report/index.html index 54c1f999..d1adbb16 100644 --- a/vhosts/blog/public/posts/2024-06-19/scalamatsuri-2024-report/index.html +++ b/vhosts/blog/public/posts/2024-06-19/scalamatsuri-2024-report/index.html @@ -14,7 +14,7 @@ ScalaMatsuri 2024 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-07-19/reparojson-fix-only-json-formatter/index.html b/vhosts/blog/public/posts/2024-07-19/reparojson-fix-only-json-formatter/index.html index e6caeb2b..f191ebeb 100644 --- a/vhosts/blog/public/posts/2024-07-19/reparojson-fix-only-json-formatter/index.html +++ b/vhosts/blog/public/posts/2024-07-19/reparojson-fix-only-json-formatter/index.html @@ -14,7 +14,7 @@ reparojson: 文法エラーを直すだけの JSON フォーマッタを作った|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html b/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html index 18730a09..39450d30 100644 --- a/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html +++ b/vhosts/blog/public/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range/index.html @@ -14,7 +14,7 @@ 【Go】 text/template の with や range の内側から外側の "." にアクセスする|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-09-28/mncore-challenge-1/index.html b/vhosts/blog/public/posts/2024-09-28/mncore-challenge-1/index.html index 8a190fe0..23d77a20 100644 --- a/vhosts/blog/public/posts/2024-09-28/mncore-challenge-1/index.html +++ b/vhosts/blog/public/posts/2024-09-28/mncore-challenge-1/index.html @@ -14,7 +14,7 @@ MN-Core Challenge #1 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html b/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html index f8b0bce5..9c05a78a 100644 --- a/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html +++ b/vhosts/blog/public/posts/2024-12-04/cohackpp-report/index.html @@ -14,7 +14,7 @@ 紅白ぺぱ合戦に参加&LTしました|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2024-12-33/2024-reflections/index.html b/vhosts/blog/public/posts/2024-12-33/2024-reflections/index.html index 1ef7b57b..d1f71cea 100644 --- a/vhosts/blog/public/posts/2024-12-33/2024-reflections/index.html +++ b/vhosts/blog/public/posts/2024-12-33/2024-reflections/index.html @@ -13,7 +13,7 @@ 2024年の振り返り|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html b/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html index 3a153d33..a49c1087 100644 --- a/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html +++ b/vhosts/blog/public/posts/2025-01-08/phperkaigi-2023-tokens-q1/index.html @@ -14,7 +14,7 @@ PHPerKaigi 2023 トークン問題解説 (1/5)|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html b/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html index 36469811..1e0d983a 100644 --- a/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html +++ b/vhosts/blog/public/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2/index.html @@ -14,7 +14,7 @@ 【YAML】YAML 1.1 と YAML 1.2 の主な破壊的変更|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-02-24/phpcon-nagoya-2025-report/index.html b/vhosts/blog/public/posts/2025-02-24/phpcon-nagoya-2025-report/index.html index a6ff034c..82b9d835 100644 --- a/vhosts/blog/public/posts/2025-02-24/phpcon-nagoya-2025-report/index.html +++ b/vhosts/blog/public/posts/2025-02-24/phpcon-nagoya-2025-report/index.html @@ -14,7 +14,7 @@ PHP カンファレンス名古屋 2025 参加レポ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-03-27/zip-function-like-command-paste-command/index.html b/vhosts/blog/public/posts/2025-03-27/zip-function-like-command-paste-command/index.html index 00c6943e..11401ae6 100644 --- a/vhosts/blog/public/posts/2025-03-27/zip-function-like-command-paste-command/index.html +++ b/vhosts/blog/public/posts/2025-03-27/zip-function-like-command-paste-command/index.html @@ -14,7 +14,7 @@ zip 関数のようなコマンド paste|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-03-28/http-1-1-send-multiple-same-headers/index.html b/vhosts/blog/public/posts/2025-03-28/http-1-1-send-multiple-same-headers/index.html index df8307a9..f0e17c27 100644 --- a/vhosts/blog/public/posts/2025-03-28/http-1-1-send-multiple-same-headers/index.html +++ b/vhosts/blog/public/posts/2025-03-28/http-1-1-send-multiple-same-headers/index.html @@ -14,7 +14,7 @@ 【HTTP】HTTP/1.1 で同じヘッダを2回送るとどうなるか|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award/index.html b/vhosts/blog/public/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award/index.html index 14018ff6..1c36083a 100644 --- a/vhosts/blog/public/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award/index.html +++ b/vhosts/blog/public/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award/index.html @@ -14,7 +14,7 @@ RubyKaigi 2025 の TRICK で入賞した|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos/index.html b/vhosts/blog/public/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos/index.html index 487ec2c3..c482abb1 100644 --- a/vhosts/blog/public/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos/index.html +++ b/vhosts/blog/public/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos/index.html @@ -14,7 +14,7 @@ 【Composer】 composer-patches v2 では macOS でも GNU patch のインストールが不要になる (予定)|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html b/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html index 299d3f94..da17228a 100644 --- a/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html +++ b/vhosts/blog/public/posts/2025-05-05/make-tiny-self-hosted-c-compiler/index.html @@ -14,7 +14,7 @@ セルフホスト可能な C コンパイラを作った|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html b/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html index e5409b73..cb82965f 100644 --- a/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html +++ b/vhosts/blog/public/posts/2025-06-14/baba-is-you/index.html @@ -14,7 +14,7 @@ 最高のパズルゲーム Baba Is You をやれ|REPL: Rest-Eat-Program Loop - +
diff --git a/vhosts/blog/public/posts/3/index.html b/vhosts/blog/public/posts/3/index.html new file mode 100644 index 00000000..d1084aa1 --- /dev/null +++ b/vhosts/blog/public/posts/3/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + 投稿一覧 (3ページ目)|REPL: Rest-Eat-Program Loop + + + +
+ + +
+
+ + + + + + + + + + + + + +
+
+ © 2021 nsfisis +
+ + diff --git a/vhosts/blog/public/posts/4/index.html b/vhosts/blog/public/posts/4/index.html new file mode 100644 index 00000000..f5c6bc29 --- /dev/null +++ b/vhosts/blog/public/posts/4/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + 投稿一覧 (4ページ目)|REPL: Rest-Eat-Program Loop + + + +
+ + +
+
+ + + + + + + + + + + + + +
+
+ © 2021 nsfisis +
+ + diff --git a/vhosts/blog/public/posts/5/index.html b/vhosts/blog/public/posts/5/index.html new file mode 100644 index 00000000..6ae07782 --- /dev/null +++ b/vhosts/blog/public/posts/5/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + 投稿一覧 (5ページ目)|REPL: Rest-Eat-Program Loop + + + +
+ + +
+
+ + + + + + + + + + + + + +
+
+ © 2021 nsfisis +
+ + diff --git a/vhosts/blog/public/posts/6/index.html b/vhosts/blog/public/posts/6/index.html new file mode 100644 index 00000000..9fee169f --- /dev/null +++ b/vhosts/blog/public/posts/6/index.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + 投稿一覧 (6ページ目)|REPL: Rest-Eat-Program Loop + + + +
+ + +
+
+ + + + + +
+
+ © 2021 nsfisis +
+ + diff --git a/vhosts/blog/public/posts/index.html b/vhosts/blog/public/posts/index.html index 11ccc67d..7b6ff6c7 100644 --- a/vhosts/blog/public/posts/index.html +++ b/vhosts/blog/public/posts/index.html @@ -5,16 +5,16 @@ - + - - + + - 投稿一覧|REPL: Rest-Eat-Program Loop - + 投稿一覧 (1ページ目)|REPL: Rest-Eat-Program Loop +
@@ -40,8 +40,18 @@
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +