Closed24

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

Futa HirakobaFuta Hirakoba

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

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

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

.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文字数制限の無効化
  }
}
Futa HirakobaFuta Hirakoba

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 }}/**"
Futa HirakobaFuta Hirakoba

多分昔は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を採用

Futa HirakobaFuta Hirakoba

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

Futa HirakobaFuta Hirakoba

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

Futa HirakobaFuta Hirakoba

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

.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 }}/**"
Futa HirakobaFuta Hirakoba

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

Futa HirakobaFuta Hirakoba
/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": ["技術者資格制度"]
    }
このスクラップは2021/02/20にクローズされました