7

Twigテンプレートエンジンとして(バージョン1.9.1)を使用してきましたが、不要な改行やスペースが追加されて結果がかなり乱雑になるためPHP、レンダリングに完全に満足していません。HTMLテンプレートをより柔軟にするためmacrosに、ネストされた方法で相互に呼び出すことができるを使用しています。これ自体は正常に機能しますが、状況が悪化するようです。たとえば、<a>要素は次のようにレンダリングされます。

             <a href="http://google.com" alt="some alternative text">                    some text with <strong>some html</strong>



</a>

twig理由の一部は、空の行を削除してそれらからインデントするかのように、テンプレートのフォーマット方法にあることを知っています。レンダリングHTMLは少しきれいに見えますが、完全ではありません。以下の出力は、<a>間に2つの改行があるレンダリングを示しています。対応するテンプレートに空の行やスペースが含まれていないにもかかわらず、要素の開始と終了!

<a href="http://google.com" alt="some alternative text">some text with <strong>some html</strong>


</a>

テンプレートからフォーマットを削除することtwig(つまり、空の行とインデント)は、テンプレートの読み取りと保守が非常に困難になるため、実際にはオプションではありません。

テンプレートからフォーマットを削除することは別として。よりクリーンできれいなHTMLをレンダリングする方法は何Twigですか?

4

3 に答える 3

6

ドキュメントのこのページは、タグ内のスペースを制御するのに役立ちますhttp://twig.sensiolabs.org/doc/templates.html#whitespace-control

于 2012-08-09T13:53:07.710 に答える
1

正しい出力インデントも必要だったので、その拡張機能を作成しました。私はそれを要点で利用できるようにしました:https ://gist.github.com/urraka/ccd1812570ca4b278b9f

説明については、要点の使用法ファイルを参照してください。

基本的に、このテンプレート:

{# Given variable = "line1\nline2\nline3" #}

<body>
    {% if true %}
        <stuff>{% if true %}only blocks that take the whole line have effect{% endif %}</stuff>
        {{ variable }}
    {% endif %}
</body>

このようになります:

<body>
    <stuff>only blocks that take the whole line have effect</stuff>
    line1
    line2
    line3
</body>
于 2015-03-30T00:23:39.557 に答える
0

このバンドルはもう維持されていませんが、tidy_parse_string()を使用してtidyサービスを作成するための開始点である可能性があります。KnpMarkupValidatorBundle

于 2014-05-15T08:02:50.133 に答える