susanna
susanna

Reputation: 1521

How to remove white space from html source code

I am using django and python. In the template file, I have a drop-down list which is shown as below. It works. The only problem is that there is a lot of white space between in the source html code. Is there any way to remove the white space? Thanks.

           {% for lang_ele in video.languages.all %}
              {% ifequal lang_ele.lang display_language  %}
                   {% for key, value in language_table.items %}
                       {% ifequal lang_ele.lang key%}
                         <option selected = "selected" value={{lang_ele.lang}}>{{value}}</option>
                       {% endifequal %}
                   {% endfor %}
              {% else %}
                   {% for key, value in language_table.items %}
                       {% ifequal lang_ele.lang key%}
                         <option value={{lang_ele.lang}}>{{value}}</option>
                       {% endifequal %}
                   {% endfor %}

              {% endifequal %}
           {% endfor %}

The output html souce code looks like this:

<option value=de>German</option> 


<option value=el>Greek</option> 


<option value=hi>Hindi</option> 

Upvotes: 34

Views: 18837

Answers (3)

Darek
Darek

Reputation: 2921

I used custom helper function with stripping. Here is a an example I used too: https://web.archive.org/web/20140729182917/http://cramer.io/2008/12/01/spaceless-html-in-django/

Upvotes: 1

Serge K.
Serge K.

Reputation: 348

  1. Look toward middelware, eg "htmlmin". It processes the file at a time. In addition it has a decorator. https://crate.io/packages/django-htmlmin

  2. gzip will give the same effect. Probably would have cost to opt out of trimming. Look towards django middelware or nginx gzip.

  3. You use the controller/model logic in the template. This is wrong way.

Upvotes: 5

Timmy O&#39;Mahony
Timmy O&#39;Mahony

Reputation: 53998

You can use the spaceless template tag. It:

Removes whitespace between HTML tags.

{% spaceless %}
<p>
    <a href="foo/">Foo</a>
</p>
{% endspaceless %}

Upvotes: 65

Related Questions