.. _ru_sources_struct: Структура исходных кодов ======================== Если вы еще не скачали исходные коды, то см. раздел :ref:`ru_sources_get`. Файлы и папки, расположенные в корне исходных кодов --------------------------------------------------- Папки ~~~~~ src Самая главная папка, которая содержит исходные коды OutWiker и тестов. tests Папка содержит unit-тесты, запускаемые с помощью pytest_. Подробнее см. в разделе :ref:`ru_test`. buildtools Эта папка содержит Python-скрипты, используемые при сборке OutWiker под различные операционные системы. doc Папка с документацией, которую вы сейчас смотрите. images Папка с изображениями, которые не используются непосредственно в программе, но могут быть полезными при разработке. Например, логотипы OutWiker разных размеров и в разных форматах. need_for_build Папка с файлами, которые не являются Python-скриптами, но необходимы для сборки под различные операционные системы. plugins Папка с исходными кодами всех плагинов, которые прилагаются к программе OutWiker. profiles Файлы, используемые для измерения скорости работы программы OutWiker и отдельных ее частей. testdata Папка содержит файлы, используемые в тестах. build Эта папка создается при сборке OutWiker под какую-либо операционную систему и при сборке архивов с плагинами. Эта папка не индексируется git. Файлы ~~~~~ copyright.txt и LICENSE.txt Файл с описанием лицензии, под которой распространяется программа (GPL 3) и текст лицензии GPL 3. fabfile.py Файл для библиотеки fabric_. Этот файл нужен для выполнения действий, связанных со сборкой программы под разные операционные системы, запуска тестов, обновления локализаций, выкладывания новых версий программы и плагинов на сайт. По сути это единая "точка входа" для многих действий, которые нужно делать при разработке. Также этот файл заменяет собой Makefile. Подробнее о том, что можно делать через этот файл см. в разделе :ref:`ru_invoke`. runtests.py Скрипт, предназначенный для запуска тестов. setup.py Скрипт для создания пакета `outwiker`, чтобы приложение можно было тестировать с помощью unit-тестов. README Краткое описание программы. readme.md Более подробное описание программы, которое показывается в качестве описания проекта на сайте `github `_ Pipfile Файл в формате Pipfile_, в котором указаны Python-библиотеки, необходимые для запуска OutWiker из исходников и используемые для разработки. Этот файл используется для установки требуемых библиотек с помощью pipenv_. Подробнее см. в разделе :ref:`tools`. requirements_doc.txt Файл требуется для сборки документации на сервере readthedocs_. В данный момент этот файл пустой. appveyor.yml Параметры для сервера непрерывного развертывания `Appveyor `_. .travis.yml Параметры для серверанепрерывного развертывания `Travis `_. Makefile Скрипт для программы make. Используется для сборки snap-пакета для размещения файлов OutWiker на диске во время установки. Содержимое папки src -------------------- .. image:: /_static/src_struct.png help Папка содержит справку по программе на данный момент на двух языках - на русском и на английском. iconset Папка содержит значки, которые можно установить для страниц заметок в диалоге свойств страницы. Значки могут загружаться не только из этой папки, но и из пользовательских папок со значками. Эта папка содержит вложенные папки, соответствующие группам значков. .. image:: /_static/page_icons.png images Папка содержит все картинки, которые встречаются в программе (иконки программы и картинки на кнопках). Все иконки взяты из свободно распространяемых коллекций, взятых с сайтов famfamfam_, yusukekamiyamane_ и fatcow_. locale Содержит локализации программы OutWiker. Сюда не входят локализации плагинов, они рсположены в папке каждого плагина. Для локализации используется технология gettext_. outwiker Самая главная папка с исходниками. Именно там содержатся основные классы программы. plugins Пустая папка, предназначенная для хранения плагинов, если OutWiker запускается в портабельном режиме. spell Папка содержит встроенные словари для проверки орфографии. К программе прилагаются словари для английского, русского и украинского языков, причем для русского языка есть два словаря: с буквой "Ё" и без нее. Сюда же входит файл :file:`html.dic` - словарь со списком HTML-тегов. styles Папка содержит стили страниц. Кроме того, папка :file:`src` содержит следующие файлы: runoutwiker.py Основной файл, запускающий OutWiker. .. _ru_sources_struct_src: Структура папки src/outwiker ---------------------------- Папка src/outwiker представляет собой Python-пакет (содержит файл :file:`__init__.py`), в который вложены следующие пакеты: .. image:: /_static/src_outwiker_struct.png actions Эта папка содержит так называемые actions - классы, которые привязываются к элементам меню или к кнопкам на панелях инструментов. Все действия, производимые через интерфейс программы работают через actions, что позволяет настраивать горячие клавиши. Подробности см. в :ref:`ru_outwiker_actions` core Базовые элементы OutWiker. Здесь содержатся классы, по возможности отделенные от интерфейса программы, например, классы, отвечающие за работу с деревом заметок (файл :file:`tree.py`), классы для чтения файлов настроек (:file:`config.py`), классы для работы с плагинами (:file:`pluginsloader.py` и :file:`pluginbase.py`) и другие. gui В этой папке расположены классы, отвечающие за интерфейс программы. Например, класс главного окна содержится в файле :file:`mainwindow.py`. pages Эта папка содержит пакеты, отвечающие за создание страниц различных типов. В ней содержатся пакеты :file:`text` для работы с простыми текстовыми страницами, :file:`html` для работы с HTML-страницами, :file:`wiki` для работы с викистраницами и :file:`search` для работы со страницей глобального поиска. utilites Эта папка содержит скрипты, которые могут быть полезны не только внутри движка OutWiker, но и вне его, например, в системе сборки. .. _git: https://git-scm.com/ .. _fabric: http://www.fabfile.org/ .. _famfamfam: http://www.famfamfam.com/lab/icons/silk/ .. _yusukekamiyamane: http://p.yusukekamiyamane.com/ .. _fatcow: http://www.fatcow.com/free-icons .. _gettext: http://ru.wikipedia.org/wiki/Gettext .. _pyparsing: http://pyparsing.wikispaces.com/ .. _Pipfile: https://github.com/pypa/pipfile/ .. _pipenv: https://docs.pipenv.org/ .. _readthedocs: http://readthedocs.io/ .. _pytest: https://docs.pytest.org/en/stable/