# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
An HTML templating language for Go that has great developer tooling.
Documentation
See user documentation at https://templ.guide
Tasks
version-set
Set the version of templ to the current version.
version set --template="0.3.%d"
build
Build a local version.
version set --template="0.3.%d"
cd cmd/templ
go build
install-snapshot
Build and install current version.
# Remove templ from the non-standard ~/bin/templ path
# that this command previously used.
rm -f ~/bin/templ
# Clear LSP logs.
rm -f cmd/templ/lspcmd/*.txt
# Update version.
version set --template="0.3.%d"
# Install to $GOPATH/bin or $HOME/go/bin
cd cmd/templ && go install
build-snapshot
Use goreleaser to build the command line binary using goreleaser.
goreleaser build --snapshot --clean
generate
Run templ generate using local version.
go run ./cmd/templ generate -include-version=false
test
Run Go tests.
version set --template="0.3.%d"
go run ./cmd/templ generate -include-version=false
go test ./...
test-short
Run Go tests.
version set --template="0.3.%d"
go run ./cmd/templ generate -include-version=false
go test ./... -short
test-cover
Run Go tests.
# Create test profile directories.
mkdir -p coverage/fmt
mkdir -p coverage/generate
mkdir -p coverage/version
mkdir -p coverage/unit
# Build the test binary.
go build -cover -o ./coverage/templ-cover ./cmd/templ
# Run the covered generate command.
GOCOVERDIR=coverage/fmt ./coverage/templ-cover fmt .
GOCOVERDIR=coverage/generate ./coverage/templ-cover generate -include-version=false
GOCOVERDIR=coverage/version ./coverage/templ-cover version
# Run the unit tests.
go test -cover ./... -coverpkg ./... -args -test.gocoverdir="$PWD/coverage/unit"
# Display the combined percentage.
go tool covdata percent -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit
# Generate a text coverage profile for tooling to use.
go tool covdata textfmt -i=./coverage/fmt,./coverage/generate,./coverage/version,./coverage/unit -o coverage.out
# Print total
go tool cover -func coverage.out | grep total
test-cover-watch
interactive: true
gotestsum --watch -- -coverprofile=coverage.out
test-fuzz
./parser/v2/fuzz.sh
./parser/v2/goexpression/fuzz.sh
benchmark
Run benchmarks.
go run ./cmd/templ generate -include-version=false && go test ./... -bench=. -benchmem
fmt
Format all Go and templ code.
gofmt -s -w .
go run ./cmd/templ fmt .
lint
Run the lint operations that are run as part of the CI.
golangci-lint run --verbose
ensure-generated
Ensure that templ files have been generated with the local version of templ, and that those files have been added to git.
Requires: generate
git diff --exit-code
push-release-tag
Push a semantic version number to GitHub to trigger the release process.
version push --template="0.3.%d" --prefix="v"
docs-run
Run the development server.
Directory: docs
npm run start
docs-build
Build production docs site.
Directory: docs
npm run build