Skip to main content

d2doc

Генерация документации на основании входных файлов с данными и шаблонов выходных документов

Build Status Quality Gate Status Coverage

Возможности

  • Работа в ОС: Linux, Mac OS X, Windows;
  • Формат шаблонов jinja2;
  • Формат файлов входных данных xml,json,yaml,bsl.
  • Статика

Установка и обновление

  • Установить Python версии не ниже 3.6;
  • Установить пакет d2doc из PyPI командой:
    pip install d2doc
    
  • Для обновления пакета необходимо воспользоваться командой:
    pip install -U d2doc
    

Использование скрипта

Usage: d2doc [OPTIONS] COMMAND [ARGS]...

Options:
  --log-level TEXT  Log level [CRITICAL, FATAL, ERROR, WARNING, DEBUG, INFO,
                    NOTSET]                 
  --help            Show this message and exit.

Commands:
  build

Использование команды build

Usage: d2doc build [OPTIONS]

Options:
  -t, --templates PATH        Path to template files.
  -s, --start-templates TEXT  Root templates separated by comma.
  -f, --data-file FILE        Input data file (Global for all templates).
  -d, --data-dir PATH         Input data dir (Global for all templates).
  -m, --data-dir-mask TEXT    Files mask for option '--data-dir-mask'.
  -o, --output-dir PATH       Output dir for documentation.
  --erase-output-dir          Erase output dir befor build.
  --output-format TEXT        File extention for output files.
  --transliterate-urls        Transliterate urls.
  --static PATH               Dir with static files to copy in output (multiple).
  --help                      Show this message and exit.

Пример использования скрипта в Linux

d2doc build \
	--templates './test/test1/templates' \
	--start-templates 'Оглавление' \
	--data-dir './test/test1/data' \
	--data-dir-mask '**/*.json' \
	--output-dir './test/test1/doc' \
  --static './test/test1/static' \
	--erase-output-dir

Пример использования скрипта в Linux c использованием переменных среды

export D2DOC_BUILD_TEMPLATES='./test/test1/templates'
export D2DOC_BUILD_START_TEMPLATES='Оглавление'
export D2DOC_BUILD_DATA_DIR='./test/test1/data'
export D2DOC_BUILD_DATA_DIR_MASK='**/*.json'
export D2DOC_BUILD_OUTPUT_DIR='./test/test1/doc'
export D2DOC_BUILD_STATIC='./test/test1/doc/static'
export D2DOC_LOG_LEVEL='DEBUG'
d2doc build --erase-output-dir

Шаблоны

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

Вспомогательные функции

Функции для использования в шаблонах (плюсом к разнообразию функций jinja2)

tolist

Используется для обработки коллекций из файлов xml в jinja2, когда возможен только один элемент в колекции. Если передан один объект, то возвращается список с этим объектом.

tolist(obj_or_list)
Parameter Requare Description
obj_or_list Да Список произвольных объектов или произвольный объект

Пример:

{% set config_xml = from_file("./configuration.xml") %}
{% set config_props = config_xml.MetaDataObject.Configuration.Properties %}
{% for role in tolist(config_props.DefaultRoles['xr:Item']) %}
    * {{role['#text']}}\\
{% endfor %}

url

Используется для построения внутренних ссылок.

url(url,target_template,data, [other])
Parameter Requare Description
url Да Шаблон ссылки в формате jinja2
target_template Да Имя файла шаблона, по которому должна генерироваться ссылка url
url Да Данные для передачи в шаблон target_template
other Нет Прочие параметры для рендера ссылки по шаблону url

Пример:

[Справочник {{ name }}]({{ url(url = 'sprs/{{ name }}.md', target_template = 'spr.j2', data = spr, name='Users') }})

Результат:
[Справочник Users](sprs/Users.md) 

from_file

Получение данных из файла. Поддерживаемые форматы xml,json,yaml,bsl

from_file(file, format)
Parameter Requare Description Default
file Да Путь к файлу данных
format Нет Формат файла (xml,json,yaml,bsl) Определяется по расширению файла

Пример:

{% set s2 = from_file("./test/test1/data/s2.json") %}
...
далее используем переменную s2

from_dir

Получение данных из каталога с файлами данных. Файлы данных объединяются в единый объект данных в памяти. Поддерживаниемые форматы xml,json,yaml,bsl

from_dir(path, mask)
Parameter Requare Description
path Да Путь к каталогу с файлами данных
mask Да Маска файлов (формат glob).

Пример:

{% set s1 = from_dir("./test/test1/data", '**/*.json') %}
{% set s2 = from_dir("./test/test1/data", '**/*') %}
...
Далее используем переменную s1 и s2. 
Имена вложенных каталогов и имена файлов встраиваются в выходную структуру. 
Точка (.) в именах файлов (включая расширение файла) и каталогов заменяется на _

Release files for d2doc 0.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for d2doc 0.9.2
File Size Uploaded
d2doc-0.9.2.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for d2doc 0.9.2
File Interpreter ABI Platform
d2doc-0.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / d2doc-0.9.2.tar.gz

Download URL d2doc-0.9.2.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e445a4fad1935cf76bd5751e6f04ff66e2d0233a5a52d65488acd6387ec9a22a
BLAKE2b-256 checksum
How to use checksums
bb96f2827d7c63b218f9f0448e6e76145bcc9a9073b39372d730e38190db1c58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

Release files / d2doc-0.9.2-py3-none-any.whl

Download URL d2doc-0.9.2-py3-none-any.whl
Size 24.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2e7235726c623de213d83155f6afba36df5cf6d931e1e57f052d8329c87b8be
BLAKE2b-256 checksum
How to use checksums
a80a235d1b81936975314eba6b33c6847b51b753cd7faa7444917236ca7d3108
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

Release history Release notifications | RSS feed

This release

0.9.2 This release

2 release files

0.9.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page