Skip to content
forked from a-h/templ

A language for writing HTML user interfaces in Go.

License

Notifications You must be signed in to change notification settings

bastianwegge/templ

This branch is 34 commits behind a-h/templ:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8b05ded · Jan 6, 2025
Jan 1, 2025
May 18, 2024
Dec 31, 2024
Sep 8, 2024
Jan 6, 2025
Jan 6, 2025
Jan 1, 2025
Jan 6, 2025
Dec 30, 2024
Apr 14, 2023
Jan 6, 2025
Dec 31, 2024
Mar 3, 2024
Jan 1, 2025
Dec 31, 2024
Apr 23, 2023
Aug 13, 2024
Jan 1, 2025
Mar 18, 2024
Jan 1, 2025
Jan 6, 2025
Oct 31, 2023
Oct 31, 2023
May 19, 2021
Jan 1, 2025
Oct 31, 2023
Mar 17, 2024
Jan 1, 2025
Jan 1, 2025
Jun 25, 2024
Jun 25, 2024
Jan 1, 2025
Jan 1, 2025
Jun 25, 2024
Jun 25, 2024
Oct 5, 2023
Sep 30, 2024
Sep 30, 2024
Jan 6, 2025
Jan 6, 2025
Jun 22, 2024
Jun 22, 2024
May 21, 2024
May 21, 2024
May 25, 2024
May 25, 2024
May 20, 2024
Dec 31, 2024
Jan 1, 2025
Jan 6, 2025
Aug 18, 2024
Mar 20, 2022
Apr 2, 2024
Apr 2, 2024
Dec 17, 2023
Dec 31, 2024

Repository files navigation

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.

go run ./get-version > .version
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.
go run ./get-version > .version
# 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.

go run ./get-version > .version
go run ./cmd/templ generate -include-version=false
go test ./...

test-short

Run Go tests.

go run ./get-version > .version
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.

./push-tag.sh

docs-run

Run the development server.

Directory: docs

npm run start

docs-build

Build production docs site.

Directory: docs

npm run build

About

A language for writing HTML user interfaces in Go.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.1%
  • templ 2.9%
  • HTML 1.4%
  • Other 0.6%