Make technical documentstion from data sets
Project description
d2doc
Генерация документации на основании входных файлов с данными и шаблонов выходных документов
Возможности
- Работа в ОС:
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea9567243c3c9a59a75390f3574b9503eadc1f9d27ddfbb4030f6448e30a835
|
|
| MD5 |
01db5a049910bcd97556ac9d55168c43
|
|
| BLAKE2b-256 |
e1cae479bec96c4116c4fbbcf97a680e396fa4fbcdc32d054f40a948146d602e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edd081fd70fac6ecf4d27de55b4154e281d832dbd978187cd92dd0f6bfe036b4
|
|
| MD5 |
389f558a583d09d689101c554a9fd5c3
|
|
| BLAKE2b-256 |
167532e6d8eafe22724072162573990f4401d5c9c26640f5c7868437cc739de3
|