@IIITRIX

Как сделать код html в одну строку?

В php это легко делается.
Добавить в Index файл типа
<?php
$s=str_replace("\r\n"," ",$text);
echo preg_replace("/((?<=>)|(?<=--)|(?<=.))[\s\n\r\t]+((?=--)|(?=<))/U",'',$s);?>


Как это сделать в джанге?
Чтоб в браузере html отображался в одну строку
  • Вопрос задан
  • 317 просмотров
Пригласить эксперта
Ответы на вопрос 2
tema_sun
@tema_sun
Тег {% spaceless %}, хотя он не уберет все переносы, т.к. это может сломать код. Если нужно прям все перносы убрать, то сделайте свой тег на основе джанговского.

Но мне гораздо больше нравится фильтр в pagespeed модуле nginx:
pagespeed on;
pagespeed EnableFilters collapse_whitespace;

Он работает гораздо быстрее, хотя опять-таки не все переносы убирает. Но возможно такой вариант, тоже подойдет.
Ответ написан
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Да практически так же:
>>> a = """
... <!DOCTYPE html>
... <html lang="en">
... <head>
...     <meta charset="UTF-8">
...     <title>Title</title>
... </head>
... <body>
... 
... </body>
... </html>
... """

>>> import re
>>> a1 = a.replace("\r\n"," ")
>>> a1
'\n<!DOCTYPE html>\n<html lang="en">\n<head>\n    <meta charset="UTF-8">\n    <title>Title</title>\n</head>\n<body>\n\n</body>\n</html>\n'

>>> re.sub("/((?<=>)|(?<=--)|(?<=.))[\s\n\r\t]+((?=--)|(?=<))/U",'', a1)
'\n<!DOCTYPE html>\n<html lang="en">\n<head>\n    <meta charset="UTF-8">\n    <title>Title</title>\n</head>\n<body>\n\n</body>\n</html>\n'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы