Node.jsでのPretty Print(HTMLでも)

XMLやHTMLを整形して表示したい、出力したい場合はよくあります。
そんな時に使えるのがhtmlモジュールです。

ではさっそく使ってみます。

$ npm install html --save

XMLは以前使ったasxのソースです。使い方も簡単ですね。

var html = require("html");
var data = '<ASX version="3.0"><title>再生リストのタイトル</title><Entry><title>メディアのタイトル</title><ref HREF="http://localhost/wmv/foo.wmv"/></Entry></ASX>';
var prettyData = html.prettyPrint(data, {indent_size: 2});
process.stdout.write(prettyData)

実行結果は以下の通り。

$ node app.js 
<ASX version="3.0">
  <title>再生リストのタイトル</title>
  <Entry>
    <title>メディアのタイトル</title>
    <ref HREF="http://localhost/wmv/foo.wmv" />
  </Entry>
</ASX>

コマンドラインから標準入力でファイルやテキストを読込んで整形するサンプルは以下にあります。
https://github.com/maxogden/commonjs-html-prettyprinter/blob/master/bin/html.js