Описание утилиты Replacer |
Проблема: Некоторые редакторы,
например Microsoft® FrontPage Editor 3.0, умудряется
форматировать исходный код скриптов, причем
порой в результате, код перестаёт корректно
выполняться (например, код
известного счётчика http://SpyLOG.com)
:-(... однако, другие его возможности (я имею ввиду
FrontPage Editor) мне лично нравятся, и у меня нет желания
отказаться от него только по этой причине.
Решение: Я не стал сильно
разбираться: как именно нужно исправить Java-script
код, чтобы устранить отмеченную выше
особенность, а просто написал предлагаемую
Вашему вниманию утилиту, которая выполняет
замещение всех вставок Script-кода в html-файлах
указанного каталога (и во всех подкаталогах) на
код из указанных Script-файлов. Кроме этого, мне
показалось, что подобная утилита может быть
полезна, не только для преодоления отмеченной
проблемы...
Для того, чтобы Script-код был однозначно распознаваемый в html-файлах он должен быть заключён в уникальные для него маркеры начала/конца кода. Соответственно эти же маркеры, должны быть помещены и в код соответствующих script-файлов. Чтобы не городить огород, легче всего просто поместить в такие маркеры названия Script-файлов, содержащих исходный код. Например:
Файл: MainPageCounter.js
<!-- MainPageCounter.js begin -->
<!-- SpyLOG v.... -->
.... здесь собственно script-код
<!-- SpyLOG -->
<!-- MainPageCounter.js end -->
здесь жирным шрифтом выделены маркеры
соответственно начала и конца script-кода, также
обратите внимание, что:
Другими словами, первая строка script-файла, содержащая символ '<' в первой позиции интерпретируется как строка, содержащая маркер начала, и аналогично последняя строка с символом '<' в первой позиции - маркер конца. Надеюсь, для скриптов это не столь уж сильные ограничения :-)
Изначально, я не собирался создавать какой-либо интерфейс для редактирования настроечных параметров этой утилиты, однако подумал, что в нашем изменяющемся мире это не помешает :-) поэтому используя средства MFC VC++ 6.0 я всё-таки это сделал. При этом, я использовал контролы, поставляемые с VS 6.0+SP4, и если у Вас это не так, то опять же, Вы можете воспользоваться исходным кодом на MS VC++ 6.0, чтобы настроить его на то, что Вы имеете...
Итак, вся настройка уместилась в одно окно свойств на двух его закладках: Source и Scriprs. На закладке Source, определяется месторасположение (Folder) и расширения файлов (Extensions), в которых требуется выполнять замещение script-кода, а также можно установить/отменить режим поиска таких файлов во всех подкаталогах (Include subfolders).
На закладке Scriprs, Вы можете редактировать список Ваших script-файлов, код которых и будет вставлен, заменяя "испорченный код" в исходных файлах, указанных на закладке Source.
т.е. здесь Вы можете:
И это вся настройка..., следует также сказать, что вся текущая информация храниться в системном реестре, ключ к которой надеюсь виден на следующем рисунке:
... и опять, если Вас это не устраивает измените соответствующий VC++ код... :-)
Наконец, выполнив пункт меню Options\Update (и если ничего не произойдёт непредвиденного), Вы получите протокол выполненных изменений:
Здесь отображается информация следующим образом:
Прежде чем скачивать исходники, внимательно прочтите Заключительные замечания Скачать исходники [119KB]