_content: do not run playground code on page load

The purpose is to avoid overwriting user content restored by opening
recently closed tab from the history.

It turns out that https://golang.org/cl/407055 does not address the
issue reliably. If the run action happens before the user content is
restored, the source code of the "hello world" example will be sent
to the server for formatting. Most of the time (if not always), the
format result will return after the user content is restored. In this
case, the format result will overwrite the restored user content.

We can delay the run action until the user content is restored. But it's
subtle to decide how long to delay. On the other hand, I think it does
not make sense to run the "hello world" example on load, so I prefer
to address the issue by removing the run action on page load.

Fixes golang/go#49895
Fixes golang/go#53065

Change-Id: Ia044103e79a15d0b351e4257af3aa74558c302d9
GitHub-Last-Rev: 40170ad2e8e2111963a1d4b01fba3e751bfbb7d9
GitHub-Pull-Request: golang/website#162
Reviewed-on: https://go-review.googlesource.com/c/website/+/408414
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
1 file changed
tree: 4f79dde1fc06724b096cc9233001eb5971fd5dc9
  1. _content/
  2. _later/
  3. cmd/
  4. internal/
  5. tour/
  6. .eslintrc.yaml
  7. .gitattributes
  8. .prettierrc.yaml
  9. .stylelintrc.yaml
  11. codereview.cfg
  12. content.go
  15. go-app-deploy.sh
  16. go.mod
  17. go.sum
  18. jest-transform.cjs
  20. npm
  21. npx
  22. package-lock.json
  23. package.json
  25. README.md
  26. tsconfig.json

Go website

Go Reference

This repo holds content and serving programs for the go.dev and golang.org web sites.

Content is in _content/ (go.dev) and tour/ (go.dev/tour). Server code is in cmd/ and internal/.

To run the combined go.dev+golang.org server to preview local content changes, use:

go run ./cmd/golangorg

The supporting programs cmd/admingolangorg and cmd/googlegolangorg are the servers for admin.golang.org and google.golang.org. (They do not use the _content/ directories.)

Each command directory has its own README.md explaining deployment.

JS/TS/CSS Formatting

This repository uses eslint to format JS and TS files, and stylelint to format CSS files.

See also:

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

Installing npm Dependencies:

  1. Install docker
  2. Create a .gitignore file at repo root
  3. Add .gitignore and node_modules to .gitignore
  4. Run ./npm install

Run ESlint

./npx eslint [options] [file] [dir]

Run Stylelint

./npx stylelint [input] [options]

TypeScript Support

TypeScript files served from _content are transformed into JavaScript. Reference .ts files in html templates as module code.

<script type="module" src="/ts/filename.ts">

Write unit tests for TypeScript code using the jest testing framework.

Run Jest

./npx jest [TestPathPattern]


Each time a CL is reviewed and submitted, the code is deployed to App Engine. See cmd/golangorg/README.md for details.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.

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