diff --git a/.github/workflows/check-formats.yml b/.github/workflows/check-formats.yml index 863b02d988..da689d89a1 100644 --- a/.github/workflows/check-formats.yml +++ b/.github/workflows/check-formats.yml @@ -12,16 +12,17 @@ on: jobs: perltidy: - name: Check Perl file formatting with perltidy + name: Check file formatting with perltidy and prettier runs-on: ubuntu-24.04 - container: - image: perl:5.38 steps: - name: Checkout code uses: actions/checkout@v6 - name: Install dependencies - run: cpanm -n Perl::Tidy@20260204 - - name: Run perltidy + run: | + sudo apt-get update && sudo apt-get install -y libmojolicious-perl cpanminus + sudo cpanm -n Perl::Tidy@20260204 + + - name: Check Perl file formatting with perltidy shell: bash run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" @@ -42,17 +43,11 @@ jobs: git diff --exit-code fi - prettier: - name: Check JavaScript, style, and HTML file formatting with prettier - runs-on: ubuntu-24.04 - steps: - - name: Checkout code - uses: actions/checkout@v6 - name: Install Node uses: actions/setup-node@v6 with: node-version: '24' - name: Install Dependencies run: cd htdocs && npm ci --ignore-scripts - - name: Check formatting with prettier + - name: Check JavaScript, style, and HTML file formatting with prettier run: cd htdocs && npm run prettier-check diff --git a/.prettierrc b/.prettierrc index b21dab0657..0737ccf48d 100644 --- a/.prettierrc +++ b/.prettierrc @@ -4,5 +4,6 @@ "printWidth": 120, "semi": true, "singleQuote": true, - "trailingComma": "none" + "trailingComma": "none", + "plugins": ["@openwebwork/prettier-plugin-mojolicious-html-template"] } diff --git a/htdocs/package-lock.json b/htdocs/package-lock.json index 03f9cfd6eb..4dcc44f2c3 100644 --- a/htdocs/package-lock.json +++ b/htdocs/package-lock.json @@ -21,6 +21,7 @@ "sortablejs": "^1.15.7" }, "devDependencies": { + "@openwebwork/prettier-plugin-mojolicious-html-template": "^0.0.1", "autoprefixer": "^10.5.4", "chokidar": "^5.0.0", "cssnano": "^8.0.2", @@ -368,6 +369,19 @@ "thememirror": "^2.0.1" } }, + "node_modules/@openwebwork/prettier-plugin-mojolicious-html-template": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@openwebwork/prettier-plugin-mojolicious-html-template/-/prettier-plugin-mojolicious-html-template-0.0.1.tgz", + "integrity": "sha512-kEcmwN3bYiA+K9c0bH5My9YNoGcWZLdRTlLmQ6VUxinjDq/QSAZsJnkeZySv2UAvGR7DUA7xUYO5sF8ZaHEuvg==", + "dev": true, + "license": "LGPL-3.0-or-later", + "dependencies": { + "@lezer/lr": "^1.4.10" + }, + "peerDependencies": { + "prettier": "^3.9.4" + } + }, "node_modules/@parcel/watcher": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", diff --git a/htdocs/package.json b/htdocs/package.json index 411ac35517..c5bfbdf34a 100644 --- a/htdocs/package.json +++ b/htdocs/package.json @@ -5,8 +5,8 @@ "scripts": { "generate-assets": "node generate-assets", "prepare": "npm run generate-assets", - "prettier-format": "prettier --ignore-path=../.gitignore --write \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\"", - "prettier-check": "prettier --ignore-path=../.gitignore --check \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\"" + "prettier-format": "prettier --ignore-path=../.gitignore --write \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\" \"../templates/**/*.html.ep\"", + "prettier-check": "prettier --ignore-path=../.gitignore --check \"**/*.{js,css,scss,html}\" \"../**/*.dist.yml\" \"../templates/**/*.html.ep\"" }, "repository": { "type": "git", @@ -27,6 +27,7 @@ "sortablejs": "^1.15.7" }, "devDependencies": { + "@openwebwork/prettier-plugin-mojolicious-html-template": "^0.0.1", "autoprefixer": "^10.5.4", "chokidar": "^5.0.0", "cssnano": "^8.0.2", @@ -51,5 +52,10 @@ "allowScripts": { "@parcel/watcher": false, "iframe-resizer": false + }, + "overrides": { + "@awmottaz/prettier-plugin-void-html": { + "prettier": "^3.9.5" + } } } diff --git a/templates/AchievementEvaluator/cheevoMessage.html.ep b/templates/AchievementEvaluator/cheevoMessage.html.ep index a602a82f90..5f795567a0 100644 --- a/templates/AchievementEvaluator/cheevoMessage.html.ep +++ b/templates/AchievementEvaluator/cheevoMessage.html.ep @@ -1,10 +1,9 @@ -