メインコンテンツへスキップ
HugoブログにtextlintとClaude Codeを導入して文章品質を向上させた話
  1. Posts/

HugoブログにtextlintとClaude Codeを導入して文章品質を向上させた話

·216 文字·2 分
技術 Hugo Claude Code
じぇい
著者
じぇい
プログラミングや技術的な学びを中心に、日常の気づきをまとめています。

はじめに
#

ブログを始めて数記事書いたところで、文章の品質にばらつきがあることに気づきました。特に、文体の統一や日本語の表記ゆれなど、細かい部分で一貫性がなかったのです。

そこで、textlintを導入して文章品質をチェックする仕組みを作り、さらにClaude Codeと連携させることで、記事作成時間を短縮しつつ品質を維持できる環境を構築しました。

textlintとは
#

textlintは、日本語や英語の文章をチェックするためのツールです。ESLintのようにルールベースで動作し、文章の問題点を自動的に検出してくれます。

主な特徴:

  • 文体の統一(です・ます調、である調)
  • 表記ゆれの検出
  • 冗長表現の指摘
  • 文の長さチェック
  • カスタムルールの追加が可能

導入手順
#

1. 必要なパッケージのインストール
#

npm init -y
npm install --save-dev textlint
npm install --save-dev textlint-rule-preset-ja-technical-writing
npm install --save-dev textlint-rule-no-double-negative-ja
npm install --save-dev textlint-rule-no-dropping-the-ra
npm install --save-dev textlint-rule-preset-ja-spacing
npm install --save-dev textlint-rule-ja-no-redundant-expression
npm install --save-dev textlint-rule-no-doubled-joshi

2. textlint設定ファイルの作成
#

.textlintrc.jsonを作成し、以下の設定を記述します。

{
  "rules": {
    "preset-ja-technical-writing": {
      "sentence-length": {
        "max": 150
      },
      "max-comma": {
        "max": 5
      },
      "max-ten": {
        "max": 5
      },
      "no-exclamation-question-mark": false,
      "ja-no-weak-phrase": false,
      "ja-no-mixed-period": true,
      "no-doubled-conjunction": true,
      "no-doubled-conjunctive-particle-ga": true,
      "arabic-kanji-numbers": false
    },
    "ja-no-redundant-expression": true,
    "no-dropping-the-ra": true,
    "no-double-negative-ja": true,
    "no-doubled-joshi": {
      "strict": false,
      "allow": []
    },
    "preset-ja-spacing": {
      "ja-space-between-half-and-full-width": {
        "space": "never"
      },
      "ja-space-around-code": false
    }
  }
}

3. npmスクリプトの設定
#

package.jsonに以下のスクリプトを追加します。

{
  "scripts": {
    "textlint": "textlint 'content/**/*.md'",
    "textlint:fix": "textlint --fix 'content/**/*.md'"
  }
}

4. Huskyによる自動チェックの設定
#

コミット前に自動的にtextlintを実行するように、Huskyを設定します。

npm install --save-dev husky lint-staged
npm run prepare
npx husky add .husky/pre-commit "npx lint-staged"

package.jsonにlint-stagedの設定を追加:

{
  "lint-staged": {
    "content/**/*.md": [
      "textlint"
    ]
  }
}

Claude Codeとの連携
#

CLAUDE.mdファイルの作成
#

プロジェクトルートにCLAUDE.mdを作成し、Claude Codeへの指示を記述します。

主な内容:

  • 文章作成ルールの明記
  • textlintルールの説明
  • カテゴリ・タグの運用ルール
  • ファイル構造の説明

実際の効果
#

textlintを導入した結果、以下のような改善がありました。

  1. 文体の統一

    • 「です・ます調」で統一されるようになった
    • 「できる」のような冗長表現が削除された
  2. タグの整理

    • 既存記事のタグを整理し、ルールに従った運用へ変更
    • ["Hugo", "ブログ", "静的サイトジェネレータ"]["Hugo"]
  3. 表記の統一

    • slugを日本語タイトルに統一
    • 文末の句読点を適切に修正

運用のポイント
#

1. カテゴリとタグの管理
#

docs/カテゴリとタグについて.mdでカテゴリとタグを管理することで、一貫性のある分類を実現しています。

現在のカテゴリ:

  • 日記
  • 技術

現在のタグ:

  • 自己紹介
  • Hugo

2. コミット時の自動チェック
#

Huskyのpre-commitフックで、コミット時に自動的にtextlintが実行されます。これにより、品質の低い文章がリポジトリに入ることを防げます。

3. Claude Codeでの記事作成
#

Claude Codeに記事作成を依頼する際も、CLAUDE.mdに記載されたルールに従って作成されるため、最初から品質の高い文章が生成されます。

まとめ
#

textlintとClaude Codeを組み合わせることで、以下のメリットがありました。

  1. 文章品質の向上と一貫性の確保
  2. 執筆時の細かいルールを意識する負担の軽減
  3. レビュー工数の削減
  4. Claude Codeによる記事作成時間の大幅な短縮

特に個人ブログでは、こうした自動化の仕組みが大きな助けになります。今後も継続的に改善を加えながら、より良いブログ運営を目指していきたいと思います。

関連記事

HugoブログをNetlifyで公開し、独自ドメインを設定した手順
·262 文字·2 分
技術 Hugo
HugoブログをNetlifyにデプロイし、Value Domainで取得した独自ドメインをGoogle Cloud DNSで設定した手順を解説
Hugoでブログをセットアップした手順
·159 文字·1 分
技術 Hugo
Hugoを使ってブログをセットアップする手順を解説します
Claude Codeが好きすぎて「学習帳」を始めた話
··43 文字·1 分
日記 自己紹介
Agent Codingツールとの出会い、毎日の実験、失敗も含めた学びを記録していきます