Вверх ↑
Ответов: 1058
Рейтинг: 76
#1: 2011-12-19 02:19:32 ЛС | профиль | цитата
Приветствую господа.
Вот решил выложить очередную недоделку CHMcreator-а.
За время тестирования критических ошибок на выявлено, дальше тестировать нету времени да и трафик уже заканчивается.
В общем тестируйте.

chmcreator_by_tom-it.rar

Итак, в архиве имеются:
папки...
bak- содержит подправленные файлы для начальной работы.
Compilers- название говорит само за себя
logs- сюда сохраняются файлы отчета
файлы...
CHMcreator.exe- готовое фоновое приложение
CHMcreator.sha- собственно схема
Correct.txt- список измененных страниц
FDown.txt- список файлов предварительной загрузки
Ignore.txt- список игнорируемых пунктов справки
RepURL.txt- список специфических адресов, которые будут заменены
Run.bat- пример параметров командной строки

С чем ето едят?
Correct.txt- При первом запуске в этот файл записываются измененные страницы. В следующий раз дата изменения страницы ищется в этом списке и сравнивается. Также не измененные страницы игнорируются. Следует помнить, что если вам по каким то причинам нужно повторно закачать какую то страницу(случайно удалили часть текста), то помимо удаления ее с папки Help нужно удалить и все записи о ней из списка.

FDown.txt- Список адресов файлов которые необходимо закачать самостоятельно. Почти во всех случаях адреса ищутся автоматически на всех страницах.Но как быть когда адреса в теле страницы нет?
К примеру смайлики на страницах указаны в виде псевдонимов типа "" или "".Именно в таких случаях нужно вручную вписывать адреса.
Пример записи

http://forum.hiasm.com/xx/smilies/icon_mrgreen.gif€xx/smilies/icon_mrgreen.gif
http://hiasm.com/xx/icon_plus.gif€xx/icon_plus.gif

Первым идет адрес для закачки, после разделителя "€" -путь сохранения.

Ignore.txt- Список пунктов которые нужно исключить из содержания. Также как и в предыдущим случае все вписывается вручную.
Пример записи
folder Cosinus
post Проверка_2

Первым следует команда, далее через "tab" имя игнорируемого пункта.
folder- пропускает целый раздел;
post- пропускает только указанную страницу.

RepURL.txt- Список принудительной замены специфических адресов в теле страниц. В основном такая замена делается автоматом самой программой. Но встречаются адреса которые тяжело распознать
типа /getfile/25766. В таком адресе нет названия файла, поэтому их нужно вписывать вручную. Или к примеру когда на странице указана недействительная ссылка, а необходимый файл вам удалось найти в другом месте. Еще один случай когда файл имеет имя напоминающее URL, к примеру "host.hiasm.com.png" который будет расценен компилятором как "недоделанная" ссылка и поведение, без того глючного компилятора, непредсказуемо.

Пример записи

host.hiasm.com.png€com_.png;>http://hiasm.com/xf/attach/wiki/host.hiasm.com.png€xf/attach/wiki/com_.png
/getfile/25766€xf/attach/files/scrhiasm5.png;>http://hiasm.com/xf/attach/files/scrhiasm5.png€xf/attach/files/scrhiasm5.png

Первый блок - имя файла в теле страницы "host.hiasm.com.png" и через разделитель "€" - имя "com_.png;" для замены с окончанием на ";"
Второй блок начинается после разделителя ">". Сначала реальный адрес "http://hiasm.com/xf/attach/wiki/host.hiasm.com.png" для загрузки файла и
через разделитель "€" - путь сохранения "xf/attach/wiki/com_.png"

После запуска будут созданы:
папка "Help" в которой и будет копия вики для компиляции.
в папке "logs" будут появляться файлы типа xx-xx-2011.txt(вместо хх-хх текущая дата) В етих файлах будут записи оскачанных страницах и файлах.
HiAsm.chm- появится после компиляции, то есть файл готовой справки.
HiAsm.txt- файл отчета, появится только в случае использования компилятора HTML Help Workshop.

Run.bat- пример запуска программы с параметрами. Их всего три:
/c -выбор компилятора
/m -вывод сообщения о завершении работы
/s -задержка
С первыми двумя понятно, а вот последний требует объяснений. Дело в том, за время работы программы, особенно в первый раз, отправляется более 2000 запросов. Поэтому была введена принудительная задержка между запросами чтобы немного уменьшить нагрузку на сервер.

Compile.bat - запуск компиляции, на случай ручной правки содержимого страниц. Использовал исключительно во время тестирования, для работы он не нужен.

Самозащита.
В общем схемка сделана не совсем удачно, поскольку поначалу делал под компилятор htm2chm, но как оказалось он не может работать в фоновом режиме, поэтому схему пришлось немного переделывать.
Соответственно в схеме есть элементы и даже целые части которые можно выбросить за ненадобностью, но у меня в ближайшем будущем не будет свободного времени заниматься оптимизацией. Основная цель - готовый файл справки. Все остальное как нибудь в свободное время допилится.
Также в архив включены компиляторы со всеми файлами в стандартном комплекте, хотя для корректной работы нужно всего один .exe и одна-две .dll. Я же специально ничего не удалял на случай если кому то понадобятся и другие возможности вплоть до самостоятельно, ручного создания справки для своих программ.

Минусы
Длительное выполнение программы. При первом запуске от 15мин до часа, в зависимости от выставленной задержки.
Не удалось реализовать полноценный поиск по всей справке. Точнее он работает не корректно, пришлось отказаться. В данный момент поиск есть только на странице по нажатию Ctrl+F.
Есть мысль встроить отдельный скрипт поиска в каком то углу всех страниц. Но экспериментировать пока нет времени.
карма: 0

1
файлы: 1chmcreator_by_tom-it.rar [3.9MB] [360]
Голосовали:foksov