Jekyll website for DotNetDevs.at (Minimal Mistakes theme), hosted on GitHub Pages.
bundle install
npm install
npm run serveLocal URL: http://127.0.0.1:4000
bundle exec jekyll build
bundle exec jekyll serve --incremental
npm test
npm run test:update-snapshots
npm run test:ci- Events live in
_events/<slug>/index.mdwhere<slug>isYYYY-MM-DD(orYYYY-MM-DD-talkN). - Speakers live in
_speakers/usingfirstname-lastname.md. - Sponsors live in
_sponsors/. - Event files must include
date,title,speakers, andpublic: trueto be listed. - Event files should include
permalink: /events/<slug>/to keep stable URLs. - Event-related archival files (details, images, slides) are stored in the same event folder and are not exposed as download links on pages.
- Speaker names in
speakers:must exactly match each speaker filename. - Use ISO date format (
YYYY-MM-DD) in filenames and front matter.
Recommended event front matter:
---
date: 2026-01-20
permalink: /events/2026-01-20/
title: "Talk Title"
speakers:
- Speaker Name
InPersonLink: https://meetup.com/...
RemoteLink: https://meetup.com/...
RecordingLink: ""
Registrations: 0
Participants: 0
Viewers: 0
public: true
abstract: |
Talk description...
---- Always run
npm testbefore committing. - Update snapshots only for intentional visual changes.
- CI workflow is
.github/workflows/jekyll.yml(build → test → deploy).
npm run generate:onsite _events/2026-01-20/index.md
npm run generate:remote _events/2026-01-20/index.md
ruby scripts/generate_meetup_image.rb
npm run generate:recording-title -- _events/2026-01-20/index.mdRecording title image notes:
- The generator reads
title,date, andspeakersfrom event front matter. - It writes
_events/<slug>/Title for Recording.png,_events/<slug>/Start Streaming.png, and_events/<slug>/Stop Streaming.pngand overwrites existing outputs. - Background templates are
templates/Title for Recording.png,templates/Start Streaming.png, andtemplates/Stop Streaming.png. - Text rendering uses Consolas.
Title for Recording.pngrenders.NET Meetup <Month Year>, then title, thenby <speaker(s)>.Start Streaming.pngandStop Streaming.pngrender title andby <speaker(s)>.- Validate correctness by comparing generated outputs for
_events/2026-01-20/Title for Recording.pngand_events/2025-12-16/Title for Recording.pngwith their existing examples; only minor anti-aliasing/font-rendering differences are acceptable.