Создание удобочитаемого HTML с шаблонами Django - PullRequest
14 голосов
/ 31 декабря 2010

При использовании Django для HTML-шаблонов, как мне создать хорошее форматирование HTML-разметки.

Я пытаюсь использовать блоки контента. Но блоки содержимого отображаются на разных уровнях отступа в разных шаблонах. Как мне сделать так, чтобы блоки содержимого отображались с отступом, как если бы кто-то должен был написать html.

У меня та же проблема с переводом строки; Я могу разбить все блоки вместе в шаблоне. В этот момент HTML выглядит лучше, но шаблоны не поддерживаются.

Полагаю, вопрос в том, как создать красивую разметку HTML с помощью системы шаблонов django?

Пока что я удивлен ответами. Я считаю, что красиво отформатированный HTML помогает в написании соответствующих CSS и JavaScript. А также облегчает добавление контента позже.

Ответы [ 6 ]

14 голосов
/ 05 января 2013

Кристиан С. Пероне из Pyevolve имеет именно то, что вы ищете . Он использует промежуточное ПО для перехвата объекта HTTPResponse и запуска его через BeautifulSoup .

Хотя я полагаю, что ваш сайт будет испытывать незначительное снижение производительности. Я рекомендую запустить некоторые тесты перед развертыванием этого промежуточного программного обеспечения на производственной площадке.

3 голосов
/ 19 августа 2013

Вы можете переопределить метод рендеринга NodeList, как я сделал.См. Мой вопрос с рабочим кодом:

Правильный отступ в шаблонах Django (без мартышек-патчей)?

0 голосов
/ 31 августа 2013

Если вы используете шаблоны Django для форматирования строк длинных, но простых строк, вы можете использовать строки Python с тройными кавычками с .format () в функции def:

def templated_string(context_dict):
    return '''This is an example
of a long string across multiple lines.
It can be used to format {something} for 
{name}'s own purposes, even though
it looks funny in code'''.format(**context_dict)

Тогда templated_string({'name': 'rileymat', 'something': 'whatever you want'}) делает разумную вещь.Вы можете сгенерировать необработанный HTML-код таким образом ... который затем будет иметь именно тот пробел, который вы запрашиваете.

0 голосов
/ 31 декабря 2010

Читаемость HTML не имеет значения. В такой системе, как Django или Rails, HTML является выходным форматом, а не исходным. Когда люди редактируют HTML вручную, они вправе беспокоиться об отступах и интервалах, потому что это исходный формат, и кому-то придется редактировать его в будущем. Но вывод шаблонов - это просто вывод. Браузер не заботится об отступах. На данный момент единственными людьми, которые читают HTML, являются люди, которые смотрят на View - Source.

0 голосов
/ 31 декабря 2010

Я рекомендую запустить вывод механизма шаблонов через HTML-тидье, например µTidylib .

0 голосов
/ 31 декабря 2010

Я впечатлен, что вы заботитесь о конечном html - я беспокоюсь только о том, чтобы шаблоны были аккуратными и удобочитаемыми Но в ответ на ваш вопрос, вы смотрели на промежуточное ПО?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

Затем используйте модуль Python Tidy для переформатирования html.

http://pypi.python.org/pypi/PythonTidy/

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