«Удаляет кавычки, где это возможно». , удаляет также JavaScript-проверки IF. Пример: "if (переменная typeof! ==" object ") {"

углил, но не могу найти ни одного HTML-сценария минификации.

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

Я что-то упустил или мой Google Fu был потерян?

 bchhun21 янв. 2009 г., 19:33
Не могли бы вы просто использовать gzip на вашем сервере?
 Lance Fisher21 янв. 2009 г., 20:05
Я хотел бы видеть сравнение сжатого HTML с уменьшенным, а затем сжатым HTML. Мне кажется, что сжатый HTML-код меньше.
 Mr. Shiny and New 安宇13 нояб. 2009 г., 21:06
@Lance Fisher: в моих тестах уменьшенный JS / CSS был меньше после Gzip, чем не уменьшенный. Однако есть потенциальные подводные камни, если вы минимизируете HTML; Я бы сказал, что это не стоит делать для существующих страниц.
 jar17 окт. 2016 г., 03:53
html-minifier хорош, я все время использую его для развертывания, также обрабатывает CSS и Javascript. Этот пост объясняет его использование довольно хорошоalbertech.blogspot.com/2016/10/an-html-minifier-example.html

Ответы на вопрос(11)

htmlcompressor это мини-HTML, если вы хотите попробовать.

Вот минификатор для 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-код.

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

 Roman Losev25 мар. 2015 г., 10:10
«Удаляет кавычки, где это возможно». , удаляет также JavaScript-проверки IF. Пример: "if (переменная typeof! ==" object ") {"

который минимизирует ваши сайты. HTML - встроенный CSS - встроенный JavaScript на лету, он называетсяДинамический веб-сайт компрессора

как и другие упомянутые ответы, не так много.

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

Решение Вопроса

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

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

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

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

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

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

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

Удачи!

Вот на такие вещи, как HTML-приборка и другие.

Если вы не хотите использовать один из этих вариантов, Prototype имеет средства дляочистить пустое пространство в ДОМ. Вы можете сделать это самостоятельно и скопировать его через «Просмотр сгенерированного источника» на панели инструментов веб-разработчика расширения Firefox. Затем вы можете заменить оригинальный HTML с исправлением прототипа. Извините, что не сделал этот очевидный ник.

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

 nickf22 янв. 2009 г., 01:32
Prototype - это сценарий на стороне клиента, поэтому HTML-код уже будет отправлен в унифицированном виде, что противоречит цели ...

без каких-либо проблем:s/>\s*</></g

В питонеre.sub(r'>\s*<', '><', html)

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

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

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

Рассмотреть возможность:

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

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

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

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

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

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

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

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

 mercator22 янв. 2009 г., 01:55
И даже комментарии небезопасны для удаления. Вы бы тоже избавились от условных комментариев IE. И иногда я использовал комментарии, чтобы скрыть пробелы, которые вызывали ошибки в IE.
 Tamas Czinege22 янв. 2009 г., 07:23
Меркатор: Очень верно

Ваш ответ на вопрос