Skip to content

Files

Cannot retrieve ahead/behind information for this branch.

Folders and files

NameName
Last commit message
Last commit date
Feb 9, 2025
May 18, 2024
Feb 17, 2025
Sep 8, 2024
Feb 22, 2025
Mar 15, 2025
Feb 22, 2025
Mar 15, 2025
Feb 22, 2025
Apr 14, 2023
Jan 27, 2025
Feb 23, 2025
Feb 23, 2025
Jan 30, 2025
Mar 9, 2025
Feb 22, 2025
Apr 23, 2023
Aug 13, 2024
Jan 1, 2025
Mar 18, 2024
Jan 1, 2025
Mar 15, 2025
Oct 31, 2023
Oct 31, 2023
May 19, 2021
Feb 13, 2025
Jan 21, 2025
Mar 17, 2024
Feb 13, 2025
Feb 23, 2025
Jun 25, 2024
Jun 25, 2024
Feb 23, 2025
Feb 23, 2025
Jun 25, 2024
Jan 21, 2025
Oct 5, 2023
Sep 30, 2024
Sep 30, 2024
Jan 6, 2025
Jan 22, 2025
Jun 22, 2024
Jan 27, 2025
May 21, 2024
May 21, 2024
May 25, 2024
May 25, 2024
Dec 31, 2024
Jan 1, 2025
Jan 22, 2025
Jan 22, 2025
Mar 20, 2022
Apr 2, 2024
Apr 2, 2024
Dec 17, 2023
Dec 31, 2024

templ

An HTML templating language for Go that has great developer tooling.

templ

Documentation

See user documentation at https://templ.guide

Go Reference xc compatible Go Coverage Go Report Card

Tasks

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

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