Мини-код HTML

Я искал googled, но не могу найти никаких скриптов для миниатюр HTML.

Мне пришло в голову, что, возможно, нет ничего более миниатюр для HTML, чем удаление всех ненужных пробелов.

Я что-то упустил или потерял свой Google Fu?

Ответ 1

Вы должны быть осторожны при удалении файлов из HTML, поскольку это хрупкий язык. В зависимости от того, как кодируются ваши страницы, некоторые из этих пробелов могут быть более значительными; также, если у вас есть стили CSS, такие как white-space: pre, вам может понадобиться сохранить пробелы. Кроме того, есть многочисленные ошибки браузера и т.д., И в основном каждый символ в файле HTML может быть там, чтобы удовлетворить некоторые требования или ублажать некоторые браузеры.

По моему мнению, лучше всего разработать страницы с помощью методов CSS (недавно я смог сделать важную страницу на сайте, на котором я работаю, и уменьшить его размер на 50%, просто перекодируя его с помощью CSS вместо таблиц и вложенные атрибуты style = "..." ). Затем используйте GZip, чтобы уменьшить размер ваших страниц для браузеров, которые понимают gzip. Это позволит сэкономить полосу пропускания при сохранении структуры html.

Ответ 2

Иногда, в зависимости от закрывающих тегов и/или CSS, пробелы могут быть значительными.

Ответ 3

Вы можете найти несколько хороших ссылок здесь для таких вещей, как HTML tidy и других.

Если вы не хотите использовать одну из этих опций, Prototype имеет способ очистить пробел в DOM. Вы можете сделать это самостоятельно и скопировать его через "Просмотр сгенерированного источника" в панели инструментов веб-разработчиков Firefox. Затем вы можете заменить оригинальный html прототипом. Извините за то, что не сделал этого явного ника.

(Я рекомендую первую ссылку)

Ответ 4

Да, я догадываюсь, что он удаляет пробелы и комментарии. Вы не можете заменить идентификаторы более короткими, как в javascript, так как вероятность того, что классы CSS или javascript будут зависеть от этих идентификаторов.

Кроме того, вы должны быть осторожны при удалении пробелов и убедитесь, что слева всегда остался символ пробела, иначе allyourtextwilllooklikethis.

Ответ 5

Здесь довольно длинное обсуждение этого блога Wordpress об этой теме. Вы можете найти очень длинное предлагаемое решение, используя PHP и HTML Tidy.

Ответ 6

За пределами HTML Tidy/удаление пробела, как упоминалось в других ответах, не так много.

Это скорее ручная задача, вытаскивающая атрибуты стиля в CSS (надеюсь, вы не используете теги FONT и т.д.), используя, где это возможно, меньше тегов и атрибутов (например, не вставлять теги <strong> в элемент, но используя CSS, чтобы сделать весь элемент font-weight: жирным шрифтом, если, конечно, семантический смысл использовать > strong <) и т.д.

Ответ 7

Я еще не пробовал, но htmlcompressor является HTML minifier, если вы хотите попробовать попробовать.

Ответ 8

Невозможно ли использовать JavaScript в качестве декомпрессора для сжатой строки HTML, например, иметь конструкцию DEV для несжатого формата, запустить "publish" script, чтобы сжать сборку DEV для производства и прикрепить JavaScript к HTML-источник (с пробелом и таким удаленным, как раньше)?

Полоса пропускания будет уменьшена на сервере, но недостатком является то, что для декомпрессии строки в HTML существует гораздо больше клиентского напряжения. Кроме того, JavaScript должен быть включен и иметь возможность анализировать распакованную строку в HTML.

Я не говорю о своем определенном решении, но что-то, что может сработать - все зависит от того, будет ли вы смотреть на пропускную способность без использования спецификаций/системных спецификаций JavaScript для пользователей.

В противном случае найдите сценарии обфускации, простой поисковый поиск google http://tinyurl.com/phpob - в зависимости от того, что вы ищете, должен быть программный пакет доступны.

Если я ошибаюсь, кричите, и я увижу, что еще я могу сделать.

Удачи!

Ответ 9

Недавно я нашел PHP на основе script, который минимизирует ваши сайты HTML - Inline css - встроенный javascript на лету, он называется как Динамический веб-компрессор

Ответ 10

Вот minifier для HTML5, написанный на PHP.

<?PHP
$in=file_get_contents('path/to/source.html');

//Strips spaces if there are more than one.
$in=preg_replace('/\s{2,}/m',' ',$in);
//trim
$in=preg_replace('/^\s+|\s+$/m','',$in);
/*Strips spaces between tags. 
Use (&nbsp; or &shy; or better) padding or margin if necessary, otherwise the html
parser appends a one space textnode.*/  
$in=preg_replace('/ ?> < ?/','><',$in);
//Removes tag end slash.
$in=preg_replace('@ ?/>@','>',$in);
//Removes HTML comments except conditional IE comments.
$in=preg_replace('/<!--[^\[]*?-->/','',$in);
//Removes quotes where possible.
$in=preg_replace('/="([^ \'"\=><]+)"/','=$1',$in);
$in=preg_replace("/='([^ '\"\=><]+)'/",'=$1',$in);

file_put_contents('path/to/min.html',$in);
?>

После этого у вас есть одна строка, более короткий html-код.

Лучше вы делаете массив из регулярных выражений, но знаете, чтобы избежать обратных косых черт.

Ответ 11

Я использовал это регулярное выражение в течение многих лет, без каких-либо проблем: s/>\s*</></g

В Python re.sub(r'>\s*<', '><', html)

Или в PHP preg_replace('/>\s*</', '><', $html);

Это удалило все пробелы между тегами, но нигде, это довольно безопасно (но не идеально, бывают ситуации, когда это сломается, но они редки).

Моя основная причина для этого - это не скорость/размер файла, а потому, что пробел часто вводит пробел. Это было бы хорошо, но когда вы начинаете сбрасывать в DOM с помощью Javascript, пробелы часто теряются, создавая (незначительные) различия в макете.

Рассмотрим:

<div>
    <a>link1</a>
    <a>link2</a>
</div>

Там есть пробел между ссылками, но теперь я делаю что-то вроде:

$('div').append('<a>link3</a>')

И нет места... Мне нужно вручную добавить пространство в моем JS, которое довольно уродливо и подвержено ошибкам IMHO.