1. Важная заметка
  2. Минификация
    1. Пробелы
    2. Числа
    3. Цвета
    4. Селекторы, пользовательские свойства, имена анимаций
    5. Пустые правила
  3. Исполняемые аргументы
    1. Показать помощь
    2. Показать текущую конфигурацию
    3. Создать файл конфигурации
    4. Установить путь к файлу конфигурации
    5. Стандартный вывод
    6. Установить входной файл
    7. Установить выходной каталог
  4. Файл конфигурации
    1. Заголовок [general]
      1. Списковые настройки
      2. Строчные настройки
      3. Логические настройки
    2. Заголовок [css]
      1. Списковые настройки
      2. Логические настройки
  5. Вставной файл PHP
  6. Минификация "на лету"
ВАЖНАЯ ЗАМЕТКА:

Если некоторые функции не работают должным образом, отключите их в файле конфигурации и сообщите об ошибке.

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

HSPP должен корректно работать с кодировкой UTF-8 и кодировками, которые являются её частью. Также 8-битные кодировки, такие как ISO 8859-x и windows-125x, не должны вызывать проблем.

HSPP в настоящее время не поддерживает сопоставление источников (source mapping).

Минификация

Пробелы

Все необязательные пробелы будут удалены.

Числа

Нули в начале и в конце числа будут удалены (в конце только если в числе присутствует точка).
Примеры:
000.500.5
001.0001
Научная нотация будет использоваться там, где это возможно (только если число станет короче).
Примеры:
1000001e5
1230000123e4
1010 (не 1e1!)
100100 (не 1e2!)

Цвета

Шестнадцатеричные цвета будут сокращены, где это возможно
Примеры:
#aabbcc#abc
#aabbccdd#abcd
rgb() и rgba() функции будут переписаны как шестнадцатеричный цвет.
Примеры:
Если альфа-канал не установлен или установлен на 100%, каждая из функций
rgb(51, 102, 153)
rgb(20%, 40%, 60%)
rgb(51, 102, 153, 1)
rgb(20%, 40%, 60%, 1)
rgb(51, 102, 153, 100%)
rgb(20%, 40%, 60%, 100%)
rgb(51 102 153)
rgb(20% 40% 60%)
rgb(51 102 153 / 1)
rgb(20% 40% 60% / 1)
rgb(51 102 153 / 100%)
rgb(20% 40% 60% / 100%)
приведет к результату #369.
В случае, когда опция use_rgba_hex_notation отключена и альфа < 100%, каждая из функций
rgb(51, 102, 153, 0.5)
rgb(20%, 40%, 60%, 0.5)
rgb(51, 102, 153, 50%)
rgb(20%, 40%, 60%, 50%)
приведет к результату rgb(51,102,153,.5)
и каждая из
rgb(51 102 153 / 0.5)
rgb(20% 40% 60% / 0.5)
rgb(51 102 153 / 50%)
rgb(20% 40% 60% / 50%)
к rgb(51 102 153/.5).
В случае, когда опция use_rgba_hex_notation включена и альфа < 100%, каждая из функций
rgb(51, 102, 153, 0.5)
rgb(20%, 40%, 60%, 0.5)
rgb(51, 102, 153, 50%)
rgb(20%, 40%, 60%, 50%)
rgb(51 102 153 / 0.5)
rgb(20% 40% 60% / 0.5)
rgb(51 102 153 / 50%)
rgb(20% 40% 60% / 50%)
приведет к результату #3366997f.
Поведение при минификации функций rgb() и rgba() одинаковое.

Селекторы, пользовательские свойства, имена анимаций

Селекторы идентификаторов и наименований классов, пользовательские свойства и названия анимации будут минимизированы, если соответствующие параметры включены (minify_ids, minify_class_names, minify_custom_properties, minify_animation_names).
Значения селекторов атрибутов будут (где возможно) заменены на значения без кавычек.
Селекторы ключевых кадров будут минимизированы.
Примеры:
#some-id {...}#a{...}
.some-class {...}.a{...}
--some-color: #abc--a:#abc
color: var(--some-color)color:var(--a)
@keyframes fade-in {...}@keyframes a{...}
animation-name: fade-inanimation-name:a
input[type="text"] {...}input[type=text]{...}
from {...}0%{...}
100% {...}to{...}
Имена, созданные генератором имён, состоят из букв и цифр, где первый символ всегда является буквой.

Пустые правила

Если remove_empty_rules включено, пустые правила будут удалены.
Пример пустого правила:
.some-class > img { }

Исполняемые аргументы

Файл конфигурации

Первоначально нет файла конфигурации предоставляемого с исполняемым файлом. Если в каталоге, где расположен исполняемый файл, нет файла конфигурации, HSPP будет использовать конфигурацию по умолчанию.
Чтобы показать текущую конфигурацию, используйте аргумент --config-info.
Чтобы создать файл конфигурации с настройками по умолчанию, передайте исполняемому файлу аргумент --create-config-file. Файл конфигурации будет создан в каталоге, в котором находится исполняемый файл HSPP.
Также используйте эту опцию для сброса файла конфигурации на значения по умолчанию, если он уже существует.
Если файл конфигурации уже существует, HSPP попросит вас подтвердить перезапись существующего файла.
Файл конфигурации подразделяется на разделы, которые содержат настраиваемые параметры. Каждый раздел начинается с заголовка. Параметры, следующие за каждым заголовком, принадлежат к этому заголовку. Например, все опции, которые следуют за заголовком, [general] принадлежат этому заголовку, пока не будет достигнут следующий заголовок или конец файла.

Комментарии

# начинает комментарий, который заканчивается в конце строки.

Комментарии пропускаются при чтении файла конфигурации (т.е. не оцениваются как данные конфигурации). Комментарии могут быть использованы для описания конфигурации. Но они также полезны, если вы хотите временно отключить или переключиться на другие данные для параметра, но сохранить данные для дальнейшего использования.
Символ комментария может использоваться в любой позиции в файле конфигурации. Следовательно, любые пути к файлам/каталогам не могут содержать этот символ, поскольку строка пути не будет прочитана полностью. Это поведение может измениться в будущих версиях HSPP с использованием строк в кавычках.

Заголовок [general]

Списковые настройки

Допустимые значения: расширения файлов разделенные пробелом (включая начальную точку)

Строчные настройки

Эти пути будут использоваться, если пути не передаются через командную строку. Соответствующие параметры командной строки -i и -o, в случае их использования, будут переопределять параметры путей конфигурационного файла.
Последние четыре параметра имеют значение только в том случае, если create_php_include_file включено.

Логические настройки

Допустимые значения: on / off

Заголовок [css]

Списковые настройки

Допустимые значения: термины, разделенные пробелом

Логические настройки

Допустимые значения: on / off

Файл включения для PHP

Если настройка create_php_include_file и по крайней мере одна из minify_ids, minify_class_names, minify_custom_properties, minify_animation_names включена, будет создан файл включения для PHP в выходном каталоге.
Пример содержимого такого файла:
${php_class_array_name} = array( '[initial-name]' => '[replacement-name]', 'some-class-1' => 'a', 'some-class-2' => 'b', 'some-class-3' => 'c', ... );
Как включать файл включения для PHP:
include 'hspp.php';
Использование именных массивов внутри включаещего файла:
<body class="<?=${php_class_array_name}['initial-name'];?>">
while (...) { echo '<div class="'.${php_class_array_name}['initial-name'].'">...</div>'; }

Минификация «на лету»

Если у вас есть root-доступ к вашему серверу, вы можете минимизировать таблицы стилей с помощью HSPP «на лету».
В PHP это может быть достигнуто с помощью оператора исполнения (backticks) и функций exec() и shell_exec().
Пример использования оператора исполнения в стиле Unix:
echo `./hspp -i/path/to/some/file.css --stdo`;
Последнее обновление: 04.03.2023
Политика конфиденциальности
© 2019-2020
Waldemar Zimpel