0.0.3 • Published 8 years ago

puggy v0.0.3

Weekly downloads
8
License
MIT
Repository
github
Last release
8 years ago

puggy

Utility filters of pug/jade.

Installation

$ npm install puggy

Usage

const pug = require('pug'); // You can also use jade.
const puggy = require('puggy');

const pugOptions = {
  pretty: true,
};

// set filters by names you want
pug.filters['block-element'] = puggy.blockElement;
pug.filters['comment-out-newline'] = puggy.commentOutNewline;
pug.filters['comment-out'] = puggy.commentOut;
pug.filters['preserve'] = puggy.preserve;

// initialize
puggy.init(pug, pugOptions);

pug.render('pug string', pugOptions);

filters

Currently, there are 4 filters in puggy.

blockElement

Make specified element be rendered as a block element.

No filter:

p
  a(href="#") Link
  span Text

becomes

<p><a href="#">Link</a><span>Text</span></p>

blockElement filter:

:block-element(a span)
  p
    a(href="#") Link
    span Text

becomes

<p>
  <a href="#">Link</a>
  <span>Text</span>
</p>

You need to specify tag names as filter arguments.

And it's possible to control indent by specifying lv option.

:block-element(lv=2 a span)
  p
    a(href="#") Link
    span Text

becomes

    <p>
      <a href="#">Link</a>
      <span>Text</span>
    </p>

if you want to make SSI include code be a block, just specify comment.

div
  <!--#include file="header.html" -->

becomes

<div><!--#include file="header.html" --></div>
:block-element(comment)
  div
    <!--#include file="header.html" -->

becomes

<div>
  <!--#include file="header.html" -->
</div>

commentOutNewline

Comment out newlines of html. It's useful for removing gaps of inline blocks.

:comment-out-newline
  ul
    li Item1
    li Item2

becomes

<ul><!--
  --><li>Item1</li><!--
  --><li>Item2</li><!--
--></ul>

Also available lv option.

commentOut

Comment out a code block after rendering by pug.

//
  ul
    li Item1
    li Item2

becomes

<!--
ul
  li Item1
  li Item2
-->

If this is not your desired behavior, try below.

:comment-out
  ul
    li Item1
    li Item2

becomes

<!--
<ul>
  <li>Item1</li>
  <li>Item2</li>
</ul>
-->

Also available lv and indent option. indent makes a code block have one more indent.

:comment-out(indent)
  ul
    li Item1
    li Item2

becomes

<!--
  <ul>
    <li>Item1</li>
    <li>Item2</li>
  </ul>
-->

preserve

Render a code block keeping its looks.

:preserve
  <p>
            <a href="#">Link</a>
        <span>Text</span>
    </p>

becomes

<p>
          <a href="#">Link</a>
      <span>Text</span>
  </p>

Also available lv option.