Содержание
Блог на «Докувики»
Страница в РАЗРАБОТКЕ! Если вы видите, что можно добавить, добавляйте без сомнения!
Несмотря на то, что блоги не является основным предназначением «Докувики», есть немало плагинов, позволяющих превратить «Докувики» в полноценную платформу для блога.
На этой странице приведены основные шаги, благодаря которым можно начать деятельность блоггера на движке «Докувики». Здесь также можно узнать, как обойти возможные проблемы.
Желающие найти существующие блоги на основе «Докувики» могут посетить Planet DokuWiki, или воспользоваться поиском: inurl:doku.php+inurl:blog.
Необходимые плагины
В первую очередь стоит поставить несколько плагинов. Основной «набор блоггера» составляют blog, include и pagelist. Они составляют необходимый минимум.
В дополнение к необходимым можно добавить discussion, linkback, bloglinks, feedmod, avatar и tag.
Основная масса этих плагинов зависит друг от друга. В помощь начинающим существует Blogsuite Bundle Hub. Ссылка не действует! ответ 404 Здесь можно взять самое необходимое в виде одного архива и установить посредством центра управления плагинами (Внимание плагины в пакете могут быть устаревшими, следите за версиями).
Настройка
Индивидуальный блог
В этом случае у нас только один пользователь, и один блог, который нужно вести. В настройках блога можно указать пространство имён, в котором будут сохранены записи. По умолчанию там указано :blog
, и этого вполне достаточно для большинства.
Перед созданием блога следует решить, какая страница будет «лицом» блога, и создать её. Если хочется, чтобы блог был на стартовой странице, то ей будет :start
. На ней следует разместить синтаксическую вставку блога и сохранить.
{{blog>?5}}
Эта вставка отобразит 5 последних записей в блоге. Раз это индивидуальный блог, нет необходимости указывать, из какого пространства имён следует брать записи. Но перед добавлением первой записи следует обратить внимание на пункт конфигурации dateprefix
. При помощи него можно указать, под какими именами будут создаваться новые записи. Достаточно удачной установкой может послужить %Y:%m%d_
. Если вы назовёте запись «Мой новый блог», то страница будет создана под именем blog:2008:0512_мой_новый_блог
. Как видно из примера, это позволяет держать пространство имён блога в порядке.
Чтобы другие не могли редактировать ваш блог, следует обратиться к ACL и назначить там несколько правил (для примера — блог на стартовой странице).
start @ALL 1 start вашник 16 blog:* @ALL 1 blog:* вашник 16
Многопользовательский
Это случай, когда мы хотим разрешить пользователям вести свои блоги. Для этого каждый пользователь должен обзавестись своим собственным пространством имён для блога, где только он может распоряжаться содержимым. Для примера возьмём трёх пользователей: Васю, Петю и Машу. Каждый пользователь получает собственное пространство в пространстве :blog
и собственную страницу с лентой там же. Теперь нужно установить права доступа для каждого (к примеру, для Васи):
blog:вася @ALL 1 blog:вася:* @ALL 1 blog:вася joey 16 blog:вася:* joey 16
Now you have to create the page :blog:joey
and insert the following blog plugin syntax to setup the blog.
После этого следует создать страницу пользователю :blog:вася
, куда поместить вставку для блога.
{{blog>blog:вася?5}}
То же самое надо повторить для всех остальных пользователей. После этого каждый может начать вести блог.
Настройка новостной ленты
Одной из важнейших вещей в блоге является RSS-лента. «Докувики» автоматически создаёт все виды лент, однако может потребоваться настроить одну ленту специально для блога.
Примечание: С тех пор как «Докувики» стал создавать полноценный HTML в лентах, не рекомендуется использовать плагин feed (хотя он всё ещё полезен для обсуждений).
URL новостной ленты
Необходимо несколько параметров, чтобы создать RSS-ленту. Первый, и самый необходимый — ns
, который ограничит ленту только записями в блоге. Не стоит в RSS давать стартовую страницу — так вы получите все записи в виде одной записи в ленте!
Вот пример простого адреса ленты:
http://www.example.com/feed.php?ns=blog&num=10
Следует также убедиться, что ссылки на ней ведут к актуальной версии страницы. Это можно установить в настройках или передать в внутри адреса:
http://www.example.com/feed.php?ns=blog&num=10&linkto=current
Также вполне возможно, следует включить HTML в ленте:
http://www.example.com/feed.php?ns=blog&num=10&linkto=current&content=html
Красивые адреса лент посредством .htaccess
Если включено переписывание адресов посредством .htaccess
, то можно добавить специальные правила и получить красивые адреса для лент. Правило для приведённого выше адреса будет выглядеть следующим образом:
RewriteRule ^_feed/(.*) feed.php?ns=$1&num=10&linkto=current&content=html [QSA,L]
Его можно добавить рядом с правилом для _export
.
Теперь ленту можно получить по адресу http://yourdomain.org/_feed/blog
.
Автоматическое обнаружение лент
Браузеры могут сами обнаруживать RSS-ленты, анализируя специальные метаданные в HTML. По умолчанию «Докувики» предоставляет стандартные ленты сам. В нашем случае предпочтительнее отключить стандартные, а добавлять только собственно ленту блога. Это можно сделать, исправив в используемом шаблоне оформления main.php
. Вот пример заголовка:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php tpl_pagetitle()?> [<?php echo strip_tags($conf['title'])?>]</title> <?php tpl_metaheaders(false)?> <link rel="alternate" type="application/rss+xml" title="Blog" href="/feed.php?ns=blog&linkto=page" /> </head>
Обратите внимание на параметр false
, передаваемый функции tpl_metaheaders. Это подавляет все стандартные теги обнаружения лент.
Использование
Черновики
С черновыми записями можно обращаться двумя основными способами. Первый способ — завести отдельное пространство имён для черновиков. Чтобы опубликовать статью, достаточно будет скопировать её в блог. Второй способ представляет сам плагин blog. Он позволяет пометить черновик вставкой маркера ~~DRAFT~~
в текст перед сохранением. Тогда она не будет отображаться в блоге до тех пор, пока вы снова не уберёте маркер из текста. При использовании этого способа следует также поставить плагин feedmod, который удалит черновики из RSS-ленты.
Примечание: страницы помеченные как черновики тем не менее будут обнаруживаться при использовании поиска.
Управление комментариями
Плагин discussion предоставляет панель управления в административном интерфейсе «Докувики», где можно открывать и закрывать обсуждения, а также производить действия над отдельными комментариями.
Управление обратными ссылками
Плагин linkback даёт возможность управлять обратными ссылками через административный интерфейс «Докувики» — удалять их или включать и выключать на отдельных страницах.
Управление метками
Плагин tag последней версии даёт возможность управлять метками, перестраивать индекс меток через административный интерфейс. Посредством плагина tagentry можно получить дополнительные возможности по управлению метками.
Украшение
Отображение только первого подраздела страницы
Иногда нежелательно отображать всю длинную статью в блоге на первой странице. Обрезать её можно добавив пустой заголовок первого уровня. Чтобы это сработало следует добавить параметр firstseconly
в плагине include.
Далее будет длинная статья. ====== ====== Собственно длинная статья здесь.
Тонкая настройка ленты
Стандартная RSS-лента «Докувики» не слишком пригодна для ведения блога. К примеру, она в заголовок ставит название страницы, а не первый заголовок внутри статьи. Это можно исправить при помощи плагина feedmod. Добавляет заголовок статьи в ленту, а также включает в новость метки и ссылки на обсуждение. Также можно добавить ссылки для добавления в закладки, для чего стоит отредактировать шаблон «подвала» новости (подробности на feedmod).
Другой простой путь добавить функций — использовать Feedburner. Зарегистрируйтесь на том сайте, добавьте туда свою ленту (см. URL новостной ленты) и добавьте ленту Feedburner в метаданные. Эта операция также перенесёт часть нагрузки с вашего сайта на Feedburner.
Борьба со спамом
Спам в комментариях — серьёзная проблема в наши дни. К счастью «Докувики» предоставляет ряд антиспам-плагинов для борьбы с ним. Также поддержка captcha встроена в плагин discussion. Всё что нужно — это установить нужные средства и настроить их.
Проблемы
Treat your filesystem carefully
Хитрости
Правка неверных дат
Some timestamp issues I came across:
- As mentioned in the discussion of the meta plugin, feed.php ignores settings of
~~META: …~~
. (Usually getRecents() from changelog.php is called, which doesn't seem to support it?) This results in a mismatch between blog listing like{{blog>blog?5}}
andfeed.php?ns=blog&num=5
, which is unexpected. - Also, it is currently not possible to let feed.php list only newly created pages (and sort them by descending creation date). (Because getRecents() does provide listing only newly created pages.) I note that this listing is possible with the changes plugin, but this code isn't used in feed.php.
- An alternative approach using alphabetic ordering of pages by name could also solve issues if the items have pagenames like
:blog:YYYY-MM:DD-pagetitle
or similar. Then the feed.php is consistent with the permalinks of the blog, which would be nice.
— Louwrens van Dellen 2010/05/03 23:23
Обсуждение
Изменение порядка следования «обратных ссылок» и «обуждения» на странице
Is it possible (without changing source/templates) to change the order of the discussion and the linkback plugin? If there is no way without editing, could anybody who is more often editing the code than me, give a hint into the right direction? (I am «speaking» HTML/CSS/PHP)
Thanks, Ralf