diff options
author | silverwind <me@silverwind.io> | 2023-06-14 20:17:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-14 18:17:58 +0000 |
commit | e24f651c86a5168da8181f2c75f5f99b56561224 (patch) | |
tree | 1f604dc894e29a0c99adca856bd55ad1ca78d4be /Makefile | |
parent | a0eaf0881235d41ca98f4718af815908d1237d2c (diff) | |
download | gitea-e24f651c86a5168da8181f2c75f5f99b56561224.tar.gz gitea-e24f651c86a5168da8181f2c75f5f99b56561224.zip |
Add template linting via djlint (#25212)
So I found this [linter](https://github.com/Riverside-Healthcare/djlint)
which features a mode for go templates, so I gave it a try and it did
find a number of valid issue, like unbalanced tags etc. It also has a
number of bugs, I had to disable/workaround many issues.
Given that this linter is written in python, this does add a dependency
on `python` >= 3.8 and `poetry` to the development environment to be
able to run this linter locally.
- `e.g.` prefixes on placeholders are removed because the linter had a
false-positive on `placeholder="e.g. cn=Search"` for the `attr=value`
syntax and it's not ideal anyways to write `e.g.` into a placeholder
because a placeholder is meant to hold a sample value.
- In `templates/repo/settings/options.tmpl` I simplified the logic to
not conditionally create opening tags without closing tags because this
stuff confuses the linter (and possibly the reader as well).
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -198,6 +198,7 @@ help: @echo " - deps-frontend install frontend dependencies" @echo " - deps-backend install backend dependencies" @echo " - deps-tools install tool dependencies" + @echo " - deps-py install python dependencies" @echo " - lint lint everything" @echo " - lint-fix lint everything and fix issues" @echo " - lint-actions lint action workflow files" @@ -214,6 +215,7 @@ help: @echo " - lint-css-fix lint css files and fix issues" @echo " - lint-md lint markdown files" @echo " - lint-swagger lint swagger files" + @echo " - lint-templates lint template files" @echo " - checks run various consistency checks" @echo " - checks-frontend check frontend files" @echo " - checks-backend check backend files" @@ -417,6 +419,10 @@ lint-editorconfig: lint-actions: $(GO) run $(ACTIONLINT_PACKAGE) +.PHONY: lint-templates +lint-templates: .venv + @poetry run djlint $(shell find templates -type f -iname '*.tmpl') + .PHONY: watch watch: @bash build/watch.sh @@ -893,7 +899,10 @@ deps-docs: fi .PHONY: deps -deps: deps-frontend deps-backend deps-tools deps-docs +deps: deps-frontend deps-backend deps-tools deps-docs deps-py + +.PHONY: deps-py +deps-py: .venv .PHONY: deps-frontend deps-frontend: node_modules @@ -920,6 +929,10 @@ node_modules: package-lock.json npm install --no-save @touch node_modules +.venv: poetry.lock + poetry install + @touch .venv + .PHONY: npm-update npm-update: node-check | node_modules npx updates -cu |