Skip to content

索引記事の表にサムネイルの列を出す (#2790) - #2891

Merged
ma91n merged 5 commits into
mainfrom
thumb-index-table
Aug 28, 2026
Merged

索引記事の表にサムネイルの列を出す (#2790)#2891
ma91n merged 5 commits into
mainfrom
thumb-index-table

Conversation

@ma91n

@ma91n ma91n commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

索引記事の表にサムネイルの列を出した。{% thumb <記事ID> %} タグを足し、2026年の索引記事7本の表に先頭の列として入れている。絵柄はフロントマターの thumbnail から引くので、記事側に画像URLを書き写さない。

|  | 日付 | 執筆者 | タイトル・テーマ |
| :--- | :--- | :--- | :--- |
| {% thumb 20260827b %} | 8/27(木) | 澁川喜規 | [AIを使ったナレッジ中心設計を試してみた](/articles/20260827b/) |
|  | 8/28(金) | 井上拓 | ラジカルAIプログラミング実践編 - … |

表を生成に寄せなかった理由

issue には「列だけ足すか、表を生成に寄せるか」と2案あったが、実データを数えて前者にした。

見たもの
索引記事(インデックス タグ) 90本。表を持つのが79本
表のヘッダの表記 37通り日付/執筆者/タイトル 13本、Date/Title/Author 13本、他に テーマ Level Memo 列など)
表のデータ行 714行。うち 258行(36%)がまだ記事リンクを持たない
リンクセルの文字列 682件。うち 344件(50.4%)が実タイトルと違う
  • 表は公開済み記事の一覧ではなく予定表だった。 最新の索引(夏休み自由研究2026)は11行中9行が未公開で、調整中 第二の脳(仮) と書かれ、本文にも「公開に合わせてタイトルとリンクを埋めていきます」とある。series から引けるのは公開済みの部分集合だけなので、索引の主役(これから何が出るか)が消える
  • リンクの文字列は意図的な短縮テーマ名だった。 go mod tidy ⇔ 「Go 1.27のgo mod tidyの更新点」、json v2 ⇔ 「Go1.27リリース連載:encoding/json/v2」。lib/series.jsnavTitle が連載ナビでやっている前置き落としを人が手でやっている形なので、実タイトルに置き換えると本題が埋もれる
  • ほかに、年間リレー企画の表は1行が連載1つでリンクの列に複数年ぶんが並ぶ(行と記事が1対1にならない)、表と series 実体のズレが既に実在する(後から連載に入った記事が表に無い9連載、他連載の記事を指す3件)、索引記事はリリースノートなど別の表も持つ、といった事情もあった

サムネがノイズにならないことの確認

4本以上の連載74件のうち 63件(85%)が記事ごとに別のサムネ。uniq率の中央値は 1.00 で、2026年の連載は全部 1.00。同一画像の使い回しは3件だけ(GCP2020・Go Cloud・Java25。いずれも2020年前後)。

連載記事647本のうちサムネの無いものは15本(2.3%)で、これは post-list-icon-empty の空き枠になる。

実装

  • scripts/thumb.js … タグ本体。hexo.locals.get('posts') から articles/<ID>/ を引く。本文の描画は before_generate フィルタ(hexo 本体の render_post)で走るので、この時点で全記事が DB に入っている
  • scripts/lib/post_list.js … サムネの箱の markup を thumbIcon() に切り出して postListItem と共用。関連記事・ランキングと同じ 72×48・object-fit: covertabindex="-1"aria-hidden="true"(隣のタイトルと同じ行き先なので We're hiringの2パネルだが、タブで移動すると画像と本文の2個所がフォーカスされる #2845
  • themes/future/css-src/theme-styles.styl.post-list-icondisplay: block を1行。表のセルでは flex の中に居ないので、inline のままだと行box の下に余白が残る。flex の中では blockify されるので既存の使い方には影響しない

検証

hexo server の配信 HTML を7ページぶんパースして確認した。

  • 全ページ全行が4セル(区切りの行・SKIP の行・未公開行も先頭を空セルにしてある。足りないセルは行の末尾に足されるので、先頭を空けないと列がずれる)
  • 44行ぶんのサムネが解決し、参照先の画像ファイルは全部実在thumb: の警告は0件)
  • width="72" height="48" loading="lazy" tabindex="-1" aria-hidden="true" が全行に付いている
  • 変更した記事7本に素の textlint → 0件。npx prettier --check "scripts/**/*.js" "*.mjs" → 通過

範囲外

  • 年間リレー企画(/articles/20260219a/)には入れていない。 1行が連載1つで、リンクの列に複数年ぶんが並ぶ
  • 2024年以前の索引記事には入れていない。 まず2026年で見え方を確かめてから広げる

Closes #2790

🤖 Generated with Claude Code

ma91n and others added 5 commits August 28, 2026 00:52
{% thumb <記事ID> %} タグを足し、2026年の索引記事7本の表に先頭の列として入れた。
絵柄はフロントマターの thumbnail から引くので、記事側に画像URLを書き写さない。

表そのものは手書きのまま残した。索引の表は公開済み記事の一覧ではなく予定表で、
データ行714行のうち258行がまだリンクを持たない。リンクの文字列も682件中344件が
実タイトルと違い、連載名を落とした短縮テーマ名になっている。どちらも series から
引ける情報ではない。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
列名を「サムネイル」(英語ヘッダの表は Thumbnail)にした。他の列が名前を
持っているので、空のヘッダは書き忘れに見える。

未公開の行は {% thumb %}(記事IDなし)で空き枠を出す。予定表なので未公開の
行の方が多い時期があり、セルを空にすると書き忘れと見分けが付かなかった。
枠と大きさは中身があるときと同じに保って場所だけ空けておく。

空のままにするのは、そもそも記事の行ではないもの(区切りの 🌻・SKIP・休載)
だけにした。ここに空き枠を置くと、来ない記事を待っているように見える。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
列を1本足すと、モバイル(本文列351px)でタイトル列が約200px→130pxに痩せて
1行あたり1行増える。日付のセルに畳めば、日付の列が箱の幅(92px)になるだけで
済む。日付(約65px)は箱(72px)に収まるので列は太らない。

索引の表7本すべてが日付を先頭の列に持つので、絵の位置は専用の列にしたときと
変わらない。列名を何と書くかの問題も消える。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
グレーの空き枠をやめ、絵が無ければ何も出さないようにした。予定表なので
未公開の行の方が多い時期があり、空き枠を並べると来ない絵を待っているように
見える。日付のセルに入れたことでセル自体は空にならないので、絵が無くても
書き忘れには見えない。

行の左端を揃える必要がある一覧・ランキングだけ、postListItem の側で
空き枠に差し替える。ホームのランキングで空き枠1件が従来どおり出ることを確認。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
索引記事の表は post-list-icon(72×48)をそのまま使っていて独自の寸法は
足していないが、サイトにある寸法が4種あることがどこにも書かれていなかった。
器の形で選ぶ表にして残す。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ma91n
ma91n merged commit bf1daf5 into main Aug 28, 2026
2 checks passed
@ma91n
ma91n deleted the thumb-index-table branch August 28, 2026 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

インデックス記事の一覧表にサムネイル画像を出す

1 participant