Форматирование шаблона Django приводит к «рваному» html - PullRequest
1 голос
/ 06 мая 2011

Для моего удобства я использую некоторое форматирование в своих шаблонах (разрывы строк, интервалы и т. Д.) Например:

{% extends "base.html" %}

{% load tabs %}

{% block content %}
{% block navigation %}
<ul id="user_admin_tabs_list">
    <li><a href="{% url user_admin.views.profile %}" class=
    {% ifactivetab "user_admin_tabs" "profile" %}
        "user_admin_tabs_active_tab"
    {% else %}
        "user_admin_tabs_inactive_tab"
    {% endifactivetab %}>Профиль</a></li>

...

Но это приводит к «рваному» выводу html.Например:

<ul id="user_admin_tabs_list"> 
    <li><a href="/accounts/profile/profile/" class=

        "user_admin_tabs_active_tab"
    >Профиль</a></li> 

    <li><a href="/accounts/profile/shops/" class=

        "user_admin_tabs_inactive_tab"
    >Магазины</a></li> 

    <li><a href="/accounts/profile/billing/" class=

        "user_admin_tabs_inactive_tab"
    >Биллинг</a></li> 

    <li><a href="/accounts/profile/settings/" class=

        "user_admin_tabs_inactive_tab"
    >Настройки</a></li> 
</ul> 

Поэтому читаемость шаблонов приводит к плохой читаемости выходных html.

Каково решение этой проблемы?

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Если честно, я бы не стал беспокоиться о выходных данных механизма шаблонов.Вы будете редактировать шаблоны, а не вывод, так что для удобства сопровождения действительно имеет значение, только если template HTML хорошо структурирован.Конечно, если кто-то использует «View Source» на вашей веб-странице, он увидит беспорядок в HTML, но это не так уж важно.

Тем не менее, вы можете попробовать использовать Django spaceless тег для получения более привлекательного вывода HTML.


Редактирование

Для этого конкретного случая вы можете поместить теги ifactivetab в строку:

<li><a href="{% url user_admin.views.profile %}" class="{% if activetab "user_admin_tabs" "profile" %}user_admin_tabs_active_tab{% else %}user_admin_tabs_inactive_tab{% endifactivetab %}">Профиль</a></li>
1 голос
/ 06 мая 2011

Я думал об этом в прошлом.

Лучше всего вам, IMO, постить обработку вывода с чем-то вроде tidy.Он написан на C, так что он довольно быстрый и не повредит производительности.Это вариант в разработке, но не тот, который вам нужен при работе на сайте с высоким трафиком.

Вы хотите настроить его только для кода отступа.

От руки, я думаю, что он может попытаться очистить недопустимую разметку, которая заставит вас почесать голову, когда вы включите / отключите ее.Что-то, о чем следует знать, потому что в результате структура вашего документа может измениться.

Это неплохо, если вы «просматриваете источник», но вам, вероятно, лучше просто использовать firebug для проверки вашего вывода в любом случае- если это мотивация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...