You can make simple changes in the GitHub editor. For more advanced changes you might want to run a local copy of the website.
Some basic git knowledge is required, please check https://guides.github.com/ to get started from scratch. An editor such as Visual Studio Code can help you to simplify most of these tasks and help you with editing the content.
- Install hugo
- Create a fork of this repository
- Clone your fork
- Create local worker secrets for Wrangler by copying
.dev.vars.exampleto.dev.varsand setting at leastINTERNAL_SIGNING_SECRET. - Run
npm run devin the root directory of your fork (Vite runs the Cloudflare Worker and rebuilds the Hugo site into the static asset output) - Open
http://localhost:8788/in your browser to preview your local version - Make changes until you are satisfied; the preview will update automatically
- Commit and push your changes
- Create a pull request
- Create a
new-member-name.yamlin thedata/membersfolder. - Create a
new-member-name.mdin thecontent/membersfolder. - Add the logo in SVG format in the folder
assets/images/members, the filename must correspondent with id of the member (e.g.,member.svg)
- For member authors, add a representative in the
data/members/member.yamlfile. - For authors that are not associated with a member, add a listing in
data/authors.yaml.
The content lives in content/ and is written as markdown because of it's simple content format. We do not allow the usage of HTML, this to enforce uniform and structured content, but there are times when Markdown falls short. For some of these reusable cases you can use built-in shortcodes or use/create a custom shortcode.
You can add attributes (e.g. CSS classes) to Markdown blocks, e.g. tables, lists, paragraphs etc.
A blockquote with a CSS class:
> **Warning**
> This is an important message
{.callout-warning}All Bootstrap styles are available, to change the default table style you can use for example the following attributes:
| table header | column |
| ------------ | ------ |
| first row | |
| second row | |
{.table .table-bordered .table-striped .table-hover}Some content is managed in external repositories through git submodules, include the remote remote branch in your local preview run the following command.
git submodule init
git submodule update --remoteThe update command can be run to update your local copy when the remote branch changes. Submodules are managed in the file .gitmodules.
The Cloudflare Worker uses Vite with @cloudflare/vite-plugin. The Vite build runs Hugo, indexes the generated site with Pagefind, bundles the native TypeScript Worker, and writes the deployable Wrangler output config to dist.
npm run build
npm run build:preview
npm run build:productionDeployments must build the selected Cloudflare environment first because the Vite plugin applies env.preview or env.production during build time:
npm run deploy:preview
npm run deploy:productionRun the local seed flow to create admin/event data, forms/terms, and default email templates in D1+R2:
npm run seed:localIf templates are missing or you want to reseed template versions only:
npm run seed:templates:local