Документация по использованию

Конвертер markdown в документу docx установленного образца. Поддерживает все возможности GitHub Flavored Markdown.

Макросы

В качестве расширения функционала конвертера библиотекой предусмотрены разные макросы, расширяющие функционал markdown от создания переменных до выполнения кода python. Каждый макрос имеет требуемые права. Список текущих макросов представлен ниже

color

Позволяет поменять цвет текста. Цвет задаётся в формате rgb: `color(255,0,0): Красный текст`, `color(0,255,0): Зелёный текст`

comment

Комментарии которые никак не влияют не рендер документа: `comment: Надо будет булочки украсть`

count_images

count_tables

count_formulas

Выводит количество всех рисунков/таблиц/формул:

Документ включает в себя `count_images` рисунков и `count_tables` таблицы.

formula

Macros permissions: ADD_VARIABLES

formula_describe

formula позволяет генерировать формулы из latex. После этого макроса можно вызывать formula_describe для описания переменных формул


                `formula(число ошибок): N=n\x0crac{S}{v}`
                `formula_describe(n — найденные собственные ошибки, S — всего внесённых ошибок, v — найденные внесённые ошибки)`

                `formula(*число ошибок2): N=2\x0crac{10}{6}=3,(6)`

                `formula(число необнаруженных ошибок): (N-n)=3,6-2=1,6`

                `formula(формула соотношения): p=\x0crac{1,6}{1,6+K+1}=\x0crac{5}{5+0+1}=0,615`
                

highlight_color

Позволяет поменять цвет фона текста. В качестве аргумента можно использовать только константу из python-docx WD_COLOR_INDEX. `highlight_color(YELLOW): Что-то тут не понравилось. а где задача? Где?`

mention

Macros permissions: READ_VARIABLES

Позволяет упомянуть рисунок, таблицу или формулу по её названию. Так как данный макрос срабатывает после генерации всего документа, в него нельзя вставить какие-либо макросы, но он позволяет упомянуть любой рисунок/таблицу/формулу, независимо от позиции


                Упоминание до: `mention: Главный поток данных`
                Неполное упоминание до: `mention: Главный поток`

                ![Главный поток данных](./DFD_Data.png)

                Упоминание после: `mention: Главный поток данных`
                Неполное упоминание после: `mention: Главный поток`
                

print_plain_text

Macros permissions: FILE_READING, PYTHON_EXECUTION

Позволяет выполнить код python, а вывод stdout записать вместо макроса в конечном документе print_plain_text: data_struct_count.py. ВНИМАНИЕ. Данная функция выполняет код python, поэтому в некоторых случаях необходимо ограничить обычных пользователей от этой функции. Выполняется асинхронно (выполняется во время создания docx документа, а результат получается в момент сохранения docx документа).

Структура файлов в примере


                ├── main.md
                ├── counter.py
                

counter.py


                for i in range(0,21):    print(i, end=',')
                

main.md

Считаем от 0 до 20: `print_plain_text: counter.py` круто!

Выполняем рендер. Результат в документе docx (Файл out.docx в той же директории): Считаем от 0 до 20: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, круто!

Result in docx document

set_list_digit

Macros permissions: SETTINGS_CHANGE

set_list_marker

Macros permissions: SETTINGS_CHANGE

Данные два макроса позволяет менять формат нумерованных и маркированных списков в рендере. MGost не использует встроенные в Docx списки, так как существует некоторые проблемы python-docx в их нумерации, поэтому MGost отсчитывает отступы в автоматическом режиме для следования ГОСТу. У обоих функций следующие аргументы:

  1. Символ до текста
  2. Окончание текста (но не последнего в списке!)
  3. Окончание текста последнего в списке

Marked list example with changed parameters

В отличие от set_list_marker, set_list_digit в первому аргументе можно использовать аргумент counter в фигурных скобках

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


                `set_list_marker(—,;,.)`
                `set_list_digit({counter}. ,.,;)`
                

store_var

Macros permissions: ADD_VARIABLES

store_var_return

Macros permissions: ADD_VARIABLES, READ_VARIABLES

var

Macros permissions: READ_VARIABLES

Три данных макроса позволяют создавать и использовать переменные в документе Word. Если у вас какое-то предложение повторяется, его можно сохранить в переменную при первом использовании и повторять в документе далее. В данном случае изменение переменной в одном месте изменит её все использования.

store_var_return


                ### **Аннотация
                В исследовательском разделе `store_var_return(исследовательский_старт): анализируется предметная область, существующие решения, устанавливаются цели, задачи и техническое задание.`
                ...
                # Исследовательский раздел
                В данном разделе `var(исследовательский_старт)`
                

store_var


                ### **Аннотация
                `store_var(исследовательский_старт): анализируется предметная область, существующие решения, устанавливаются цели, задачи и техническое задание.`
                В исследовательском разделе `var(исследовательский_старт)`
                ...
                # Исследовательский раздел
                В данном разделе `var(исследовательский_старт)`
                

table_name

Macros permissions: SETTINGS_CHANGE

Макрос используется перед заданием какой-либо таблицы средствами markdown для её наименования


                `table_name: Типы данных динамического объекта`
                |        Поле       |   Тип   |
                |-------------------|---------|
                | Позиция           | вектор  |
                | Скорость          | вектор  |
                | Поворот           | ротатор |
                | Скорость поворота | вектор  |
                

В случае, если рендер встречает таблицу, но не знает её названия, будет вызвано исключение и рендер остановлен

TODO

Макрос-помощник. При встрече рендера с данным макросом MGost удаляет его из документа, но выводит об этом уведомление в stdout. `TODO: доделать макияж`

Часто задаваемые вопросы

Сколько стоит?

По цене 100₽ можно произвести любое количество рендеров в течение часа. При необходимости оплаты всплывает окно с предложением вариантов оплаты. Также предусмотрен единичный рендер по цене 10₽. Все цены продублированы перед оплатой. Перед оплатой удостоверьтесь в цене и получаемом результате