02
декабря
2007

Фича в DokuWiki

DokuWiki — довольно распространенный движок, который я уже давно использую для своих нужд. Выбор wiki остановился именно на нем из-за отсутствия необходимости в привязке к БД. Данные DokuWiki по-умолчанию хранит в файловой системе. Кроме того, простота организации, делает ее легкой в использовании и адаптации под конкретные задачи. Примером, демонстрирующим неприхотливость CMS, может послужить, например, то, что для переноса на новый хостинг необходимо просто скопировать файлы. И все.

Тем не менее, в бочке меда не обошлось без багов. Точнее, даже не багов, а одной неприятной особенности работы, на которую я сегодня наткнулся. Подозрительным показалось, как медленно на страницах вики загружаются картинки в формате PNG. Выяснилось, что это результат деятельности встроенного обрабочика графики, который выдает плохо-оптимизированный для веб результат. Если у картинки явно заданы размеры, например так:

{{practice:ide:vc-install-00.png?500x333|}}
происходит масштабирование исходного изображения, с последующим кэшированием результата. При этом, если указаны первоначальные размеры картинки, прогон через этот обработчик все равно происходит. И даже если требуется уменьшить размер изображения, итоговый размер файла может возрасти.

Лечится тремя двумя способами:

  • Если вообще не указывать размера картинок, они останутся в неизмененном виде. Способ не очень хороший, т.к. в HTML вообще лучше указывать размеры для тегов img. В противном случае, процесс загрузки страниц будет сопровождаться передергиванием ее изображения в браузере, что неприятно для глаз (мешает читать до момента полной загрузки).
  • Разрешить в настройках использовать raw HTML и делать вставку обычныхтегов img, вместо wiki-ссылок.
    <html><img src="/img/example.png" width="161" height="100" alt="" /></html>
    Графику при этом придется хранить не внутри вики, а где-то отдельно, в открытой для веб директории.
  • Не использовать формат PNG, заменив его на JPEG, коэффицент сжатия для которого можно настраивать в конфиге (параметр jpg_quality). Такой способ тоже не всегда подходит, т.к. JPEG-ом не очень хорошо сжимать скриншоты, разные схемы и другую графику, где важны мелкие детали и после пережатия могут быть заметны артефакты.

По теме:

Написать комментарий

Можно использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .