プレーンテキスト
Pugは、プレーンテキスト(ほとんど処理されずにレンダリングされたHTMLに直接出力されるコードまたはテキストコンテンツ)を取得する4つの方法を提供します。それぞれ異なる状況で役立ちます。
プレーンテキストでもタグと文字列の式展開は使用されますが、行の最初の単語はPugタグではありません。また、プレーンテキストはエスケープされないため、リテラルHTMLを含めることもできます。
ここでよくある落とし穴は、レンダリングされたHTMLの空白の管理です。このページの最後でそれについて説明します。
タグ内インライン
プレーンテキストを追加する最も簡単な方法は、インラインです。行の最初の用語はタグ自体です。タグと1つのスペースの後にあるすべてが、そのタグのテキストコンテンツになります。これは、プレーンテキストコンテンツが短い場合(または行が長くなっても構わない場合)に最も便利です。
リテラルHTML
行全体が左山括弧(<
)で始まる場合もプレーンテキストとして扱われます。これは、不便な場所にリテラルHTMLタグを記述する場合に役立つことがあります。たとえば、ユースケースの1つは条件付きコメントです。リテラルHTMLタグは処理されないため、Pugタグとは異なり、自動的に閉じられません。
パイプテキスト
テンプレートにプレーンテキストを追加する別の方法は、行の先頭にパイプ文字(|
)を付けることです。このメソッドは、空白制御セクションで後述するように、プレーンテキストとインラインタグを混在させる場合に役立ちます。
タグ内ブロック
多くの場合、タグ内に大きなテキストブロックが必要になることがあります。良い例は、script
タグとstyle
タグにJavaScriptおよびCSSコードを記述することです。これを行うには、タグ名の直後、またはタグに属性がある場合は閉じ括弧の後に.
を追加します。
タグとドットの間にスペースを入れてはいけません。タグのプレーンテキストコンテンツは1レベルインデントする必要があります
親タグ内の他のタグの後に、プレーンテキストのドットブロックを作成することもできます。
空白制御
レンダリングされたHTMLの空白を管理することは、Pugを学ぶ上で最も難しい部分の1つです。しかし、心配しないでください。すぐにコツをつかむことができます。
空白の仕組みについて、2つの主要なポイントを覚えておく必要があります。HTMLにコンパイルする場合
- Pugはインデントと、要素間のすべての空白を削除します。
- そのため、HTML要素の終了タグは、次の要素の開始タグに接触します。これは、段落などのブロックレベル要素の場合、一般的には問題になりません。Webブラウザでは、CSSの
display
プロパティを変更していない限り、引き続き個別の段落としてレンダリングされるためです。ただし、要素間にスペースを挿入する必要がある場合は、以下の方法を参照してください。
- そのため、HTML要素の終了タグは、次の要素の開始タグに接触します。これは、段落などのブロックレベル要素の場合、一般的には問題になりません。Webブラウザでは、CSSの
- Pugは要素内の空白を保持します。以下が含まれます。
- テキスト行の中央にあるすべての空白。
- ブロックのインデントを超える先頭の空白。
- 末尾の空白。
- プレーンテキストブロック内、または連続したパイプライン間の改行。
つまり… Pugはタグ間の空白を削除しますが、タグ内の空白は保持します。これにより、タグやプレーンテキストが接触するかどうかを完全に制御できます。単語の途中にタグを配置することもできます。
トレードオフは、タグとテキストが接触するかどうかを考え、制御する必要があることです。
テキストやタグを接触させる必要がある場合(たとえば、文の末尾にあるハイパーリンクの外側にピリオドを表示する必要がある場合)、これは基本的にPugに指示しない限り発生するため、簡単です。.
スペースを追加する必要がある場合は、いくつかのオプションがあります。
推奨されるソリューション
1つ以上の空のパイプライン(スペースまたは何もないパイプ)を追加できます。これにより、レンダリングされたHTMLに空白が挿入されます。
インラインタグに多くの属性が必要ない場合は、プレーンテキストのブロック内でタグの式展開またはリテラルHTMLを使用するのが最も簡単な場合があります。
推奨されない
空白が必要な場所に応じて、テキストの先頭(ブロックのインデント、パイプ文字、および/またはタグの後)に余分なスペースを追加できます。または、テキストの末尾に末尾のスペースを追加できます。
ここで末尾と先頭のスペースに注意してください
上記のソリューションは完全に機能しますが、確かに少し危険です。多くのコードエディターは、デフォルトで保存時に末尾の空白を削除します。あなたとすべてのコントリビューターは、末尾の空白の自動削除を防ぐためにエディターを設定する必要がある場合があります。