The source code for the We Count website.
The front end of the website is built with Eleventy.
The website uses Sveltia CMS to manage the following content:
To contribute, please be sure to review our development processes as documented in the contributing guide.
To work on the project, you need to install NodeJS and NPM for your operating system.
Then, clone the project from GitHub. Create a fork
with your GitHub account, then enter the following in your command line (make
sure to replace your-username with your username):
git clone https://github.com/your-username/wecount.inclusivedesign.ca.gitFrom the root of the cloned project, enter the following in your command line to install dependencies:
npm ciSveltia CMS is a client-side Svelte application which manages files in a git repository, creating pull requests when new content is drafted and merging them when it is published. Access to this website's CMS is managed via the GitHub backend. If you need access to the CMS, a GitHub administrator must add you to the team for this repository.
The CMS is configured via a config.yml
file according to Sveltia CMS' specifications.
As an example, here is the configuration for the recount collection, stored in src/collections/recount:
- name: recount
label: Recount
label_singular: Recount
folder: src/collections/recount
sortable_fields: [title, date]
create: true
i18n: false
fields:
- label: Title
name: title
widget: string
- label: Link
name: link
widget: string
hint: The link to the external news item or attached resource.
- label: Date
name: date
widget: datetime
time_format: false
hint: The publication date of the item.
- label: Excerpt
name: excerpt
widget: text
hint: The excerpt is shown in search results.For information on individual fields and their configuration, see Sveltia CMS' fields documentation.
Sveltia CMS supports preview styles for CMS content. These have not been implemented for the We Count website, but previews with generic styles are be shown.
The CMS may be tested locally without authentication if the site is being run in development mode as documented below. Any changes made will be immediately reflected in the file system. This is a good way of making sure that CMS functionality behaves as expected, but content should not be edited this way under normal circumstances. Rather, content editors should log in with their GitHub accounts at https://wecount.inclusivedesign.ca/admin/ and create or edit content through the CMS interface.
npm run startThe website will be available at http://localhost:8080.
To lint JavaScript, CSS and Markdown files in the project (including JavaScript and CSS in Vue components), enter the following in the command line:
npm run lintWe use the following lint configurations:
To build and serve a static version of the website, enter the following in your command line:
npm run build
npm run serveThe website will be available at http://localhost:5000.
This repository is connected to Cloudflare Pages, and commits will be automatically deployed as follows:
- Pull request from a branch named
my-feature(for example): https://my-feature.wecount.pages.dev - Branch
dev: https://dev.wecount.pages.dev - Branch
main: https://wecount.inclusivedesign.ca
Changelogs and releases are handled by release-please. We use a
modified versioning scheme based on calendar versioning in the form YYYY.MM.MICRO (where
MICRO, the third and final number in the version, indicates a patch, starting at 0 within each month's sequence of releases).
Prior to release, commit and push a single commit to bump the version appropriately:
git commit --allow-empty -m "chore: prepare release
Release-As: 2026.4.2"(In this example, that would be the third release for April 2026 for a given package.)
Once that commit is in the version history, release-please will update the release pull request to the new version and it can be merged.
This work is licensed under a Creative Commons Attribution 4.0 International License.