公開前の記事を確認したところ、個人ユーザー名を含むローカル保存先や、ホームディレクトリ付きの実行例が本文に残っていた。記事をそのまま公開すると、開発環境の構成や作業場所が不要に伝わるため、公開用の表記へ整理した。

確認できた原因

対象記事には、対象プロジェクトの保存場所を示す記述と、systemdの失敗ログに含まれる具体的な実行パスがあった。問題はアプリの動作ではなく、技術メモを公開記事へ移す際に、環境固有の値を一般化していなかったことだった。

実施した変更

競馬AIと競艇AIの記事では、保存場所の記述をプロジェクト名だけの表記へ変更した。Raspberry Piのsystemd記事では、エラーログ、移動コマンド、作業ディレクトリの説明を、プロジェクトディレクトリという一般化された表記に揃えた。

さらに、記事のfrontmatterと本文をビルド時に検査する処理を追加した。個人ユーザー名、ユーザー用ディレクトリ、ホームディレクトリ、Windows形式のホームパス、ローカルなGitHubフォルダを検出した場合は、ファイル名と行番号を示してチェックを失敗させる。エラーには検出した本文そのものを表示しないようにした。

公開リポジトリへの通常のWebリンクは、技術記事の参照に使えるため検出対象から外している。

検証結果

検出ルールの回帰テスト4件、Pythonの構文チェック、サイト全記事を対象にした build.py --check を実行し、すべて成功した。サイトの公開やデプロイは行っていない。