npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hbs-cli

v1.4.1

Published

A CLI tool for rendering Handlebars templates

Downloads

8,026

Readme

hbs-cli

This is a tool to render handlebars templates, with the ability to require in Partials, Helpers and JSON Data.

Installation

$ npm install --save-dev hbs-cli

Usage

Usage:
  hbs --version
  hbs --help
  hbs [-P <partial>]... [-H <helper>]... [-D <data>]... [-o <directory>] [--] (<template...>)

  -h, --help                 output usage information
  -v, --version              output the version number
  -o, --output <directory>   Directory to output rendered templates, defaults to cwd
  -e, --extension            Output extension of generated files, defaults to html
  -s, --stdout               Output to standard output
  -i, --stdin                Receive data directly from stdin
  -P, --partial <glob>...    Register a partial (use as many of these as you want)
  -H, --helper <glob>...     Register a helper (use as many of these as you want)

  -D, --data <glob|json>...  Parse some data

Examples:

hbs --helper handlebars-layouts --partial ./templates/layout.hbs -- ./index.hbs
hbs --data ./package.json --data ./extra.json ./homepage.hbs --output ./site/
hbs --helper ./helpers/* --partial ./partials/* ./index.hbs # Supports globs!

* Yarn and NPM expand globs, so if you're using this in an NPM script make sure you wrap globs in quotes. For example:

hbs index.hbs --partial 'partials/*.hbs'

Using Helpers

In order to use Handlebar helpers you can simply create a folder with all your helpers in a js file each. These modules must export a register function which gets the Handlebars instance passed through its first parameter.

// src/template_helper/times.js
var times = function () {};

times.register = function (Handlebars) {
    Handlebars.registerHelper('times', function(n, block) {
        var accum = '';
        for(var i = 0; i < n; ++i)
            accum += block.fn(i);
        return accum;
    });
};

module.exports = times;

Now you are able to use the times function within your Handlebars template such as this:

{{#times 10}}
  <span>{{this}}</span>
{{/times}}

To compile this template you may run this command:

hbs --helper ./src/template_helper/**/*.js --data src/data.json src/templates/**/*.hbs --output dist/