🚀 Launch Week Day 5:Introducing Immutable Scans.Learn More →
Socket
Book a DemoInstallSign in
Socket

gulp-dry

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gulp-dry

Gulp plugin for Dry, a new template engine with advanced inheritance features.

latest
Source
npmnpm
Version
0.1.2
Version published
Weekly downloads
5
Maintainers
1
Weekly downloads
 
Created
Source

gulp-dry NPM version NPM downloads Build Status

Gulp plugin for Dry, a new template engine with advanced inheritance features.

Table of Contents

(TOC generated by verb using markdown-toc)

Install

Install with npm:

$ npm install --save gulp-dry

Usage

var dry = require('gulp-dry');

gulp.task('default', function() {
  return gulp.src('*.html')
    .pipe(dry({files: ['block/templates/*.hbs']}))
    .pipe(dest('site'));
});

Examples

Visit dry for more information.

Blocks

Define blocks in a template:

<!-- parent.html -->
<!DOCTYPE html>
  <html lang="en">
  <head>
    {% block "head" %}
    <meta charset="UTF-8">
    <title>Document</title>
    {% endblock %}
  </head>
  <body>
    {% block "body" %}
    Default body.
    {% endblock %}

    {% block "footer" %}
    Default footer.
    {% endblock %}
  </body>
</html>

You can extend the parent.html template like this:

{% extends "parent.html" %}

{% block "head" %}
<meta charset="UTF-8">
<title>Inherited!</title>
<script src="script.js"></script>
{% endblock %}

{% block "body" %}
<div>This is the body</div>
{% endblock %}

{% block "footer" %}
<div>This is the footer</div>
{% endblock %}

Resulting in:

<!-- parent.html -->
<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Inherited!</title>
    <script src="script.js"></script>
  </head>
  <body>
    <div>This is the body</div>
    <div>This is the footer</div>
  </body>
</html>

Layouts

Layouts are used for "wrapping" files with common code or content. Layouts can also use blocks, but the strategy for merging them is different. Unlike blocks, when using layouts:

  • text nodes from child and parent templates are preserved
  • text nodes from child templates that do not belong to a specific block will be rendered into the body block of the parent layout
  • layouts may be defined using a {% body %} tag, or a {% block "body" %} {% endblock %} tag

Layout body block

Example layout template with a body tag:

<!-- some-layout.html -->
<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
    {% body %}
  </body>
</html>

When used by another template, like this:

<!-- some-file.html -->
{% layout "some-layout.html" %}
This is content.

Results in:

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
    This is content.
  </body>
</html>

Layout body block

If you need to define placeholder content, you can define a block instead:

<!-- some-layout.html -->
<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
  {% block "body" %} 
  Default content.
  {% endblock %}
  </body>
</html>

When used by another template, like this:

<!-- some-file.html -->
{% layout "some-layout.html" %}
This should overwrite the default content.

Results in:

<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>
    This should overwrite the default content.
  </body>
</html>

About

  • dry: Template engine with support for block helpers, advanced inheritance features, and more. | homepage
  • is-glob: Returns true if the given string looks like a glob pattern or an extglob pattern… more | homepage
  • matched: Adds array support to node-glob, sync and async. Also supports tilde expansion (user home) and… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)

To generate the readme and API documentation with verb:

$ npm install -g verb verb-generate-readme && verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.

This file was generated by verb-generate-readme, v0.1.28, on August 09, 2016.

Keywords

dry

FAQs

Package last updated on 09 Aug 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts