cmd/golangorg: expose multiple domains on testing servers

We already have one server handling multiple domains: and As we make the server
handle more domains it is helpful to be able to get at each
of them in the testing server.

This CL changes the behavior on localhost or on an domain
to pull the effective host name out of the first element of the path.
It also rewrites HTML responses to turn relative links like /doc to /<host>/doc
and to turn absolute links like into /

Change-Id: I032b626f1c75deed61a9ae2d9562d6b177b2824a
Trust: Russ Cox <>
Run-TryBot: Russ Cox <>
TryBot-Result: Go Bot <>
Reviewed-by: Dmitri Shuralyov <>
2 files changed
tree: 6a068743d9bc41ef41a6b498fc1be04a1ce0753f
  1. .gitattributes
  2. .prettierrc
  9. _content/
  10. blog/
  11. cmd/
  12. codereview.cfg
  13. content.go
  16. go.mod
  17. go.sum
  18. internal/
  19. tour/

Go website

Go Reference

This repo holds content and serving programs for the web site.

Content is in _content/. Server code is in cmd/ and internal/.

To run the server to preview local content changes, use:

go run ./cmd/golangorg

The supporting programs cmd/admingolangorg and cmd/googlegolangorg are the servers for and (They do not use the _content/ directory.)

Each command directory has its own explaining deployment.

JS/CSS Formatting

This repository uses prettier to format JS and CSS files.

The version of prettier used is 1.18.2.

It is encouraged that all JS and CSS code be run through this before submitting a change. However, it is not a strict requirement enforced by CI.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the website repository is located at Prefix your issue with “x/website:” in the subject line, so it is easy to find.