Closed24

Productivity Weeklyの記事を継続的に校正する

textlint周りのパッケージをインスコ

npm i -D textlint textlint-rule-preset-ja-technical-writing textlint-rule-preset-ja-spacing textlint-rule-spellcheck-tech-word

設定ファイルは一旦上の記事からパクリ

.textlintrc
{
  "plugins": {
    "@textlint/markdown": {
      "extensions": [".md"]
    }
  },
  "rules": {
    "preset-ja-technical-writing": {
        "no-exclamation-question-mark": {
        "allowFullWidthExclamation": true,
        "allowFullWidthQuestion": true
      },
      "no-doubled-joshi": {
         "strict": false,
         "allow": ["か"] // 助詞のうち「か」は複数回の出現を許す(e.g.: するかどうか)
      }
    },
    "preset-ja-spacing": {
      "ja-space-between-half-and-full-width": {
        "space": "always",
        "exceptPunctuation": true
      },
      "ja-space-around-code": {
        "before": true,
        "after": true
      }
    },
    "ja-technical-writing/ja-no-mixed-period": {
      "allowPeriodMarks": [":"]
    },
    "ja-technical-writing/sentence-length": false //100文字数制限の無効化
  }
}

tsuyoshicho/action-textlint を使ってtextlintをCIに載せる

https://github.com/tsuyoshicho/action-textlint

とりあえずREADMEの設定を(一部変更して)持ってくる

.github/workflows/ci.yml
name: ci
on: [pull_request]
jobs:
  textlint:
    name: textlint
    runs-on: ubuntu-latest
    env:
      ARTICLES_PATH: articles
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: textlint-github-pr-check
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-check
          textlint_flags: "${{ env.ARTICLES_PATH }}/**"
      - name: textlint-github-check
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-check
          textlint_flags: "${{ env.ARTICLES_PATH }}/**"
      - name: textlint-github-pr-review
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-review
          textlint_flags: "${{ env.ARTICLES_PATH }}/**"

多分昔はreporter: github-pr-checkがあったんだろうけど今はgithub-checkgithub-pr-reviewしかないんだ。コード読んでわかった

Reporter of reviewdog command [github-check,github-pr-review].
https://github.com/tsuyoshicho/action-textlint/blob/3f4d0b962e65dde93bd790e8fbc1b33bc358694c/action.yml#L14

おそらく、以下のような感じ

  • github-check: textlintによるチェックをWorkflowの結果に表示する。
  • github-pr-review: textlintによるチェックをWorkflowの結果に表示する。さらに修正をコードコメントに載せる。

というわけでgithub-pr-reviewを採用

うーんreporter: github-pr-reviewだとlevel: infoでも教えてくれない...
とりあえずlevel: errorにするか

あれ?5分前に来てる...
もしかしてgithub-pr-reviewだけだとコードコメントしかしてくれないのか
やっぱgithub-checkも併用した方が良さそう

ようやくやりたいことができた。このままだとキャッシュが効かないのでキャッシュを効かせる

.github/workflows/ci.yml
name: ci
on: [pull_request]
jobs:
  textlint:
    name: textlint
    runs-on: ubuntu-latest
    env:
      ARTICLES_PATH: articles
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: textlint-github-check
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          level: warning
          reporter: github-check
          textlint_flags: "${{ env.ARTICLES_PATH }}/**"
      - name: textlint-github-pr-review
        uses: tsuyoshicho/action-textlint@v3
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-review
          textlint_flags: "${{ env.ARTICLES_PATH }}/**"

templateはarticles下にないからそれも見るようにしたい
textlint_flags: "${{ env.ARTICLES_PATH }}/**/**"⇦これで行けた

/Users/korosuke613/Program/korosuke613-zenn/articles/productivity-weekly-20210224.md
  35:13  error  漢字が7つ以上連続しています: 技術者資格制度  ja-technical-writing/max-kanji-continuous-len

「ISTQBテスト技術者資格制度」で怒られているらしい。このルールは無効にしようかな


https://github.com/textlint-ja/textlint-rule-max-kanji-continuous-len
このリポジトリに設定が載ってた。allowに許可したい文字列を入れるとその文字列はこのルールから除外される。以下のような設定を行った。
.textlintrc
    "ja-technical-writing/max-kanji-continuous-len": {
      // 連続できる漢字の文字数制限
      "allow": ["技術者資格制度"]
    }

今の設定だと同じ行で同じルール違反が複数個あってもその数だけコメント来てちょっと嫌になるな...
同じ行で同じルール違反だとコメントは1個だけにするみたいなのないかな https://github.com/korosuke613/zenn-articles/pull/13

このスクラップは2021/02/20にクローズされました
ログインするとコメントできます