This repository has been archived by the owner. It is now read-only.
Static homepage for HackPrinceton
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Static homepage content for HackPrinceton. GitHub Pages is configured to deploy this site out of the master branch.


This repo uses Jekyll as its static site engine. Install Jekyll and the necessary plugins, as well as stylesheet dependencies, by running the following commands:

git submodule update --init --recursive
gem install bundler
bundle install

More detailed installation instructions are available on the Jekyll website.

To start a local server for the site, run this command:

bundle exec jekyll serve

This will start a development server at localhost:4000. It will automatically reload when you save changes, unless you modify _config.yml, in which case you must manually restart the server. In some cases, you may also need to restart the server after modifying data files in _data.

All Sass files are compiled automatically, so you do not need to manually compile them into CSS. To add any new Sass files to the build, save it into the _sass directory and append an @import entry to css/style.scss. Shared styles are imported via a Git submodule from the styles repo.


There is a mini-api for use in bebo-mobile:

  • GET /api/pages.json: Returns a list of pages and their urls. Each item in the list has a title and url key, and may have a children key, with a list of child items with the same schema described earlier (but no further children).

The current way the active page selection works, every page and subpage should have unique names. This will prevent the accidental marking as activeof an item for /guide on /dayof/guide, for example. Why this bug exists? Because, it would seem, it is weirdly hard to do a simple startsWith in Liquid templating:


For HackPrinceton organizers, you can contribute to this site by adding and modifying pages as files. The page url is the same as the page filename, minus the extension. We use Markdown for the site--here is a reference if you need help getting started with the language.

Normally, the approval flow for page changes is the Github Flow. Making changes in this way is entirely possible in the browser, which the link above describes. A developer will verify that formatting is correct, but you will be responsible for finding someone to approve your content.

Alternatively, reach out to @casey-chow about getting a SiteLeaf account, which allows you to make changes from a nice GUI, but will make it more difficult on our end to approve your changes.


The content on this site is licensed under the Creative Commons Attribution- ShareAlike 4.0 International License. The source code is licensed under the MIT License.