Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обработка css

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мы тут в теме [?] увлеклись парсером для css, уже третья страница пошла, так что пусть это будет отдельная тема.
 
Итак, вот мой css_tidy (сжатие/разжатие/коррекция) upload.ee, яндекс
 
   
 
Также при обсуждении я упомянул, что есть парсер jsBeautifier.js для AkelPad.
 
И доработанный питоновский код от TheBarmaley.
 
Добавлено:
TheBarmaley

Цитата:
допилить обработку (при разжатии) вложенных условных правил

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

Цитата:
должна быть определённая "дуракоустойчивость"

Это также закладывается как и с регвырами, например если я "открыл" кавычку и не нахожу закрывающую до конца строки, то сбрасываю флаг поиска закрывающей кавычки на конце строки. Разбор данной строки не происходит, так как непонятно где закончились кавычки и начался код. К тому же я в этой ситуации добавляю +1 к переменной Error, чтобы вывести сообщение о незакрытой кавычке. Можно было бы это сделать и для незакрытых скобок, так как я обрабатывал пример как раз-таки с отсутствующей скобкой и у меня просто последняя строка оказалась с отступом, что невозможно в нормальных условиях.
 
Кстати, неизвестно как ваш скрипт поведёт себя если я вставлю в текстовую строку операторы, например "путь_к_({;)}@'[:]/\::_файлу", в Linux многие операторы могут быть частью имени, в отличии от Windows, а сервера часто на Linux, хотя вряд ли такие пути будут использоваться. Возводить регвыр в культ устойчивости сомнительное утверждение.
 

Цитата:
спасибо, но как-нить в другой раз.. я про "скомпилировать". ещё и с этим разбираться - не-не, я против..))
мне б свой скриптик допилить бы и закрыть вопрос, и так уже неделю почти колупаюсь..))  

три раза ха, вы можете в том же PureBasic [?] использовать регвыр, тупо перенеся регвыры в программный код, питон это тоже код питона. В данном случае даже не придётся ставить плаг питона в Notepad++.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 18:01 04-09-2024 | Исправлено: AZJIO, 18:15 03-10-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
первым буду, за мной не занимать!    


AZJIO [?]
Цитата:
регвырами это невозможно, так как число отступов это генерируемый элемент, но питон как программный язык должен уметь сделать посимвольный разбор. При открытии скобки добавляем переменную отступа, при закрытии вычитаем. В начало каждой строки вставляем вычисленный отступ.
не буду спорить. лень.
а насчёт отступа у меня уже есть идейки. именно с применением "выров"..
вопчем, пока этот вопрос открыт, я не хочу до поры агакать/некать..

Цитата:
неизвестно как ваш скрипт поведёт себя если я вставлю в текстовую строку операторы, например "путь_к_({;)}@'[:]/\::_файлу", в Linux многие операторы могут быть частью имени, в отличии от Windows, а сервера часто на Linux, хотя вряд ли такие пути будут использоваться
ключевое выделил. мы ведь не голую "теорию" обсуждали, но вполне конкретную реализацию вполне конкретной задачи.
и универсального решения тоже быть не может, по определению. бо всегда найдётся тот самый "хитрый болт с левой резьбой"..)
..кстати, ты только что дал пример вполне конкретного регэкспа, может, когда и сгодится..  

Цитата:
Возводить регвыр в культ устойчивости сомнительное утверждение
так никто и не возводит. речь о подходящем (под задачу) методе, молиться на регэкспы смысла нет. равно как и на "линейность"..))

Цитата:
три раза ха, вы можете в том же PureBasic использовать регвыр, тупо перенеся регвыры в программный код, питон это тоже код питона.
да хоть четыре..) в смысле - ха.. я ж говорю - я НЕ работал с васиком, НЕ имею представления, как и что там делать.
соответссно - НЕ имею желание изучать некоего "сфероконя" только потому, что (может быть!) этот конь мне пригодится, для чего - хз..)

Цитата:
В данном случае даже не придётся ставить плаг питона в Notepad++
он уже стоит. и работает. и я уже потратил время на его изучение и понял, что мне это подходит под мои задачи.
поэтому что-то ещё "тестить" я не вижу смысла, ну а коль сменится задача - вот тогда и буду менять и "инструмент", делов-то...)
 
Добавлено:

Цитата:
При открытии скобки добавляем переменную отступа, при закрытии вычитаем
..угу.. особенно - если учесть, что оная скобка запросто может быть и внутри камента..)
ненуачо, рубим же линейно, фигли нам анализ контекста...)) который как раз регэкспами и делается..)


----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 20:07 04-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley

Цитата:
запросто может быть и внутри камента

да, но если делать посимвольный разбор, то когда мы идём от начала файла по символам, то при попадании на комент, тупо запускаем цикл поиска конца комента. Как и любой анализатор будь то Scintilla или браузер, он также столкнувшись с коментом ищет его окончания и если его не будет, то весь код уйдёт в комент, так что дуракоустойчивость не сработает. Нашли завершение комента, выпрыгиваем из цикла поиска и продолжаем внешний цикл перебора символов. В данном случае мы пропускаем комент, неважно что в нём было. Аналогично и с кавычками. Но опять же можно попробовать как поведёт себя анализатор Scintilla/браузер на сбойном коде, возможно перенос строки не будет являться сбросом кавычек, если так, то нам опять нет смысла применять дуракоусточивость, если сам браузер это не применяет. В HTML тоже незакрытый тег может до конца файла применить его свойство, например если забыл закрыть жирный текст, то весь текст от открытия тега до конца документа жирный и сразу понятно где забыл закрыть (с css не проверял).
 
В итоге я лишь предложил, если проще на регвыр, то оставить его, но часть вещей можно сделать на посимвольном разборе. То есть прошёлся по тексту, получил итоговый, а потом обработал регвыром, или наоборот, одно другому не мешает.
 
Погугли "Лексический анализатор синтаксиса на python". По факту придётся вникать в сам язык. Я на нём мало практиковался и анализатор точно не делал, поэтому подсказать не могу, а по PureBasic могу всё подсказать, хоть регвыр дать в виде готового кода, хоть посимвольный анализатор.
 
Что-то мне по запросу попадается токенезаторы ))), суть в следующем: код разбивается по элементам кода в массив, то есть класс как слово, комментарии как блок, строки в кавычках, строки в апострофах, операторы {}()[];:  и т.д. потом пробегаясь по элементам и составляя их в последовательность мы можем вставить перед ним или после него пробелы, табуляции, переносы строк. Вот пример регвыр токенизатора, который я оптимизировал для PureBasic. Суть в том, что когда мы соединим элементы массива мы получим исходный код в оригинале. А в массиве он разделён на логические участки кода.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 20:32 04-09-2024 | Исправлено: AZJIO, 21:01 04-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO [?]
Цитата:
....где забыл закрыть (с css не проверял).  
та же фигня. с незакрытыми (или косячными "завершениями" иногда сложно бороться - код (вроде как)) работает нормально, но появляются непонятки в неожиданных местах - особенно, если накосячено с вложенными условиями..
 
и здесь уже нужен анализатор посерьёзнее* чем для задачки сжать/разжать, самое простое - проверить код на сайтах-валидаторах.
во всяком случае, после прогона через валидатор в3с ошибки (практически) всегда становятся "видимыми".
 
* поэтому я даже не хочу лезть в эти глубины и "грызть гранит" теории, не нужно это в "локальном исполнении", проще онлайн..)
 
по остальному - без комментариев. не хочу вдаваться в детали, под начальную задачку оно никаким боком не нужно.
что до обработки "поблочно" - ну так "регвыр" фактически те же яйца - маска ведь проверяется построчно (или по границам "от" "до")..

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 03:10 05-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добавил компиляцию в Linux

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 17:24 06-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обновил свой парсер, ссылка в шапке.
Объединил сжатие и разжатие/коррекция в один css_tidy.exe.
ком-строка "флаг путь_исходный путь_назначения". По умолчанию коррекция, но если флаг 1, то сжатие. К сжатию может быть добавлен флаг 128, чтобы не удалять комментарии. Подробнее в Readme.txt.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 07:27 20-09-2024 | Исправлено: AZJIO, 07:28 20-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO [?]
Цитата:
Обновил
попробовал х86: чего-то он не алё.. как ни тыкал, как не менял флаги - не хочет выходной файл создавать..
т.е. независимо от комстроки/флагов - диалоги открытия/сохранения есть, а вот самого результата (файла) нифига нету.
чяднт?

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 06:19 22-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Исправил, перекачай.
У меня была проверка существования файла назначения, и я преобразовывал в существующий файл и проблем не было, а в несуществующий завершался отменой, так как файл не существует. Теперь нормально. Но  всё же сделал проверку папки, куда помещается результат, если папки нет, то завершение проги,  но сам код пытается её создать.
 
Для AkelPad вот команды для меню:

Код:
"css_tidy_gui" Exec(`"%a\AkelFiles\Tools\css_tidy.exe" 512 "%f" "%f"`) Icon("%a\AkelFiles\Tools\css_tidy.exe")
"css_tidy_сжатие" Exec(`"%a\AkelFiles\Tools\css_tidy.exe" 1 "%f" "%f"`) Icon("%a\AkelFiles\Tools\css_tidy.exe")
"css_tidy_коррекция" Exec(`"%a\AkelFiles\Tools\css_tidy.exe" 0 "%f" "%f"`) Icon("%a\AkelFiles\Tools\css_tidy.exe")

но это команды для эксперимента, так как они преобразуют в тот же файл.
 
Перезалил, добавлен флаг 512 - открыть GUI для изменения настроек преобразования.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 09:34 22-09-2024 | Исправлено: AZJIO, 10:43 22-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO [?]
Цитата:
Исправил
угу. теперь норм. по шустрости - тоже норм, "на глаз" ему без разницы размер исходника..
особо не гонял, но проверил на проблемки с поеданием пробелов - вроде норм, энд/ор промеж )( на месте, +/- в калк() тоже..)
 
ну и по сжатию. сравнил пожатое тиди и текущей версией питоновского форка - форк даже с каментами сжал чуть лучше.
различия на большом объёме "кирпича" особо не стал искать, но на 412к исходного получил разницу в +300 байт не в пользу тиди..
т.е. после питона = 395964, после тиди = 396211. причём, это с учётом "лишних" 54 байтов каментов в обработанном скриптом.
хотя, повторюсь, по шустрости ехешник вне конкуренции..))
 
причина разницы - да хз, непожатый уже был обработан скриптом, т.ч. всякие конверсии нулей и цветов тут роли уже не сыграли.
а вот неудалённые пробелы перед ! - вполне (их там набралось почти на всю разницу (аж 288 байт)). остальное не стал искать, нудно..
понятно, это копейки, в общем-то, но я бы в алгоритм тиди снос пробелов перед !импортантами всё же добавил бы..

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 21:49 22-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Обновление
Адаптация для Linux
Исправление для "}", устранён лишний перенос при повторном использовании коррекции.
Добавлено манипуляция с предшествующим пробелом для !important
Добавлена иконка
Добавлены флаги в общий флаг, чтобы использовать их в ком-строке.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 10:23 23-09-2024 | Исправлено: AZJIO, 10:27 23-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO [?]
Цитата:
Обновление
проверил на том же "большом" цсс - норм, теперь тиди (без учёта каментов) практически сравнялся со скриптом..))
разница +13 байт в тиди осталась (395923 > 395964-54), но это уже на уровне "статпогрешности", не стал искать причину..
вопчем, теперь тиди вне конкуренции по компрессии (за счёт скорости))..  

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 11:46 23-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Обратил внимание что после строки начинающееся с тире, например -webkit следующая строка идёт с добавленным отступом (в оригинале с сайта). Сравнил оригинал 150кб с обработанным. Сделал доводку методом замены, например в оригинале последний параметр с ";" из-за чего трудно отслеживать, а когда подгоняешь, то мусор убирается и выявляются больше полезных отличий. Замена регвыром ;(\n\t*\}) на \1, чтобы удалить ";". Также пробельные отступы заменил на табуляцию.
 
Ты тоже можешь сравнить заменив "{" и "}" на сами себя с переносом строки, тогда это не будет одной строкой и WinMerge покажет места где можно сделать доводку.
Мне сейчас единственное что можно улучшить - сделать для скобок правило: если пробел, то он может быть полезным, а если перенос, то удалить его. И ещё правило просмотра вперёд, если после скобки и пробела идёт ";", то пробел можно удалить, а если иное, то это может быть полезный пробел.
 
rgb(0,0,0) - минимальная длина 10 символов
#000000 или #000 - длина 4-7 символов
так что если додавливать байты, то можно и тут на каждом цвете по 3-6 символов выйграть.

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 12:49 23-09-2024 | Исправлено: AZJIO, 13:21 23-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO [?]
Цитата:
после строки начинающееся с тире, например -webkit следующая строка идёт с добавленным отступом
смотря где оно - если внутри правила - отсуп = хрень, это обычная декларация (напр., трансформ = -моз-/-вебкит-трансформ).
а если в селекторе - то должно стоять ещё и двоеточие перед -моз/-вебкит - это нестандартные псевдо-элементы.
во втором случае должны быть правила внутри {} после нестандарта и вот только тогда - да, должен быть отступ..

Цитата:
можешь сравнить заменив  
угу, тоже была такая мысля, но пока не проверял плотно разницу между скриптом и тиди..
 
про "додавливание" - вопрос интересный, где-то (если дезигнер любитель ргб)) будет выигрыш, но в основном - вопрос спорный.
хз как/кому, но я, к примеру, изначально привык в хекс-колорах делать, так проще.. и, опять же, стараюсь в 3 буквы уложиться..)
ну и таки да - кроме* голого ргб есть ведь ещё и ргба и прочие смук/хлс, их тоже можно в восьми/четырёхзнак переводить..  
 
* ...а шоб уж совсем заморочиться - а ещё есть "натурные" названия цветов (блэк/ред и т.д.) - но тут без таблицы перегона уже никак..))

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 19:19 23-09-2024
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Добавлен флаг 16 - Преобразовать rgb(x,x,x) в #hex
 

Цитата:
стараюсь в 3 буквы уложиться

поддержано, то есть rgb(51, 51, 51) преобразуется в #333 и т.д.
 
смук и прочее редко встречаю, rgba содержит дробную часть, причём высокой точности, и скорее всего преобразовать в #rrggbbaa не получится. Нашёл онлайн конверторы, которые возвращают #rrggbbaa, но будет ли это работать? Последний параметр от 0.00 до 0.999 в каком то смысле это процент, который возвращает диапазон 00-FF

Всего записей: 4616 | Зарегистр. 03-05-2006 | Отправлено: 03:28 24-09-2024 | Исправлено: AZJIO, 05:10 24-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
..на всякий случай [?] - к вопросу о "ловле копеек" и "додавливании байтов"..  
 
вопчем, на том же самом 400к-цсс [?] после прохода текущей версией стало меньше ещё на 186 байт: 395778 вместо 395964.. [?]
естессно, это с теми же самыми "лишними" 54 байтами каментов..)
 
больше, видимо, из этого файлика уже ничего не отжать (кроме каментов, понятно), только ручной зачисткой "говнокода"..)))

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 23:35 30-09-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
..ещё чуток подрихтовал скрипт-минимаксер цсс.. [?]  
 
запустил, было, в "прод", но столкнулся со шнягой - парочка литералов попортилась - у меня это были "контент:....." с запятыми..
пришлось допилить обработчик, чтобы совсем исключить литералы из процесса (потом они возвращаются "как-есть" на место).
 
заодно теперь гарантируется сохранность "хитросделанных" путей в литеральных урлах:
Цитата:
например [?] "путь_к_({;)}@'[:]/\::_файлу",
пример подобной "колбасы" (ещё и с пробелами)) добавил в тестовый цсс (в комплекте со скриптом), всё ровно вроде..))

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 09:01 04-10-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
продублирую здесь - ещё немножко подправил код скрипта минимаксера.. [?]
 
теперь и в импорт-урлах правильно обрабатываются ссылки с ";", недосмотрел вчера..)
осталась одна проблемка (не баг, но "фича")) - не получается одинаково "феншуйный" вывод при разных настройках..
впрочем, оно и по логике так и должно быть, универсального набора параметров на все случаи всё равно нет и не будет..
 
в частности - нереально предусмотреть ВСЕ моменты при обработке комментариев, там ведь всё что угодно может быть..)
ну да, можно усложнить код и сохранять текстовые каменты "эз-из", но как по мне - не айс это, гемор есть, а смысл околонулевой..

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 12:57 05-10-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
продублирую - ещё подшаманил код минимаксера.. [?]
 
вроде как совсем решил "болячку" с кривыми "ёлочками" в многоэтажных правилах, теперь ровно независимо от "этажности"..))
 
попутно по теме - в качестве ещё одной точки "боротьбы за копейки" сделал опции удаления "screen" в @media + конверт "or" в ","..
ну и под новые цсс - мах/мин-шир/выс в ш/в <=> + диапазоном (если возможно). тоже опция - не работает на старых браузерах..
 
Добавлено:
..насчёт:
Цитата:
мах/мин-шир/выс в ш/в <=> + диапазоном (если возможно).
например:
Цитата:
@media only screen and (max-width: 360px) and (orientation: portrait) or (max-height: 360px) and (orientation: landscape)
станет в компрессоре:
@media(width<=360px)and (orientation:portrait),(height<=360px)and (orientation:landscape)
или вот такое:
Цитата:
@media only screen and (min-width: 320px) and (max-width: 760px) and (orientation: landscape)
станет существенно короче:
@media(320px<=width<=760px)and (orientation:landscape)
..правда, в совсем древних движках рэндж не поддерживается, но это уже на совести стилеписца будет ..)))

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 13:18 31-10-2024
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
 
CSSMinMaxR24 : Компрессор/форматтер CSS-файлов
 
Скрипт для обработки файлов формата CSS (таблиц стилей) в текстовом редакторе Notepad++.
Выполняет двунаправленную конверсию файла: минифицирует или форматирует ранее сжатые файлы.
 
См.также:
· Описание приложения на официальном сайте
· Описание настроек и параметров приложения
· Описание текущей версии приложения
 
Текущая версия - 2024.12.12  •  Зеркало текущей версии
Все версии: Официальный сайт · MS OneDrive · Яндекс.Диск · Облако Mail.Ru
 
Возможности и использование:
Предназначен для быстрой и качественной конверсии "сырого" файла стилей в сжатый вид.
Также может использоваться разработчиками стилей для комфортного анализа сторонних сжатых файлов.
При конверсии обеспечивается многоуровневое форматирование в виде "ёлочки" вложенных правил и директив.
Направление преобразования определяется автоматически по результатам экспресс-анализа текущего файла.
 
Скрипт обеспечивает два основных режима работы:
– "по месту" (при этом обрабатывается и заменяется выделенный фрагмент текста текущего файла стилей);
– обработка всего файла целиком с автосохранением результата в новый файл.
 
Скрипт имеет развитую систему настроек, позволяющих менять условия преобразования и способы обработки.
Может применяться для оптимизации CSS путём конверсии цветов, размеров и медиа-правил в сокращённый вид.
Может использоваться для автокоррекции некоторых типовых ошибок и некоторых распространённых "очепяток".
 
Для удобства пользователя все операции с файлами выполняются полностью автоматически (согласно настройкам).
При выполнении не требуется ручной ввод каких-либо параметров (пути, имени и расширения выходного файла).
Можно в любой момент изменить любой параметр под текущие потребности, в зависимости от решаемой задачи.
Также доступна быстрая обработка большого числа файлов с идентичными настройками.
 
Кроме конверсии CSS-файлов, "минимаксер" также может применяться для сжатия файлов скриптов JavaScript.
Эта функция является вспомогательной, для её работы используются возможности специального плагина "JSTool".
Фактически, "минимаксер" отвечает только за вызов плагина и запуск сжатия с автосохранением* результата.
* Такой возможности нет в указанном плагине, "костыль" устраняет необходимость ручного ввода имени для сохранения.
 
Порядок установки и применения:
CSSMinMax не имеет практических ограничений по версии редактора Notepad++.
Гарантируется работа скрипта в редакторе Notepad++ v.6.5.1 (и новее) под ОС Windows (от Windows XP и выше).
 
Для работы приложения необходимо установить в редактор плагин "Python Script".
Версию, гарантированно работающую под Windows XP, можно скачать с сайта разработчика или загрузить
из этого архива (на этой версии проверена и отлажена работа "минимаксера").
 
После установки и первоначальной настройки указанного плагина нужно выполнить следующие действия:
(указаны стандартные наименование пунктов меню и путей размещения плагина и скриптов)
 
– Скопировать файл CSSMinMaxR24.py из скачанного архива в папку хранения скриптов плагина "Python Script",
  находящуюся по пути ..\plugins\PythonScript\scripts в корневой папке вашей копии редактора Notepad++.
 
– Выбрать в списке доступных скриптов (см.пункт меню Плагины* > Python Script > scripts) строку CSSMinMaxR24
  и запустить** обработку текущего файла. По желанию можно изменить настройки параметров скрипта.
 
– Опционально: для повышения удобства можно вывести кнопку запуска скрипта на панель инструментов редактора:
  см.пункт меню Плагины* > Python Script > Configuration.  Для лучшей визуализации кнопки можно использовать
  файл CSSMinMaxR24.bmp (входит в комплект поставки, распаковать из архива).
 
– Опционально: для оценки возможностей и настроек можно использовать тест-файл*** CSSMinMaxR24_test.css,
  входящий в комплект поставки. Для этого следует распаковать файл из архива, открыть в редакторе и пробовать
  конвертировать его с разными значениями настроек.
 
– Опционально: для использования возможности сжатия скриптов JavaScript необходимо установить в редактор
  специальный плагин "JSTool". Версию, гарантированно работающую под Windows XP, можно загрузить
  с сайта разработчика или скачать из этого архива (на этой версии проверена и отлажена работа скрипта).
 
– Опционально: для использования расширенного управления кнопками панели инструментов можно установить
  в редактор плагин "Customize Toolbar". Версию, гарантированно работающую под Windows XP, можно скачать
  с сайта разработчика или загрузить из этого архива (на этой версии проверена и отлажена работа скрипта).
 

*** Указано название пункта в русской версии редактора. В английской версии этот пункт называется "Plugins".
 
*** При этом будет обрабатываться либо выделенный фрагмент в текущем файле текущего активного окна редактора
    (конверсия с заменой выделенного текста "по месту"), либо весь текущий файл целиком (если ничего не выделено,
    результат работы скрипта будет помещён и автоматически сохранён в новом файле).
 
*** Кроме различных видов правил (в т.ч. многоуровневых, пустых и с вложенными комментариями), этот файл содержит
    некоторые типовые ошибки и "опечатки" для демонстрации возможностей работы автокоррекции кода.

 
Технические детали:
Код скрипта написан на языке Python, версия среды выполнения 2.7+ (функции версий 3.х не используются).
Среда выполнения скрипта выбрана с учётом минимальных требований к операционной системе (Windows XP).
 
Код разделён на отдельные функции, вызываемые при обработке в зависимости от установленных настроек.
Настройки по умолчанию основаны на практическом опыте работы с CSS и оптимальны в большинстве случаев.
 
Для удобства самостоятельных доработок все функции и настройки имеют подсказки в виде комментариев.
Все комментарии на английском, связано с "профессиональной" ориентированностью скрипта - спецы понимают "басурманский".)
 
Примечание: код НЕ обфусцирован, исключительно с целью удобства при возможных доработках.
..если кому-то это критично - смело удаляйте все комментарии и пропустите через компрессор..х))
 
Дополнительно:
· Официальный авторский сайт - документация и ссылки по всем версиям, обсуждение, загрузка и пр.
· CSSmin - скрипт-прототип функций компрессора (не развивается с 2012 года)
· Исходник иконки приложения - оптимизирован и сжат
 

История публичных версий:
Указаны ссылки на страницы загрузки со всеми зеркалами.
Размер комплекта указан в байтах, формат всех архивов - 7z.

 
CSSMinR24 2024.8.30 (3'594, анонс [?] + описание)
 
CSSMinR24 2024.8.31 (3'801, анонс [?] + описание)
 
CSSMinR24 2024.9.4 (5'368, анонс [?] + описание)
 
CSSMinR24 2024.9.7 (7'860, анонс [?] + описание)
 
CSSMinR24 2024.9.15 (12'705, анонс [?] + описание)
 
CSSMinR24 2024.9.30 (15'351, анонс [?] + описание)
 
CSSMinR24 2024.10.4 (16'159, анонс [?] + описание)
 
CSSMinR24 2024.10.5 (16'170, анонс [?] + описание)
 
CSSMinR24 2024.10.31 (17'588, анонс [?] + описание)
 
CSSMinR24 2024.12.12 (18'106, анонс [?] + описание)
 

Все вопросы/замечания/обсуждение - в этой теме или в теме по редактору Notepad++ [?]..
..и кроме того - всё тоже самое можно сделать и на официальном авторском сайте..



----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 18143 | Зарегистр. 07-06-2006 | Отправлено: 19:59 17-12-2024 | Исправлено: TheBarmaley, 20:36 17-12-2024
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Обработка css


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru