mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-12 04:34:10 +02:00
Автоматизация создания документации (в процессе)
This commit is contained in:
parent
10c6b5ebea
commit
94a0264329
158
.github/workflows/os/oint_docs.os
vendored
158
.github/workflows/os/oint_docs.os
vendored
@ -20,15 +20,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьСоздатьКаталог(Путь)
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Каталог = Новый Файл(Путь);
|
||||
|
||||
Если Не Каталог.Существует() Тогда
|
||||
СоздатьКаталог(Каталог);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
#Область ФормированиеДокументации
|
||||
|
||||
Процедура СоздатьФайлыДокументации()
|
||||
|
||||
@ -49,6 +43,17 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьСтраницуДокументации(СтруктураМетода)
|
||||
|
||||
ПроверитьСоздатьКаталог(КаталогДокументации + "\" + КаталогДокументации);
|
||||
Сообщить(СтруктураМетода);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РазборМодуля
|
||||
|
||||
Процедура РазобратьМодуль(ТекущийМодуль)
|
||||
|
||||
ТекстМодуля = ТекущийМодуль.ПолучитьТекст();
|
||||
@ -100,19 +105,31 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РазборМетода
|
||||
|
||||
Процедура РазобратьМетод(ТекстовыйДокумент, Метод, СтруктураДанных)
|
||||
|
||||
НомерСтроки = Метод.Начало.НомерСтроки;
|
||||
ИмяМетода = Метод.Сигнатура.Имя;
|
||||
Объявление = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки);
|
||||
|
||||
МассивКомментария = ПарсингКомментария(ТекстовыйДокумент, НомерСтроки, СтруктураДанных);
|
||||
МассивКомментария = ПарсингКомментария(ТекстовыйДокумент, НомерСтроки, СтруктураДанных);
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивОписанийПараметров = Новый Массив;
|
||||
|
||||
Если МассивКомментария.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, СтруктураДанных);
|
||||
СформироватьМассивОписанийПараметров(МассивПараметров, Метод, МассивОписанийПараметров);
|
||||
|
||||
СтруктураДанных.Вставить("Объявление", Объявление);
|
||||
СтруктураДанных.Вставить("Параметры" , МассивОписанийПараметров);
|
||||
|
||||
СоздатьСтраницуДокументации(СтруктураДанных);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -149,4 +166,127 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СформироватьСтруктуруМетода(Знач МассивКомментария, МассивПараметров, СтруктураДанных)
|
||||
|
||||
ОписаниеМетода = "";
|
||||
ЗаписыватьПараметры = Ложь;
|
||||
ЗаписыватьОписание = Истина;
|
||||
|
||||
Счетчик = 0;
|
||||
Для Каждого СтрокаКомментария Из МассивКомментария Цикл
|
||||
|
||||
Счетчик = Счетчик + 1;
|
||||
|
||||
Если Не ЗначениеЗаполнено(СокрЛП(СтрокаКомментария)) Тогда
|
||||
ЗаписыватьОписание = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗаписыватьОписание = Истина И Счетчик > 1 Тогда
|
||||
ОписаниеМетода = СокрЛП(ОписаниеМетода) + " " + СокрЛП(СтрокаКомментария);
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(СтрокаКомментария, "Параметры:") > 0 Тогда
|
||||
ЗаписыватьПараметры = Истина;
|
||||
ЗаписыватьОписание = Ложь;
|
||||
|
||||
ИначеЕсли СтрНайти(СтрокаКомментария, "Возвращаемое значение:") > 0 Тогда
|
||||
Прервать;
|
||||
|
||||
ИначеЕсли ЗаписыватьПараметры = Истина
|
||||
И ЗначениеЗаполнено(СокрЛП(СтрокаКомментария))
|
||||
И Не СтрНачинаетсяС(СокрЛП(СтрокаКомментария), "*") = 0 Тогда
|
||||
|
||||
МассивПараметров.Добавить(СтрокаКомментария);
|
||||
|
||||
Иначе
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СтруктураДанных.Вставить("Описание" , ОписаниеМетода);
|
||||
СтруктураДанных.Вставить("Заголовок", СокрЛП(МассивКомментария[0]));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СформироватьМассивОписанийПараметров(Знач МассивПараметров, Знач Метод, МассивОписанийПараметров)
|
||||
|
||||
Разделитель = "-";
|
||||
|
||||
Для Каждого ПараметрМетода Из МассивПараметров Цикл
|
||||
|
||||
МассивЭлементовПараметра = СтрРазделить(ПараметрМетода, Разделитель, Ложь);
|
||||
КоличествоЭлементов = МассивЭлементовПараметра.Количество();
|
||||
|
||||
Для Н = 0 По МассивЭлементовПараметра.ВГраница() Цикл
|
||||
МассивЭлементовПараметра[Н] = СокрЛП(МассивЭлементовПараметра[Н]);
|
||||
КонецЦикла;
|
||||
|
||||
Если КоличествоЭлементов < 4 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Имя1С = МассивЭлементовПараметра[0];
|
||||
Имя = "--" + МассивЭлементовПараметра[3];
|
||||
Типы = МассивЭлементовПараметра[1];
|
||||
Описание = ?(КоличествоЭлементов >= 5, МассивЭлементовПараметра[4], МассивЭлементовПараметра[2]);
|
||||
|
||||
|
||||
СтруктураПараметра = Новый Структура;
|
||||
СтруктураПараметра.Вставить("Имя" , Имя1С);
|
||||
СтруктураПараметра.Вставить("Опция" , Имя);
|
||||
СтруктураПараметра.Вставить("Типы" , Типы);
|
||||
СтруктураПараметра.Вставить("Описание" , Описание);
|
||||
СтруктураПараметра.Вставить("ЗначениеПоУмолчанию", ПолучитьЗначениеПараметраПоУмолчанию(Имя1С, Метод));
|
||||
|
||||
МассивОписанийПараметров.Добавить(СтруктураПараметра);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Инструменты
|
||||
|
||||
Процедура ПроверитьСоздатьКаталог(Путь)
|
||||
|
||||
Каталог = Новый Файл(Путь);
|
||||
|
||||
Если Не Каталог.Существует() Тогда
|
||||
СоздатьКаталог(Каталог);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗначениеПараметраПоУмолчанию(Знач Имя, Знач Метод)
|
||||
|
||||
Значение = "";
|
||||
|
||||
Для Каждого ПараметрМетода Из Метод.Сигнатура.Параметры Цикл
|
||||
|
||||
Если ПараметрМетода.Имя = Имя Тогда
|
||||
|
||||
ЗначениеПараметра = ПараметрМетода.Значение;
|
||||
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
Попытка
|
||||
Значение = ЗначениеПараметра["Элементы"][0]["Значение"];
|
||||
Исключение
|
||||
Значение = ЗначениеПараметра.Значение;
|
||||
КонецПопытки;
|
||||
Значение = ?(ЗначениеЗаполнено(Значение), Значение, "Пустое значение");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
ПриСозданииОбъекта();
|
35
.github/workflows/os/template.md
vendored
Normal file
35
.github/workflows/os/template.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
sidebar_position: @Позиция
|
||||
---
|
||||
|
||||
# @Заголовок
|
||||
@Описание
|
||||
|
||||
|
||||
*@Объявление*
|
||||
|
||||
| Параметр | CLI опция | Тип | Назначение |
|
||||
|-|-|-|-|
|
||||
@ТаблицаПараметров
|
||||
|
||||
Вовзращаемое значение: @ВозвращаемоеЗначение
|
||||
|
||||
```bsl title="Пример кода"
|
||||
|
||||
|
||||
Ответ = @Вызов1С //Соответствие
|
||||
Ответ = OPI_Инструменты.JSONСтрокой(Ответ);//JSON строка
|
||||
|
||||
```
|
||||
|
||||
```sh title="Пример команд CLI"
|
||||
|
||||
@ВызовCLI
|
||||
|
||||
```
|
||||
|
||||
|
||||
```json title="Результат"
|
||||
|
||||
|
||||
```
|
Loading…
Reference in New Issue
Block a user