Я искал googled, но не могу найти никаких скриптов для миниатюр HTML.
Мне пришло в голову, что, возможно, нет ничего более миниатюр для HTML, чем удаление всех ненужных пробелов.
Я что-то упустил или потерял свой Google Fu?
Я искал googled, но не могу найти никаких скриптов для миниатюр HTML.
Мне пришло в голову, что, возможно, нет ничего более миниатюр для HTML, чем удаление всех ненужных пробелов.
Я что-то упустил или потерял свой Google Fu?
Вы должны быть осторожны при удалении файлов из HTML, поскольку это хрупкий язык. В зависимости от того, как кодируются ваши страницы, некоторые из этих пробелов могут быть более значительными; также, если у вас есть стили CSS, такие как white-space: pre
, вам может понадобиться сохранить пробелы. Кроме того, есть многочисленные ошибки браузера и т.д., И в основном каждый символ в файле HTML может быть там, чтобы удовлетворить некоторые требования или ублажать некоторые браузеры.
По моему мнению, лучше всего разработать страницы с помощью методов CSS (недавно я смог сделать важную страницу на сайте, на котором я работаю, и уменьшить его размер на 50%, просто перекодируя его с помощью CSS вместо таблиц и вложенные атрибуты style = "..." ). Затем используйте GZip, чтобы уменьшить размер ваших страниц для браузеров, которые понимают gzip. Это позволит сэкономить полосу пропускания при сохранении структуры html.
Иногда, в зависимости от закрывающих тегов и/или CSS, пробелы могут быть значительными.
Вы можете найти несколько хороших ссылок здесь для таких вещей, как HTML tidy и других.
Если вы не хотите использовать одну из этих опций, Prototype имеет способ очистить пробел в DOM. Вы можете сделать это самостоятельно и скопировать его через "Просмотр сгенерированного источника" в панели инструментов веб-разработчиков Firefox. Затем вы можете заменить оригинальный html прототипом. Извините за то, что не сделал этого явного ника.
(Я рекомендую первую ссылку)
Да, я догадываюсь, что он удаляет пробелы и комментарии. Вы не можете заменить идентификаторы более короткими, как в javascript, так как вероятность того, что классы CSS или javascript будут зависеть от этих идентификаторов.
Кроме того, вы должны быть осторожны при удалении пробелов и убедитесь, что слева всегда остался символ пробела, иначе allyourtextwilllooklikethis.
Здесь довольно длинное обсуждение этого блога Wordpress об этой теме. Вы можете найти очень длинное предлагаемое решение, используя PHP и HTML Tidy.
За пределами HTML Tidy/удаление пробела, как упоминалось в других ответах, не так много.
Это скорее ручная задача, вытаскивающая атрибуты стиля в CSS (надеюсь, вы не используете теги FONT и т.д.), используя, где это возможно, меньше тегов и атрибутов (например, не вставлять теги <strong> в элемент, но используя CSS, чтобы сделать весь элемент font-weight: жирным шрифтом, если, конечно, семантический смысл использовать > strong <) и т.д.
Я еще не пробовал, но htmlcompressor является HTML minifier, если вы хотите попробовать попробовать.
Невозможно ли использовать JavaScript в качестве декомпрессора для сжатой строки HTML, например, иметь конструкцию DEV для несжатого формата, запустить "publish" script, чтобы сжать сборку DEV для производства и прикрепить JavaScript к HTML-источник (с пробелом и таким удаленным, как раньше)?
Полоса пропускания будет уменьшена на сервере, но недостатком является то, что для декомпрессии строки в HTML существует гораздо больше клиентского напряжения. Кроме того, JavaScript должен быть включен и иметь возможность анализировать распакованную строку в HTML.
Я не говорю о своем определенном решении, но что-то, что может сработать - все зависит от того, будет ли вы смотреть на пропускную способность без использования спецификаций/системных спецификаций JavaScript для пользователей.
В противном случае найдите сценарии обфускации, простой поисковый поиск google http://tinyurl.com/phpob - в зависимости от того, что вы ищете, должен быть программный пакет доступны.
Если я ошибаюсь, кричите, и я увижу, что еще я могу сделать.
Удачи!
Недавно я нашел PHP на основе script, который минимизирует ваши сайты HTML - Inline css - встроенный javascript на лету, он называется как Динамический веб-компрессор
Вот 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 ( or ­ 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-код.
Лучше вы делаете массив из регулярных выражений, но знаете, чтобы избежать обратных косых черт.
Я использовал это регулярное выражение в течение многих лет, без каких-либо проблем: 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.