DokuWiki

DokuWiki «Докувики» — это MustHave Бубен совместимый со стандартами и лёгкий в использовании, предназначенная в первую очередь для создания разного рода документации. Она ориентирована на команды разработчиков, рабочие группы и небольшие компании. Все данные хранятся в простых текстовых файлах, поэтому для работы не требуется система база данных. Простой, но мощный синтаксис облегчает создание структурированных текстов и позволяет при необходимости читать файлы данных даже за пределами Wiki. Настройка robots.txt для SEO.txt для DokuWiki.

Быстрая инсталляция DokuWiki + настройки

Подробную установку смотрите на официальном сайте: Установка DokuWiki.

# wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2009-12-25c.tgz
# tar -xzvf dokuwiki-2009-12-25c.tgz
# mkdir /var/www/dokiwikiadm
# cp -Ra dokuwiki-2009-12-25/* /var/www/dokiwikiadm/
# chown -R www-data:www-data /var/www/dokiwikiadm/

Создадим виртуальный хост в Apache

# nano dokuwikiadm.conf
<VirtualHost *:80>
        ServerName dokuwikiadm.example.com
        ServerAdmin webmaster@localhost
        DirectoryIndex index.php

        DocumentRoot /var/www/dokiwikiadm
        <Directory /var/www/dokiwikiadm/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
# a2ensite dokuwikiadm.conf
# /etc/init.d/apache2 reload

Открываем в браузере

http://your_virtual_domen/install.php

и следуем инструкции по установке. Удаляем install.php.

Настройки Вики:

  • Транслитерация в именах страниц: полная транслитерация
  • Удобочитаемые адреса (URL): .Настройка .htaccess
  • Задержку индексирования, измененной страницы, устанавливаем в 1 день, вместо 5 по умолчанию (Значение по умолчанию: 60*60*24*5 (60 сек. × 60 мин. × 24 ч. × 5 дн. — т. е. пять дней)). indexdelay:60*60*24*1 Для выключения отложенного индексирования установить её в «0».
  • sitemap:5

Все файлы конфигурации хранятся в директории ./conf или в /etc/dokuwiki при установке из Debian-пакета.

«Основные» файлы обычно поставляются вместе с «ДокуВики», в то время как «локальные» файлы обычно создаются администратором вики.

Если какие-то настройки позволено сделать в локальном файле, то лучше сделать именно там, а не в основном файле. Это позволит избежать проблем при обновлении, т. к. основные файлы при нём меняются, а локальные — нет.

«Основной» файл «Локальный» файл Тип настроек Краткое описание
dokuwiki.php local.php
local.protected.php
см. ниже основные настройки вики
acronyms.conf acronyms.local.conf abbreviations автоматические подсказки аббревиатур
entities.conf entities.local.conf entities автоматические подстановки текста
interwiki.conf interwiki.local.conf interwiki сокращения ссылок интервики
mime.conf mime.local.conf MIME настройки mime-типов для загрузки на сервер
smileys.conf smileys.local.conf smileys подстановки графических смайлов
acl.auth.php см. acl настройки листов доступа
users.auth.php см. acl имена пользователей и пароли
license.php license.local.php license перечень доступных лицензий
scheme.conf scheme.local.conf urlschemes ключевые слова URL-ссылок
mediameta.php exif возможные метаданные для изображений
wordblock.conf wordblock.local.conf blacklist спамерские чёрные списки
userscript.js javascript Пользовательские JavaScript-улучшения
userstyle.css css Пользовательские CSS-улучшения

Чтобы не вставлять напрямую на сайт коды Яндекс Метрики и Google Analytics правильно всего использовать GTM. Регистрируем наш сайт в Google Tag Manager (https://tagmanager.google.com)

1 способ:

  1. Устанавливаем компонент https://www.dokuwiki.org/plugin:googletagmanager
  2. В меню "Настройки вики"⇒"Googletagmanager" задаем ID нашего сайта из кода выданного GTM.

<WRAP center round alert 60%> После установки Google Tag Manager прекрасно работает, но на сайте появляются 2 критические ошибки Валидатор Nu Html Checker W3. Подобных ошибок, да и всех остальных, рекомендую избегать, особенно для информационных сайтов! </WRAP>

2 способ: Ручками добавляем код в файлы шаблона

  1. Создаем файл lib/tpl/dokuwiki/meta.html и в него добавляем основной код. Это безопасное добавление, после обновления движка, это код не затрется.
  2. lib/tpl/dokuwiki/main.php добавляем вторую часть код, после body
    </head>
    <body>
    <!-- Google Tag Manager (noscript) -->

    Здесь будьте осторожны, код может быть затерт при обновлении Dokuwiki. Наслаждайтесь работой без ошибок!!

Все найденные плагин для подключения Google AdSense показались мне старыми: adsense-plugin. Потому принял решение код вставить ручками в шаблон DokuWiki.

Согласно мануалу, для безопасного добавления дополнительного HTML или PHP к шаблону и чтобы при обновлении движка DokuWiki ваш код не затирался, создайте ваш файл в любом каталоге шаблонов (lib/tpl/dokuwiki/) или ваш conf/ каталоге. Файлы которые подключаются автоматически:

Название файла Позиция вашего HTML
meta.html Внутри HTML <head>, для добавления дополнительных CSS стилей или мета-заголовков
sidebarheader.html В верху сайдбара, перед текстом (если существует)
sidebarfooter.html В низу сайдбара, после текста (если существует)
pageheader.html На странице статьи, выше текстового контента
pagefooter.html На странице статьи, ниже текстового контента
header.html Шапка сайта, выше logo и wiki title
footer.html Подвал сайта, после любого контента на странице
social.html Ниже header.html используйте его, чтобы добавить кнопки социальных сетей (например, Facebook, Twitter, LinkedIn и т.д.).
topheader.html В самом верху страницы сразу после тега <body>

Включение рекламы AdSense на правом сайдбаре:

  1. Шаблон должен поддерживать сайдбар, DokuWiki шаблон по умолчанию его поддерживает.
  2. Включить в настройках: "Параметры «Докувики»"→Основные параметры→sidebar Значение по умолчанию:sidebar
  3. Перейдите по адресу http://your-wiki.com/doku.php?id=sidebar, нажмите кнопку «Создать страницу», отредактируйте эту страницу, сохраните, и боковая панель готова. Это всё, сохраненные изменения будут отображаться на боковой панели. Страница не должна быть пустой, я поставил только знак точки.
  4. В lib/tpl/dokuwiki создадим sidebarheader.html в который добавим код AdSense

Наслаждаемся рекламой на своем сайте!:))

Для добавления кода Adsense после первого H1, нужно отредактировать функцию header в файле <dokuwiki installation directory>/inc/parser/xhtml.php.

Находим строку

$this->doc .= "</h$level>".DOKU_LF;

и заменяем ее на код

        $this->doc .= "</h$level>";
        if ($level == 1) {
            $this->doc .= '
<!--noindex-->
 
КОД из AdSense
 
<!--/noindex-->
<br />';
        }
 
        $this->doc .= DOKU_LF;

Для вставки видео с youtube я использую плагин Video Share Plugin, синтаксис:

{{youtube>LWM8YxwqEU}}

В следующем примера расположить видео по центру, большого размера.

{{ youtube>LWM8YxwqEU?large }}

Инсталляция Dokuwiki в Microsoft Azure Web App. Нужно создать файл web.config для http сервера IIS, который защитит наши рабочие директории от несанкционированного доступа.

web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <hiddenSegments>
               <add segment="conf" />
               <add segment="data" />
               <add segment="inc" />
            </hiddenSegments>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

В листинг не добавлена директория “bin”, потому что к папке с таким названием доступ в IIS закрыт по умолчанию.

Для подключения Bootstrap возможностей к DokuWiki используют плагин Bootstrap Wrapper Plugin. Установите плагин, используя диспетчер плагинов (Plugin Manager).

Этот плагин добавляет в вашу «ДокуВики» несколько компонентов Примеры использования Bootstrap:

  • Jumbotron
  • Alerts
  • Text
  • Tooltips
  • Thumbnails
  • Panels
  • Wells
  • Labels
  • Nav & Tabs (with dropdown)
  • Page heading
  • Lead
  • List Group
  • Progress Bars
  • Affix
  • Carousel
  • Accordion
  • Callouts
  • Modal (with remote attribute)
  • Popover
  • HtmlMetaTags Plugin SEO плагин, позволяет задавать open graph, description и т.д.

Для использования вписываем в страницу в таком виде

{{htmlmetatags>metatag-robots=() 
metatag-keywords=(apfel,bananne,birne) 
metatag-description=(Allgemeiner Obstbauer)
metatag-media-og:image=(:wiki:image.jpg)
metatag-og:description=(anything else)
metatag-og:any=(anything else 2)
}}

Результат

<meta name="robots" content="noindex,nofollow"/>
<meta name="keywords" content="apfel,bananne,birne"/>
<meta name="description" content="Allgemeiner Obstbauer"/>
<meta property="og:image" content="http://localhost/lib/exe/fetch.php?media=wiki:image.jpg"/>
<meta property="og:description" content="anything else"/>
<meta property="og:any" content="anything else 2"/>

Карта сайта (Sitemaps) создаётся, если включена опция «sitemap». Файл карты находится во вложенном каталоге «cache» вашей установки «ДокуВики». Он будет доступен по ссылке: http://your_domain/dokuwiki/?do=sitemap. В зависимости от наличия поддержки gzip в вашем PHP, файл будет именоваться «sitemap.xml.gz» (если gzip доступен) или «sitemap.xml» (если gzip недоступен). Почти во всех современных установках PHP поддержка gzip включена, поэтому файл будет называться скорее всего «sitemap.xml.gz».

Карта сайта будет содержать только ссылки на страницы, которые доступны без авторизации на сайте.
Чтобы карта сайта была пересоздана, попробуйте временно установить для опции «sitemap» большое отрицательное значение.

Dokuwiki sitemap.xml и настройка Яндекс. Мой настройки для Яндекс Вебмастера, чтобы он корректно увидел sitemap.xml. Добавляем директивы Host и Sitemap в файл Настройка robots.txt для SEO.

robotx.txt
User-agent: *
Disallow: /bin/
Disallow: /conf/
Disallow: /inc/
Disallow: /lib/
Disallow: /vendor/
Host: wiki.dieg.info
Sitemap: https://wiki.dieg.info/sitemap.xml.gz

В файл .htaccess добавляем строку

# sitemap for Yandex
RewriteRule ^sitemap\.xml\.gz$        doku.php?do=sitemap [L]
Так же sitemap.xml.gz можно добавить в Google Search Console, у меня до этих изменений Google видел его в виде /?do=sitemap

Если возникла надобность при выводе на принтер удалить какие-то объекты или изменить шрифт, можно дополнить/изменит файл lib/tpl/dokuwiki/css/print.css. Это изменит тип media CSS. Например, скроем при печати :

print.css
#footer2d,
#dokuwiki__header,
#dokuwiki__footer {
    display: none;
}

В DokuWiki предусмотрено добавление пользовательских стилей изначально. Для этого требуется создать файл conf/userstyle.css, в который и нужно вписывать CSS правила. Например, для картинок, окруженных div c классом начинающимся на iam_img, задать круглые углы:

div[class^="iam_img"] img {
    border-radius: 10px;
}

Другие варианты добавления CSS смотрите по ссылке: DokuWiki CSS Stylesheets

Подробно: Загрузка JavaScript

  • Для внешней ссылки удалить атрибут rel="nofollow", чтобы разрешить поисковым системам следовать по ней (передача веса). Создадим файл conf/userscript.js Он автоматически загрузится
function doFollow1(){
 jQuery("a[href^='https://example.com']").removeAttr("rel");
}
 
jQuery(function () {
    jQuery(document).click(doFollow1);
});

1 вариант:

  1. Подготавливаем картинку 16х16 пикселей.
  2. Заливаем её lib/tpl/dokuwiki/images/tambourine_16x16.png
  3. В файле lib/tpl/dokuwiki/css/basic.less исправить определение
    ul { list-style: square outside; }

    на

    ul { list-style-image: url('images/tambourine_16x16.png'); } /* your image */

В оглавлении страницы заменить файл /lib/tpl/dokuwiki/images/toc-bullet.png

2 вариант: В файле lib/tpl/dokuwiki/css/_links.css добавляем css код list-style: lower-greek;:

.dokuwiki .page ul li, .dokuwiki .aside ul li {
        /*list-style: hangul-consonant;*/
        list-style: lower-greek;
}

В DokuWiki нельзя настраивать 404 страницы, для этого нужно использовать плагины.

Плагины DokuWiki для настройки 404 страницы:

  1. Redirect Plugin Andreas Gohr Перенаправляет запросы к страницам на другие страницы или внешние сайты с помощью центрального файла конфигурации.
  2. notfound Plugin Andreas Gohr - отображать настраиваемую страницу, когда страница не существует
  3. Page Redirect Plugin Elan Ruusamäe, David Lorentsen 301 редирект страницы вики на другую страницу вики

Каким образом мне в текстовый файл (т.е. страницу wiki) подгрузить или сделать include из php файла?

Ответ: datatables и SQL query plugin

После установки, плагин SQL Query Plugin настраивается через Configuration Manager.

  • Крупнейшая в Европе школа английского языка

    Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!

    skyeng.ru
  • Английский для IT‑специалистов по Skype

    Персональные занятия по разумным ценам. Длительность курса: 50 уроков по 50 минут. Управляй расписанием занятий через мобильное приложение!

    englex.ru
  • EnglishDom IT