├── .bunfig.toml ├── .changelogrc.js ├── .commitlintrc.js ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .fatherrc.ts ├── .github ├── ISSUE_TEMPLATE │ ├── 1_bug_report.yml │ ├── 2_feature_request.yml │ ├── 3_question.yml │ └── 4_other.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── auto-merge.yml │ ├── issue-check-inactive.yml │ ├── issue-close-require.yml │ ├── issue-remove-inactive.yml │ ├── pkg.pr.new.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .npmrc ├── .prettierignore ├── .prettierrc.js ├── .releaserc.js ├── .remarkrc.js ├── .stylelintrc.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── clean-package.config.js ├── package.json ├── renovate.json ├── src ├── changelog │ └── index.ts ├── commitlint │ └── index.ts ├── eslint │ └── index.ts ├── index.ts ├── prettier │ └── index.ts ├── remarklint │ ├── index.ts │ ├── remarkGfmHighlight.ts │ └── remarkTextrPlugins.ts ├── semantic-release │ ├── index.ts │ └── monorepo.ts └── stylelint │ └── index.ts ├── tsconfig.json └── typings.d.ts /.bunfig.toml: -------------------------------------------------------------------------------- 1 | [install.lockfile] 2 | 3 | save = false 4 | -------------------------------------------------------------------------------- /.changelogrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').changelog; 2 | -------------------------------------------------------------------------------- /.commitlintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').commitlint; 2 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | tab_width = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | max_line_length = 100 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | 18 | [Makefile] 19 | indent_style = tab -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # Eslintignore for LobeHub 2 | ################################################################ 3 | 4 | # dependencies 5 | node_modules 6 | 7 | # ci 8 | .coverage 9 | 10 | # test 11 | jest* 12 | _test_ 13 | __test__ 14 | 15 | # umi 16 | .umi 17 | .umi-production 18 | .umi-test 19 | .dumi/tmp* 20 | 21 | # production 22 | dist 23 | es 24 | lib 25 | logs 26 | 27 | # misc 28 | # add other ignore file below 29 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').eslint; 2 | -------------------------------------------------------------------------------- /.fatherrc.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'father'; 2 | 3 | export default defineConfig({ 4 | cjs: { 5 | output: 'dist', 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/1_bug_report.yml: -------------------------------------------------------------------------------- 1 | name: '🐛 反馈缺陷 Bug Report' 2 | description: '反馈一个问题缺陷 | Report an bug' 3 | title: '[Bug] ' 4 | labels: '🐛 Bug' 5 | body: 6 | - type: dropdown 7 | attributes: 8 | label: '💻 系统环境 | Operating System' 9 | options: 10 | - Windows 11 | - macOS 12 | - Ubuntu 13 | - Other Linux 14 | - Other 15 | validations: 16 | required: true 17 | - type: textarea 18 | attributes: 19 | label: '🐛 问题描述 | Bug Description' 20 | description: A clear and concise description of the bug. 21 | validations: 22 | required: true 23 | - type: textarea 24 | attributes: 25 | label: '🚦 期望结果 | Expected Behavior' 26 | description: A clear and concise description of what you expected to happen. 27 | - type: textarea 28 | attributes: 29 | label: '📷 复现步骤 | Recurrence Steps' 30 | description: A clear and concise description of how to recurrence. 31 | - type: textarea 32 | attributes: 33 | label: '📝 补充信息 | Additional Information' 34 | description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2_feature_request.yml: -------------------------------------------------------------------------------- 1 | name: '🌠 功能需求 Feature Request' 2 | description: '需求或建议 | Suggest an idea' 3 | title: '[Request] ' 4 | labels: '🌠 Feature Request' 5 | body: 6 | - type: textarea 7 | attributes: 8 | label: '🥰 需求描述 | Feature Description' 9 | description: Please add a clear and concise description of the problem you are seeking to solve with this feature request. 10 | validations: 11 | required: true 12 | - type: textarea 13 | attributes: 14 | label: '🧐 解决方案 | Proposed Solution' 15 | description: Describe the solution you'd like in a clear and concise manner. 16 | validations: 17 | required: true 18 | - type: textarea 19 | attributes: 20 | label: '📝 补充信息 | Additional Information' 21 | description: Add any other context about the problem here. 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/3_question.yml: -------------------------------------------------------------------------------- 1 | name: '😇 疑问或帮助 Help Wanted' 2 | description: '疑问或需要帮助 | Need help' 3 | title: '[Question] ' 4 | labels: '😇 Help Wanted' 5 | body: 6 | - type: textarea 7 | attributes: 8 | label: '🧐 问题描述 | Proposed Solution' 9 | description: A clear and concise description of the proplem. 10 | validations: 11 | required: true 12 | - type: textarea 13 | attributes: 14 | label: '📝 补充信息 | Additional Information' 15 | description: Add any other context about the problem here. 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/4_other.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: '📝 其他 Other' 3 | about: '其他问题 | Other issues' 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | #### 💻 变更类型 | Change Type 2 | 3 | 4 | 5 | - [ ] ✨ feat 6 | - [ ] 🐛 fix 7 | - [ ] 💄 style 8 | - [ ] 🔨 chore 9 | - [ ] 📝 docs 10 | 11 | #### 🔀 变更说明 | Description of Change 12 | 13 | 14 | 15 | #### 📝 补充信息 | Additional Information 16 | 17 | 18 | -------------------------------------------------------------------------------- /.github/workflows/auto-merge.yml: -------------------------------------------------------------------------------- 1 | name: Dependabot Auto Merge 2 | on: 3 | pull_request_target: 4 | types: [labeled, edited] 5 | 6 | jobs: 7 | merge: 8 | if: contains(github.event.pull_request.labels.*.name, 'dependencies') 9 | name: Dependabot Auto Merge 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | 14 | - name: Install bun 15 | uses: oven-sh/setup-bun@v2 16 | 17 | - name: Install deps 18 | run: bun i 19 | 20 | - name: Merge 21 | uses: ahmadnassri/action-dependabot-auto-merge@v2 22 | with: 23 | command: merge 24 | target: minor 25 | github-token: ${{ secrets.GH_TOKEN }} 26 | -------------------------------------------------------------------------------- /.github/workflows/issue-check-inactive.yml: -------------------------------------------------------------------------------- 1 | name: Issue Check Inactive 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 */15 * *' 6 | 7 | permissions: 8 | contents: read 9 | 10 | jobs: 11 | issue-check-inactive: 12 | permissions: 13 | issues: write # for actions-cool/issues-helper to update issues 14 | pull-requests: write # for actions-cool/issues-helper to update PRs 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: check-inactive 18 | uses: actions-cool/issues-helper@v3 19 | with: 20 | actions: 'check-inactive' 21 | inactive-label: 'Inactive' 22 | inactive-day: 30 23 | -------------------------------------------------------------------------------- /.github/workflows/issue-close-require.yml: -------------------------------------------------------------------------------- 1 | name: Issue Close Require 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | 7 | permissions: 8 | contents: read 9 | 10 | jobs: 11 | issue-close-require: 12 | permissions: 13 | issues: write # for actions-cool/issues-helper to update issues 14 | pull-requests: write # for actions-cool/issues-helper to update PRs 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: need reproduce 18 | uses: actions-cool/issues-helper@v3 19 | with: 20 | actions: 'close-issues' 21 | labels: '✅ Fixed' 22 | inactive-day: 3 23 | body: | 24 | Since the issue was labeled with `✅ Fixed`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply. 25 | 26 | 由于该 issue 被标记为已修复,同时 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。 27 | - name: need reproduce 28 | uses: actions-cool/issues-helper@v3 29 | with: 30 | actions: 'close-issues' 31 | labels: '🤔 Need Reproduce' 32 | inactive-day: 3 33 | body: | 34 | Since the issue was labeled with `🤔 Need Reproduce`, but no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply. 35 | 36 | 由于该 issue 被标记为需要更多信息,却 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。 37 | - name: need reproduce 38 | uses: actions-cool/issues-helper@v3 39 | with: 40 | actions: 'close-issues' 41 | labels: "🙅🏻‍♀️ WON'T DO" 42 | inactive-day: 3 43 | body: | 44 | Since the issue was labeled with `🙅🏻‍♀️ WON'T DO`, and no response in 3 days. This issue will be closed. If you have any questions, you can comment and reply. 45 | 46 | 由于该 issue 被标记为暂不处理,同时 3 天未收到回应。现关闭 issue,若有任何问题,可评论回复。 47 | -------------------------------------------------------------------------------- /.github/workflows/issue-remove-inactive.yml: -------------------------------------------------------------------------------- 1 | name: Issue Remove Inactive 2 | 3 | on: 4 | issues: 5 | types: [edited] 6 | issue_comment: 7 | types: [created, edited] 8 | 9 | permissions: 10 | contents: read 11 | 12 | jobs: 13 | issue-remove-inactive: 14 | permissions: 15 | issues: write # for actions-cool/issues-helper to update issues 16 | pull-requests: write # for actions-cool/issues-helper to update PRs 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: remove inactive 20 | if: github.event.issue.state == 'open' && github.actor == github.event.issue.user.login 21 | uses: actions-cool/issues-helper@v3 22 | with: 23 | actions: 'remove-labels' 24 | issue-number: ${{ github.event.issue.number }} 25 | labels: 'Inactive' 26 | -------------------------------------------------------------------------------- /.github/workflows/pkg.pr.new.yml: -------------------------------------------------------------------------------- 1 | name: Pkg Pr New CI 2 | on: 3 | pull_request: 4 | push: 5 | branches: 6 | - '!main' 7 | 8 | jobs: 9 | release: 10 | name: Release 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | 15 | - name: Install bun 16 | uses: oven-sh/setup-bun@v2 17 | 18 | - name: Install deps 19 | run: bun i 20 | 21 | - name: CI 22 | run: bun run ci 23 | 24 | - name: Test 25 | run: bun run test 26 | 27 | - name: Build 28 | run: bun run build 29 | 30 | - name: Release 31 | run: bunx pkg-pr-new publish 32 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Build and Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | release: 10 | name: release 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | 15 | - name: Install bun 16 | uses: oven-sh/setup-bun@v2 17 | 18 | - name: Install deps 19 | run: bun i 20 | 21 | - name: Build 22 | run: bun run build 23 | 24 | - name: Release 25 | run: bun run release 26 | env: 27 | GH_TOKEN: ${{ secrets.GH_TOKEN }} 28 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 29 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test CI 2 | on: 3 | pull_request: 4 | push: 5 | branches: 6 | - '!main' 7 | jobs: 8 | test: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v4 13 | 14 | - name: Install bun 15 | uses: oven-sh/setup-bun@v2 16 | 17 | - name: Install deps 18 | run: bun i 19 | 20 | - name: Test 21 | run: bun run test 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Gitignore for LobeHub 2 | ################################################################ 3 | 4 | # general 5 | .DS_Store 6 | .idea 7 | .vscode 8 | .history 9 | .temp 10 | .env.local 11 | venv 12 | temp 13 | tmp 14 | 15 | # dependencies 16 | node_modules 17 | *.log 18 | *.lock 19 | package-lock.json 20 | bun.lockb 21 | 22 | # ci 23 | .coverage 24 | .eslintcache 25 | .stylelintcache 26 | 27 | # production 28 | dist 29 | es 30 | lib 31 | logs 32 | test-output 33 | 34 | # umi 35 | .umi 36 | .umi-production 37 | .umi-test 38 | .dumi/tmp* 39 | 40 | # husky 41 | .husky/prepare-commit-msg 42 | 43 | # misc 44 | # add other ignore file below 45 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | npx --no -- commitlint --edit ${1} 4 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | npm run type-check 4 | npm run lint:circular 5 | npx --no-install lint-staged 6 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | lockfile=false 2 | resolution-mode=highest 3 | public-hoist-pattern[]=*@umijs/lint* 4 | public-hoist-pattern[]=*changelog* 5 | public-hoist-pattern[]=*commitlint* 6 | public-hoist-pattern[]=*eslint* 7 | public-hoist-pattern[]=*postcss* 8 | public-hoist-pattern[]=*prettier* 9 | public-hoist-pattern[]=*remark* 10 | public-hoist-pattern[]=*semantic-release* 11 | public-hoist-pattern[]=*stylelint* 12 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Prettierignore for LobeHub 2 | ################################################################ 3 | 4 | # general 5 | .DS_Store 6 | .editorconfig 7 | .idea 8 | .vscode 9 | .history 10 | .temp 11 | .env.local 12 | .husky 13 | .npmrc 14 | venv 15 | temp 16 | tmp 17 | LICENSE 18 | 19 | # dependencies 20 | node_modules 21 | *.log 22 | *.lock 23 | package-lock.json 24 | 25 | # ci 26 | .coverage 27 | .eslintcache 28 | .stylelintcache 29 | test-output 30 | 31 | # production 32 | dist 33 | es 34 | lib 35 | logs 36 | 37 | # umi 38 | .umi 39 | .umi-production 40 | .umi-test 41 | .dumi/tmp* 42 | 43 | # ignore files 44 | .*ignore 45 | 46 | # docker 47 | docker 48 | Dockerfile* 49 | 50 | # image 51 | *.webp 52 | *.gif 53 | *.png 54 | *.jpg 55 | 56 | # misc 57 | # add other ignore file below 58 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').prettier; 2 | -------------------------------------------------------------------------------- /.releaserc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').semanticRelease; 2 | -------------------------------------------------------------------------------- /.remarkrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').remarklint; 2 | -------------------------------------------------------------------------------- /.stylelintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./dist').stylelint; 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Changelog 4 | 5 | ### [Version 1.26.2](https://github.com/lobehub/lobe-lint/compare/v1.26.1...v1.26.2) 6 | 7 | Released on **2025-05-27** 8 | 9 | #### 💄 Styles 10 | 11 | - **misc**: Update eslint rule. 12 | 13 |
14 | 15 |
16 | Improvements and Fixes 17 | 18 | #### Styles 19 | 20 | - **misc**: Update eslint rule ([164daa0](https://github.com/lobehub/lobe-lint/commit/164daa0)) 21 | 22 |
23 | 24 |
25 | 26 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 27 | 28 |
29 | 30 | ### [Version 1.26.1](https://github.com/lobehub/lobe-lint/compare/v1.26.0...v1.26.1) 31 | 32 | Released on **2025-04-02** 33 | 34 | #### 🐛 Bug Fixes 35 | 36 | - **misc**: Fix jsx. 37 | 38 |
39 | 40 |
41 | Improvements and Fixes 42 | 43 | #### What's fixed 44 | 45 | - **misc**: Fix jsx ([84bb801](https://github.com/lobehub/lobe-lint/commit/84bb801)) 46 | 47 |
48 | 49 |
50 | 51 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 52 | 53 |
54 | 55 | ## [Version 1.26.0](https://github.com/lobehub/lobe-lint/compare/v1.25.7...v1.26.0) 56 | 57 | Released on **2025-04-02** 58 | 59 | #### ✨ Features 60 | 61 | - **misc**: Support decorators in prettier. 62 | 63 |
64 | 65 |
66 | Improvements and Fixes 67 | 68 | #### What's improved 69 | 70 | - **misc**: Support decorators in prettier ([dc17b98](https://github.com/lobehub/lobe-lint/commit/dc17b98)) 71 | 72 |
73 | 74 |
75 | 76 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 77 | 78 |
79 | 80 | ### [Version 1.25.7](https://github.com/lobehub/lobe-lint/compare/v1.25.6...v1.25.7) 81 | 82 | Released on **2025-01-31** 83 | 84 | #### 🐛 Bug Fixes 85 | 86 | - **misc**: Fix deps. 87 | 88 |
89 | 90 |
91 | Improvements and Fixes 92 | 93 | #### What's fixed 94 | 95 | - **misc**: Fix deps ([97595b3](https://github.com/lobehub/lobe-lint/commit/97595b3)) 96 | 97 |
98 | 99 |
100 | 101 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 102 | 103 |
104 | 105 | ### [Version 1.25.6](https://github.com/lobehub/lobe-lint/compare/v1.25.5...v1.25.6) 106 | 107 | Released on **2025-01-31** 108 | 109 | #### 🐛 Bug Fixes 110 | 111 | - **misc**: Fix deps. 112 | 113 |
114 | 115 |
116 | Improvements and Fixes 117 | 118 | #### What's fixed 119 | 120 | - **misc**: Fix deps ([167c501](https://github.com/lobehub/lobe-lint/commit/167c501)) 121 | 122 |
123 | 124 |
125 | 126 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 127 | 128 |
129 | 130 | ### [Version 1.25.5](https://github.com/lobehub/lobe-lint/compare/v1.25.4...v1.25.5) 131 | 132 | Released on **2025-01-09** 133 | 134 | #### 💄 Styles 135 | 136 | - **misc**: Update react/self-closing-comp. 137 | 138 |
139 | 140 |
141 | Improvements and Fixes 142 | 143 | #### Styles 144 | 145 | - **misc**: Update react/self-closing-comp ([de3850c](https://github.com/lobehub/lobe-lint/commit/de3850c)) 146 | 147 |
148 | 149 |
150 | 151 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 152 | 153 |
154 | 155 | ### [Version 1.25.4](https://github.com/lobehub/lobe-lint/compare/v1.25.3...v1.25.4) 156 | 157 | Released on **2025-01-09** 158 | 159 | #### 🐛 Bug Fixes 160 | 161 | - **misc**: Fix json order. 162 | 163 |
164 | 165 |
166 | Improvements and Fixes 167 | 168 | #### What's fixed 169 | 170 | - **misc**: Fix json order ([d8463ae](https://github.com/lobehub/lobe-lint/commit/d8463ae)) 171 | 172 |
173 | 174 |
175 | 176 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 177 | 178 |
179 | 180 | ### [Version 1.25.3](https://github.com/lobehub/lobe-lint/compare/v1.25.2...v1.25.3) 181 | 182 | Released on **2025-01-07** 183 | 184 | #### 🐛 Bug Fixes 185 | 186 | - **misc**: Fix @typescript-eslint/eslint-plugin. 187 | 188 |
189 | 190 |
191 | Improvements and Fixes 192 | 193 | #### What's fixed 194 | 195 | - **misc**: Fix @typescript-eslint/eslint-plugin ([7c4a12e](https://github.com/lobehub/lobe-lint/commit/7c4a12e)) 196 | 197 |
198 | 199 |
200 | 201 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 202 | 203 |
204 | 205 | ### [Version 1.25.2](https://github.com/lobehub/lobe-lint/compare/v1.25.1...v1.25.2) 206 | 207 | Released on **2025-01-07** 208 | 209 | #### 🐛 Bug Fixes 210 | 211 | - **misc**: Fix eslint. 212 | 213 |
214 | 215 |
216 | Improvements and Fixes 217 | 218 | #### What's fixed 219 | 220 | - **misc**: Fix eslint ([9e73db0](https://github.com/lobehub/lobe-lint/commit/9e73db0)) 221 | 222 |
223 | 224 |
225 | 226 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 227 | 228 |
229 | 230 | ### [Version 1.25.1](https://github.com/lobehub/lobe-lint/compare/v1.25.0...v1.25.1) 231 | 232 | Released on **2025-01-07** 233 | 234 | #### 🐛 Bug Fixes 235 | 236 | - **misc**: Fix eslint. 237 | 238 |
239 | 240 |
241 | Improvements and Fixes 242 | 243 | #### What's fixed 244 | 245 | - **misc**: Fix eslint ([562abca](https://github.com/lobehub/lobe-lint/commit/562abca)) 246 | 247 |
248 | 249 |
250 | 251 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 252 | 253 |
254 | 255 | ## [Version 1.25.0](https://github.com/lobehub/lobe-lint/compare/v1.24.4...v1.25.0) 256 | 257 | Released on **2025-01-07** 258 | 259 | #### ✨ Features 260 | 261 | - **misc**: Update Remark. 262 | 263 |
264 | 265 |
266 | Improvements and Fixes 267 | 268 | #### What's improved 269 | 270 | - **misc**: Update Remark ([78eec46](https://github.com/lobehub/lobe-lint/commit/78eec46)) 271 | 272 |
273 | 274 |
275 | 276 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 277 | 278 |
279 | 280 | ### [Version 1.24.4](https://github.com/lobehub/lobe-lint/compare/v1.24.3...v1.24.4) 281 | 282 | Released on **2024-08-09** 283 | 284 | #### 🐛 Bug Fixes 285 | 286 | - **misc**: Fix eslint-plugin-unused-imports. 287 | 288 |
289 | 290 |
291 | Improvements and Fixes 292 | 293 | #### What's fixed 294 | 295 | - **misc**: Fix eslint-plugin-unused-imports ([8bf0f43](https://github.com/lobehub/lobe-lint/commit/8bf0f43)) 296 | 297 |
298 | 299 |
300 | 301 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 302 | 303 |
304 | 305 | ### [Version 1.24.3](https://github.com/lobehub/lobe-lint/compare/v1.24.2...v1.24.3) 306 | 307 | Released on **2024-07-01** 308 | 309 | #### 🐛 Bug Fixes 310 | 311 | - **misc**: Fix eslint. 312 | 313 |
314 | 315 |
316 | Improvements and Fixes 317 | 318 | #### What's fixed 319 | 320 | - **misc**: Fix eslint ([e97b167](https://github.com/lobehub/lobe-lint/commit/e97b167)) 321 | 322 |
323 | 324 |
325 | 326 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 327 | 328 |
329 | 330 | ### [Version 1.24.2](https://github.com/lobehub/lobe-lint/compare/v1.24.1...v1.24.2) 331 | 332 | Released on **2024-07-01** 333 | 334 | #### 🐛 Bug Fixes 335 | 336 | - **misc**: Fix stylelint. 337 | 338 |
339 | 340 |
341 | Improvements and Fixes 342 | 343 | #### What's fixed 344 | 345 | - **misc**: Fix stylelint ([13b8d9c](https://github.com/lobehub/lobe-lint/commit/13b8d9c)) 346 | 347 |
348 | 349 |
350 | 351 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 352 | 353 |
354 | 355 | ### [Version 1.24.1](https://github.com/lobehub/lobe-lint/compare/v1.24.0...v1.24.1) 356 | 357 | Released on **2024-07-01** 358 | 359 | #### 🐛 Bug Fixes 360 | 361 | - **misc**: Fix stylelint. 362 | 363 |
364 | 365 |
366 | Improvements and Fixes 367 | 368 | #### What's fixed 369 | 370 | - **misc**: Fix stylelint ([a64d63e](https://github.com/lobehub/lobe-lint/commit/a64d63e)) 371 | 372 |
373 | 374 |
375 | 376 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 377 | 378 |
379 | 380 | ## [Version 1.24.0](https://github.com/lobehub/lobe-lint/compare/v1.23.4...v1.24.0) 381 | 382 | Released on **2024-07-01** 383 | 384 | #### ✨ Features 385 | 386 | - **misc**: Add stylelint-use-logical-spec. 387 | 388 | #### 🐛 Bug Fixes 389 | 390 | - **misc**: Fix deps. 391 | 392 | #### 💄 Styles 393 | 394 | - **misc**: Update value-no-vendor-prefix in stylelint. 395 | 396 |
397 | 398 |
399 | Improvements and Fixes 400 | 401 | #### What's improved 402 | 403 | - **misc**: Add stylelint-use-logical-spec ([861ecb8](https://github.com/lobehub/lobe-lint/commit/861ecb8)) 404 | 405 | #### What's fixed 406 | 407 | - **misc**: Fix deps ([08169dd](https://github.com/lobehub/lobe-lint/commit/08169dd)) 408 | 409 | #### Styles 410 | 411 | - **misc**: Update value-no-vendor-prefix in stylelint ([050b93f](https://github.com/lobehub/lobe-lint/commit/050b93f)) 412 | 413 |
414 | 415 |
416 | 417 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 418 | 419 |
420 | 421 | ### [Version 1.23.4](https://github.com/lobehub/lobe-lint/compare/v1.23.3...v1.23.4) 422 | 423 | Released on **2024-04-30** 424 | 425 | #### 🐛 Bug Fixes 426 | 427 | - **misc**: Lock [@typescript-eslint](https://github.com/typescript-eslint). 428 | 429 |
430 | 431 |
432 | Improvements and Fixes 433 | 434 | #### What's fixed 435 | 436 | - **misc**: Lock [@typescript-eslint](https://github.com/typescript-eslint) ([00c796f](https://github.com/lobehub/lobe-lint/commit/00c796f)) 437 | 438 |
439 | 440 |
441 | 442 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 443 | 444 |
445 | 446 | ### [Version 1.23.3](https://github.com/lobehub/lobe-lint/compare/v1.23.2...v1.23.3) 447 | 448 | Released on **2024-04-08** 449 | 450 | #### 🐛 Bug Fixes 451 | 452 | - **misc**: Fix eslint rule. 453 | 454 |
455 | 456 |
457 | Improvements and Fixes 458 | 459 | #### What's fixed 460 | 461 | - **misc**: Fix eslint rule ([8e82b19](https://github.com/lobehub/lobe-lint/commit/8e82b19)) 462 | 463 |
464 | 465 |
466 | 467 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 468 | 469 |
470 | 471 | ### [Version 1.23.2](https://github.com/lobehub/lobe-lint/compare/v1.23.1...v1.23.2) 472 | 473 | Released on **2024-04-08** 474 | 475 | #### 🐛 Bug Fixes 476 | 477 | - **misc**: Fix eslint config. 478 | 479 |
480 | 481 |
482 | Improvements and Fixes 483 | 484 | #### What's fixed 485 | 486 | - **misc**: Fix eslint config ([13a80a4](https://github.com/lobehub/lobe-lint/commit/13a80a4)) 487 | 488 |
489 | 490 |
491 | 492 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 493 | 494 |
495 | 496 | ### [Version 1.23.1](https://github.com/lobehub/lobe-lint/compare/v1.23.0...v1.23.1) 497 | 498 | Released on **2024-04-08** 499 | 500 |
501 | 502 |
503 | Improvements and Fixes 504 | 505 |
506 | 507 |
508 | 509 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 510 | 511 |
512 | 513 | ## [Version 1.23.0](https://github.com/lobehub/lobe-lint/compare/v1.22.0...v1.23.0) 514 | 515 | Released on **2024-04-03** 516 | 517 | #### ✨ Features 518 | 519 | - **misc**: Update deps. 520 | 521 |
522 | 523 |
524 | Improvements and Fixes 525 | 526 | #### What's improved 527 | 528 | - **misc**: Update deps ([82db000](https://github.com/lobehub/lobe-lint/commit/82db000)) 529 | 530 |
531 | 532 |
533 | 534 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 535 | 536 |
537 | 538 | ## [Version 1.22.0](https://github.com/lobehub/lobe-lint/compare/v1.21.0...v1.22.0) 539 | 540 | Released on **2024-03-05** 541 | 542 | #### ✨ Features 543 | 544 | - **misc**: Update changelog config. 545 | 546 |
547 | 548 |
549 | Improvements and Fixes 550 | 551 | #### What's improved 552 | 553 | - **misc**: Update changelog config ([0080ab9](https://github.com/lobehub/lobe-lint/commit/0080ab9)) 554 | 555 |
556 | 557 |
558 | 559 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 560 | 561 |
562 | 563 | ## [Version 1.21.0](https://github.com/lobehub/lobe-lint/compare/v1.20.0...v1.21.0) 564 | 565 | Released on **2023-11-16** 566 | 567 | #### ✨ Features 568 | 569 | - **misc**: Add new function "remarkGfmHighlight" for modifying "blockquote" nodes. 570 | 571 |
572 | 573 |
574 | Improvements and Fixes 575 | 576 | #### What's improved 577 | 578 | - **misc**: Add new function "remarkGfmHighlight" for modifying "blockquote" nodes ([e0cd845](https://github.com/lobehub/lobe-lint/commit/e0cd845)) 579 | 580 |
581 | 582 |
583 | 584 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 585 | 586 |
587 | 588 | ## [Version 1.20.0](https://github.com/lobehub/lobe-lint/compare/v1.19.0...v1.20.0) 589 | 590 | Released on **2023-11-16** 591 | 592 | #### ✨ Features 593 | 594 | - **misc**: Add function to highlight specific blockquote nodes in Markdown. 595 | 596 |
597 | 598 |
599 | Improvements and Fixes 600 | 601 | #### What's improved 602 | 603 | - **misc**: Add function to highlight specific blockquote nodes in Markdown ([a17a894](https://github.com/lobehub/lobe-lint/commit/a17a894)) 604 | 605 |
606 | 607 |
608 | 609 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 610 | 611 |
612 | 613 | ## [Version 1.19.0](https://github.com/lobehub/lobe-lint/compare/v1.18.1...v1.19.0) 614 | 615 | Released on **2023-11-16** 616 | 617 | #### ✨ Features 618 | 619 | - **misc**: Update dependencies and modify code in TypeScript files. 620 | 621 |
622 | 623 |
624 | Improvements and Fixes 625 | 626 | #### What's improved 627 | 628 | - **misc**: Update dependencies and modify code in TypeScript files ([0786757](https://github.com/lobehub/lobe-lint/commit/0786757)) 629 | 630 |
631 | 632 |
633 | 634 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 635 | 636 |
637 | 638 | ### [Version 1.18.1](https://github.com/lobehub/lobe-lint/compare/v1.18.0...v1.18.1) 639 | 640 | Released on **2023-09-21** 641 | 642 | #### 🐛 Bug Fixes 643 | 644 | - **misc**: Fix remark-gfm deps. 645 | 646 |
647 | 648 |
649 | Improvements and Fixes 650 | 651 | #### What's fixed 652 | 653 | - **misc**: Fix remark-gfm deps ([1e1408f](https://github.com/lobehub/lobe-lint/commit/1e1408f)) 654 | 655 |
656 | 657 |
658 | 659 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 660 | 661 |
662 | 663 | ## [Version 1.18.0](https://github.com/lobehub/lobe-lint/compare/v1.17.0...v1.18.0) 664 | 665 | Released on **2023-09-17** 666 | 667 | #### ✨ Features 668 | 669 | - **misc**: Update remark setting. 670 | 671 |
672 | 673 |
674 | Improvements and Fixes 675 | 676 | #### What's improved 677 | 678 | - **misc**: Update remark setting ([c457ae0](https://github.com/lobehub/lobe-lint/commit/c457ae0)) 679 | 680 |
681 | 682 |
683 | 684 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 685 | 686 |
687 | 688 | ## [Version 1.17.0](https://github.com/lobehub/lobe-lint/compare/v1.16.0...v1.17.0) 689 | 690 | Released on **2023-09-05** 691 | 692 | #### ✨ Features 693 | 694 | - **misc**: Update remark plugins. 695 | 696 |
697 | 698 |
699 | Improvements and Fixes 700 | 701 | #### What's improved 702 | 703 | - **misc**: Update remark plugins ([25232f8](https://github.com/lobehub/lobe-lint/commit/25232f8)) 704 | 705 |
706 | 707 |
708 | 709 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 710 | 711 |
712 | 713 | ## [Version 1.16.0](https://github.com/lobehub/lobe-lint/compare/v1.15.2...v1.16.0) 714 | 715 | Released on **2023-09-04** 716 | 717 | #### ✨ Features 718 | 719 | - **misc**: Update eslint with umiji/lint. 720 | 721 |
722 | 723 |
724 | Improvements and Fixes 725 | 726 | #### What's improved 727 | 728 | - **misc**: Update eslint with umiji/lint ([fe602c3](https://github.com/lobehub/lobe-lint/commit/fe602c3)) 729 | 730 |
731 | 732 |
733 | 734 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 735 | 736 |
737 | 738 | ### [Version 1.15.2](https://github.com/lobehub/lobe-lint/compare/v1.15.1...v1.15.2) 739 | 740 | Released on **2023-08-25** 741 | 742 | #### 🐛 Bug Fixes 743 | 744 | - **misc**: Fix error. 745 | 746 |
747 | 748 |
749 | Improvements and Fixes 750 | 751 | #### What's fixed 752 | 753 | - **misc**: Fix error ([570fcd4](https://github.com/lobehub/lobe-lint/commit/570fcd4)) 754 | 755 |
756 | 757 |
758 | 759 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 760 | 761 |
762 | 763 | ### [Version 1.15.1](https://github.com/lobehub/lobe-lint/compare/v1.15.0...v1.15.1) 764 | 765 | Released on **2023-08-25** 766 | 767 | #### 💄 Styles 768 | 769 | - **misc**: Update ESLint rules for TypeScript project. 770 | 771 |
772 | 773 |
774 | Improvements and Fixes 775 | 776 | #### Styles 777 | 778 | - **misc**: Update ESLint rules for TypeScript project ([56314d0](https://github.com/lobehub/lobe-lint/commit/56314d0)) 779 | 780 |
781 | 782 |
783 | 784 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 785 | 786 |
787 | 788 | ## [Version 1.15.0](https://github.com/lobehub/lobe-lint/compare/v1.14.0...v1.15.0) 789 | 790 | Released on **2023-08-25** 791 | 792 | #### ✨ Features 793 | 794 | - **misc**: Add new dependencies and update ESLint configuration. 795 | 796 |
797 | 798 |
799 | Improvements and Fixes 800 | 801 | #### What's improved 802 | 803 | - **misc**: Add new dependencies and update ESLint configuration ([1d92c16](https://github.com/lobehub/lobe-lint/commit/1d92c16)) 804 | 805 |
806 | 807 |
808 | 809 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 810 | 811 |
812 | 813 | ## [Version 1.14.0](https://github.com/lobehub/lobe-lint/compare/v1.13.0...v1.14.0) 814 | 815 | Released on **2023-08-25** 816 | 817 | #### ✨ Features 818 | 819 | - **misc**: Add TypeScript, Jest, and React dependencies and plugins. 820 | 821 |
822 | 823 |
824 | Improvements and Fixes 825 | 826 | #### What's improved 827 | 828 | - **misc**: Add TypeScript, Jest, and React dependencies and plugins ([898dbc9](https://github.com/lobehub/lobe-lint/commit/898dbc9)) 829 | 830 |
831 | 832 |
833 | 834 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 835 | 836 |
837 | 838 | ## [Version 1.13.0](https://github.com/lobehub/lobe-lint/compare/v1.12.0...v1.13.0) 839 | 840 | Released on **2023-07-13** 841 | 842 | #### ✨ Features 843 | 844 | - **misc**: Add export statement for semanticReleaseMonoRepo, modify options object and export in semantic-release/index.ts, and create semantic-release/monorepo.ts file with imported options and new configuration object. 845 | 846 |
847 | 848 |
849 | Improvements and Fixes 850 | 851 | #### What's improved 852 | 853 | - **misc**: Add export statement for semanticReleaseMonoRepo, modify options object and export in semantic-release/index.ts, and create semantic-release/monorepo.ts file with imported options and new configuration object ([e46cd6c](https://github.com/lobehub/lobe-lint/commit/e46cd6c)) 854 | 855 |
856 | 857 |
858 | 859 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 860 | 861 |
862 | 863 | ## [Version 1.12.0](https://github.com/lobehub/lobe-lint/compare/v1.11.0...v1.12.0) 864 | 865 | Released on **2023-07-09** 866 | 867 | #### ✨ Features 868 | 869 | - **eslint**: Add "unicorn/switch-case-braces" rule with warning level. 870 | 871 |
872 | 873 |
874 | Improvements and Fixes 875 | 876 | #### What's improved 877 | 878 | - **eslint**: Add "unicorn/switch-case-braces" rule with warning level ([3dddf3d](https://github.com/lobehub/lobe-lint/commit/3dddf3d)) 879 | 880 |
881 | 882 |
883 | 884 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 885 | 886 |
887 | 888 | ## [Version 1.11.0](https://github.com/lobehub/lobe-lint/compare/v1.10.0...v1.11.0) 889 | 890 | Released on **2023-07-09** 891 | 892 | #### ✨ Features 893 | 894 | - **misc**: Update prettier dependency and add eslint rules. 895 | 896 |
897 | 898 |
899 | Improvements and Fixes 900 | 901 | #### What's improved 902 | 903 | - **misc**: Update prettier dependency and add eslint rules ([1715d85](https://github.com/lobehub/lobe-lint/commit/1715d85)) 904 | 905 |
906 | 907 |
908 | 909 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 910 | 911 |
912 | 913 | ## [Version 1.10.0](https://github.com/lobehub/lobe-lint/compare/v1.9.0...v1.10.0) 914 | 915 | Released on **2023-07-09** 916 | 917 | #### ✨ Features 918 | 919 | - **eslint**: Add warnings for "no-empty", "unicorn/explicit-length-check", and "unicorn/no-empty-file" rules. 920 | 921 |
922 | 923 |
924 | Improvements and Fixes 925 | 926 | #### What's improved 927 | 928 | - **eslint**: Add warnings for "no-empty", "unicorn/explicit-length-check", and "unicorn/no-empty-file" rules ([51c8ce6](https://github.com/lobehub/lobe-lint/commit/51c8ce6)) 929 | 930 |
931 | 932 |
933 | 934 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 935 | 936 |
937 | 938 | ## [Version 1.9.0](https://github.com/lobehub/lobe-lint/compare/v1.8.2...v1.9.0) 939 | 940 | Released on **2023-07-08** 941 | 942 | #### ✨ Features 943 | 944 | - **eslint**: Update coding conventions rules in "index.ts". 945 | 946 |
947 | 948 |
949 | Improvements and Fixes 950 | 951 | #### What's improved 952 | 953 | - **eslint**: Update coding conventions rules in "index.ts" ([aee57d1](https://github.com/lobehub/lobe-lint/commit/aee57d1)) 954 | 955 |
956 | 957 |
958 | 959 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 960 | 961 |
962 | 963 | ### [Version 1.8.2](https://github.com/lobehub/lobe-lint/compare/v1.8.1...v1.8.2) 964 | 965 | Released on **2023-07-07** 966 | 967 | #### 🐛 Bug Fixes 968 | 969 | - **eslint**: Rm env from abbreviations. 970 | 971 |
972 | 973 |
974 | Improvements and Fixes 975 | 976 | #### What's fixed 977 | 978 | - **eslint**: Rm env from abbreviations ([2d04f48](https://github.com/lobehub/lobe-lint/commit/2d04f48)) 979 | 980 |
981 | 982 |
983 | 984 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 985 | 986 |
987 | 988 | ### [Version 1.8.1](https://github.com/lobehub/lobe-lint/compare/v1.8.0...v1.8.1) 989 | 990 | Released on **2023-07-07** 991 | 992 | #### 🐛 Bug Fixes 993 | 994 | - **eslint**: Add ProcessEnv to abbreviations list. 995 | 996 |
997 | 998 |
999 | Improvements and Fixes 1000 | 1001 | #### What's fixed 1002 | 1003 | - **eslint**: Add ProcessEnv to abbreviations list ([1a471a6](https://github.com/lobehub/lobe-lint/commit/1a471a6)) 1004 | 1005 |
1006 | 1007 |
1008 | 1009 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1010 | 1011 |
1012 | 1013 | ## [Version 1.8.0](https://github.com/lobehub/lobe-lint/compare/v1.7.5...v1.8.0) 1014 | 1015 | Released on **2023-06-16** 1016 | 1017 | #### ✨ Features 1018 | 1019 | - **eslint**: Add new rules for unicorn/no-array-for-each and unicorn/no-null, update eslint config. 1020 | 1021 |
1022 | 1023 |
1024 | Improvements and Fixes 1025 | 1026 | #### What's improved 1027 | 1028 | - **eslint**: Add new rules for unicorn/no-array-for-each and unicorn/no-null ([124cd9c](https://github.com/lobehub/lobe-lint/commit/124cd9c)) 1029 | - **eslint**: Update eslint config ([58594d6](https://github.com/lobehub/lobe-lint/commit/58594d6)) 1030 | 1031 |
1032 | 1033 |
1034 | 1035 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1036 | 1037 |
1038 | 1039 | ### [Version 1.7.5](https://github.com/lobehub/lobe-lint/compare/v1.7.4...v1.7.5) 1040 | 1041 | Released on **2023-06-16** 1042 | 1043 | #### ♻ Code Refactoring 1044 | 1045 | - **eslint**: Update unicorn/prevent-abbreviations rule. 1046 | 1047 |
1048 | 1049 |
1050 | Improvements and Fixes 1051 | 1052 | #### Code refactoring 1053 | 1054 | - **eslint**: Update unicorn/prevent-abbreviations rule ([054255a](https://github.com/lobehub/lobe-lint/commit/054255a)) 1055 | 1056 |
1057 | 1058 |
1059 | 1060 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1061 | 1062 |
1063 | 1064 | ### [Version 1.7.4](https://github.com/lobehub/lobe-lint/compare/v1.7.3...v1.7.4) 1065 | 1066 | Released on **2023-06-16** 1067 | 1068 | #### ♻ Code Refactoring 1069 | 1070 | - **eslint**: Remove custom abbreviation rule. 1071 | 1072 |
1073 | 1074 |
1075 | Improvements and Fixes 1076 | 1077 | #### Code refactoring 1078 | 1079 | - **eslint**: Remove custom abbreviation rule ([7301e47](https://github.com/lobehub/lobe-lint/commit/7301e47)) 1080 | 1081 |
1082 | 1083 |
1084 | 1085 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1086 | 1087 |
1088 | 1089 | ### [Version 1.7.3](https://github.com/lobehub/lobe-lint/compare/v1.7.2...v1.7.3) 1090 | 1091 | Released on **2023-06-16** 1092 | 1093 | #### 💄 Styles 1094 | 1095 | - **prettier**: Add new Prettier rules. 1096 | 1097 |
1098 | 1099 |
1100 | Improvements and Fixes 1101 | 1102 | #### Styles 1103 | 1104 | - **prettier**: Add new Prettier rules ([6eaf48f](https://github.com/lobehub/lobe-lint/commit/6eaf48f)) 1105 | 1106 |
1107 | 1108 |
1109 | 1110 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1111 | 1112 |
1113 | 1114 | ### [Version 1.7.2](https://github.com/lobehub/lobe-lint/compare/v1.7.1...v1.7.2) 1115 | 1116 | Released on **2023-06-16** 1117 | 1118 | #### 💄 Styles 1119 | 1120 | - **eslint**: Update eslint rules for unicorn/prevent-abbreviations. 1121 | 1122 |
1123 | 1124 |
1125 | Improvements and Fixes 1126 | 1127 | #### Styles 1128 | 1129 | - **eslint**: Update eslint rules for unicorn/prevent-abbreviations ([847d6a2](https://github.com/lobehub/lobe-lint/commit/847d6a2)) 1130 | 1131 |
1132 | 1133 |
1134 | 1135 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1136 | 1137 |
1138 | 1139 | ### [Version 1.7.1](https://github.com/lobehub/lobe-lint/compare/v1.7.0...v1.7.1) 1140 | 1141 | Released on **2023-06-16** 1142 | 1143 | #### ♻ Code Refactoring 1144 | 1145 | - **eslint**: Update ESLint rules and remove unused rules. 1146 | 1147 |
1148 | 1149 |
1150 | Improvements and Fixes 1151 | 1152 | #### Code refactoring 1153 | 1154 | - **eslint**: Update ESLint rules and remove unused rules ([f8009fe](https://github.com/lobehub/lobe-lint/commit/f8009fe)) 1155 | 1156 |
1157 | 1158 |
1159 | 1160 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1161 | 1162 |
1163 | 1164 | ## [Version 1.7.0](https://github.com/lobehub/lobe-lint/compare/v1.6.1...v1.7.0) 1165 | 1166 | Released on **2023-06-16** 1167 | 1168 | #### ✨ Features 1169 | 1170 | - **eslint**: Add eslint-plugin-unicorn and related rules. 1171 | 1172 |
1173 | 1174 |
1175 | Improvements and Fixes 1176 | 1177 | #### What's improved 1178 | 1179 | - **eslint**: Add eslint-plugin-unicorn and related rules ([90c6ddd](https://github.com/lobehub/lobe-lint/commit/90c6ddd)) 1180 | 1181 |
1182 | 1183 |
1184 | 1185 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1186 | 1187 |
1188 | 1189 | ### [Version 1.6.1](https://github.com/lobehub/lobe-lint/compare/v1.6.0...v1.6.1) 1190 | 1191 | Released on **2023-06-16** 1192 | 1193 | #### ♻ Code Refactoring 1194 | 1195 | - **eslint-config**: Remove unused eslint plugins and rules. 1196 | 1197 |
1198 | 1199 |
1200 | Improvements and Fixes 1201 | 1202 | #### Code refactoring 1203 | 1204 | - **eslint-config**: Remove unused eslint plugins and rules ([4568381](https://github.com/lobehub/lobe-lint/commit/4568381)) 1205 | 1206 |
1207 | 1208 |
1209 | 1210 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1211 | 1212 |
1213 | 1214 | ## [Version 1.6.0](https://github.com/lobehub/lobe-lint/compare/v1.5.1...v1.6.0) 1215 | 1216 | Released on **2023-06-16** 1217 | 1218 | #### ✨ Features 1219 | 1220 | - **eslint**: Add new plugins and rules. 1221 | 1222 |
1223 | 1224 |
1225 | Improvements and Fixes 1226 | 1227 | #### What's improved 1228 | 1229 | - **eslint**: Add new plugins and rules ([d73cee2](https://github.com/lobehub/lobe-lint/commit/d73cee2)) 1230 | 1231 |
1232 | 1233 |
1234 | 1235 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1236 | 1237 |
1238 | 1239 | ### [Version 1.5.1](https://github.com/lobehub/lobe-lint/compare/v1.5.0...v1.5.1) 1240 | 1241 | Released on **2023-06-13** 1242 | 1243 | #### 🐛 Bug Fixes 1244 | 1245 | - **changelog**: Fix changelog config typo. 1246 | 1247 |
1248 | 1249 |
1250 | Improvements and Fixes 1251 | 1252 | #### What's fixed 1253 | 1254 | - **changelog**: Fix changelog config typo ([75fb106](https://github.com/lobehub/lobe-lint/commit/75fb106)) 1255 | 1256 |
1257 | 1258 |
1259 | 1260 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1261 | 1262 |
1263 | 1264 | ## Version 1.5.0 1265 | 1266 | Released on **2023-06-11** 1267 | 1268 | #### ✨ Features 1269 | 1270 | - **changelog**: Add displayTypes options. 1271 | - **config**: Add release rules for minor, patch and major releases based on commit type. 1272 | 1273 |
1274 | 1275 |
1276 | Improvements and Fixes 1277 | 1278 | #### What's improved 1279 | 1280 | - **changelog**: Add displayTypes options ([16faf66](https://github.com/lobehub/lobe-lint/commit/16faf66)) 1281 | - **config**: Add release rules for minor, patch and major releases based on commit type ([61224b6](https://github.com/lobehub/lobe-lint/commit/61224b6)) 1282 | 1283 |
1284 | 1285 |
1286 | 1287 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1288 | 1289 |
1290 | 1291 | ## Version 1.4.0 1292 | 1293 | Released on **2023-06-11** 1294 | 1295 | #### ♻ Code Refactoring 1296 | 1297 | - **misc**: Update config files to import from dist directory. 1298 | 1299 | #### ✨ Features 1300 | 1301 | - **config**: Add release rules for minor, patch and major releases based on commit type. 1302 | - **semantic-release**: Update configs. 1303 | - **misc**: Update config, update config \[force release]. 1304 | 1305 | #### 🐛 Bug Fixes 1306 | 1307 | - **semantic-release**: Fix semantic-release config. 1308 | 1309 |
1310 | 1311 |
1312 | Improvements and Fixes 1313 | 1314 | #### Code refactoring 1315 | 1316 | - **misc**: Update config files to import from dist directory ([dac1221](https://github.com/lobehub/lobe-lint/commit/dac1221)) 1317 | 1318 | #### What's improved 1319 | 1320 | - **config**: Add release rules for minor, patch and major releases based on commit type ([dabb122](https://github.com/lobehub/lobe-lint/commit/dabb122)) 1321 | - **semantic-release**: Update configs ([738941a](https://github.com/lobehub/lobe-lint/commit/738941a)) 1322 | - **misc**: Update config ([2f282fa](https://github.com/lobehub/lobe-lint/commit/2f282fa)) 1323 | - **misc**: Update config \[force release] ([96a8483](https://github.com/lobehub/lobe-lint/commit/96a8483)) 1324 | 1325 | #### What's fixed 1326 | 1327 | - **semantic-release**: Fix semantic-release config ([43a4858](https://github.com/lobehub/lobe-lint/commit/43a4858)) 1328 | 1329 |
1330 | 1331 |
1332 | 1333 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1334 | 1335 |
1336 | 1337 | ## Version 1.3.0 1338 | 1339 | Released on **2023-06-10** 1340 | 1341 | #### ✨ Features 1342 | 1343 | - **misc**: Update changelog config. 1344 | 1345 |
1346 | 1347 |
1348 | Improvements and Fixes 1349 | 1350 | #### What's improved 1351 | 1352 | - **misc**: Update changelog config ([158674c](https://github.com/lobehub/lobe-lint/commit/158674c)) 1353 | 1354 |
1355 | 1356 |
1357 | 1358 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1359 | 1360 |
1361 | 1362 | ### Version 1.2.1 1363 | 1364 | Released on **2023-06-09** 1365 | 1366 |
1367 | 1368 |
1369 | Improvements and Fixes 1370 | 1371 |
1372 | 1373 |
1374 | 1375 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1376 | 1377 |
1378 | 1379 | ## Version 1.2.0 1380 | 1381 | Released on **2023-06-09** 1382 | 1383 | #### ✨ Features 1384 | 1385 | - **eslint**: Add eslint-plugin-unused-imports. 1386 | 1387 |
1388 | 1389 |
1390 | Improvements and Fixes 1391 | 1392 | #### What's improved 1393 | 1394 | - **eslint**: Add eslint-plugin-unused-imports ([0eb0f4d](https://github.com/lobehub/lobe-lint/commit/0eb0f4d)) 1395 | 1396 |
1397 | 1398 |
1399 | 1400 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1401 | 1402 |
1403 | 1404 | ### Version 1.1.2 1405 | 1406 | Released on **2023-06-08** 1407 | 1408 | #### 💄 Styles 1409 | 1410 | - **misc**: Add image file extensions to .prettierignore and add download count badge to README.md. 1411 | 1412 |
1413 | 1414 |
1415 | Improvements and Fixes 1416 | 1417 | #### Styles 1418 | 1419 | - **misc**: Add image file extensions to .prettierignore and add download count badge to README.md ([555c532](https://github.com/lobehub/lobe-lint/commit/555c532)) 1420 | 1421 |
1422 | 1423 |
1424 | 1425 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1426 | 1427 |
1428 | 1429 | ### Version 1.1.1 1430 | 1431 | Released on **2023-06-08** 1432 | 1433 | #### 💄 Styles 1434 | 1435 | - **misc**: Prettier. 1436 | 1437 |
1438 | 1439 |
1440 | Improvements and Fixes 1441 | 1442 | #### Styles 1443 | 1444 | - **misc**: Prettier ([93e7a39](https://github.com/lobehub/lobe-lint/commit/93e7a39)) 1445 | 1446 |
1447 | 1448 |
1449 | 1450 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1451 | 1452 |
1453 | 1454 | ## Version 1.1.0 1455 | 1456 | Released on **2023-06-08** 1457 | 1458 | #### ✨ Features 1459 | 1460 | - **ignore**: Better ignore file. 1461 | 1462 |
1463 | 1464 |
1465 | Improvements and Fixes 1466 | 1467 | #### What's improved 1468 | 1469 | - **ignore**: Better ignore file ([aa7f702](https://github.com/lobehub/lobe-lint/commit/aa7f702)) 1470 | 1471 |
1472 | 1473 |
1474 | 1475 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1476 | 1477 |
1478 | 1479 | ### Version 1.0.1 1480 | 1481 | Released on **2023-06-06** 1482 | 1483 | #### 🐛 Bug Fixes 1484 | 1485 | - **misc**: Prettier. 1486 | 1487 |
1488 | 1489 |
1490 | Improvements and Fixes 1491 | 1492 | #### What's fixed 1493 | 1494 | - **misc**: Prettier ([f2eb10d](https://github.com/lobehub/lobe-lint/commit/f2eb10d)) 1495 | 1496 |
1497 | 1498 |
1499 | 1500 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1501 | 1502 |
1503 | 1504 | ## Version 1.0.0 1505 | 1506 | Released on **2023-06-06** 1507 | 1508 | #### ✨ Features 1509 | 1510 | - **misc**: Add lints config. 1511 | 1512 |
1513 | 1514 |
1515 | Improvements and Fixes 1516 | 1517 | #### What's improved 1518 | 1519 | - **misc**: Add lints config ([3e56232](https://github.com/lobehub/lobe-lint/commit/3e56232)) 1520 | 1521 |
1522 | 1523 |
1524 | 1525 | [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top) 1526 | 1527 |
1528 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 LobeHub 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 |

Lobe Lint

8 | 9 | ESlint config, Prettier config, Remark config for LobeHub 10 | 11 | [Changelog](./CHANGELOG.md) · [Report Bug][issues-link] · [Request Feature][issues-link] 12 | 13 | 14 | 15 | [![][npm-release-shield]][npm-release-link] 16 | [![][discord-shield]][discord-link] 17 | [![][npm-downloads-shield]][npm-downloads-link] 18 | [![][github-releasedate-shield]][github-releasedate-link] 19 | [![][github-action-test-shield]][github-action-test-link] 20 | [![][github-action-release-shield]][github-action-release-link]
21 | [![][github-contributors-shield]][github-contributors-link] 22 | [![][github-forks-shield]][github-forks-link] 23 | [![][github-stars-shield]][github-stars-link] 24 | [![][github-issues-shield]][github-issues-link] 25 | [![][github-license-shield]][github-license-link] 26 | 27 |
28 | 29 | ![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png) 30 | 31 |
32 | Table of contents 33 | 34 | #### TOC 35 | 36 | - [📦 Installation](#-installation) 37 | - [🤯 Usage](#-usage) 38 | - [.npmrc](#npmrc) 39 | - [ESlint](#eslint) 40 | - [Stylelint](#stylelint) 41 | - [Commitlint](#commitlint) 42 | - [Changelog](#changelog) 43 | - [Remark](#remark) 44 | - [Prettier](#prettier) 45 | - [Semantic Release](#semantic-release) 46 | - [⌨️ Local Development](#️-local-development) 47 | - [🤝 Contributing](#-contributing) 48 | 49 | #### 50 | 51 |
52 | 53 | ## 📦 Installation 54 | 55 | To install Lobe Lint, run the following command: 56 | 57 | [![][bun-shield]][bun-link] 58 | 59 | ```bash 60 | $ bun add @lobehub/lint -D 61 | ``` 62 | 63 | To use template ignore files, run the following command: 64 | 65 | ```bash 66 | $ curl -O https://raw.githubusercontent.com/lobehub/lobe-lint/master/.eslintignore 67 | $ curl -O https://raw.githubusercontent.com/lobehub/lobe-lint/master/.gitignore 68 | $ curl -O https://raw.githubusercontent.com/lobehub/lobe-lint/master/.prettierignore 69 | ``` 70 | 71 |
72 | 73 | [![][back-to-top]](#readme-top) 74 | 75 |
76 | 77 | ## 🤯 Usage 78 | 79 | ### .npmrc 80 | 81 | ```text 82 | public-hoist-pattern[]=*@umijs/lint* 83 | public-hoist-pattern[]=*changelog* 84 | public-hoist-pattern[]=*commitlint* 85 | public-hoist-pattern[]=*eslint* 86 | public-hoist-pattern[]=*postcss* 87 | public-hoist-pattern[]=*prettier* 88 | public-hoist-pattern[]=*remark* 89 | public-hoist-pattern[]=*semantic-release* 90 | public-hoist-pattern[]=*stylelint* 91 | ``` 92 | 93 | ### ESlint 94 | 95 | config can be found at [`.eslintrc.js`](/src/eslint/index.ts) 96 | 97 | ```js 98 | module.exports = require('@lobehub/lint').eslint; 99 | ``` 100 | 101 | ### Stylelint 102 | 103 | config can be found at [`.stylelintrc.js`](/src/stylelint/index.ts) 104 | 105 | ```js 106 | module.exports = require('@lobehub/lint').stylelint; 107 | ``` 108 | 109 | ### Commitlint 110 | 111 | config can be found at [`.commitlintrc.js`](/src/commitlint/index.ts) 112 | 113 | ```js 114 | module.exports = require('@lobehub/lint').commitlint; 115 | ``` 116 | 117 | ### Changelog 118 | 119 | config can be found at [`.changelogrc.js`](/src/changelog/index.ts) 120 | 121 | ```js 122 | module.exports = require('@lobehub/lint').changelog; 123 | ``` 124 | 125 | ### Remark 126 | 127 | config can be found at [`.remarkrc.js`](/src/remarklint/index.ts) 128 | 129 | ```js 130 | module.exports = require('@lobehub/lint').remarklint; 131 | ``` 132 | 133 | ### Prettier 134 | 135 | config can be found at [`.prettierrc.js`](/src/prettier/index.ts) 136 | 137 | ```js 138 | module.exports = require('@lobehub/lint').prettier; 139 | ``` 140 | 141 | ### Semantic Release 142 | 143 | config can be found at [`.releaserc.js`](/src/semantic-release/index.ts) 144 | 145 | ```js 146 | module.exports = require('@lobehub/lint').semanticRelease; 147 | ``` 148 | 149 |
150 | 151 | [![][back-to-top]](#readme-top) 152 | 153 |
154 | 155 | ## ⌨️ Local Development 156 | 157 | You can use Github Codespaces for online development: 158 | 159 | [![][codespaces-shield]][codespaces-link] 160 | 161 | Or clone it for local development: 162 | 163 | ```bash 164 | $ git clone https://github.com/lobehub/lobe-lint.git 165 | $ cd lobehub/lint 166 | $ bun install 167 | $ bun start 168 | ``` 169 | 170 |
171 | 172 | [![][back-to-top]](#readme-top) 173 | 174 |
175 | 176 | ## 🤝 Contributing 177 | 178 | Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues][github-issues-link] to get stuck in to show us what you’re made of. 179 | 180 | [![][pr-welcome-shield]][pr-welcome-link] 181 | 182 | [![][contributors-contrib]][contributors-url] 183 | 184 |
185 | 186 | [![][back-to-top]](#readme-top) 187 | 188 |
189 | 190 | --- 191 | 192 | #### 📝 License 193 | 194 | Copyright © 2023 [LobeHub][profile-link].
195 | This project is [MIT](./LICENSE) licensed. 196 | 197 | 198 | 199 | [back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square 200 | [bun-link]: https://bun.sh 201 | [bun-shield]: https://img.shields.io/badge/-speedup%20with%20bun-black?logo=bun&style=for-the-badge 202 | [codespaces-link]: https://codespaces.new/lobehub/lobe-lint 203 | [codespaces-shield]: https://github.com/codespaces/badge.svg 204 | [contributors-contrib]: https://contrib.rocks/image?repo=lobehub/lobe-lint 205 | [contributors-url]: https://github.com/lobehub/lobe-lint/graphs/contributors 206 | [discord-link]: https://discord.gg/AYFPHvv2jT 207 | [discord-shield]: https://img.shields.io/discord/1127171173982154893?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square 208 | [github-action-release-link]: https://github.com/lobehub/lobe-lint/actions/workflows/release.yml 209 | [github-action-release-shield]: https://img.shields.io/github/actions/workflow/status/lobehub/lobe-lint/release.yml?label=release&labelColor=black&logo=githubactions&logoColor=white&style=flat-square 210 | [github-action-test-link]: https://github.com/lobehub/lobe-lint/actions/workflows/test.yml 211 | [github-action-test-shield]: https://img.shields.io/github/actions/workflow/status/lobehub/lobe-lint/test.yml?label=test&labelColor=black&logo=githubactions&logoColor=white&style=flat-square 212 | [github-contributors-link]: https://github.com/lobehub/lobe-lint/graphs/contributors 213 | [github-contributors-shield]: https://img.shields.io/github/contributors/lobehub/lobe-lint?color=c4f042&labelColor=black&style=flat-square 214 | [github-forks-link]: https://github.com/lobehub/lobe-lint/network/members 215 | [github-forks-shield]: https://img.shields.io/github/forks/lobehub/lobe-lint?color=8ae8ff&labelColor=black&style=flat-square 216 | [github-issues-link]: https://github.com/lobehub/lobe-lint/issues 217 | [github-issues-shield]: https://img.shields.io/github/issues/lobehub/lobe-lint?color=ff80eb&labelColor=black&style=flat-square 218 | [github-license-link]: https://github.com/lobehub/lobe-lint/blob/master/LICENSE 219 | [github-license-shield]: https://img.shields.io/github/license/lobehub/lobe-lint?color=white&labelColor=black&style=flat-square 220 | [github-releasedate-link]: https://github.com/lobehub/lobe-lint/releases 221 | [github-releasedate-shield]: https://img.shields.io/github/release-date/lobehub/lobe-lint?labelColor=black&style=flat-square 222 | [github-stars-link]: https://github.com/lobehub/lobe-lint/network/stargazers 223 | [github-stars-shield]: https://img.shields.io/github/stars/lobehub/lobe-lint?color=ffcb47&labelColor=black&style=flat-square 224 | [issues-link]: https://github.com/lobehub/lobe-lint/issues/new/choose 225 | [npm-downloads-link]: https://www.npmjs.com/package/@lobehub/lint 226 | [npm-downloads-shield]: https://img.shields.io/npm/dt/@lobehub/lint?labelColor=black&style=flat-square 227 | [npm-release-link]: https://www.npmjs.com/package/@lobehub/lint 228 | [npm-release-shield]: https://img.shields.io/npm/v/@lobehub/lint?color=369eff&labelColor=black&logo=npm&logoColor=white&style=flat-square 229 | [pr-welcome-link]: https://github.com/lobehub/lobe-lint/pulls 230 | [pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge 231 | [profile-link]: https://github.com/lobehub 232 | -------------------------------------------------------------------------------- /clean-package.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | indent: 2, 3 | remove: ['scripts', 'lint-staged', 'devDependencies', 'publishConfig', 'clean-package'], 4 | }; 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@lobehub/lint", 3 | "version": "1.26.2", 4 | "homepage": "https://github.com/lobehub/lobe-lint", 5 | "bugs": { 6 | "url": "https://github.com/lobehub/lobe-lint/issues/new" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/lobehub/lobe-lint.git" 11 | }, 12 | "license": "MIT", 13 | "author": "canisminor1990 ", 14 | "sideEffects": false, 15 | "main": "dist/index.js", 16 | "types": "dist/index.d.ts", 17 | "files": [ 18 | "dist" 19 | ], 20 | "scripts": { 21 | "build": "father build", 22 | "dev": "father dev", 23 | "doctor": "father doctor", 24 | "lint": "eslint \"{src,tests}/**/*.{js,jsx,ts,tsx}\" --fix", 25 | "lint:circular": "dpdm src/**/*.{ts,tsx} --warning false --tree false --exit-code circular:1 -T true", 26 | "lint:md": "remark . --quiet --output", 27 | "lint:style": "stylelint \"{src,tests}/**/*.{css,less,js,jsx,ts,tsx}\" --fix", 28 | "prepack": "clean-package", 29 | "postpack": "clean-package restore", 30 | "prepare": "husky && npm run build", 31 | "prettier": "prettier -c --write \"**/**\"", 32 | "release": "semantic-release", 33 | "start": "npm run dev", 34 | "type-check": "tsc --noEmit" 35 | }, 36 | "lint-staged": { 37 | "*.md": [ 38 | "remark --quiet --output --", 39 | "prettier --write --no-error-on-unmatched-pattern" 40 | ], 41 | "*.json": [ 42 | "prettier --write --no-error-on-unmatched-pattern" 43 | ], 44 | "*.{css,less}": [ 45 | "stylelint --fix", 46 | "prettier --write" 47 | ], 48 | "*.{js,jsx}": [ 49 | "prettier --write", 50 | "stylelint --fix", 51 | "eslint --fix" 52 | ], 53 | "*.{ts,tsx}": [ 54 | "prettier --parser=typescript --write", 55 | "stylelint --fix", 56 | "eslint --fix" 57 | ] 58 | }, 59 | "overrides": { 60 | "mdast-util-gfm": "3.0.0" 61 | }, 62 | "dependencies": { 63 | "@trivago/prettier-plugin-sort-imports": "^5.2.1", 64 | "@typescript-eslint/eslint-plugin": "7.5.0", 65 | "@typescript-eslint/parser": "7.5.0", 66 | "@umijs/babel-preset-umi": "^4.4.4", 67 | "@umijs/lint": "^4.4.4", 68 | "commitlint-config-gitmoji": "^2.3.1", 69 | "eslint-config-prettier": "^9.1.0", 70 | "eslint-import-resolver-alias": "^1.1.2", 71 | "eslint-import-resolver-typescript": "^3.7.0", 72 | "eslint-plugin-import": "^2.31.0", 73 | "eslint-plugin-jest": "^28.10.0", 74 | "eslint-plugin-react": "^7.37.3", 75 | "eslint-plugin-react-hooks": "^4.6.2", 76 | "eslint-plugin-simple-import-sort": "^12.1.1", 77 | "eslint-plugin-sort-keys-fix": "^1.1.2", 78 | "eslint-plugin-typescript-sort-keys": "^3.3.0", 79 | "eslint-plugin-unicorn": "^54.0.0", 80 | "eslint-plugin-unused-imports": "^3.2.0", 81 | "gatsby-remark-find-replace": "^0.3.0", 82 | "mdast-util-gfm": "3.0.0", 83 | "postcss-less": "^6.0.0", 84 | "postcss-styled-syntax": "^0.7.0", 85 | "prettier-plugin-organize-imports": "^4.1.0", 86 | "prettier-plugin-packagejson": "^2.5.6", 87 | "prettier-plugin-sh": "^0.14.0", 88 | "prettier-plugin-sort-json": "^4.1.0", 89 | "remark-frontmatter": "^5.0.0", 90 | "remark-gfm": "^4.0.0", 91 | "remark-lint": "^10.0.0", 92 | "remark-lint-checkbox-content-indent": "^5.0.0", 93 | "remark-lint-frontmatter-schema": "^3.15.4", 94 | "remark-lint-heading-whitespace": "^1.0.0", 95 | "remark-lint-linebreak-style": "^4.0.0", 96 | "remark-lint-list-item-indent": "^4.0.0", 97 | "remark-lint-list-item-spacing": "^5.0.0", 98 | "remark-lint-no-duplicate-headings-in-section": "^4.0.0", 99 | "remark-lint-no-empty-sections": "^4.0.0", 100 | "remark-lint-no-empty-url": "^4.0.0", 101 | "remark-lint-no-file-name-irregular-characters": "^3.0.0", 102 | "remark-lint-no-heading-indent": "^5.0.0", 103 | "remark-lint-no-heading-like-paragraph": "^4.0.0", 104 | "remark-lint-no-paragraph-content-indent": "^5.0.0", 105 | "remark-lint-no-reference-like-url": "^4.0.0", 106 | "remark-lint-no-shell-dollars": "^4.0.0", 107 | "remark-lint-no-tabs": "^4.0.0", 108 | "remark-lint-no-unneeded-full-reference-image": "^4.0.0", 109 | "remark-lint-no-unneeded-full-reference-link": "^4.0.0", 110 | "remark-lint-ordered-list-marker-value": "^4.0.0", 111 | "remark-lint-write-good": "^1.2.0", 112 | "remark-pangu": "^2.2.0", 113 | "remark-preset-lint-consistent": "^6.0.0", 114 | "remark-preset-lint-markdown-style-guide": "^6.0.0", 115 | "remark-preset-lint-recommended": "^7.0.0", 116 | "remark-remove-unused-definitions": "^2.0.0", 117 | "remark-sort-definitions": "^2.0.0", 118 | "remark-textr": "^6.1.0", 119 | "remark-toc": "^9.0.0", 120 | "semantic-release-config-gitmoji": "^1.5.3", 121 | "stylelint-config-clean-order": "^7.0.0", 122 | "stylelint-config-recommended": "^14.0.1", 123 | "stylelint-less": "^3.0.1", 124 | "stylelint-order": "^6.0.4", 125 | "stylelint-use-logical-spec": "^5.0.1", 126 | "unist-util-visit": "^5.0.0" 127 | }, 128 | "devDependencies": { 129 | "@commitlint/cli": "^19.6.1", 130 | "@types/node": "^22.10.5", 131 | "antd-style": "^3.7.1", 132 | "clean-package": "^2.2.0", 133 | "commitlint": "^19.6.1", 134 | "dpdm": "^3.14.0", 135 | "eslint": "^8.57.1", 136 | "father": "^4.5.1", 137 | "husky": "^9.1.7", 138 | "lint-staged": "^15.3.0", 139 | "prettier": "^3.4.2", 140 | "react": "^19.0.0", 141 | "remark": "^15.0.1", 142 | "remark-cli": "^12.0.1", 143 | "semantic-release": "^21.1.2", 144 | "stylelint": "^16.12.0", 145 | "typescript": "^5.7.3" 146 | }, 147 | "publishConfig": { 148 | "access": "public", 149 | "registry": "https://registry.npmjs.org" 150 | }, 151 | "pnpm": { 152 | "overrides": { 153 | "mdast-util-gfm": "3.0.0" 154 | } 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "automerge": false, 4 | "dependencyDashboard": true, 5 | "ignoreDeps": [], 6 | "labels": ["dependencies"], 7 | "postUpdateOptions": ["yarnDedupeHighest"], 8 | "prConcurrentLimit": 30, 9 | "prHourlyLimit": 0, 10 | "rebaseWhen": "conflicted", 11 | "schedule": "on sunday before 6:00am", 12 | "timezone": "UTC" 13 | } 14 | -------------------------------------------------------------------------------- /src/changelog/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | addBackToTop: true, 3 | customTypeMap: { 4 | build: { 5 | emoji: '📦', 6 | }, 7 | chore: { 8 | emoji: '🔧', 9 | }, 10 | ci: { 11 | emoji: '👷', 12 | }, 13 | }, 14 | displayTypes: ['feat', 'fix', 'style', 'pref', 'refactor'], 15 | newlineTimestamp: true, 16 | reduceHeadingLevel: true, 17 | scopeDisplayName: { 18 | '*': 'misc', 19 | }, 20 | showAuthor: true, 21 | showSummary: true, 22 | }; 23 | -------------------------------------------------------------------------------- /src/commitlint/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | $schema: 'https://json.schemastore.org/commitlintrc', 3 | extends: ['gitmoji'], 4 | rules: { 5 | 'footer-leading-blank': [0, 'never'], 6 | 'header-max-length': [0, 'never'], 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /src/eslint/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | $schema: 'https://json.schemastore.org/eslintrc', 3 | extends: [ 4 | 'eslint:recommended', 5 | require.resolve('@umijs/lint/dist/config/eslint'), 6 | 'plugin:unicorn/recommended', 7 | ], 8 | plugins: [ 9 | 'unicorn', 10 | 'import', 11 | 'unused-imports', 12 | 'simple-import-sort', 13 | 'sort-keys-fix', 14 | 'typescript-sort-keys', 15 | ], 16 | rules: { 17 | '@typescript-eslint/ban-ts-comment': 0, 18 | '@typescript-eslint/no-explicit-any': 0, 19 | 'import/first': 'error', 20 | 'import/newline-after-import': 'error', 21 | 'import/no-duplicates': 'error', 22 | 'no-empty': 'warn', 23 | 'no-extra-boolean-cast': 0, 24 | 'no-unused-vars': 0, 25 | 'react/display-name': 0, 26 | 'react/jsx-no-useless-fragment': 'error', 27 | 'react/jsx-sort-props': 'error', 28 | 'react/no-unknown-property': 'warn', 29 | 'react/prop-types': 0, 30 | 'react/react-in-jsx-scope': 0, 31 | 'react/self-closing-comp': [ 32 | 'warn', 33 | { 34 | component: true, 35 | html: true, 36 | }, 37 | ], 38 | 'simple-import-sort/exports': 'error', 39 | 'sort-keys-fix/sort-keys-fix': 'error', 40 | 'typescript-sort-keys/interface': 'error', 41 | 'typescript-sort-keys/string-enum': 'error', 42 | 'unicorn/catch-error-name': 'warn', 43 | 'unicorn/explicit-length-check': 0, 44 | 'unicorn/filename-case': 0, 45 | 'unicorn/import-style': 0, 46 | 'unicorn/no-anonymous-default-export': 0, 47 | 'unicorn/no-array-callback-reference': 0, 48 | 'unicorn/no-array-for-each': 0, 49 | 'unicorn/no-array-reduce': 0, 50 | 'unicorn/no-empty-file': 'warn', 51 | 'unicorn/no-negated-condition': 0, 52 | 'unicorn/no-nested-ternary': 0, 53 | 'unicorn/no-null': 0, 54 | 'unicorn/no-typeof-undefined': 'warn', 55 | 'unicorn/no-useless-undefined': 0, 56 | 'unicorn/prefer-code-point': 0, 57 | 'unicorn/prefer-logical-operator-over-ternary': 0, 58 | 'unicorn/prefer-module': 0, 59 | 'unicorn/prefer-number-properties': 0, 60 | 'unicorn/prefer-query-selector': 0, 61 | 'unicorn/prefer-spread': 0, 62 | 'unicorn/prefer-string-raw': 0, 63 | 'unicorn/prefer-string-replace-all': 'warn', 64 | 'unicorn/prefer-ternary': 0, 65 | 'unicorn/prefer-type-error': 0, 66 | 'unicorn/prevent-abbreviations': 0, 67 | 'unicorn/switch-case-braces': 'warn', 68 | 'unused-imports/no-unused-imports': 'error', 69 | 'unused-imports/no-unused-vars': [ 70 | 'warn', 71 | { args: 'after-used', argsIgnorePattern: '^_', vars: 'all', varsIgnorePattern: '^_' }, 72 | ], 73 | }, 74 | }; 75 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as changelog } from './changelog'; 2 | export { default as commitlint } from './commitlint'; 3 | export { default as eslint } from './eslint'; 4 | export { default as prettier } from './prettier'; 5 | export { default as remarklint } from './remarklint'; 6 | export { default as semanticRelease } from './semantic-release'; 7 | export { default as semanticReleaseMonoRepo } from './semantic-release/monorepo'; 8 | export { default as stylelint } from './stylelint'; 9 | -------------------------------------------------------------------------------- /src/prettier/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | $schema: 'https://json.schemastore.org/prettierrc', 3 | arrowParens: 'always', 4 | bracketSpacing: true, 5 | endOfLine: 'lf', 6 | importOrder: ['', '^@/(.*)$', '^[./]'], 7 | importOrderParserPlugins: ['typescript', 'jsx', 'decorators'], 8 | importOrderSeparation: true, 9 | importOrderSortSpecifiers: true, 10 | jsonRecursiveSort: false, 11 | jsonSortOrder: '{"*": "lexical"}', 12 | overrides: [ 13 | { 14 | files: '*.md', 15 | options: { 16 | proseWrap: 'preserve', 17 | }, 18 | }, 19 | ], 20 | plugins: [ 21 | require.resolve('prettier-plugin-sh'), 22 | require.resolve('prettier-plugin-organize-imports'), 23 | require.resolve('prettier-plugin-packagejson'), 24 | require.resolve('prettier-plugin-sort-json'), 25 | require.resolve('@trivago/prettier-plugin-sort-imports'), 26 | ], 27 | printWidth: 100, 28 | proseWrap: 'never', 29 | quoteProps: 'consistent', 30 | singleQuote: true, 31 | tabWidth: 2, 32 | trailingComma: 'all', 33 | useTabs: false, 34 | }; 35 | -------------------------------------------------------------------------------- /src/remarklint/index.ts: -------------------------------------------------------------------------------- 1 | import { remarkGfmHighlight } from './remarkGfmHighlight'; 2 | import { replaceNBSP } from './remarkTextrPlugins'; 3 | 4 | export default { 5 | $schema: 'https://json.schemastore.org/remarkrc', 6 | plugins: [ 7 | 'remark-gfm', 8 | 'remark-frontmatter', 9 | 'remark-pangu', 10 | ['remark-textr', { plugins: [replaceNBSP] }], 11 | remarkGfmHighlight, 12 | 13 | // ----- Plugin ----------------------------------------------------------- 14 | 'remark-sort-definitions', 15 | ['remark-toc', { heading: 'TOC', maxDepth: 3 }], 16 | 'remark-remove-unused-definitions', 17 | 18 | // ----- Presets ----------------------------------------------------------- 19 | 'remark-preset-lint-markdown-style-guide', 20 | 'remark-preset-lint-recommended', 21 | 'remark-preset-lint-consistent', 22 | 23 | // ----- Built-In ---------------------------------------------------------- 24 | 'remark-lint-checkbox-content-indent', 25 | 'remark-lint-linebreak-style', 26 | 'remark-lint-no-duplicate-headings-in-section', 27 | 'remark-lint-no-empty-url', 28 | 'remark-lint-no-heading-indent', 29 | 'remark-lint-no-heading-like-paragraph', 30 | 'remark-lint-no-paragraph-content-indent', 31 | 'remark-lint-no-reference-like-url', 32 | 'remark-lint-no-tabs', 33 | 'remark-lint-no-unneeded-full-reference-image', 34 | 'remark-lint-no-unneeded-full-reference-link', 35 | 36 | // ----- External ---------------------------------------------------------- 37 | 'remark-lint-no-empty-sections', 38 | 'remark-lint-write-good', 39 | 'remark-lint-frontmatter-schema', 40 | 41 | // ----- Overrides --------------------------------------------------------- 42 | ['remark-lint-list-item-indent', 'space'], 43 | ['remark-lint-list-item-spacing', { checkBlanks: true }], 44 | ['remark-lint-no-duplicate-headings', false], 45 | ['remark-lint-no-file-name-irregular-characters', String.raw`\.a-zA-Z0-9-_`], 46 | ['remark-lint-no-file-name-mixed-case', false], 47 | ['remark-lint-no-literal-urls', false], 48 | ['remark-lint-no-shell-dollars', false], 49 | ['remark-lint-ordered-list-marker-value', false], 50 | ], 51 | settings: { 52 | bullet: '-', 53 | emphasis: '*', 54 | fences: true, 55 | rule: '-', 56 | strong: '*', 57 | tightDefinitions: true, 58 | }, 59 | }; 60 | -------------------------------------------------------------------------------- /src/remarklint/remarkGfmHighlight.ts: -------------------------------------------------------------------------------- 1 | const gfmHighlight = [ 2 | { from: 'Note', to: '[!NOTE]' }, 3 | { from: 'Tip', to: '[!TIP]' }, 4 | { from: 'Important', to: '[!IMPORTANT]' }, 5 | { from: 'Warning', to: '[!WARNING]' }, 6 | { from: 'Caution', to: '[!CAUTION]' }, 7 | ]; 8 | 9 | export function remarkGfmHighlight() { 10 | return async (tree: any) => { 11 | const { visit } = await import('unist-util-visit'); 12 | visit(tree, 'blockquote', (node: any) => { 13 | visit(node.children[0], 'strong', (subnode: any) => { 14 | if (subnode.position.start.column !== 3) return; 15 | visit(subnode, 'text', (textnode: any) => { 16 | if (!['Note', 'Tip', 'Important', 'Warning', 'Caution'].includes(textnode.value)) return; 17 | for (const item of gfmHighlight) { 18 | if (item.from !== textnode.value) continue; 19 | subnode.type = 'text'; 20 | subnode.value = item.to; 21 | return; 22 | } 23 | }); 24 | }); 25 | }); 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/remarklint/remarkTextrPlugins.ts: -------------------------------------------------------------------------------- 1 | export const replaceNBSP = (str: string) => { 2 | return str.replaceAll(' ', ' '); 3 | }; 4 | -------------------------------------------------------------------------------- /src/semantic-release/index.ts: -------------------------------------------------------------------------------- 1 | import { type Options, createConfig } from 'semantic-release-config-gitmoji/lib/createConfig'; 2 | 3 | export const options: Options = { 4 | changelogTitle: ` 5 | 6 | # Changelog`, 7 | releaseRules: [ 8 | { 9 | release: 'minor', 10 | type: 'feat', 11 | }, 12 | { 13 | release: 'patch', 14 | type: 'fix', 15 | }, 16 | { 17 | release: 'patch', 18 | type: 'perf', 19 | }, 20 | { 21 | release: 'patch', 22 | type: 'style', 23 | }, 24 | { 25 | release: 'patch', 26 | type: 'refactor', 27 | }, 28 | { 29 | release: 'patch', 30 | type: 'build', 31 | }, 32 | { release: 'patch', scope: 'README', type: 'docs' }, 33 | { release: 'patch', scope: 'README.md', type: 'docs' }, 34 | { release: false, type: 'docs' }, 35 | { 36 | release: false, 37 | type: 'test', 38 | }, 39 | { 40 | release: false, 41 | type: 'ci', 42 | }, 43 | { 44 | release: false, 45 | type: 'chore', 46 | }, 47 | { 48 | release: false, 49 | type: 'wip', 50 | }, 51 | { 52 | release: 'major', 53 | type: 'BREAKING CHANGE', 54 | }, 55 | { 56 | release: 'major', 57 | scope: 'BREAKING CHANGE', 58 | }, 59 | { 60 | release: 'major', 61 | subject: '*BREAKING CHANGE*', 62 | }, 63 | { release: 'patch', subject: '*force release*' }, 64 | { release: 'patch', subject: '*force patch*' }, 65 | { release: 'minor', subject: '*force minor*' }, 66 | { release: 'major', subject: '*force major*' }, 67 | { release: false, subject: '*skip release*' }, 68 | ], 69 | } as Options; 70 | export default { 71 | $schema: 'https://json.schemastore.org/semantic-release', 72 | ...createConfig(options), 73 | }; 74 | -------------------------------------------------------------------------------- /src/semantic-release/monorepo.ts: -------------------------------------------------------------------------------- 1 | import { createConfig } from 'semantic-release-config-gitmoji/lib/createConfig'; 2 | 3 | import { options } from './index'; 4 | 5 | export default { 6 | $schema: 'https://json.schemastore.org/semantic-release', 7 | ...createConfig({ ...options, monorepo: true }), 8 | }; 9 | -------------------------------------------------------------------------------- /src/stylelint/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | $schema: 'https://json.schemastore.org/stylelintrc', 3 | extends: [ 4 | require.resolve('@umijs/lint/dist/config/stylelint'), 5 | 'stylelint-config-recommended', 6 | 'stylelint-config-clean-order', 7 | ], 8 | overrides: [ 9 | { 10 | customSyntax: 'postcss-less', 11 | files: ['*.less', '*.css'], 12 | plugins: ['stylelint-less'], 13 | rules: { 14 | 'at-rule-no-unknown': null, 15 | 'color-no-invalid-hex': true, 16 | 'function-no-unknown': null, 17 | 'less/color-no-invalid-hex': true, 18 | }, 19 | }, 20 | { 21 | customSyntax: 'postcss-styled-syntax', 22 | files: ['*.js', '*.jsx', '*.ts', '*.tsx'], 23 | rules: { 24 | 'no-empty-source': null, 25 | 'no-invalid-double-slash-comments': null, 26 | 'no-missing-end-of-source-newline': null, 27 | 'property-no-vendor-prefix': true, 28 | 'value-no-vendor-prefix': [true, { ignoreValues: ['box'] }], 29 | }, 30 | }, 31 | ], 32 | plugins: ['stylelint-order', 'stylelint-use-logical-spec'], 33 | rules: { 34 | 'liberty/use-logical-spec': [true, { except: ['float', /^((min|max)-)?(height|width)$/i] }], 35 | }, 36 | }; 37 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "esModuleInterop": true, 5 | "module": "commonjs", 6 | "moduleResolution": "node", 7 | "noUnusedLocals": true, 8 | "noUnusedParameters": true, 9 | "strict": true, 10 | "skipLibCheck": true, 11 | "target": "es2019", 12 | "jsx": "react", 13 | "lib": ["dom", "dom.iterable", "esnext"], 14 | "outDir": "./dist", 15 | "rootDir": "./src" 16 | }, 17 | "exclude": ["**/node_modules", "**/dist"], 18 | "include": ["src"] 19 | } 20 | -------------------------------------------------------------------------------- /typings.d.ts: -------------------------------------------------------------------------------- 1 | import 'umi/typings'; 2 | --------------------------------------------------------------------------------