====== Разработка «Докувики» ====== Вы можете внести свой вклад в <<Докувики>> и присоединиться к её развитию. Степень вашего вклада, конечно же, зависит только от вас (прежде всего вы должны потакать себе). Если вам нужны идеи, чего не хватает в «Докувики», прежде всего вам следует заглянуть на [[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**