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

mustache-file

v2.4.0

Published

Read mustache files and partials from disk and pass them to mustache

Downloads

214

Readme

mustache-file

Read mustache files and partials from disk.

This is simple wrapper around the standard mustache templating package.

This module is designed to read its template files from disk, as well as any partials referred to therein. It is fully async and is either passed a callback or it returns a promise.

Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object.

For a language-agnostic overview of mustache's template syntax, see the mustache(5) manpage.

Install

npm install mustache-file

Usage

Mustache = require('mustache-file');

This returns a Mustache class that can be instantiated with new.

must = new Mustache(options);

Create a new Mustache object. Options is an object containing:

extension:

The extension to add to the template names passed to render(). If extension is null, nothing will be added to the filename. There is no need for the leading . on the extension. The default is "mustache".

path:

This is the path to look for the template and any partials. It can either be a string or an array of strings. If it is an array, the paths will be searched in order, both for the original template and for each partial. Relative paths are searched from the current working directory.

If it is not passed, templates will be loaded from the current working directory.

Example:

must = new Mustache({
    extension: 'html',
    path: [ 'templates/special', 'templates' ]
});

To render the template either pass a callback or (if no callback is passed) render() will return a promise.

With a callback

must = new Mustache({
    must.render(template, context, function(err, html) {
        if (err) throw err;
        // Send html to the browser, for example
    });

As a promise

must = new Mustache({
    must.render(template, context)
    .then(function(html) {
        // Send html to the browser, for example
    })
    .catch(function(err) {
        throw err;
    });

Mustache as a command-line utility

Starting from version 2.0.0, mustache-file contains a mustache executable. You can make this globally available by:

npm install -g mustache-file

The syntax is:

mustache [options] template.mustache [ context.json ]
  options:
    -o | --output:    Output path for the rendered text
                      (STDOUT if not specified)
    -p | --pretty:    Reformat the html output
    -e | --extension: override the default extension of .mustache
    -v | --version:   Print version and exit
    -h | --help:      This help list

If no context is required, context.json can be omitted. Also, the suffixes .mustache and .json will be added automatically if omitted.

It is possible to override the .mustache suffix with the --extension switch. This will add the correct extension for the main file and all the partials. For example:

mustache --extension 'html' index

If no output file is specified, output will be to stdout.

Any problems?

Any issues or comments would be appreciated at Github.