Most of the page content is in Markdown (.md files), which provide a more human-readable way to write up page content that computers can still turn into HTML. The index.md file in a folder contains the page content for that URL path (e.g., /bikeparking/index.md contains the page content for https://labs.bostoncyclistsunion.org/bikeparking).
You can still include snippets of HTML in those Markdown files where you need to for custom page elements (e.g., a <div class="featured-links">).
The /assets folder contains site-wide images, styles, and scripts. Other than that, files and folders related to site configuration (i.e. not individual pages) each start with an underscore (e.g., /_layout).
Note some sections of the website that aren't just text and images are in other Git repositories and added via submodules (at time of writing, just /projecttracker).
You can follow GitHub's instruction for testing a GitHub Pages site locally with Jekyll.
If you don't want to install Ruby to run actual Jekyll, you can also use a Node.js substitute:
- Run
npm install, which will install Darko*, which can serve the Jekyll site. - Run
npm startto serve the site locally. - Open
http://localhost:4000in a browser.
(*Technically a slightly modified version of Darko.)
The built site in /_site is set to be ignored by Git and shouldn't be committed.
Commit your changes to a branch and submit a pull request.
When changes are pushed to the main branch, GitHub Pages will automatically update the live site.