html2jade
converts HTML into Jade format.
Mostly usable but sometimes requires fixing up, usually involving conditionals and scripts indentation.
While converting a fairly complicated theme package with ~20 HTML files, I had to hand-edit just twice.
NOT compatible with Node.js 0.11.x, 0.12.x, and io.js. Last time I checked, incompatibility stems from jsdom
module used by this tool.
WANTED: I am looking for someone to take over maintenance of this tool.
While maintenance duty is very light, I think relative popularity of this tool deserves a developer who can invest enough effort to take it to the next level: fully automated conversion. Besides, the code could use a little brushing up as it was my first CoffeeScript project and architecture is rather half-hatched and half-patched.
If you are interested, please ping me via email in my Github profile.
html2jade
version prior to 0.7 support OS X and Linux only.
html2jade
version 0.7+ should support OS X, Windows, and Linux.
npm install -g html2jade
Outputs to stdout if input is URL
html2jade http://twitter.com
html2jade http://twitter.com > twitter.jade
Outputs to file if input is file
html2jade mywebpage.html # outputs mywebpage.jade
html2jade public/*.html # converts all .html files to .jade
Convert HTML from stdin
cat mywebpage.html | html2jade -
To generate Scalate compatible output:
html2jade --scalate http://twitter.com
html2jade --scalate http://twitter.com > twitter.jade
html2jade --scalate mywebpage.html
html2jade --scalate public/*.html
-d, --double
- use double quotes for attributes-o, --outdir <dir>
- path to output generated jade file(s) to-n, --nspaces <n>
- the number of spaces to indent generated files with. Default is 2 spaces-t, --tabs
- use tabs instead of spaces--donotencode
- do not html encode characters. This is useful for template files which may contain expressions like {{username}}--bodyless
- do not output enveloping html and body tags--numeric
- use numeric character entities-s, --scalate
- generate Scalate variant of jade syntax--noattrcomma
- omit attribute separating commas--noemptypipe
- omit lines with only pipe ('|') printable character
To convert raw HTML into Jade:
var html2jade = require('html2jade');
var html = "<html><body>Hello World</body></html>";
html2jade.convertHtml(html, {}, function (err, jade) {
// do your thing
});
To convert DOM document into Jade (client-side):
// assumes html2jade.js file has been loaded
Html2Jade.convertDocument(document, {}, function (err, jade) {
// do your thing
});
Jade is commonly used to generate HTML with embedded Mustache or Handlebars templates.
Be sure to use version 0.8+ if you use template expressions in element IDs or CSS class names to avoid generating invalid Jade files.
There is a web version of html2jade
,
kindly provided by @aaronpowell.
Pascal Garber's jade2html2jade does roundtrip from jade to HTML and back. Online demo.
Miniclip is a Linux tray app that quickly converts HTML to Jade, CSS to Stylus and JS to Coffee from clipboard.
As of version 0.4, there is a simple unit test that converts HTML files in test/data
directory
and compare them against Jade files in the same directory. Unit test harness requires coffee-script
and mocha
to be installed globally. Run the tests with command npm test
.