ヒアドキュメント

ヒアドキュメント

var heredoc = function(){/*
    <h1>Hello, world!</h1>
    <span>テスト</span>
    <img src="https://www.google.co.jp/images/srpr/logo11w.png">
*/}.toString().match(/\n([\s\S]*)\n/)[1];
prototypeに組み込む場合は
Function.prototype.heredoc = function(){ return this.toString().match(/\n([\s\S]*)\n/)[1]; };
上記を拡張してドキュメント中の ${name} を value に置換する。heredoc({name:value}) と利用する
Function.prototype.heredoc = function(hash){
    var str = this.toString().match(/\n([\s\S]*)\n/)[1];
    if(!hash){ return str; }
    else{ return str.replace(/\$\{(.+)\}/, function(m, c1){ return (c1 in hash) ? hash[c1] : ""; }); }
};