**WordPress から Jekyll(及び一般的な静的サイト生成器)への移行**

2026/04/10 5:59

**WordPress から Jekyll(及び一般的な静的サイト生成器)への移行**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

概要

著者は、WordPress ブログを Jekyll 静的サイトへ完全に移行した過程と、その移行がコンテンツ作成速度と品質の向上につながる方法について記述しています。主な実施項目は次の通りです。

  1. コンテンツ転送
    WordPress から XML でエクスポートされた 288 件の投稿およびその他ページを Jekyll にインポートしました。Claude Code スクリプトが内容を公平性(equity)に配慮してフィルタリングしました。

  2. ツール選択
    著者の既存経験、成熟度、およびデータベースやアプリケーションサーバーを必要としない点から、Astro/Cloudflare CMS より Jekyll を採用しました。

  3. AI支援開発スイート
    Claude Code で構築した 9 つのカスタムツールがサイトを監査・最適化します(サイト構造、Lighthouse スコア、スキーマ生成、AEO、Open Graph プレビュー、コンテンツ類似性チェック、内部リンク提案、リダイレクト処理)。

  4. セマンティック SEO
    All‑MiniLM‑L6‑v2 エンベディングをローカルで使用し、トピックのクラスタリング、トピックテーブル生成、類似ペア報告書作成、検索関連性を向上させるセマンティックコア構築を行いました。

  5. クライアントサイド検索
    ビルド時に

    /search.json
    ファイルを生成し、外部依存なしで約 3,000 ページまで 3 ms 未満のレイテンシで検索可能にしました。

  6. 構造化データ(初日から)
    Organization、WebSite、BreadcrumbList、FAQPage、BlogPosting、SoftwareApplication の JSON‑LD をフロントマターとテンプレート経由で自動挿入します。

  7. モダン Web 標準
    環境依存

    robots.txt
    、canonical タグ、Open Graph メタ、RSS フィード、GTM/Analytics(クッキー同意付き)、sitemap 生成(jekyll‑sitemap)を設定しました。

  8. セキュリティヘッダー
    CSP ヘッダーを 6 回のデプロイで段階的に洗練し、Cloudflare Analytics、Google Ads コンバージョントラッキング、Leaflet マップライブラリを許可しました。

  9. デプロイワークフロー
    本番およびプレビュー分岐は Cloudflare Pages 上で動作。

    build.sh
    スクリプトが
    JEKYLL_ENV
    を設定し、本番では開発ツールを除去、ステージングでは noindex ヘッダーを追加します。

  10. DNS マイグレーション
    ドメインは Kinsta から Cloudflare Pages(

    www.demandsphere.com
    )へ移行。切り替え後に Screaming Frog を走らせ、ファビコン欠落などの問題を修正しました。

  11. 今後の最適化計画
    100 KB 超の画像 65 件以上の圧縮、ブログ投稿のカテゴリ分け改善、内部リンク強化が予定されています。


インパクト

  • ユーザーは読み込み速度向上、検索結果の精度向上、サイト挙動の信頼性を体感します。
  • 開発者は AI ツールによる手作業削減で構築パイプラインがスリム化されます。
  • 業界全体としては、性能と保守性から静的サイトジェネレーターの採用拡大が期待できます。

本文

WordPress から Jekyll(および一般的な静的サイトジェネレーター)への移行
WordPress から有名な静的サイトジェネレーターである Jekyll に移行した理由と方法に関する技術ノート。


なぜ移行を決めたのか?

最近、私たちは WordPress から Jekyll への移行を完了しました。この決定は主に以下の三つの要因によって動機付けられました。

  1. 好み – チームがより自然に使えるツールを求めていました。
  2. 速度 – WordPress はボトルネックになり、開発者を待たなければならず、その可用性に制限されることが多かったです。
  3. 変更の容易さ – Jekyll の静的構造はデータベースやアプリケーションサーバーを必要とせず、サイトを素早く変更できる点が魅力でした。

Jekyll(または Astro)のようなフレームワークは、AI の拡散、Markdown が LLM の共通言語となる流れ、ヘッドレスサイトへの移行という現在のトレンドに合致しています。WordPress は脆弱性がある場合がありますが、信頼できるホスティングを利用すれば多くのリスクは軽減されます。


Jekyll を選択したアーキテクチャ上の決定

Cloudflare の新しい CMS フレームワーク(Astro ベース)は有力候補でしたが、私たちは成熟度と既存の知識を重視し Jekyll を採用しました。
静的サイトジェネレーターはデータベースやアプリケーションサーバーを持たず、HTML テンプレート、インクルード、レイアウトファイル、設定ファイル、Markdown だけで構成されます。メタデータは YAML フロントマターに格納します。

layout: post
title: "WordPress から Jekyll(および静的サイトジェネレーター)への移行"
description: "WordPress から有名な静的サイトジェネレーターである Jekyll に移行した理由と方法に関する技術ノート。"
date: 2026-04-09
author: Ray Grieselhuber
permalink: /blog/rebuilding-demandsphere-with-jekyll-and-claude-code/
tags:
  - Engineering
  - AI Search

投稿は

_drafts
に作成し、公開準備ができたら
_posts
に移動します。


288 本の WordPress ブログ記事を移行する

最大の課題はコンテンツの移行でした。15 年以上にわたる投稿がありますが、最も価値のあるものだけを残す必要がありました。GSC ツールを使い、高い評価を持つページを特定し、低価値のコンテンツを除外して削除しました。

WordPress の XML エクスポートは出発点として利用しました。Claude Code が各ページの価値を迅速に分析し、効率的にフィルタリングできるよう支援しました。画像の移行には追加スクリプトが必要でしたが、主にインポート/エクスポート作業で済みました。


Claude Code で実現した AI アシスト開発

Claude Code を活用して外部リソースを雇わずに移行を完了できました。複数のセッション、

CLAUDE.md
、さまざまな
.md
ファイルを使いプロジェクトを整理しました。

主な成果物:

  • 9 つの開発ツール をリポジトリに直接組み込み、それぞれ専用の監査スクリプト(例:
    lighthouse.js
    、サイト構造スクリプト)で管理。
  • Site Structure Tool – 軽量な Screaming Frog の代替で、欠落または重複メタデータ、URL 配置ミスを検出。
  • Lighthouse Auditor – ページ速度とパフォーマンス指標を向上;静的ホスティングにより実装が容易。
  • Schema, AEO, Schema Details, Open Graph Preview – 構造化データとソーシャル共有の外観を監査・プレビューするツール。
  • Content Similarity (Topic Clusters & Tables)
    all-MiniLM-L6-v2
    エンベディングで内容をセマンティックにクラスタリングし、重複または類似投稿を特定。
  • Internal Linking Auditor – 埋め込み情報に基づき内部リンク構造を最適化。
  • Redirects Tool – 重要なリダイレクトが漏れないよう保証。

これらのツールで、仕上げ作業と優先タスクのロードマップが明確になりました。


外部依存なしで実現したクライアント側検索

Jekyll はビルド時に

search.json
を生成します。ここには各ページのタイトル、URL、内容(最大 400 文字)、タグ、日付、タイプが含まれます。検索ページはこの単一 JSON ファイルを取得し、ブラウザ内でサブストリングマッチングを行い、メタデータにスコア(例:タイトル×10、タグ×5)を付与します。結果は 30 件に制限。

現在の統計:398 エントリ;最適化前に 2,500〜3,000 ページ まで拡張可能です。推定レイテンシは 5,000 ページでも < 3 ms です。


SEO アーキテクチャ

初日から構造化データを追加しました:

  • Organization
    WebSite
    をすべてのページに
  • ホーム以外のページには
    BreadcrumbList
  • FAQ コンテンツがあるページは自動生成されたフロントマターから
    FAQPage
  • ブログ投稿には
    BlogPosting
  • 製品ページには
    SoftwareApplication

JSON‑LD を手作業で編集する必要はありませんでした。現在、128 ページに 470 件以上の FAQ エントリ が存在します。

その他の SEO 機能:

  • Canonical タグ、Open Graph メタ、および RSS フィードは
    site.url
    を使って正しい環境を解決。
  • robots.txt
    は環境依存:ステージングでは Screaming Frog と Sitebulb 以外のボットをブロックし、本番ではすべて許可。
  • GTM と Google Analytics はユーザー同意後にのみロード(ステージングでは無効)。
  • jekyll-sitemap
    によるサイトマップ生成;手動メンテナンス不要。

Content Security Policy (CSP) には Cloudflare アナリティクス、Google Ads コンバージョントラッキング、および Leaflet マップライブラリを許容するために複数回更新が必要でした。


本番切り替え

同一リポジトリから Cloudflare Pages 上で二つの環境を稼働:

  • Production:メインブランチ。
    dev-tools
    ディレクトリを削除し、サイトマップを保持。
  • Staging:その他のブランチ。サイトマップを削除し、noindex ヘッダーを追加。

DNS 切替は簡単でした。

www.demandsphere.com
をカスタムドメインとして追加するだけで Kinsta から Pages への CNAME が切り替わりました。切替後に Screaming Frog のクロール結果では、Google 検索結果に favicon が欠落していることが判明(ルート
/favicon.ico
が 404;PNG サイズが小さすぎ)。96×96 と 48×48 PNG を追加し、ウェブマニフェストと多サイズ ICO をルートに配置しました。


今後の取り組み

  • 65 本以上の画像(> 100 KB)を最適化。
  • 移行した 288 本のブログ投稿のカテゴリ分けを改善(現在は「Blog」タグのみ)。
  • 内部リンク、スキーマカバレッジ、およびコンテンツクラスタリングを継続的に洗練。
  • ページ数が 3,000 を超える場合に備え、検索機能の拡張を検討。

全体として、移行には満足しています。新しいコンテンツアイデアをこれまで以上に高速かつ高品質で実装できるようになりました。

同じ日のほかのニュース

一覧に戻る →

2026/04/10 4:48

macOSでのネイティブ即時空間切り替え (Note: The phrase “Instant Space Switching” refers to the feature that allows users to switch between virtual desktops or spaces instantly. In Japanese, it is often rendered as 「即時スペース切り替え」.)

## Japanese Translation: ## Summary 著者は、macOS が即時の Space 変更をサポートしない理由を説明し、Apple の唯一の組み込み回避策である「Reduce motion」が単に問題をフェードアニメーションに置き換えるだけでなく、ブラウザの prefers‑reduced‑motion 設定もトリガーすることを指摘しています。他の解決策には欠点があり、yabai は即時切替を可能にしますが System Integrity Protection (SIP) を無効化し、タイル方式を学ぶ必要があります。FlashSpace と AeroSpace はネイティブではなく不要な複雑さを追加します。BetterTouchTool は「Move Left/Right Space (Without Animation)」機能を提供しますが、有料ライセンスのみで利用可能です。 著者は **InstantSpaceSwitcher**(GitHub: jurplel/InstantSpaceSwitcher)というメニューバーアプリを発見しました。このアプリは SIP を無効にせずに即時の Space 変更を実現します。高速トラックパッドスワイプをシミュレートし、コマンドラインインターフェース(`ISSCli`)を通じてユーザーが直接特定のスペース番号へジャンプできるようにします。 **インストール手順:** ``` git clone https://github.com/jurplel/InstantSpaceSwitcher cd InstantSpaceSwitcher ./build.sh ``` ビルド後、`.build/release/ISSCli --help` を実行して `[left|right|index <n>]` などのコマンドを確認してください。リポジトリは GitHub スターが1つしかありません。著者は役立った場合にスターを付けるよう読者に奨励しています。 別プロジェクト **instantspaces** は yabai のスイッチャーを分離しようとしますが、著者の macOS Tahoe では機能しませんでした。読者は新しい macOS リリースで InstantSpaceSwitcher または instantspaces が成功したかどうか報告することが推奨されています。

2026/04/10 5:12

チャルクテリー – 視覚的類似性を探るUnicodeエクスプローラ

## Japanese Translation: **改訂要約** Charcuterie は Unicode 文字セットのウェブベースのビジュアルエクスプローラーで、ユーザーがグリフを閲覧し、関連するシンボル、スクリプト、および形状を発見できるツールです。各グリフは描画され、ベクトル空間に埋め込まれ、類似度計算を用いて視覚的に似ている文字をグループ化します―すべてブラウザ内で完結します。このプロジェクトは積極的に開発中です。ユーザーからのフィードバックを歓迎し、継続的な改善を支援するための寄付も奨励しています。© 2026 David Aerne.

2026/04/10 5:10

Gemini の SynthID 検出機構のリバース エンジニアリング

## 日本語訳: > **概要:** > 本プロジェクトは、Google の Gemini が生成するすべての画像に埋め込む Spectral SynthID ウォーターマークを検出・除去する高忠実度手法を示しています。ウォーターマークを逆解析した結果、解像度依存性(キャリア周波数が画像サイズとともに変化)であること、および Gemini モデルごとに固定の位相テンプレートが存在し、クロスイメージ位相共鳴率が 99.5 % 超、黒/白検証時には |cos(phase_diff)| が 0.90 を超えることが判明しました。 > 研究者は、解像度ごとにキャリアプロファイルを保存するマルチレゾリューション SpectralCodebook(V3)を構築し、バイパスアルゴリズムではチャネル重み G=1.0、R=0.85、B=0.70 を用いて 3 回のパス(攻撃的 → 中程度 → 穏やか)で位相整合性付きの加重減算を行います。これによりキャリアエネルギーが約 75.8 % 減少し、トップ5 キャリア位相共鳴率が 91.4 % 降低され、1536×2816 画像で PSNR >43 dB、SSIM ≈0.997 の視覚品質を保持します。これは以前の V1(JPEG Q50、37 dB)や V2(27–37 dB)の試みと比べて著しい改善です。 > リポジトリにはコードブック構築用スクリプト (`synthid_bypass.py build-codebook`)、V3 バイパス実行、ウォーターマーク検出用 (`robust_extractor.py detect`) が含まれています。貢献者は、Nano Banana Pro を使用して様々な解像度で純黒(#000000)と純白(#FFFFFF)の画像を生成し、コードブックをさらに充実させることが推奨されています。 > すべてのツールは学術研究専用に公開されており、SynthID は依然として Google DeepMind の独自技術です。 この改訂版は主要ポイントを網羅し、根拠のない推測を排除し、読者向けに明確で簡潔な概要を提示しています。

**WordPress から Jekyll(及び一般的な静的サイト生成器)への移行** | そっか~ニュース