mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-07-24 22:25:22 +00:00
chore: add integrate Stylelint for CSS linting (#3909)
# Description of Changes **What was changed** - Added a new `.stylelintrc.json` to configure Stylelint with `stylelint-config-standard` and custom ignore rules. - Created a `lint:css` script in `package.json` and added `stylelint`/`stylelint-config-standard` to `devDependencies`. - Added `package-lock.json` to lock dependencies. - Updated numerous CSS files under `stirling-pdf/src/main/resources/static/css/` to fix lint errors (shorthand properties, removed redundant units, consistent box-shadow syntax, margin shorthand, etc.). **Why the change was made** - To enforce consistent, modern CSS code style across the project, catch errors early, and enable automated fixing of common lint issues. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
parent
8ba7cfe921
commit
626734c781
@ -119,7 +119,9 @@
|
||||
"EditorConfig.EditorConfig", // EditorConfig support for maintaining consistent coding styles
|
||||
"ms-azuretools.vscode-docker", // Docker extension for Visual Studio Code
|
||||
"charliermarsh.ruff", // Ruff extension for Ruff language support
|
||||
"github.vscode-github-actions" // GitHub Actions extension for Visual Studio Code
|
||||
"github.vscode-github-actions", // GitHub Actions extension for Visual Studio Code
|
||||
"stylelint.vscode-stylelint", // Stylelint extension for CSS and SCSS linting
|
||||
"redhat.vscode-yaml" // YAML extension for Visual Studio Code
|
||||
]
|
||||
}
|
||||
},
|
||||
|
1
.github/labeler-config-srvaroa.yml
vendored
1
.github/labeler-config-srvaroa.yml
vendored
@ -126,6 +126,7 @@ labels:
|
||||
- '.pre-commit-config'
|
||||
- '.github/workflows/pre_commit.yml'
|
||||
- 'devGuide/.*'
|
||||
- 'devTools/.*'
|
||||
|
||||
- label: 'Test'
|
||||
files:
|
||||
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
@ -17,5 +17,7 @@
|
||||
"GitHub.vscode-pull-request-github", // GitHub Pull Requests extension for Visual Studio Code
|
||||
"charliermarsh.ruff", // Ruff code formatter for Python to follow the Ruff Style Guide
|
||||
"yzhang.markdown-all-in-one", // Markdown All-in-One extension for enhanced Markdown editing
|
||||
"stylelint.vscode-stylelint", // Stylelint extension for CSS and SCSS linting
|
||||
"redhat.vscode-yaml", // YAML extension for Visual Studio Code
|
||||
]
|
||||
}
|
||||
|
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@ -9,6 +9,9 @@
|
||||
"[jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
"[css]": {
|
||||
"editor.defaultFormatter": "stylelint.vscode-stylelint"
|
||||
},
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
@ -27,6 +30,9 @@
|
||||
"[gradle]": {
|
||||
"editor.defaultFormatter": "vscjava.vscode-gradle"
|
||||
},
|
||||
"[yaml]": {
|
||||
"editor.defaultFormatter": "redhat.vscode-yaml"
|
||||
},
|
||||
"java.compile.nullAnalysis.mode": "automatic",
|
||||
"java.configuration.updateBuildConfiguration": "interactive",
|
||||
"java.format.enabled": true,
|
||||
@ -119,6 +125,7 @@
|
||||
"html.format.indentHandlebars": true,
|
||||
"html.format.preserveNewLines": true,
|
||||
"html.format.maxPreserveNewLines": 2,
|
||||
"stylelint.configFile": "devTools/.stylelintrc.json",
|
||||
"java.project.sourcePaths": [
|
||||
"stirling-pdf/src/main/java",
|
||||
"common/src/main/java",
|
||||
|
47
devGuide/STYLELINT.md
Normal file
47
devGuide/STYLELINT.md
Normal file
@ -0,0 +1,47 @@
|
||||
# STYLELINT.md
|
||||
|
||||
## Usage
|
||||
|
||||
Apply Stylelint to your project's CSS with the following steps:
|
||||
|
||||
1. **NPM Script**
|
||||
|
||||
- Go to directory: `devTools/`
|
||||
|
||||
- Add Stylelint & stylistic/stylelint-plugin
|
||||
```bash
|
||||
npm install --save-dev stylelint stylelint-config-standard
|
||||
npm install --save-dev @stylistic/stylelint-plugin
|
||||
```
|
||||
- Add a script entry to your `package.json`:
|
||||
```jsonc
|
||||
{
|
||||
"scripts": {
|
||||
"lint:css:check": "stylelint \"../stirling-pdf/src/main/**/*.css\" \"../proprietary/src/main/resources/static/css/*.css\" --config .stylelintrc.json",
|
||||
"lint:css:fix": "stylelint \"../stirling-pdf/src/main/**/*.css\" \"../proprietary/src/main/resources/static/css/*.css\" --config .stylelintrc.json --fix"
|
||||
}
|
||||
}
|
||||
```
|
||||
- Run the linter:
|
||||
```bash
|
||||
npm run lint:css:check
|
||||
npm run lint:css:fix
|
||||
```
|
||||
|
||||
2. **CLI Usage**
|
||||
|
||||
- Lint all CSS files:
|
||||
```bash
|
||||
npx stylelint ../stirling-pdf/src/main/**/*.css ../proprietary/src/main/resources/static/css/*.css
|
||||
```
|
||||
- Lint a single file:
|
||||
```bash
|
||||
npx stylelint ../proprietary/src/main/resources/static/css/audit-dashboard.css
|
||||
```
|
||||
- Apply automatic fixes:
|
||||
```bash
|
||||
npx stylelint "../stirling-pdf/src/main/**/*.css" "../proprietary/src/main/resources/static/css/*.css" --fix
|
||||
```
|
||||
|
||||
For full configuration options and rule customization, refer to the official documentation: [https://stylelint.io](https://stylelint.io)
|
||||
|
69
devTools/.stylelintrc.json
Normal file
69
devTools/.stylelintrc.json
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
"extends": [
|
||||
"stylelint-config-standard"
|
||||
],
|
||||
"plugins": [
|
||||
"@stylistic/stylelint-plugin"
|
||||
],
|
||||
"ignoreFiles": [
|
||||
"stirling-pdf/src/main/resources/static/css/bootstrap*.css",
|
||||
"stirling-pdf/src/main/resources/static/css/cookieconsent.css",
|
||||
"stirling-pdf/src/main/resources/static/css/cookieconsentCustomisation.css",
|
||||
"stirling-pdf/src/main/resources/static/css/prism.css",
|
||||
"stirling-pdf/src/main/resources/static/pdfjs-legacy/**/*.css"
|
||||
],
|
||||
"rules": {
|
||||
"property-no-vendor-prefix": null,
|
||||
"value-no-vendor-prefix": null,
|
||||
"selector-no-vendor-prefix": null,
|
||||
"media-feature-name-no-vendor-prefix": null,
|
||||
"value-keyword-case": null,
|
||||
"color-function-notation": null,
|
||||
"alpha-value-notation": null,
|
||||
"color-function-alias-notation": null,
|
||||
"selector-class-pattern": null,
|
||||
"selector-id-pattern": null,
|
||||
"declaration-block-no-redundant-longhand-properties": null,
|
||||
"media-feature-range-notation": "prefix",
|
||||
"selector-attribute-quotes": null,
|
||||
"at-rule-no-vendor-prefix": null,
|
||||
"selector-not-notation": null,
|
||||
"no-duplicate-selectors": [
|
||||
true,
|
||||
{
|
||||
"disableFix": true
|
||||
}
|
||||
],
|
||||
"comment-word-disallowed-list": null,
|
||||
"custom-property-pattern": null,
|
||||
"no-descending-specificity": null,
|
||||
"keyframes-name-pattern": null,
|
||||
"comment-empty-line-before": [
|
||||
"always",
|
||||
{
|
||||
"ignore": [
|
||||
"stylelint-commands"
|
||||
]
|
||||
}
|
||||
],
|
||||
"block-no-empty": true,
|
||||
"@stylistic/declaration-bang-space-after": "never",
|
||||
"@stylistic/declaration-bang-space-before": "always",
|
||||
"@stylistic/declaration-block-trailing-semicolon": "always",
|
||||
"@stylistic/function-comma-space-after": [
|
||||
"always-single-line",
|
||||
{
|
||||
"disableFix": false
|
||||
}
|
||||
],
|
||||
"@stylistic/function-comma-space-before": "never",
|
||||
"@stylistic/color-hex-case": "lower",
|
||||
"@stylistic/declaration-block-semicolon-newline-after": "always",
|
||||
"@stylistic/indentation": [
|
||||
2,
|
||||
{
|
||||
"baseIndentLevel": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
1598
devTools/package-lock.json
generated
Normal file
1598
devTools/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
13
devTools/package.json
Normal file
13
devTools/package.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "stirling-pdf",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"lint:css:check": "stylelint \"../stirling-pdf/src/main/**/*.css\" \"../proprietary/src/main/resources/static/css/*.css\" --config .stylelintrc.json",
|
||||
"lint:css:fix": "stylelint \"../stirling-pdf/src/main/**/*.css\" \"../proprietary/src/main/resources/static/css/*.css\" --config .stylelintrc.json --fix"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@stylistic/stylelint-plugin": "^3.1.3",
|
||||
"stylelint": "^16.21.1",
|
||||
"stylelint-config-standard": "^38.0.0"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user