10

私はJinja2を使用して、通常は非常に大きなサイズのHTMLファイルを生成しています。生成されたHTMLに多くの空白があることに気づきました。このHTMLを最小化するために使用できる純粋なPythonツールはありますか?「最小化」とは、HTMLから不要な空白を削除することを意味します(Googleと同じように、たとえばgoogle.comのソースを見てください)。

このために、tidyなどのライブラリ/外部実行可能ファイルに依存したくありません。

さらに明確にするために、JavaScriptコードは事実上ありません。HTMLコンテンツのみ。

4

3 に答える 3

9

また、 Jinja の組み込みの空白コントロールを調べることもできます。これにより、テンプレートがレンダリングされた後に手動で空白を削除する必要性が軽減される場合があります。

ドキュメントの引用:

ただし、テンプレート内の空白を手動で削除することもできます。ブロック (for タグなど)、コメント、または変数式の先頭または末尾にマイナス記号 (-) を配置すると、そのブロックの前後の空白を削除できます。

{% for item in seq -%}
    {{ item }}
{%- endfor %}

これにより、間に空白のないすべての要素が生成されます。seq が 1 から 9 までの数字のリストである場合、出力は 123456789 になります。

于 2010-01-26T19:58:12.293 に答える
1

余分な空白を取り除きたい場合は、次を使用できます。

>>> import re
>>> html_string = re.sub(r'\s\s+', ' ', html_string)

また:

>>> html_string = ' '.join(html_string.split())

余分な空白を削除するよりも複雑なことをしたい場合は、より強力なツール (またはより複雑な正規表現) を使用する必要があります。

于 2010-01-26T19:52:36.347 に答える