Skip to content

chores: restructure project, adopt gulp, and revise docs

This is just a small restructure of the project, more to come in later PRs.

Build Tool

I've wanted to migrate to some kind of build tool for a while. However, none of the obvious options like webpack, Rollup, or esbuild seem like strong candidates. I was hoping for a simple setup, but to get the exact output I wanted, they seemed painful.

  • I wanted all source code written by me to be copied in as-is.
  • I want node_modules that are imported to be minified with a copyright notice only includes once at the top, stored in a directory called vendor, and for the import name to be renamed accordingly.
  • Preferably with tree shaking, though I had trouble finding a simple setup for this.

I ultimately settled on using a task runner rather than a bundler. We'll reconsider this in future if another tool seems better suited, but meanwhile we'll be using Gulp.

Updating ical.js

We no longer inline a static copy of ical.js into the repository. Rather, we depend on the version hosted on npm and include the minified copy in the build artifact.

This will make it easier to keep the version up-to-date, plus avoids storing huge chunks of code in this repository.

Documentation

Many small revisions to the documentation.

  • Reduce verbosity of the Usage section.
  • Fixed a typo. (contractscontacts)
  • Remove where I list other websites that support Libravatar. Just seems unnecessary.
  • Update instructions that were still referencing npm to use yarn instead.
  • Clarify that a developer can use yarn run dev to watch for changes.
  • Convert list of recommended tools for the localization workflow to a table.

Chores

  • Adds <!DOCTYPE html> to background/index.html which just removes a quirks mode warning in the devtools.
  • Include the LICENSE file in the final build so that Thunderbird users actually receive the LICENSE.

Related

Merge request reports

Loading