Структура исходных кодов

Если вы еще не скачали исходные коды, то см. раздел Как скачать исходные коды OutWiker.

Файлы и папки, расположенные в корне исходных кодов

Папки

.git
Служебная папка, используемая системой контроля версий git.
build
Эта папка создается при сборке OutWiker под какую-либо операционную систему и при сборке архивов с плагинами. Эта папка не индексируется git.
buildtools
Эта папка содержит Python-скрипты, используемые при сборке OutWiker под различные операционные системы.
doc
Папка с документацией, которую вы сейчас смотрите.
images
Папка с изображениями, которые не используются непосредственно в программе, но могут быть полезными при разработке. Например, логотипы OutWiker разных размеров и в разных форматах.
need_for_build
Папка с файлами, которые не являются Python-скриптами, но необходимы для сборки под различные операционные системы.
plugins
Папка с исходными кодами всех плагинов, которые прилагаются к программе OutWiker.
profiles
Файлы, используемые для измерения скорости работы программы OutWiker и отдельных ее частей.
src
Самая главная папка, которая содержит исходные коды OutWiker и тестов.
test
Папка содержит файлы, используемые в тестах.

Файлы

copyright.txt и LICENSE.txt
Файл с описанием лицензии, под которой распространяется программа (GPL 3) и текст лицензии GPL 3.
fabfile.py
Файл для библиотеки fabric. Этот файл нужен для выполнения действий, связанных со сборкой программы под разные операционные системы, запуска тестов, обновления локализаций, выкладывания новых версий программы и плагинов на сайт. По сути это единая «точка входа» для многих действий, которые нужно делать при разработке. Также этот файл заменяет собой Makefile. Подробнее о том, что можно делать через этот файл см. в разделе Выполнение команд Fabric.
outwiker_setup.iss
Скрипт, описывающий создание инсталятора под Windows с помощью инструмента Inno Setup.
README
Краткое описание программы. Используется при сборке deb-пакета (см. раздел Сборка под Linux).
readme.md
Более подробное описание программы, которое показывается в качестве описания проекта на сайте github
Pipfile
Файл в формате Pipfile, в котором указаны Python-библиотеки, необходимые для запуска OutWiker из исходников и используемые для разработки. Этот файл используется для установки требуемых библиотек с помощью pipenv. Подробнее см. в разделе Инструменты, используемые при разработке.
requirements_doc.txt
Файл требуется для сборки документации на сервере readthedocs. В данный момент этот файл пустой.
Файлы test_build_*.py
Файлы тестов системы сборки. Подробнее см. в разделе Тестирование OutWiker.
.gitignore
Файл с описанием файлов и папок, которые не должны попадать в репозиторий исходных кодов (файлы и папки, создаваемые в процессе работы).

Содержимое папки src

../../_images/src_struct.png
help
Папка содержит справку по программе на данный момент на двух языках - на русском и на английском.
iconset
Папка содержит значки, которые можно установить для страниц заметок в диалоге свойств страницы. Значки могут загружаться не только из этой папки, но и из пользовательских папок со значками. Эта папка содержит вложенные папки, соответствующие группам значков.
../../_images/page_icons.png
images
Папка содержит все картинки, которые встречаются в программе (иконки программы и картинки на кнопках). Все иконки взяты из свободно распространяемых коллекций, взятых с сайтов famfamfam, yusukekamiyamane и fatcow.
locale
Содержит локализации программы OutWiker. Сюда не входят локализации плагинов, они рсположены в папке каждого плагина. Для локализации используется технология gettext.
outwiker
Самая главная папка с исходниками. Именно там содержатся основные классы программы.
plugins
Пустая папка, предназначенная для хранения плагинов, если OutWiker запускается в портабельном режиме.
profiles
Папка содержит вспомогательный скрипт для измерения скорости википарсера. ЗАпуск измерения скорости осуществляется с помощью скрипта profile.py, расположенного в корне папки src.
spell
Папка содержит встроенные словари для проверки орфографии. К программе прилагаются словари для английского, русского и украинского языков, причем для русского языка есть два словаря: с буквой «Ё» и без нее. Сюда же входит файл html.dic - словарь со списком HTML-тегов.
styles
Папка содержит стили страниц.
test
Папка содержит скрипты с unit-тестами.

Кроме того, папка src содержит следующие файлы:

versions.xml
Файл содержит список изменений в каждой версии OutWiker на русском и английском языке. Этот также файл используется для определения текущей версии программы. Подробнее см. раздел Хранение номеров версий в OutWiker и плагинах (не написано).
Файлы tests_*.py
Эти файлы предназначены для запуска групп тестов. Подробности см. в Тестирование OutWiker.
runoutwiker.py
Основной файл, запускающий OutWiker.

Структура папки src/outwiker

Папка src/outwiker представляет собой Python-пакет (содержит файл __init__.py), в который вложены следующие пакеты:

../../_images/src_outwiker_struct.png
actions
Эта папка содержит так называемые actions - классы, которые привязываются к элементам меню или к кнопкам на панелях инструментов. Все действия, производимые через интерфейс программы работают через actions, что позволяет настраивать горячие клавиши. Подробности см. в Actions (не написано)
core
Базовые элементы OutWiker. Здесь содержатся классы, по возможности отделенные от интерфейса программы, например, классы, отвечающие за работу с деревом заметок (файл tree.py), классы для чтения файлов настроек (config.py), классы для работы с плагинами (pluginsloader.py и pluginbase.py) и другие.
gui
В этой папке расположены классы, отвечающие за интерфейс программы. Например, класс главного окна содержится в файле mainwindow.py.
libs
Эта папка содержит сторонние библиотеки. В данный момент там содержится единственная библиотека - pyparsing, используемая для разбора викинотации.
pages
Эта папка содержит пакеты, отвечающие за создание страниц различных типов. В ней содержатся пакеты text для работы с простыми текстовыми страницами, html для работы с HTML-страницами, wiki для работы с викистраницами и search для работы со страницей глобального поиска.
utilites
Эта папка содержит скрипты, которые могут быть полезны не только внутри движка OutWiker, но и вне его, например, в системе сборки.