@nmyvision/html2pug
TypeScript icon, indicating that this package has built-in type declarations

2.1.4 • Public • Published

html2pug

Converts HTML to Pug templating language (formerly Jade).
Requires Node.js version 7.6 or higher. Library written in typescript.

Turns this 😒

<!DOCTYPE html>
<html lang="en">

  <head>
    <title>Jade</title>
    <script type="text/javascript">
      const foo = true;
      let bar = function() {};
      if (foo) {
        bar(1 + 5)
      }
    </script>
  </head>

  <body>
    <h1>Pug - node template engine</h1>
    <nav aria-label="breadcrumb">
      <ol class="breadcrumb">
        <li class="breadcrumb-item active" aria-current="page">Home</li>
      </ol>
    </nav>
    <div class="col" id="container">
      <p>You are amazing</p>
      <p>
        Jade is a terse and simple
        templating language with a
        strong focus on performance
        and powerful features.
      </p>
    </div>
  </body>

</html>

Into this 🎉

doctype html
html
  head
    title Jade
    script(type="text/javascript").
      const foo = true;
      let bar = function() {};
      if (foo) {
      bar(1 + 5)
      }
  body
    h1 Pug - node template engine
    nav(aria-label="breadcrumb"): ol.breadcrumb: li.breadcrumb-item.active(aria-current="page") Home
    #container.col
      p You are amazing
      p
        | Jade is a terse and simple
        | templating language with a
        | strong focus on performance
        | and powerful features.

Programmatically

import Parser from "@nmyvision/html2pug"

const parser = new Parser({ tabs: true, collapse: true }) 
/* new Parser(undefined) ... for defaults */
const html = '<header><h1 class="title">Hello World!</h1></header>'
const pug = parser.parse(html)

Options

Name Version Type Default Description
tabs all Boolean false Use tabs instead of spaces
collapse all Boolean true Combine when possible using : notation
commas v2 Boolean false Add commas between attributes
doubleQuotes v2 Boolean true Use double quotes
tabs v2 Boolean false Use tabs (tabChar) otherwise use (whitespaceChar)
preserveTags v2 Boolean ['script', 'pre'] element renders with . ending
tabChar v2 Boolean '\t' system tab character
whitespaceChar v2 Boolean ' ' two spaces

Why

Why even create another HTML 2 Pug/Jade library?

There were a few scenerios that most libraries didn't address.

  • Shorthand
<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li>Sample</li>
  </ol>
</nav>

nav(aria-label="breadcrumb"): ol.breadcrumb: li Sample
  • Proper handle of non typical classnames
<ol class="sm:hover x-translate-1/2">
  Stuff  
</ol>

ol(class="sm:hover x-translate-1/2") 
  | Stuff

Dependencies (0)

    Dev Dependencies (11)

    Package Sidebar

    Install

    npm i @nmyvision/html2pug

    Weekly Downloads

    24

    Version

    2.1.4

    License

    ISC

    Unpacked Size

    15.4 kB

    Total Files

    5

    Last publish

    Collaborators

    • mgambill