Table of Contents
Technology
We use Gatsby for static site generation because sites built with it are very fast.
This framework uses React and JavaScript/TypeScript.
Source Code
The website lives in docs/ directory of golangci-lint repository.
Theme
Initially the site is based on @rocketseat theme.
Later we've merged its code into src/@rocketseat because we needed too much changes
and gatsby shadowing doesn't allow shadowing gatsby-node.js or gatsby-config.js.
Navigation
Left menu is configured in src/config/sidebar.yml.
Articles
Articles are located in src/docs/ in *.mdx files. MDX is Markdown
allowing to use React components.
Templating
We use templates like {.SomeField} inside our mdx files.
There templates are expanded by running make website_expand_templates in the root of the repository.
It runs script scripts/website/expand_templates/ that rewrites mdx files with replaced templates.
Hosting
We use GitHub Pages as static website hosting and CD.
GitHub deploys the website to production after merging anything to a master branch.
Local Testing
Install Node.js (v20 or newer).
Run:
npm install --legacy-peer-depsnpm run start
And navigate to http://localhost:8000 after successful Gatsby build.
There is no need to restart Gatsby server almost for all changes: it supports hot reload.
Also, there is no need to refresh a webpage: hot reload updates changed content on the open page.
Website Build
To do it run:
Edit this page on GitHubgo run ./scripts/website/expand_templates/