blob: b5badce85b6224e06bd5061a9325d1d82ebb56fa [file] [view]
# content
The `static` directory contains static content. This content is used alongside
the content in the main Go repository by the [`golangorg`](golang.org/x/website/cmd/golangorg)
binary when serving the [golang.org](https://golang.org) website.
The details of the directory to path mapping are documented at the top of
[`cmd/golangorg/main.go`](https://go.googlesource.com/website/+/refs/heads/master/cmd/golangorg/main.go).
TODO(dmitshur): The process below can be simplified.
See [golang.org/issue/29206#issuecomment-536099768](https://golang.org/issue/29206#issuecomment-536099768).
## Development mode
In production, CSS/JS/template assets need to be compiled into the `golangorg`
binary. It can be tedious to recompile assets every time, but you can pass a
flag to load CSS/JS/templates from disk every time a page loads:
```
golangorg -templates=$GOPATH/src/golang.org/x/website/content/static -http=:6060
```
## Recompiling static assets
Files such as `static/style.css`, `static/doc/copyright.html` and so on are not
present in the final binary. They are embedded into `static/static.go` by running
`go generate`. To compile a change and test it in your browser:
1) Make changes to an existing file such as `static/style.css`.
2) If a new file is being added to the `static` directory, add it to the `files`
slice in `static/internal/gen/gen.go`.
3) Run `go generate golang.org/x/website/content/static` so `static/static.go` is
up to date.
4) Run `go run golang.org/x/website/cmd/golangorg -http=:6060` and view your changes
in the browser at http://localhost:6060. You may need to disable your browser's cache
to avoid reloading a stale file.
A test exists to catch a possible mistake of forgetting to regenerate static assets:
```
website $ go test ./...
--- FAIL: TestStaticIsUpToDate (0.06s)
gen_test.go:27: static.go is stale. Run:
$ go generate golang.org/x/website/content/static
$ git diff
to see the differences.
FAIL
FAIL golang.org/x/website/content/static 0.650s
```