====== Разработка «Докувики» ======
Вы можете внести свой вклад в <<Докувики>> и присоединиться к её развитию.
Степень вашего вклада, конечно же, зависит только от вас (прежде всего вы должны потакать себе). Если вам нужны идеи, чего не хватает в «Докувики», прежде всего вам следует заглянуть на [[doku>bugs|баг-трекер]]((bugs //(англ.)// --- ошибки в коде)) или [[devel:ideas|страницы идей]]. Возможно вам захочется [[wiki:devel:adoption|обновить плагин или шаблон]]. Начните с главы <<[[#С чего начать]]>>.
Работать вместе - веселее. Сообщество DokuWiki организовано в команды и нуждается в специалистах с различными навыками. Вы свободно можете присоединиться к любой из них или просто поучаствовать в обсуждениях разработок на почтовых рассылках или irc-каналах. Также, регулярно проводятся IRC-встречи, викенды по отлову багов, на которых.. эх, исправляются ошибки, иногда разработчики собираются в IRL((in real life (англ.) - в реальной жизни)) на DokuWiki хакфестах (сборы хацкеров).
DokuWiki была наставнической организацией на событии "Google Summer of Code" в 2011. Если вы заинтересованы в участии развития DokuWiki посредством такого рода инициатив, пожалуйста, свяжитесь с нами.
===== С чего начать =====
- [[wiki:devel:git|Гит]] --- получение кода и работа с «Гитом»((Система управления версиями (англ. VCS) для разработки «Докувики».))
- [[wiki:devel:github|Работа с Git-хабом. Pull запросы]]
- [[wiki:devel:coding_style|Стиль написания кода]]
- Установка редактора
- [[wiki:devel:VIM]]
- [[wiki:devel:IntelliJ Idea]] (или PHPStorm) {{http://www.jetbrains.com/img/logos/logo_intellij_idea.png?80&nolink}}
- [[wiki:devel:security|Безопасность]]
- [[wiki:devel:unittesting|Тестирование юнитов (частей кода)]]
- [[wiki:devel:patches|Патчи]]
- [[wiki:devel:debugging|Отладка]]
===== Техническая документация =====
FIXME
- [[wiki:devel:overview|Обзор]], рассказывается о том, как отрабатываются запросы страниц
- [[wiki:devel:communication|Взаимодействие]]
- [[wiki:devel:dirlayout|Структура каталогов (директорий)]]
- [[wiki:devel:locking|Блокировка статей]]
- [[wiki:devel:environment|Окружение]] --- глобальные переменные и константы
- [[wiki:devel:action_modes|Режимы действий]]
- [[wiki:devel:parser|Парсер]]
- [[wiki:devel:metadata|Хранение метаданных]]
- [[wiki:devel:fulltextindex|Полнотекстовый индекс]]
- [[wiki:devel:plugins|Плагины]]
- [[wiki:devel:plugin_file_structure|Структура файлов плагина]]
- [[wiki:devel:common_plugin_functions|Основные функции плагинов]]
- [[wiki:devel:action_plugins|Плагины действий]]
* [[wiki:devel:events|event system]]
* [[wiki:devel:event_handlers|event handlers]]
* [[wiki:devel:events_list|events overview]]
* [[wiki:devel:event_handlers_code|Пример 1-й]]
* [[wiki:devel:event_objects|Пример 2-й]]
- [[wiki:devel:Syntax Plugins|Синтаксические плагины]]
- [[wiki:devel:Helper Plugins|]]
- [[wiki:devel:Renderer Plugins|]]
- [[wiki:devel:Admin Plugins|Плагины администрирования]]
- [[wiki:devel:Remote Plugins|]]
- [[wiki:devel:Plugin Unittests|]]
- [[wiki:devel:toolbar|Панель инструментов]]
- [[wiki:devel:plugin_cookbook|Рецепты плагинов]]
- [[wiki:devel:plugin_programming_tips|Советы по программированию плагинов]]
- [[wiki:devel:templates|Шаблоны (темы)]]
- [[wiki:devel:configuration|Конфигурирование]]
- [[wiki:localization|Локализация]]
- [[wiki:devel:CSS|Каскадные таблицы стилей (CSS)]]
- [[wiki:devel:javascript|JavaScript]]
- [[wiki:devel:preload|Предварительная загрузка]]
- Внутренние библиотеки
- [[wiki:devel:utf-8|utf-8 string handling]]
- [[wiki:devel:mail|Отправка электронных писем]]
- [[wiki:devel:compression|Сжатие zip и tgz]]
- [[wiki:devel:httpclient|http client library]]
- [[wiki:devel:simplepie|RSS-парсер]]
- [[wiki:devel:json|Разбор и чтение данных в формате JSON]]
- [[wiki:devel:geshi|Подсветка синтаксиса GeSHi]]
- [[wiki:devel:xmlrpc|XML-RPC]]
- [[wiki:devel:custom webservices]]
- [[wiki:devel:scalability|Масштабируемость]]
- Дополнительные ресурсы
- [[https://codesearch.dokuwiki.org/xref/dokuwiki/|development api reference]]((Ежедневные сборки.))
- [[wiki:devel:snapshot|Ежедневные сборки]]
- [[http://github.com/dokuwiki/dokuwiki|«Докувики» на «Гитхабе»]] --- интерфейс для просмотра исходного кода и патчей.
- [[https://www.ohloh.net/p/dokuwiki/contributors|Зал славы]] --- все авторы «Докувики»
- [[wiki:devel:adoption|Принятие разработки плагина или шаблона на себя]]
===== Организация командной разработки =====
- [[devel:release_process|Процесс формирования релиза и описание его сборки]]
===== Идеи и предложения =====
* Планирование внешнего [[devel:Security Audit|Аудита безопасности]] для DokuWiki
* [[devel:Ideas|Идеи и концепты]] которые могут быть реализованы (новыми) DokuWiki разработчиками
* Планы радикальных [[devel:Template changes|изменений в шаблонах]]
* DokuWiki [[devel:Refactoring|оптимизация кода]]
* [[devel:Farm|Ферма]] - идеи для [[tips:farm|советы:ферма]]
* Некоторые заметки по [[devel:Memory footprint reduction|уменьшению расхода памяти]]
* Разработка темы [[devel:scalability|масштабирования]], [[devel:scalability_proposal|предложения по масштабированию]]
* Разработка темы [[devel:Tagline|таг-строки]] для dokuwiki.org
* **https://www.dokuwiki.org/wiki:development**
* **https://codesearch.dokuwiki.org/**
* **https://xref.dokuwiki.org/reference/dokuwiki/nav.html?index.html**