الشريط البيضاء في المساحة HTML التي تم إنشاؤها باستخدام رمز Python النقي

StackOverflow https://stackoverflow.com/questions/2142108

سؤال

أنا أستخدم Jinja2 لإنشاء ملفات HTML التي عادة ما تكون ضخمة للغاية في الحجم. لقد لاحظت أن HTML المولدة لديها الكثير من المسافة البيضاء. هل هناك أداة python النقية يمكنني استخدامها لتقليل هذا HTML؟ عندما أقول "الحد الأدنى" ، أعني إزالة المسافة البيضاء غير الضرورية من HTML (مثلما مثل Google - انظر إلى مصدر Google.com ، على سبيل المثال)

لا أريد الاعتماد على المكتبات/التنفيذ الخارجية مثل TIDY لهذا الغرض.

لمزيد من التوضيح ، لا يوجد رمز JavaScript تقريبًا. محتوى HTML فقط.

هل كانت مفيدة؟

المحلول

إذا كنت ترغب فقط في التخلص من المسافة البيضاء الزائدة ، فيمكنك استخدام:

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

أو:

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

إذا كنت ترغب في القيام بشيء أكثر تعقيدًا من مجرد تجريد المسافة البيضاء الزائدة ، فستحتاج إلى استخدام أدوات أكثر قوة (أو إعادة تعقيد أكثر تعقيدًا).

نصائح أخرى

يمكنك أيضا التحقيق التحكم في منطقة جينجا المدمجة في المساحة البيضاء, ، والتي قد تخفف من بعض الحاجة إلى إزالة المسافة البيضاء يدويًا بعد تقديم القوالب الخاصة بك.

اقتباس المستندات:

ولكن يمكنك أيضًا تجريد المسافة البيضاء في قوالب باليد. إذا وضعت علامة ناقص (-) على بداية أو نهاية الكتلة (على سبيل المثال A للعلامة) ، فإن تعليقًا أو تعبيرًا متغيرًا يمكنك إزالة المساحات البيضاء بعد أو قبل تلك الكتلة:

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

هذا سيؤدي إلى جميع العناصر دون مساحة بيضاء بينهما. إذا كانت SEQ قائمة بالأرقام من 1 إلى 9 ، فسيكون الإخراج 123456789.

وجدت بيثون أنحف المكتبة ، مثالية لما تحتاج إلى القيام به.

from slimmer import html_slimmer # or xhtml_slimmer, css_slimmer
html = html_slimmer(html)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top