Building the M-x Erlangen Website

by Merlin and Melanie

Meetup

Problems

  • $5 per month
  • Users regularly join but then don’t attend
  • Spam accounts

Benefits

  • Email list
  • Good discoverability
  • Advertising
  • Payment & Sponsoring support
  • Attendance count

GitLab Pages

Static Website Hosting for Free

  • It’s free
  • No security or privacy concerns
  • Easy to maintain
  • (even allows for custom domains)

Continuous Deployment

  • each commit triggers automatic rebuild and deployment
  • mail notifications on build (or test) failures
  • based largely on (but not limited to) Docker
  • distributed runners

Quick Demo

Static Site Generators

Org-mode

  • awesome source language
  • allows HTML export
  • assigns a few semantic css classes
  • cumbersome to customize

Jekyll

  • uses markdown with liquid templates
  • configured via options in file or via args
  • special support for blogging

Hakyll

  • uses pandoc and pandoc templates
  • configured via custom Haskell executable
  • extremely flexible

Quick Demo

Pandoc

  • universal document converter

  • handles a shitton of input file types

    Markdown, Org, LaTeX, docx, odt, DokuWiki, epub, …

  • own templating system

UI Stuff?

Templates and Partials

  • Templates: Organize UI in html, write entries in org-mode
  • Partials: split UI into smaller pieces

Context Matters

$title$, $date$, and $body$ change accordingly depending on its context.

Load and Apply Templates

Lessons Learned

Automatically filtering future and past talks is annoying

  • Hakyll is a static site generator and the filtering is done only when generating.

    Can be worked around with scheduled rebuilds.

Stack and CI don’t play nicely

  • Stack in Docker took waaay too long to build too much of the Haskell ecosystem.
  • Can be worked around by CI caching.
  • We switched to raw nix for CI (without Docker) as we both use NixOS anyway.

Future of M-x Erlangen

  • This is the last meetup (on meetup.com)
  • Matrix chat (bridged to other services) Maybe we remove the bridge at some point as it keeps messing with the channel.
  • Mailing list
  • Website for history and content