The Website is deployed to GitHub pages and is served at ggtkx.org.
This project works with Ruby 3.1.2 and Jekyll 4.2.0.
The Website is statically generated with Jekyll. To serve it locally, run:
bundle exec jekyll serve
This repo uses pre-commit hooks to automate many checks upon making a git commit. (See .pre-commit-config.yaml
for a list of all hooks enabled.) Assuming you have Homebrew installed, you can install the pre-commit
program via:
brew install pre-commit
Then, install the pre-commit hooks via:
pre-commit install
One of the hooks use the ESLint tool to check JavaScript files, including enforcing the Google JavaScript Code Style. (See .eslintrc.json
for the exact config.) As a npm package, ESLint is installed via npm and specified in the package.json
. Install them by:
npm install
Data organization:
_data/comedians.json
stores information about each comedian in this club. It is updated automatically to sync up with a Google Sheet._data/friends.yml
stores links to our friends.pages/
contains Markdown documents for each page.
Other technical details:
pull-sheet/
hosts the mechanism that updates_data/comedians.json
from the roster.sidenotes.js
is a pure-JavaScript plugin that puts.footnotes
into#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).