Harp v0.17.0 – Major Preprocessor Updates

We’re happy to announce that there’s a new version of Harp v0.17.0 is now available. This release comes with some significant updates to almost every preprocessor in Harp.

You can get started by installing or updating Harp with:

sudo npm install -g harp

You may omit sudo if you’re using Windows, or if you configure npm to run without needing it. If you haven’t tried Harp before, learn how to get started quickly.

Changes in Harp v0.17.0

Thanks to @sintaxi, there’s a new release of Terraform out, which is Harp’s preprocessing engine. This means the latest version of Harp has the following changes:

  • Jade updated to v1.9.3! Thanks very much @najamkhn. This was well overdue, there were only a few breaking issue in Jade that we weren’t able to mitigate. Read about them below.
  • Sass updated to v3.0.0-beta.5, thanks @julianduque
  • Less updated to 2.5.0, thanks @sintaxi
  • .git and www/ are prevented from going through harp compile, with tests, thanks @edrex
  • CoffeeScript, and other dependencies updated, @kennethormandy

Additional changes from Harp v0.16.0:

  • Harp now has intelligent indifference on trailing slashes for URLs, thanks @sintaxi

Jade

We finally upgraded Jade, doing our best to mitigate the breaking features in v1.0.0. This has held us back from upgrading for a long time since !!! was removed as shortcut for doctype, which was originally in the default harp init boilerplate. Thanks to @najamkhn, this will work but will throw a warning in your console:

!!!
html
  body
    //- Etc.

Please change it as soon as you can:

doctype
html
  body
    //- Etc.

Some other changes to Jade that are worth noting, you can no longer leave a blank line after filters. For example, with :markdown here:

body
  :markdown

    # The title

    This is my Markdown post.

The blank line should be removed:

body
  :markdown
    # The title

    This is my Markdown post.

It’s also no longer possible to define variables without prefixing it them with a -. Before, this would work:

articles = []

Now, do please change your templates to use this instead:

- var articles = []

The - is a way to write JavaScript literally inside of Jade.

This issue also affected the hb-remedy and the hb-simurai boilerplates, so if you ever used it or based your work upon it, please make this change.

Here are the locations you can make the fix in your own copy.

Less

Less is now at v2.5.0, which should alleviate any issues with Bootstrap 3.

Sass

Sass is now at v3.0.0-beta.5, the latest beta at the time we tagged this release of Harp. This moves Sass dramatically closer to parity with Ruby Sass:

Expect even more frameworks to just work. Awesome job to the Node- and Libsass teams, we’re very happy we went exclusively with Libsass and their progress over the past year has been very impressive.

Contract the Harp core team

All open source projects take time to develop, and while @sintaxi and I are still very invested in Harp, we aren’t able to dedicate as much time to it as we’d like.

If you’re using Harp at a company and would be interested in sponsoring additional contributions from us, or having us customise it internally for your team, please get in touch. We work together as Chloi and are currently available for work related to Harp and other Node.js-based projects.


Thanks for using Harp and mention us on Twitter if you have any questions!