Skip to main content

Make technical documentstion from data sets

Project description

d2doc

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

Build Status Quality Gate Status

Возможности

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

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

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

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

Usage: d2doc.py [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.py 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.py 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.py 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.1.tar.gz (12.2 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.1-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: d2doc-0.9.1.tar.gz
  • Upload date:
  • Size: 12.2 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.1.tar.gz
Algorithm Hash digest
SHA256 6ea9567243c3c9a59a75390f3574b9503eadc1f9d27ddfbb4030f6448e30a835
MD5 01db5a049910bcd97556ac9d55168c43
BLAKE2b-256 e1cae479bec96c4116c4fbbcf97a680e396fa4fbcdc32d054f40a948146d602e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: d2doc-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 23.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 edd081fd70fac6ecf4d27de55b4154e281d832dbd978187cd92dd0f6bfe036b4
MD5 389f558a583d09d689101c554a9fd5c3
BLAKE2b-256 167532e6d8eafe22724072162573990f4401d5c9c26640f5c7868437cc739de3

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