Skip to content

Commit

Permalink
Infra spell bot (#35224)
Browse files Browse the repository at this point in the history
* feat(bot): spelling checking bot

* remove a duplicate pattern

* add HTTPWG

* Apply suggestions from code review

Co-authored-by: Brian Thomas Smith <brian@smith.berlin>

* Update .github/workflows/spelling-check-bot.yml

* Apply suggestions from code review

Co-authored-by: Brian Thomas Smith <brian@smith.berlin>

* update workflow

* run sort-uniq on word files and rename them

* rename files

---------

Co-authored-by: Brian Thomas Smith <brian@smith.berlin>
  • Loading branch information
OnkarRuikar and bsmth authored Aug 29, 2024
1 parent 52580e9 commit 3f4f116
Show file tree
Hide file tree
Showing 4 changed files with 5,621 additions and 7 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/spelling-check-bot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Create an issue to report typos

on:
schedule:
- cron: "0 0 * * mon"
workflow_dispatch:

jobs:
sync:
if: github.repository == 'mdn/content'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: yarn

- name: Run scripts
run: |
npm install
echo Running spelling check...
output=$(npx cspell --no-progress --gitignore --config .vscode/cspell.json "**/*.md" || exit 0)
echo "$output"
echo "OUTPUT<<EOF" >> $GITHUB_ENV
echo "$output" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Create an issue
if: env.OUTPUT != ''
uses: dacbd/create-issue-action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Weekly spelling check
body: |
Typos and unknown words:
```
${{ env.OUTPUT }}
```
> [!TIP]
> To exclude words from the spellchecker, you can add valid words (web technology terms or abbreviations) to the [terms-abbreviations.txt](https://github.com/mdn/content/blob/main/.vscode/terms-abbreviations.txt) dictionary for IDE autocompletion. To ignore strings that are not words (`AABBCC` in code, for instance), you can add them to [ignore-list.txt](https://github.com/mdn/content/blob/main/.vscode/ignore-list.txt).
env:
OUTPUT: ${{ env.OUTPUT }}
23 changes: 16 additions & 7 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
"version": "0.2",
"language": "en-US",
"languageId": "*",
"useGitignore": true,
"dictionaries": [
"terms-abbreviations",
"ignore-list",
"bash",
"css",
"cpp",
Expand All @@ -17,7 +20,6 @@
"markdown",
"node",
"npm",
"project-words",
"python",
"softwareTerms",
"svelte",
Expand All @@ -37,10 +39,9 @@
// TODO - add some details what these match
"\\(#\\w*\\)",
"\\]\\(\\S*\\)",
"\\]\\(\\S*\\)",
"\\*\\*\\w\\*\\*\\w*",
"\\*\\w\\*\\w*",
"#[\\w-]*",
"#[À-ž\\w-]*",
"aria-activedescendant=\"(?:[^\\\"]+|\\.)*\"",
"aria-controls=\"(?:[^\\\"]+|\\.)*\"",
"aria-describedby=\"(?:[^\\\"]+|\\.)*\"",
Expand All @@ -55,18 +56,26 @@
"for=\"(?:[^\\\"]+|\\.)*\"",
"HexValues",
"href=\"(?:[^\\\"]+|\\.)*\"",
"id=\"(?:[^\\\"]+|\\.)*\"",
"(?<=id)=\"(?:[^\\\"]+|\\.)*\"",
"lang=\".*\">.*</",
"src=\"(?:[^\\\"]+|\\.)*\"",
"url\\(\"data\\:image/svg\\+xml.*\"\\)[,;]",
"Urls"
"Urls",
"favourite-colour",
"ucaf:.*\""
],
"allowCompoundWords": true,
"dictionaryDefinitions": [
{
"name": "project-words",
"path": "./project-words.txt",
"name": "terms-abbreviations",
"path": "./terms-abbreviations.txt",
"addWords": true
},
{
"name": "ignore-list",
"path": "./ignore-list.txt",
"addWords": false,
"noSuggest": true
}
],
"enableFiletypes": ["xml"]
Expand Down
Loading

0 comments on commit 3f4f116

Please sign in to comment.