Создание читаемых html с шаблонами django
При использовании Django для html templating, как мне создать хорошее форматирование разметки html.
Я пытаюсь использовать блоки контента. Но блоки контента отображаются на разных уровнях отступов в разных шаблонах. Как получить блоки контента, чтобы показать отступы, как если бы кто-то должен был написать html.
У меня такая же проблема с новыми строками; Я могу разбить все блоки вместе в шаблоне. В этот момент html выглядит лучше, но шаблоны недостижимы.
Я думаю, вопрос в том, как создать красивую html-разметку с помощью системы шаблонов django?
Я до сих пор удивлен ответами. Я нахожу, что хорошо отформатированные HTML файлы помогают писать соответствующие CSS и JavaScript. А также облегчить добавление контента позже.
Ответы
Ответ 1
Кристиан С. Пероне из Pyevolve имеет именно то, что вы ищете. Он использует промежуточное программное обеспечение для перехвата объекта HTTPResponse и запускает его через BeautifulSoup.
Я бы предположил, что ваш сайт пострадает от небольшой производительности. Я рекомендую запустить некоторые тесты перед развертыванием этого промежуточного программного обеспечения на производственный сайт.
Ответ 2
Вы можете переопределить метод визуализации NodeList, как я уже сделал. См. Мой вопрос с рабочим кодом:
Правильный отступ в шаблонах Django (без патчей для обезьян)?
Ответ 3
Читаемость HTML не имеет значения. В такой системе, как Django или Rails, HTML - это выходной формат, а не исходный формат. Когда люди редактируют HTML вручную, они имеют право беспокоиться о отступе и интервалах, потому что это исходный формат, и кому-то придется его редактировать в будущем. Но вывод шаблонов таков: вывод. Браузер не заботится о отступе. На данный момент единственными людьми, которые читают HTML, являются люди, смотрящие на View - Source.
Ответ 4
Я впечатлен тем, что вы заботитесь о получаемом html - я только беспокоюсь о том, чтобы получить шаблоны в порядке и читаемости! Но в ответ на ваш вопрос, посмотрели ли вы на промежуточное ПО?
http://docs.djangoproject.com/en/dev/topics/http/middleware/
Затем используйте модуль pidon Tidy для переформатирования html.
http://pypi.python.org/pypi/PythonTidy/
Ответ 5
Я рекомендую запустить вывод механизма шаблона с помощью более тонкого HTML, например μTidylib.
Ответ 6
Если вы используете Django Templates для строкового форматирования длинно-простых строк, вы можете использовать строки с тремя кавычками 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} own purposes, even though
it looks funny in code'''.format(**context_dict)
Тогда templated_string({'name': 'rileymat', 'something': 'whatever you want'})
делает разумную вещь. Вы можете генерировать необработанный HTML таким образом..., который затем имеет именно пропущенное вами пространство.