PugをコンパイルしたHTMLで、一部コードをコメントアウトしたい時に少し迷ったのでメモ。
サンプルコード
以下のような商品リストがあり、商品Bを一時的にコメントアウトしたいとします。
Pug
ul.list
li.list-item
a(href="") アイテムA
li.list-item
a(href="") アイテムB
li.list-item
a(href="") アイテムC
HTML
<ul class="list"> <li class="list-item"><a href="">アイテムA</a></li> <li class="list-item"><a href="">アイテムB</a></li> <li class="list-item"><a href="">アイテムC</a></li> </ul>
コメントアウトを外すのはPugを使用しない環境で行うため、コメントアウトした中身はHTMLタグが入っている必要があります。
コンパイル後も残る記述のコメントアウトで、以下のように記述してみます。
Pug
ul.list
li.list-item
a(href="") アイテムA
//
li.list-item
a(href="") アイテムB
li.list-item
a(href="") アイテムC
コンパイルを行うと、コメントアウト内はコンパイル前の状態で出力されました。
HTML
<ul class="list">
<li class="list-item"><a href="">アイテムA</a></li>
<!--
li.list-item
a(href="") アイテムB
-->
<li class="list-item"><a href="">アイテムC</a></li>
</ul>
コメントアウト内もコンパイルさせたい場合、Pugで用意されているコメントアウトを使うのではなく、バーティカルバー(|)でコメント開始と終了を記述するとよさそうです。
Pug
ul.list
li.list-item
a(href="") アイテムA
| <!--
li.list-item
a(href="") アイテムB
| -->
li.list-item
a(href="") アイテムC
これをコンパイルすると、意図した形でコメントアウトができました。
HTML
<ul class="list"> <li class="list-item"><a href="">アイテムA</a></li><!-- <li class="list-item"><a href="">アイテムB</a></li>--> <li class="list-item"><a href="">アイテムC</a></li> </ul>
【参考サイト】
コメントが承認されるまで時間がかかります。