aboutsummaryrefslogtreecommitdiffstatshomepage

Workspace setup

  • To reduce pain, set up rbenv to manage your Ruby versions. Install one that's known to work:

    make ruby
    
    • Otherwise, make sure you have Ruby and Bundler set up.
  • Install dependencies:

    make deps
    
  • Make sure builds are working:

    make build
    

Development

Upgrading dependencies

  • To upgrade Ruby & Node.js dependencies & push them to the repository:

    make maintenance
    
  • Manually upgrade Ruby dependencies:

    bundle update
    
  • Manually upgrade Node.js dependencies:

    npm update
    make browserify
    

Building static pages

If you try to copy the _site directory and open index.html without running the web server, it won't work: all links will be messed up. Jekyll doesn't provide native support for generating a static website which can be browsed without running a web server.

One workaround is to wget the website:

make serve LIVE_RELOAD=0    # Live reloading breaks wget
make wget

The truly static version will be downloaded to the .wget/ directory.

Node.js dependencies

For IP address parsing and validation, ipaddr.js was used originally. It is pre-built for browser use, which is nice; however, it's buggy. It was replaced by ip-address, which is not browser-ready; instead, Browserify is used to turn it into a suitable .js file.

This whole situation sucks, but I really want to keep this website static. TODO: find other options or wait until ipaddr.js fixes the bug.