\nPUG HTMLテンプレートでJavaScriptを使用して
\n<\/p>パグの素晴らしいことの1つは、テンプレートでJavaScriptを?qū)g行できることです。これにより、変數(shù)をテンプレートに簡(jiǎn)単に挿入したり、配列とオブジェクトを反復(fù)したり、條件付きでHTMLをレンダリングしたりできます。\n
バッファー対バッファーコード<\/p>\n
これは、パグでjavascriptを使用する前に注意すべき重要な區(qū)別です。<\/h2>\n
バッファーされていないコードはマイナス( - )で始まります。出力に直接何も追加しませんが、その値はパグ內(nèi)から使用できます:<\/p>\n
\n一方、バッファーコードは、等しい(=)で始まります。 JavaScript式を評(píng)価し、結(jié)果を出力します\n<\/h3>\n
上記のコードはこれにまとめます:<\/p>\n
\nセキュリティの理由のために、バッファコードがHTMLエスケープされています。<\/p>\n
$ pug --version\n<\/span>pug version: 2.0.3\n<\/span>pug-cli version: 1.0.0-alpha6\n<\/span><\/pre>\n上記のコードはこれにまとめます:<\/p>\n
mkdir -p pug-examples\/html\n<\/span>cd pug-examples\n<\/span>touch index.pug\n<\/span><\/pre>\n補(bǔ)間<\/p>\n
pug -w . -o .\/html -P\n<\/span><\/pre>文字列補(bǔ)間は、テンプレート內(nèi)の1つ以上のプレースホルダーを?qū)潖辘工雮帳酥盲瓝Qえるプロセスです。今まで見(jiàn)てきたように、バッファリングされた入力はこれを行う1つの方法を提供します。もう1つは#{}を使用することです。ここで、パグは巻き毛ブラケット間のコードを評(píng)価し、それを逃がして、テンプレートにレンダリングします。\n\n<\/p>上記のコードはこれにまとめます:
watching index.pug\nrendered \/home\/jim\/Desktop\/pug-examples\/html\/index.html\n<\/pre>\n\n<\/p>巻き毛ブラケットには有効なJavaScript式が含まれる可能性があるため、これは多くの可能性を開(kāi)きます。\n
doctype html\n<\/span>html(lang='en'<\/span>)<\/span><\/span>\n<\/span> head\n<\/span> title Hello, World!\n<\/span> body\n<\/span> h1 Hello, World!\n<\/span> div.remark<\/span>\n<\/span> p Pug rocks!\n<\/span><\/pre>\nこれは次のとおりです\n<\/h3>\n
!{}を使用して、Unescaped値をテンプレートにレンダリングすることもできます。しかし、これは、入力が信頼されていないソースから來(lái)る場(chǎng)合、最良のアイデアではありません。\n<\/p>\n
<\/span>\n<\/span> lang=\"en\"<\/span>><\/span>\n<\/span> ><\/span>\n<\/span> ><\/span>Hello, World!<\/title<\/span>><\/span>\n<\/span> <\/head<\/span>><\/span>\n<\/span>
><\/span>\n<\/span> ><\/span>Hello, World!<\/h1<\/span>><\/span>\n<\/span> class
=\"remark\"<\/span>><\/span>\n<\/span> ><\/span>Pug rocks!!<\/p<\/span>><\/span>\n<\/span> <\/div<\/span>><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/html<\/span>><\/span>\n<\/span><\/pre>注:変數(shù)に保持されている値を要素の屬性に割り當(dāng)てたい場(chǎng)合は、#{}を省略できます。例:img(alt = name)。<\/p>\n
div.remark<\/span>\n<\/span> p Pug rocks!!\n<\/span><\/pre>iteration\n<\/p>パグの各キーワードにより、配列を簡(jiǎn)単に反復(fù)します:
class
=\"remark\"<\/span>><\/span>\n<\/span> ><\/span>Pug rocks!!<\/p<\/span>><\/span>\n<\/span><\/div<\/span>><\/span>\n<\/span><\/pre>\n\n<\/p>これにより、次の結(jié)果が得られます\n
div.remark<\/span>\n<\/span>p Pug rocks!!\n<\/span><\/pre>\nそれを使用して、オブジェクトのキーを反復(fù)することもできます。\n<\/p>\n
これは次のとおりです。\n<\/em>\n<\/p>パグでは、配列またはオブジェクトが空である場(chǎng)合に実行される他のブロックを提供することもできます。\n\n<\/h3>最後に、それぞれのエイリアスとして使用できることに注意してください。\n
條件<\/p>\n
class
=\"remark\"<\/span>><\/span><\/div<\/span>><\/span>\n<\/span>><\/span>Pug rocks!!<\/p<\/span>><\/span>\n<\/span><\/pre>條件は、JavaScriptの式の結(jié)果に応じて、異なるHTMLをレンダリングする非常に便利な方法を提供します:<\/p>\n