GitHub Actionsのself-hosted runnerをWSL2で構築してフォールバック付きで運用する
- #GitHub Actions
- #GitHub API
- #WSL
- #Claude Code
- #shell
GitHub Actionsのminutes消費を節約するためにWSL2上にself-hosted runnerを構築し、ランナーがオフラインのときはubuntu-latestにフォールバックする仕組みを作った話。reusable workflowでの検出ロジックやsystemdによるサービス化の手順もまとめている。
NetlifyからCloudflareへの移行メモ
- #Cloudflare Pages
- #Cloudflare Workers
- #Netlify
- #GitHub Actions
個人ブログプロジェクトをNetlifyからCloudflare Pagesに移行した。サーバーレス関数の書き換え、Netlify BlobsからCloudflare KVへの移行、GitHub Actionsでのデプロイ設定についてのまとめ。
ElectronアプリでCodeMirror 6エディタを組み込む
- #CodeMirror
- #Electron
- #React
- #Vite
Electron + Vite + React + TypeScript構成の個人アプリにCodeMirror 6を導入した際のセットアップ手順と、Vimモード、テーマカスタマイズ、Viteバンドル最適化での注意点をまとめた。
Electronアプリのショートカット設定UIとconfig.json共有の罠
- #Electron
ElectronアプリでショートカットキャプチャUIを実装し、config.jsonで設定を永続化したところ、複数の処理が異なるスキーマで同一ファイルを読み書きしていたことでアプリが起動しなくなるバグを踏んだ。原因と対策のまとめ。
Electronアプリにシステムフォントピッカーを実装する
- #Electron
Electronアプリでシステムフォントピッカーを実装した。queryLocalFonts() APIでネイティブモジュールなしにフォントを列挙し、Canvasのテキスト計測で等幅フォントをフィルタリングする方法のまとめ。
Terminal / PTY / IPC / xterm.js の概念整理メモ
- #Electron
- #Node.js
- #shell
Electronアプリにxterm.js + node-ptyでターミナルを埋め込む実装を進める中で調べた、PTY・IPC・xterm.jsの基本概念と、ネイティブターミナルアプリとの違い、描画方式、フォント問題などの開発メモ。
Vite manualChunksでCodeMirrorを分割したらアプリが壊れた
- #Vite
- #CodeMirror
- #Electron
ViteのmanualChunksでCodeMirror関連パッケージをチャンク分割しようとしたところ、@lezer/パッケージを分離したことでチャンク間の循環依存が発生し、アプリが起動しなくなった。原因の解説と修正方法のまとめ。
Algolia から MiniSearch に検索機能を移行した
- #Takazudo Modular
- #Netlify
- #検索
- #Node.js
Takazudo Modularのサイト検索をAlgoliaからMiniSearchに移行し、ビルド時にJSONインデックスを生成してNetlify Functionで検索するセルフホスト構成に変えた。選定理由、アーキテクチャ、ロケール対応、パフォーマンスについてのまとめ。
CSSをAIにうまいこと書かせる試み
- #CSS
- #Claude Code
- #AI執筆
- #Docusaurus
AIエージェントにCSSを書かせるとうまくいかない問題に対して、CSSベストプラクティスのドキュメントサイトを作ってAIに参照させるという試みについてのまとめ。
Docusaurusのi18nの仕組み
- #Docusaurus
- #i18n(多言語対応)
Docusaurusサイトで日英の多言語対応を行った過程で理解したi18nの仕組みについて、設定からファイル構造、ビルド、開発サーバーまでの全体像をまとめた開発メモ。