The Website is deployed to GitHub pages and is served at ggtkx.org.
This project works with Ruby 3.3+ and Jekyll 4.2.0. The site is statically generated with Jekyll.
-
Install Ruby dependencies
bundle install
-
Serve the site locally
bundle exec jekyll serveOpen http://localhost:4000 in your browser.
-
(Optional) Set up for contributing — install pre-commit and npm deps so hooks and linting work:
brew install pre-commit # or: pip install pre-commit pre-commit install npm install
This repo uses pre-commit hooks to run checks on each commit (see .pre-commit-config.yaml). One of the hooks runs ESLint for JavaScript (config: .eslintrc.json, Google JavaScript Style Guide). Install pre-commit and npm dependencies as in step 3 of Getting started above.
Data organization:
_data/comedians.jsonstores information about each comedian in this club. It is updated automatically to sync up with a Google Sheet._data/friends.ymlstores links to our friends.pages/contains Markdown documents for each page.
Other technical details:
pull-sheet/hosts the mechanism that updates_data/comedians.jsonfrom the roster.sidenotes.jsis a pure-JavaScript plugin that puts.footnotesinto#sidebar, aligning each piece of note at their corresponding superscript.
Ming has written several articles detailing the engineering aspects of this club:
- How Engineers Build A Comedy Club - Part I: The Website
- How Engineers Build A Comedy Club - Part II: Comedian Data
- How Engineers Build A Comedy Club - Part III: Videos and Subtitles
The first 2 articles are most relevant to this repo.
This website uses:
-
these icons from freeicons.io:
- YouTube icon by Raj Dev on freeicons.io.
- Bilibili icon by Anu Rocks
- LinkedIn icon by Muhammad Haq
-
the Serif theme by Robert Austin.
-
illustrations from the artwork collection, unDraw, by Katerina Limpitsouni.
The MIT License (MIT).