| # Go website | |
| [](https://pkg.go.dev/golang.org/x/website) | |
| 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](https://eslint.org/) to format JS and TS files, | |
| and [stylelint](https://stylelint.io/) to format CSS files. | |
| See also: | |
| - [CSS](https://go.dev/wiki/CSSStyleGuide) | |
| - [JavaScript](https://google.github.io/styleguide/jsguide.html) | |
| - [TypeScript](https://google.github.io/styleguide/tsguide.html) | |
| 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](https://docs.docker.com/get-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](https://jestjs.io/) | |
| testing framework. | |
| ### Run Jest | |
| ./npx jest [TestPathPattern] | |
| ## Deploying | |
| Each time a CL is reviewed and submitted, the code is deployed to App Engine. | |
| See [cmd/golangorg/README.md](cmd/golangorg/README.md#deploying-to-go_dev-and-golang_org) 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 git repository is https://go.googlesource.com/website. | |
| The main issue tracker for the website repository is located at | |
| https://go.dev/issues. Prefix your issue with "x/website:" in the | |
| subject line, so it is easy to find. |