パッケージの詳細

xhtml2pug

dimensi113MIT4.0.2

library for convert html2pug

html to pug, html2pug, convert html to pug

readme

xhtml2pug

Converts HTML and Vue like syntax to Pug templating language.
Requires Node.js version 14 or higher.

Turns this

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <div id="content">
      <h1 class="title">Hello World!</h1>
    </div>
  </body>
</html>

Into this

doctype html
html(lang='en')
  head
    title Hello World!
   body
    #content
      h1.title Hello World!

Install

Get it on npm:

npm install -g xhtml2pug

Usage

CLI

Accept input from a file or stdin and write to stdout:

# choose a file
xhtml2pug < example.html

# use pipe
echo '<h1>foo</h1>' | xhtml2pug -f

Write output to a file:

xhtml2pug < example.html > example.pug

See xhtml2pug --help for more information.

Programmatically

import { convert } from "xhtml2pug";

const html = '<header><h1 class="title">Hello World!</h1></header>';
const pug = convert(html, { symbol: '\t' });

Cli Options

  -b, --bodyLess      Don't wrap into html > body
                                           [boolean] [default: false]
  -t, --tabs          Use tabs as indent              [boolean] [default: false]
  -s, --spaces        Number of spaces for indent          [number] [default: 2]
  -a, --attrComma     Commas in attributes [boolean] [default: false]
  -e, --encode        Encode html characters           [boolean] [default: true]
  -q, --doubleQuotes  Use double quotes for attributes[boolean] [default: false]
  -i, --inlineCSS     Place all classes in class attribute
                                                      [boolean] [default: false]
  -c, --classesAtEnd  Place all classes after attributes
                                                      [boolean] [default: false]
  -p, --parser        html for any standard html, vue for any vue-like html
                             [string] [choices: "html", "vue"] [default: "html"]

Api Options

export interface PublicOptions {
  /** Don't wrap into html > body */
  bodyLess: boolean;
  /** Commas in attributes */
  attrComma: boolean;
  /**  Encode html characters */
  encode: boolean;
  /** Use double quotes for attributes */
  doubleQuotes: boolean;
  /** Place all classes in class attribute */
  inlineCSS: boolean;
  /** Symbol for indents, can be anything */
  symbol: string;
  /** Html for any standard html, vue for any vue-like html */
  parser: "html" | "vue";
  /** Place all classes after attributes */
  classesAtEnd: boolean;
}

更新履歴

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

4.0.2 (2022-06-19)

Bug Fixes

  • improve parse directive logic (432747c)

4.0.1 (2022-06-19)

Bug Fixes

4.0.0 (2022-06-19)

⚠ BREAKING CHANGES

  • update multiline attributes compile logic

Features

  • update multiline attributes compile logic (ed5d116)

Bug Fixes

3.3.0 (2022-06-19)

Features

Bug Fixes

3.2.1 (2022-01-03)

Features

  • package: move parcel to devdeps (a915f9b)

3.2.0 (2022-01-03)

Features

3.0.0 (2022-01-02)

Features

2.1.0 (2022-01-02)

Features

  • add classesAtEnd option (c823ae6)

2.0.0 (2022-01-01)

Features

1.1.2 (2021-01-31)

1.1.1 (2021-01-31)

1.1.0 (2021-01-30)

Features

  • add trim start to compile multiline text (a0c42ec)

1.0.2 (2021-01-30)

1.0.1 (2021-01-30)

1.0.0 (2021-01-30)

0.1.2 (2021-01-30)

0.1.1 (2021-01-30)