-
1. Что такое шаблон?
про Аккуратные таблицы стилей «Easy Neatly»
Шаблон или шаблоны это обычный файл, формата ini.
В нем описываются микро шаблоны и настройки трансформации.
В одном ini файле может храниться несколько шаблонов.
Каждый шаблон трансформации выделяется в отдельную секцию
с именем [Transform<#ID>], где <#ID> уникальный номер.
Количество шаблонов (секций) в одном файле не ограничено.
2. Где хранятся шаблоны?
про Аккуратные таблицы стилей «Easy Neatly»
Файлы Шаблонов т.е. файлы, формата ini хранятся в подкаталоге Patterns, В каталоге установки программы.
Здесь хранится базовый файл шаблонов default.ini.
Преобразования -–easy и --neatly загружаются из файла default.ini и используют секции 2 и 1
соответственно.
Вы также можете создавать и складывать свои ini файлы шаблонов в этот каталог, и вызывать EaseNeatly так,
чтобы использовать их.
Количество ini файлов неограниченно,
и они могут иметь любые имена.
Если вы создадите свой файл с шаблонами трансформаций,
например MyTransform.ini, с секцией [Transform1]
то вы сможете его использовать командой:
#easyneatly.exe --file=style.css –-pattern=MyTransform –-indexpattern=1
3. Что такое МикроШаблоны?
про Аккуратные таблицы стилей «Easy Neatly»
Микро шаблоны - это строки, которые будут вставляться в определенные места CSS кода.
Вы можете использовать специальные & последовательности символов для замены в этих строках. МикроШаблоны используются в параметрах шаблонов - см ниже.
МикроШаблон |
Предназначение |
&NONE; |
Пустое место или ничего |
&SPACE; |
Один пробел |
&TAB; |
[09] HORISONTAL TABULATION (TAB) Символ табуляции |
&CR; |
[0D] – CARRIAGE RETURN (CR) |
&LF; |
[0A] – LINE FEED (LF) (конец строки Unix) |
&CRLF; |
[0D+0A] (конец строки Windows) |
4. Как редактировать шаблон?
про Аккуратные таблицы стилей «Easy Neatly»
[Transform1]
// - Этот параметр ни на что не влияет - //
// - это просто название Шаблона - //
Transform_Name = Neatly
//////////////////////////////////////
// Настройки обработки комментариев //
//////////////////////////////////////
// - Этот параметр указывает - //
// - нужно ли вставлять спец-комментарии - //
// - разделяющие CSS файл на семантические секции - //
// - принимает значения yes | no - //
make_sections_comments = yes
// - Следующие параметры - //
// - это сами комментарии - //
// - разделяющие CSS файл на семантические секции - //
// - строки с применением микрошаблонов - //
Section_Rules = /* -===- &CRLF;RULES&CRLF; -===- */&CRLF;
Section_Main = /* -===- &CRLF;MAIN&CRLF; -===- */&CRLF;
Section_Hacks = /* -===- &CRLF;HACKS&CRLF; -===- */&CRLF;
Section_Links = /* -===- &CRLF;LINKS&CRLF; -===- */&CRLF;
Section_Layout = /* -===- &CRLF;LAYOUT&CRLF; -===- */&CRLF;
Section_Grids = /* -===- &CRLF;GRIDS&CRLF; -===- */&CRLF;
Section_Common = /* -===- &CRLF;COMMON&CRLF; -===- */&CRLF;
Section_Colors = /* -===- &CRLF;COLORS&CRLF; -===- */&CRLF;
// - Следующие параметры - //
// - описывают как оформлять прочие комментарии - //
// - Открытие комментария - //
sections_comment_open = /*&CRLF;
// - Набор символов вставляемых перед текстом комментария - //
sections_comment_before_text = &CRLF;
// - Набор символов вставляемых после текста комментария - //
sections_comment_after_text = &CRLF;
// - Закрытие комментария - //
sections_comment_close = */&CRLF;
// - Сохранить ли комментарии относящиеся к Правилам (@rules) - //
// - принимает значения yes | no - //
save_rule_comments = yes
// - Следующие параметры - //
// - описывают как оформлять комментарии относящиеся к Правилам - //
// - Аналогично прочим комментариям - //
rule_comment_open = /*&CRLF;
rule_comment_before_text = &CRLF;
rule_comment_after_text = &CRLF;
rule_comment_close = */&CRLF;
// - Сохранить ли комментарии относящиеся к Селекторам (Selectors) - //
// - принимает значения yes | no - //
save_selector_comments = yes
// - Следующие параметры - //
// - описывают как оформлять комментарии относящиеся к Селекторам - //
// - Аналогично прочим комментариям - //
selector_comment_open = /*&CRLF;
selector_comment_before_text = &CRLF;
selector_comment_after_text = &CRLF;
selector_comment_close = */&CRLF;
// - Сохранить ли комментарии относящиеся к Свойствам Правил (@rules) - //
// - принимает значения yes | no - //
save_rule_property_comments = yes
// - Следующие параметры - //
// - описывают как оформлять комментарии относящиеся к Свойствам Правил - //
// - Аналогично прочим комментариям - //
rule_property_comment_open = /*
rule_property_comment_before_text = &SPACE;
rule_property_comment_after_text = &SPACE;
rule_property_comment_close = */
// - Сохранить ли комментарии относящиеся к Свойствам Селекторов (Selectors) - //
// - принимает значения yes | no - //
save_selector_property_comments = yes
// - Следующие параметры - //
// - описывают как оформлять комментарии относящиеся к Свойствам Селекторов - //
// - Аналогично прочим комментариям - //
selector_property_comment_open = /*
selector_property_comment_before_text = &SPACE;
selector_property_comment_after_text = &SPACE;
selector_property_comment_close = */
/////////////////////////////////////////////////////
// Настройки обработки правил классов и их свойств //
/////////////////////////////////////////////////////
// - Символы после имени правила - //
rule_after_name = &SPACE;
// - Символы после открывающей скобки правила - //
// - @rulename {<HERE> - //
rule_after_open = &CRLF;
// - Символы после закрывающей скобки правила - //
// - @rulename {...}<HERE> - //
rule_after_close = &CRLF;&CRLF;
// - Символы перед именем свойства правила - //
// - @rulename {... <HERE>property:value ...} - //
rule_property_name_before = &TAB;
// - Символы после имени свойства правила - //
// - @rulename {... property<HERE>:value ...} - //
rule_property_name_after = &NONE;
// - Удалить ли Символы после открывающей скобки - //
// - и перед первым свойством правила вот так - //
// - @rulename {<&NONE;>property:value ...} - //
rule_property_value_first_stick = no
// - Закрывать ли последнее свойство правила - //
// - перед закрывающей скобкой точкой с запятой ; - //
// - так - no //
// - @rulename {... property:value<&NONE;>} - //
// - или так - yes //
// - @rulename {... property:value<;>} - //
rule_property_value_last_close = yes
// - Удалить лишние пробелы в JS инъекциях CSS - //
rule_property_value_JS_remove_spaces = yes
// - Символы перед значением свойства правила - //
// - @rulename {... property:<HERE>value ...} - //
rule_property_value_before = &SPACE;
// - Символы после значения свойства правила - //
// - @rulename {... property:value<HERE> ...} - //
rule_property_value_after = &NONE;
// - Символы после закрытия значения свойства правила - //
// - @rulename {... property:value;<HERE> ... other-property:other-value ...} - //
rule_property_close = &CRLF;
// - Символы табуляции для отступа перед селекторами - //
// - если в коде только одно правило Media_Screen - //
selector_in_media_rule_alone_Before = &NONE;
// - Символы табуляции для отступа перед селекторами - //
// - если в коде много правил
// - screen - //
// - print - //
// - e.t.c. - //
selector_in_media_rule_notalone_Before = &TAB;
// - Символы разделяющие имена селекторов имеющих общее тело - //
// - BODY<HERE>TD<HERE>H1 {...} - //
selector_names_divider = ,&SPACE;&CRLF;
// - Символы после имени селекторов - //
// - BODY, TD, H1<HERE>{...} - //
selector_after_name = &SPACE;
// - Символы после открывающей скобки селекторов - //
// - BODY, TD, H1 {<HERE>...} - //
selector_after_open = &CRLF;
// - Символы после закрывающей скобки селекторов - //
// - BODY, TD, H1 {...}<HERE> - //
selector_after_close = &CRLF;&CRLF;
// - Символы перед именем свойства селектора - //
// - BODY, TD, H1 {... <HERE>property:value ...} - //
selector_property_name_before = &TAB;
// - Символы после именем свойства селектора - //
// - BODY, TD, H1 {... property<HERE>:value ...} - //
selector_property_name_after = &NONE;
// - Удалить ли Символы после открывающей скобки - //
// - и перед первым свойством селектора вот так - //
// - BODY, TD, H1 {<&NONE;>property:value ...} - //
selector_property_value_first_stick = no
// - Закрывать ли последнее свойство селектора - //
// - перед закрывающей скобкой точкой с запятой ; - //
// - так - no //
// - BODY, TD, H1 {... property:value<&NONE;>} - //
// - или так - yes //
// - BODY, TD, H1 {... property:value<;>} - //
selector_property_value_last_close = yes
// - Удалить лишние пробелы в JS инъекциях CSS - //
selector_property_value_JS_remove_spaces = yes
// - Символы перед значением свойства селектора - //
// - @rulename {... property:<HERE>value ...} - //
selector_property_value_before = &SPACE;
// - Символы после значения свойства селектора - //
// - @rulename {... property:value<HERE> ...} - //
selector_property_value_after = &NONE;
// - Символы после закрытия значения свойства селектора - //
// - @rulename {... property:value;<HERE> ... other-
selector_property_close = &CRLF;
///////////////////////////
// Настройки высоты букв //
///////////////////////////
// - Правилам изменения регистра подчиняются такие элементы как, - //
// - ID, классы, теги и цвета. Неуправляемыми на данный момент - //
// - являются комментарии, и имена правил - //
// – они остаются в собственном регистре без изменений, - //
// - имена свойств и значения свойств, кроме цветов, - //
// - переводятся в нижний регистр и тоже не управляются из шаблона. - //
// - SELF | LOWER | UPPER - //
// - SELF : Оставить высоту букв без изменений - //
// - LOWER : перевести в нижний регистр - //
// - UPPER : перевести в верхний регистр - //
// - Высота Букв Имени селектора для идентификатора - //
// - #test { ... } - //
Letter_Case_ID = SELF
// - Высота Букв Имени селектора для класса - //
// - .test { ... } - //
Letter_Case_Class = SELF
// - Высота Букв Имени селектора для тэга - //
// - B, I, U { ... } - //
Letter_Case_Tag = UPPER
// - Высота Букв Цветов - //
// - color: #ABCDEF; - //
Letter_Case_Colors = UPPER
// - Допустимый Процент Совпадения Цвета - //
// - от исходного при квантовании - //
// - Если процент совпадения ниже этого параметра - //
// - цвет не преобразовывается - //
Color_Loss_Precision_Transform_Quality = 100
5. Как определяется качество квантования?
про Аккуратные таблицы стилей «Easy Neatly»
Теперь поговорим от последнем параметре шаблона
// - Допустимый Процент Совпадения Цвета - //
Color_Loss_Precision_Transform_Quality = 100
Здесь подразумевается некоторый параметр отклонения текущего цвета от квантованного
при котором квантованный цвет весьма близок к оригиналу и квантование будет произведено,
т.е. цвет формата #RRGGBB будет преобразован в цвет формата #RGB.
Если разность текущего и квантованного цвета окажется больше заданного порога,
цвет останется не квантованным, т.е. длинной 7 символов формата #RRGGBB.
Немного слов о том, как работает данный механизм.
Возьмем для примера два идеальных – квантованных цвета по одной оси,
например красной #AA и #BB. Если разбить отрезок между этими цветами,
то получится 18 точек, включая эти цвета.
#AA, #AB, #AC, #AD, #AE, #AF, #B0, #B1, #B2,
#B3, #B4, #B5, #B6, #B7, #B8, #B9, #BA, #BB
От цвета #BB вверх по шкале идет цвет #CC. И между #BB и #СС также 18 точек включая их самих.
При интерполяции – квантовании цвета неидеальный цвет трансформируется в тот, идеальный от которого,
он отстоит не белее чем на 8 точек по цветовой оси. Т.е. например цвет #AF,
будет трансформирован в цвет #AA. А #B3 в цвет #BB. Назовем эти 8 точек максимальным радиусом захвата
идеального цвета.
А теперь применительно параметра шаблона задающего качество квантования.
Так вот этот параметр задает управляемый радиус захвата цвета в процентах
от максимального, например 75%. Если цвет выйдет за пределы этого радиуса захвата,
он не будет квантоваться, поскольку мы считаем, что такой квантованный цвет слишком
не похож на оригинал и мы оставляем его, как есть, т.е. самим собой.
В файле шаблонов символ % для этого параметра указывать не нужно.
|