この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
JavaScriptでヒアドキュメント
たまに複数行の長い文字列を書きたくなることがあります。 Rubyだとヒアドキュメントの機能があるので簡単ですが、JavaScriptの場合は文字列を+でつなげたりするしかありません。 しかし、今回紹介するnode-hereモジュールを使用すれば、ヒアドキュメントが使えるようになります。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Node.js : v0.10.4
- npm : 1.2.18
npmを使用してモジュールをインストールしましょう。
% mkdir here
% cd here
% npm install here
サンプルプログラム作成
モジュールをrequireして、here関数にブロック文字列をコメントとして渡します。 下記プログラムを実行すると、html表現の文字列がそのまま表示されます。
var here = require('here').here;
console.log(here(/*
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hello here document</title>
</head>
<body>
hello here document
</body>
</html>
*/).unindent());
まとめ
ちなみに、最後に呼んでいるunindent関数は、行頭のインデントを無視した形式で文字列を生成するようです。 もしそのままの文字列を返したい場合、valueOf関数を使用します。