Skip to main content

Make technical documentstion from data sets

Project description

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. 
Имена вложенных каталогов и имена файлов встраиваются в выходную структуру. 
Точка (.) в именах файлов (включая расширение файла) и каталогов заменяется на _

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

d2doc-0.9.2.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

d2doc-0.9.2-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file d2doc-0.9.2.tar.gz.

File metadata

  • Download URL: d2doc-0.9.2.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for d2doc-0.9.2.tar.gz
Algorithm Hash digest
SHA256 e445a4fad1935cf76bd5751e6f04ff66e2d0233a5a52d65488acd6387ec9a22a
MD5 bda16a9228882d9f2f85310adc8545ab
BLAKE2b-256 bb96f2827d7c63b218f9f0448e6e76145bcc9a9073b39372d730e38190db1c58

See more details on using hashes here.

File details

Details for the file d2doc-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: d2doc-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for d2doc-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d2e7235726c623de213d83155f6afba36df5cf6d931e1e57f052d8329c87b8be
MD5 4c642494b5c9cd12549e799688597f57
BLAKE2b-256 a80a235d1b81936975314eba6b33c6847b51b753cd7faa7444917236ca7d3108

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page