mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Rework spellchecking, add lint-spell (#29106)
				
					
				
			- Use maintained fork https://github.com/golangci/misspell - Rename `mispell-check` to `lint-spell`, add `lint-spell-fix` - Run `lint-spell` in separate actions step - Lint more files, fix discovered issues - Remove inaccurate and outdated info in docs (we do not need GOPATH for tools anymore) Maybe later we can add more spellchecking tools, but I have not found any good ones yet.
This commit is contained in:
		
							
								
								
									
										12
									
								
								.github/workflows/pull-compliance.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/pull-compliance.yml
									
									
									
									
										vendored
									
									
								
							@@ -64,6 +64,18 @@ jobs:
 | 
				
			|||||||
      - run: make deps-frontend
 | 
					      - run: make deps-frontend
 | 
				
			||||||
      - run: make lint-swagger
 | 
					      - run: make lint-swagger
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  lint-spell:
 | 
				
			||||||
 | 
					    if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true' || needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.templates == 'true'
 | 
				
			||||||
 | 
					    needs: files-changed
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
 | 
					      - uses: actions/setup-go@v5
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          go-version-file: go.mod
 | 
				
			||||||
 | 
					          check-latest: true
 | 
				
			||||||
 | 
					      - run: make lint-spell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  lint-go-windows:
 | 
					  lint-go-windows:
 | 
				
			||||||
    if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
 | 
					    if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true'
 | 
				
			||||||
    needs: files-changed
 | 
					    needs: files-changed
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Makefile
									
									
									
									
									
								
							@@ -30,7 +30,7 @@ EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-che
 | 
				
			|||||||
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.6.0
 | 
					GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.6.0
 | 
				
			||||||
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.2
 | 
					GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.2
 | 
				
			||||||
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11
 | 
					GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11
 | 
				
			||||||
MISSPELL_PACKAGE ?= github.com/client9/misspell/cmd/misspell@v0.3.4
 | 
					MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.4.1
 | 
				
			||||||
SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.30.5
 | 
					SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.30.5
 | 
				
			||||||
XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
 | 
					XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
 | 
				
			||||||
GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1.6.0
 | 
					GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1.6.0
 | 
				
			||||||
@@ -146,6 +146,8 @@ TAR_EXCLUDES := .git data indexers queues log node_modules $(EXECUTABLE) $(FOMAN
 | 
				
			|||||||
GO_DIRS := build cmd models modules routers services tests
 | 
					GO_DIRS := build cmd models modules routers services tests
 | 
				
			||||||
WEB_DIRS := web_src/js web_src/css
 | 
					WEB_DIRS := web_src/js web_src/css
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GO_SOURCES := $(wildcard *.go)
 | 
					GO_SOURCES := $(wildcard *.go)
 | 
				
			||||||
GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" ! -path modules/options/bindata.go ! -path modules/public/bindata.go ! -path modules/templates/bindata.go)
 | 
					GO_SOURCES += $(shell find $(GO_DIRS) -type f -name "*.go" ! -path modules/options/bindata.go ! -path modules/public/bindata.go ! -path modules/templates/bindata.go)
 | 
				
			||||||
GO_SOURCES += $(GENERATED_GO_DEST)
 | 
					GO_SOURCES += $(GENERATED_GO_DEST)
 | 
				
			||||||
@@ -219,6 +221,8 @@ help:
 | 
				
			|||||||
	@echo " - lint-swagger                     lint swagger files"
 | 
						@echo " - lint-swagger                     lint swagger files"
 | 
				
			||||||
	@echo " - lint-templates                   lint template files"
 | 
						@echo " - lint-templates                   lint template files"
 | 
				
			||||||
	@echo " - lint-yaml                        lint yaml files"
 | 
						@echo " - lint-yaml                        lint yaml files"
 | 
				
			||||||
 | 
						@echo " - lint-spell                       lint spelling"
 | 
				
			||||||
 | 
						@echo " - lint-spell-fix                   lint spelling and fix issues"
 | 
				
			||||||
	@echo " - checks                           run various consistency checks"
 | 
						@echo " - checks                           run various consistency checks"
 | 
				
			||||||
	@echo " - checks-frontend                  check frontend files"
 | 
						@echo " - checks-frontend                  check frontend files"
 | 
				
			||||||
	@echo " - checks-backend                   check backend files"
 | 
						@echo " - checks-backend                   check backend files"
 | 
				
			||||||
@@ -308,10 +312,6 @@ fmt-check: fmt
 | 
				
			|||||||
	  exit 1; \
 | 
						  exit 1; \
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: misspell-check
 | 
					 | 
				
			||||||
misspell-check:
 | 
					 | 
				
			||||||
	go run $(MISSPELL_PACKAGE) -error $(GO_DIRS) $(WEB_DIRS)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY: $(TAGS_EVIDENCE)
 | 
					.PHONY: $(TAGS_EVIDENCE)
 | 
				
			||||||
$(TAGS_EVIDENCE):
 | 
					$(TAGS_EVIDENCE):
 | 
				
			||||||
	@mkdir -p $(MAKE_EVIDENCE_DIR)
 | 
						@mkdir -p $(MAKE_EVIDENCE_DIR)
 | 
				
			||||||
@@ -351,10 +351,10 @@ checks: checks-frontend checks-backend
 | 
				
			|||||||
checks-frontend: lockfile-check svg-check
 | 
					checks-frontend: lockfile-check svg-check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: checks-backend
 | 
					.PHONY: checks-backend
 | 
				
			||||||
checks-backend: tidy-check swagger-check fmt-check misspell-check swagger-validate security-check
 | 
					checks-backend: tidy-check swagger-check fmt-check swagger-validate security-check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: lint
 | 
					.PHONY: lint
 | 
				
			||||||
lint: lint-frontend lint-backend
 | 
					lint: lint-frontend lint-backend lint-spell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: lint-fix
 | 
					.PHONY: lint-fix
 | 
				
			||||||
lint-fix: lint-frontend-fix lint-backend-fix
 | 
					lint-fix: lint-frontend-fix lint-backend-fix
 | 
				
			||||||
@@ -395,6 +395,14 @@ lint-swagger: node_modules
 | 
				
			|||||||
lint-md: node_modules
 | 
					lint-md: node_modules
 | 
				
			||||||
	npx markdownlint docs *.md
 | 
						npx markdownlint docs *.md
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: lint-spell
 | 
				
			||||||
 | 
					lint-spell:
 | 
				
			||||||
 | 
						@go run $(MISSPELL_PACKAGE) -error $(SPELLCHECK_FILES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: lint-spell-fix
 | 
				
			||||||
 | 
					lint-spell-fix:
 | 
				
			||||||
 | 
						@go run $(MISSPELL_PACKAGE) -w $(SPELLCHECK_FILES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: lint-go
 | 
					.PHONY: lint-go
 | 
				
			||||||
lint-go:
 | 
					lint-go:
 | 
				
			||||||
	$(GO) run $(GOLANGCI_LINT_PACKAGE) run
 | 
						$(GO) run $(GOLANGCI_LINT_PACKAGE) run
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,7 @@ menu:
 | 
				
			|||||||
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
 | 
					[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
 | 
				
			||||||
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
 | 
					标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`enviroment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
 | 
					在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
 | 
					包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -243,10 +243,10 @@ documentation using:
 | 
				
			|||||||
make generate-swagger
 | 
					make generate-swagger
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You should validate your generated Swagger file and spell-check it with:
 | 
					You should validate your generated Swagger file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
make swagger-validate misspell-check
 | 
					make swagger-validate
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You should commit the changed swagger JSON file. The continuous integration
 | 
					You should commit the changed swagger JSON file. The continuous integration
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -228,10 +228,10 @@ Gitea Logo的 PNG 和 SVG 版本是使用 `TAGS="gitea" make generate-images` 
 | 
				
			|||||||
make generate-swagger
 | 
					make generate-swagger
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
您应该验证生成的 Swagger 文件并使用以下命令对其进行拼写检查:
 | 
					您应该验证生成的 Swagger 文件:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
make swagger-validate misspell-check
 | 
					make swagger-validate
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
您应该提交更改后的 swagger JSON 文件。持续集成服务器将使用以下方法检查是否已完成:
 | 
					您应该提交更改后的 swagger JSON 文件。持续集成服务器将使用以下方法检查是否已完成:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,13 +27,7 @@ Next, [install Node.js with npm](https://nodejs.org/en/download/) which is
 | 
				
			|||||||
required to build the JavaScript and CSS files. The minimum supported Node.js
 | 
					required to build the JavaScript and CSS files. The minimum supported Node.js
 | 
				
			||||||
version is @minNodeVersion@ and the latest LTS version is recommended.
 | 
					version is @minNodeVersion@ and the latest LTS version is recommended.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Note**: When executing make tasks that require external tools, like
 | 
					**Note**: Go version @minGoVersion@ or higher is required. However, it is recommended to
 | 
				
			||||||
`make misspell-check`, Gitea will automatically download and build these as
 | 
					 | 
				
			||||||
necessary. To be able to use these, you must have the `"$GOPATH/bin"` directory
 | 
					 | 
				
			||||||
on the executable path. If you don't add the go bin directory to the
 | 
					 | 
				
			||||||
executable path, you will have to manage this yourself.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
**Note 2**: Go version @minGoVersion@ or higher is required. However, it is recommended to
 | 
					 | 
				
			||||||
obtain the same version as our continuous integration, see the advice given in
 | 
					obtain the same version as our continuous integration, see the advice given in
 | 
				
			||||||
[Hacking on Gitea](development/hacking-on-gitea.md)
 | 
					[Hacking on Gitea](development/hacking-on-gitea.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,9 +21,7 @@ menu:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
接下来,[安装 Node.js 和 npm](https://nodejs.org/zh-cn/download/), 这是构建 JavaScript 和 CSS 文件所需的。最低支持的 Node.js 版本是 @minNodeVersion@,建议使用最新的 LTS 版本。
 | 
					接下来,[安装 Node.js 和 npm](https://nodejs.org/zh-cn/download/), 这是构建 JavaScript 和 CSS 文件所需的。最低支持的 Node.js 版本是 @minNodeVersion@,建议使用最新的 LTS 版本。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**注意**:当执行需要外部工具的 make 任务(如`make misspell-check`)时,Gitea 将根据需要自动下载和构建这些工具。为了能够实现这个目的,你必须将`"$GOPATH/bin"`目录添加到可执行路径中。如果没有将 Go 的二进制目录添加到可执行路径中,你需要自行解决产生的问题。
 | 
					**注意**:需要 Go 版本 @minGoVersion@ 或更高版本。不过,建议获取与我们的持续集成(continuous integration, CI)相同的版本,请参阅在 [Hacking on Gitea](development/hacking-on-gitea.md) 中给出的建议。
 | 
				
			||||||
 | 
					 | 
				
			||||||
**注意2**:需要 Go 版本 @minGoVersion@ 或更高版本。不过,建议获取与我们的持续集成(continuous integration, CI)相同的版本,请参阅在 [Hacking on Gitea](development/hacking-on-gitea.md) 中给出的建议。
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 下载
 | 
					## 下载
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{{/* Attributes:
 | 
					{{/* Attributes:
 | 
				
			||||||
* root
 | 
					* root
 | 
				
			||||||
* ContainerClasses
 | 
					* ContainerClasses
 | 
				
			||||||
* (TODO: search "branch_dropdown" in the template direcotry)
 | 
					* (TODO: search "branch_dropdown" in the template directory)
 | 
				
			||||||
*/}}
 | 
					*/}}
 | 
				
			||||||
{{$defaultSelectedRefName := $.root.BranchName}}
 | 
					{{$defaultSelectedRefName := $.root.BranchName}}
 | 
				
			||||||
{{if and .root.IsViewTag (not .noTag)}}
 | 
					{{if and .root.IsViewTag (not .noTag)}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -367,7 +367,7 @@
 | 
				
			|||||||
				<div class="timeline-item event">
 | 
									<div class="timeline-item event">
 | 
				
			||||||
					{{if .OriginalAuthor}}
 | 
										{{if .OriginalAuthor}}
 | 
				
			||||||
					{{else}}
 | 
										{{else}}
 | 
				
			||||||
					{{/* Some timeline avatars need a offset to correctly allign with their speech
 | 
										{{/* Some timeline avatars need a offset to correctly align with their speech
 | 
				
			||||||
							bubble. The condition depends on review type and for positive reviews whether
 | 
												bubble. The condition depends on review type and for positive reviews whether
 | 
				
			||||||
							there is a comment element or not */}}
 | 
												there is a comment element or not */}}
 | 
				
			||||||
					<a class="timeline-avatar{{if or (and (eq .Review.Type 1) (or .Content .Attachments)) (and (eq .Review.Type 2) (or .Content .Attachments)) (eq .Review.Type 3)}} timeline-avatar-offset{{end}}"{{if gt .Poster.ID 0}} href="{{.Poster.HomeLink}}"{{end}}>
 | 
										<a class="timeline-avatar{{if or (and (eq .Review.Type 1) (or .Content .Attachments)) (and (eq .Review.Type 2) (or .Content .Attachments)) (eq .Review.Type 3)}} timeline-avatar-offset{{end}}"{{if gt .Poster.ID 0}} href="{{.Poster.HomeLink}}"{{end}}>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user