Навеяно вот этим: Похапе мануал обновился
Мне лично удобней пользоваться CHM версией руководства по PHP — быстрый поиск удобен, а интернет не всегда доступен. Но у официальной справки нет встроенных пользовательских комментариев, которые зачастую бывают очень полезны. Ранее они были в Extended-версии руководства, но сейчас она уже не поддерживается.
Полазив в гугле, я обновленной версии руководства с комментами не нашел. Пришлось сделать собственную, и этот процесс может повторить любой желающий.
Потребуются (все делается под Windows):
Создадим в папке TMP файл php_manual_en_notes.hhp:
Откроем созданный файл в HTML Help Workshop. Компилируем и получаем готовый CHM-файл.
А впрочем… нет, не совсем готовый :) При компиляции произошло две ошибки:
Если заглянуть в файлы .hhc и .hhk — можно предположить что дело в не так написанном слэше, но на самом деле это не так. Эксперименты показали, что HTML Help Workshop выдает такую ошибку, если в названии файла встречается строка ".chm". Поэтому переименуем файлы в pharfileinfo_chmod.html и function_chmod.html и заменим ссылки на них в файлах .hhc и .hhk.
Вот теперь компилируется без ошибок.
Скачать готовый файл (актуальность на 18.08.09) можно здесь.
UPD: файл обновлен, добавлена подсветка кода, исправлены длинные строки
файл должен быть на 23 мб — приношу извинения, файл в 10 мб собрался неправильно.
Мне лично удобней пользоваться CHM версией руководства по PHP — быстрый поиск удобен, а интернет не всегда доступен. Но у официальной справки нет встроенных пользовательских комментариев, которые зачастую бывают очень полезны. Ранее они были в Extended-версии руководства, но сейчас она уже не поддерживается.
Полазив в гугле, я обновленной версии руководства с комментами не нашел. Пришлось сделать собственную, и этот процесс может повторить любой желающий.
Потребуются (все делается под Windows):
- php_manual_en.chm
- сами пользовательские комментарии
- архиватор с поддержкой bz2
- HTML Help Workshop
- PHP :)
- распаковываем all.bz2 куда-нибудь, например в папку TMP
- Декомпилируем туда же chm:
hh -decompile TMP php_manual_en.chm
получим файлы: all, php_manual_en.hhc, php_manual_en.hhk и папку RES со всеми html-файлами справки.
- Внедрим в HTML-ки комментарии при помощи простого PHP-скрипта:
$notes=fopen('tmp/all', 'r');
while($note=fgets($notes))
{
list($id, $sect, $rate, $time, $user, $text)=explode('|', $note);
//Подсветка кода средствами PHP
$text=highlight_string(base64_decode($text), true);
//избавимся от длинных не переносящихся строк
$text=preg_replace('/(?<=\w)[&]nbsp;(?=\w)/', ' ', $text);
$file=file_get_contents('tmp/res/'.$sect.'.html');
$note_body='
<div id="usernotes">
<div class="note">
<span>'.strftime('%d.%m.%y %H:%M', $time).'</span> <strong>'.$user.'</strong><br />
<div class="text">
<div class="phpcode">
<code>
'.$text.'
</code>
</div>
</div>
</div>
</div>
';
//в файле комментарии будут выстроены в обратном порядке - самые новые сверху
$file=preg_replace('%(?=<hr /><div class="manualnavbar")%', $note_body, $file);
file_put_contents('tmp/res/'.$sect.'.html', $file);
}
* This source code was highlighted with Source Code Highlighter.
Создадим в папке TMP файл php_manual_en_notes.hhp:
[OPTIONS]
Binary TOC=Yes
Compatibility=1.1 or later
Compiled file=php_manual_notes_en.chm
Contents file=php_manual_en.hhc
Default Window=manual
Display compile progress=No
Full-text search=Yes
Index file=php_manual_en.hhk
Language=0x409 Английский (США)
Title=PHP Manual
[WINDOWS]
manual="PHP Manual","php_manual_en.hhc","php_manual_en.hhk","res/index.html","res/index.html",,,,,0x2520,,0x386e,,0x30000,,,,,,0
[INFOTYPES]
Откроем созданный файл в HTML Help Workshop. Компилируем и получаем готовый CHM-файл.
А впрочем… нет, не совсем готовый :) При компиляции произошло две ошибки:
HHC5013: Error: URL reference in the TOC cannot be resolved: "res\pharfileinfo.chmod.html".
HHC5013: Error: URL reference in the TOC cannot be resolved: "res\function.chmod.html".
Если заглянуть в файлы .hhc и .hhk — можно предположить что дело в не так написанном слэше, но на самом деле это не так. Эксперименты показали, что HTML Help Workshop выдает такую ошибку, если в названии файла встречается строка ".chm". Поэтому переименуем файлы в pharfileinfo_chmod.html и function_chmod.html и заменим ссылки на них в файлах .hhc и .hhk.
Вот теперь компилируется без ошибок.
Скачать готовый файл (актуальность на 18.08.09) можно здесь.
UPD: файл обновлен, добавлена подсветка кода, исправлены длинные строки
файл должен быть на 23 мб — приношу извинения, файл в 10 мб собрался неправильно.