cocolog:95980553
検索用に《JRF ブログ退避所》を Claude Sonnet 4.6 さんに作ってもらった。以前から、バックアップ用のアーカイブ zip は作っていたものの、ネットで見られるバックアップ先が欲しかったのだった。 (JRF 3831)
JRF 2026年5月 7日 (木)
……。
今月は Claude さんに課金(はじめての課金)約3500円をして、先に、自分用ブログ投稿システム Mapaex を現代化してもらった([cocolog:95977282](2026年5月))。
他に何かやってもらうことはないかと考えて、ひとつは私は「風」系 IME (quail-naggy.el) を使っているのでスペルチェッカが欲しいと思っていたので、それを Gemini さんに相談したところ、Gemini Gems で校正役を作ればいい…という話になって、まず、そういう Gems (はじめての Gem)を構成したところ、実用できそうなものができた。
JRF2026/5/72326
次に「ジルパのVR紀行」のルビ付けの自動化を考えたのだが、これは逆にルビを付けないものの指定が必要で、それなら今のルビを付けるものの指定と大して変わらないな…ということで、これは今のままで良いとなった。
JRF2026/5/79125
そして、さらにもうひとつ思いついたのが、ネットで見られるブログのバックアップを作ることだった。そういうので検索とかできないもんですかね…と Gemini さんに聞いたところ Pagefind という高速な JavaScript ツールがあるとのこと。でも、そんな巨大なシステムできないなぁ…と Gemini さんに相談していると、以前からあるアーカイブの full_dump.txt を元にすれば、まずまずのシステムができそう…という段取りがついた。そこで Claude Projects に登録して Claude Sonnet 4.6 さんに作ってもらったのが今回のシステムになる。
JRF2026/5/76543
……。
## 大目的
私のブログの退避先(静的アーカイブサイト)を構築したいです。以下の要件で GitHub Actions (YAML) を作成してください。主要言語は Perl で作っていただけると後日の私がわかりやすいでしょう。
JRF2026/5/72205
## 要件
* データ取得: 私のブログ(複数)をログに取り、その複数のブログを一つのテキストファイルにダンプしたものが http://jrockford.s1010.xrea.com/jrf_cocolog_backup/jrf_cocolog_public.zip に full_dump.txt として入っています。今後この zip ファイルを「上の zip」として言及します。
JRF2026/5/70243
* 記事分割: full_dump.txt をパースし、記事ごとに独立した HTML ファイルを作成する (articles/YYYY/MM/DD_ID.html のような階層) 。また月ごとのインデックスページも作成します。
* 検索機能: Pagefind を実行してインデックスを生成します。(Pagefind というツールに特にこだわりはないです。)
JRF2026/5/74079
* 自動化: これらを毎期ボタン一つ(workflow_dispatch)で実行し、GitHub Pages にデプロイする GitHub Actions を作成します。
* 私が文字列で検索できること、cocolog id (cocolog:〜 または aboutme:〜 という形式です)で検索できることを重視します。特に元の記事への URL が検索できることを重視します。ですから表示にはこだわらず、各ページはテキストベタ書き (pre で囲う?) でいいです。URL はクリックできるようにするぐらいはしていただけるとうれしいです。
JRF2026/5/75232
* \[image:タイトル:http://jrf.cocolog-nifty.com/.../XXX.png\] みたいなものは、上の zip の images/ に入っていれば、そのイメージを表示したいです。そのとき XXX が thumbnail-YYYY.png という形式で YYYY.png みたいなのが images/ にあれば、それはそのイメージをクリックしたときに表示されるようにしたいです。
JRF2026/5/70411
* ちなみに上の zip は三ヶ月ごとに更新されます。元のメインブログサイトは http://jrf.cocolog-nifty.com/ 下です。ここにさらに はてなブックマークと「グローバル共有メモ」(http://jrockford.s1010.xrea.com/demo/shared_memo.cgi?cmd=log) のログがあります。
* Claude Code は使えません。アーチファクトにコードを示してもらって実行するという形式で作っていきます。
JRF2026/5/72015
* こちらのローカルテスト環境は Cygwin (の Perl)です。Perl スクリプトを full_dump.txt に適用するぐらいならできます。Pagefind はインストールされていません。テストはできれば Google Colab のターミナルなどでできるとありがたいです。もちろん、Actions (YAML) のためのリポジトリ構造を作っていただければ、それを GitHub にアップロードするぐらいはできます。
JRF2026/5/71906
* GitHub のリポジトリは jrf_blog_find にします。(https://github.com/JRF-2018/jrf_blog_find に置きます。)
JRF2026/5/78532
……。
GitHub Pages にデプロイできてからは、それを見ながら何度も(10回ぐらい?)、細々と改善して欲しい点を指定していった。
そこで指定した実装の要点は↓にまとまっている。
《jrf_blog_find/PURPOSE.md - JRF-2018 - GitHub》
https://github.com/JRF-2018/jrf_blog_find/blob/master/PURPOSE.md
JRF2026/5/72447
……。
検索がかなりうまく機能しているので、元のブログでも検索はそちらにリンクするようにした。Google さんはもう私のところの記事とかあまり拾ってくれないしね。まぁ、アーカイブを作るのが三ヶ月ごとだから、最新の記事は検索できないのだけど。
JRF2026/5/79689


成果物は↓。
《JRF ブログ退避所》
https://jrf-2018.github.io/jrf_blog_find/index.html
GitHub のリポジトリは↓。
《JRF-2018/jrf_blog_find: JRF のブログ退避先。検索用。 - GitHub》
https://github.com/JRF-2018/jrf_blog_find
JRF2026/5/73878