1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-27 21:48:56 +02:00

Автоматизация создания заготовок документации

This commit is contained in:
Anton Titovets 2024-04-23 09:49:27 +03:00
parent df1b908b4f
commit 4ca1c6596f
3 changed files with 105 additions and 9 deletions

View File

@ -11,9 +11,9 @@
Процедура ПриСозданииОбъекта() Процедура ПриСозданииОбъекта()
Расположение = ТекущийКаталог() + "\OInt"; Расположение = ".\OInt";
СПодкаталогами = Истина; СПодкаталогами = Истина;
КаталогДокументации = ТекущийКаталог() + "\docs"; КаталогДокументации = ".\docs";
ПроверитьСоздатьКаталог(КаталогДокументации); ПроверитьСоздатьКаталог(КаталогДокументации);
СоздатьФайлыДокументации(); СоздатьФайлыДокументации();
@ -37,7 +37,7 @@
ТекущийМодуль = Новый ТекстовыйДокумент(); ТекущийМодуль = Новый ТекстовыйДокумент();
ТекущийМодуль.Прочитать(Модуль.ПолноеИмя); ТекущийМодуль.Прочитать(Модуль.ПолноеИмя);
РазобратьМодуль(ТекущийМодуль); РазобратьМодуль(ТекущийМодуль, Модуль.ИмяБезРасширения);
КонецЦикла; КонецЦикла;
@ -45,8 +45,51 @@
Процедура СоздатьСтраницуДокументации(СтруктураМетода) Процедура СоздатьСтраницуДокументации(СтруктураМетода)
ПроверитьСоздатьКаталог(КаталогДокументации + "\" + КаталогДокументации); КаталогБиблиотеки = КаталогДокументации + "\" + СтруктураМетода["Каталог"];
Сообщить(СтруктураМетода); ПроверитьСоздатьКаталог(КаталогБиблиотеки);
ТранслитированноеИмя = ТранслитироватьСтроку(СтруктураМетода["Заголовок"]);
Макет = Новый ТекстовыйДокумент();
Макет.Прочитать(".\.github\workflows\os\template.md", "UTF-8");
Макет = Макет.ПолучитьТекст();
Макет = СтрЗаменить(Макет, "@Заголовок" , СтруктураМетода["Заголовок"]);
Макет = СтрЗаменить(Макет, "@Описание" , СтруктураМетода["Описание"]);
Макет = СтрЗаменить(Макет, "@Объявление" , СтруктураМетода["Объявление"]);
Макет = СтрЗаменить(Макет, "@ВозвращаемоеЗначение", СтруктураМетода["ВозвращаемоеЗначение"]);
Макет = СтрЗаменить(Макет, "@ВозвращаемоеЗначение", СтруктураМетода["ВозвращаемоеЗначение"]);
ТаблицаПараметров = "";
Вызов1С = СтруктураМетода["ИмяМодуля"] + "." + СтруктураМетода["ИмяМетода"] + "(";
ВызовCLI = "oint " + СтруктураМетода["Команда"];
Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл
ТаблицаПараметров = ТаблицаПараметров + " | "
+ ПараметрМетода.Имя + " | "
+ ПараметрМетода.Опция + " | "
+ ПараметрМетода.Типы + " | "
+ ПараметрМетода.Описание + " |"
+ Символы.ПС;
Вызов1С = Вызов1С + ПараметрМетода.Имя + ", ";
ВызовCLI = ВызовCLI + " " + ПараметрМетода.Опция + " ";
ВызовCLI = ВызовCLI + "%" + СтрЗаменить(ПараметрМетода.Опция, "-", "") + "%";
КонецЦикла;
Вызов1С = Лев(Вызов1С, СтрДлина(Вызов1С) - 2);
Вызов1С = Вызов1С + ");";
Макет = СтрЗаменить(Макет, "@Вызов1С" , Вызов1С);
Макет = СтрЗаменить(Макет, "@ВызовCLI" , ВызовCLI);
Макет = СтрЗаменить(Макет, "@ТаблицаПараметров", ТаблицаПараметров);
НовыйДокумент = Новый ТекстовыйДокумент();
НовыйДокумент.УстановитьТекст(Макет);
НовыйДокумент.Записать(КаталогБиблиотеки + "\" + ТранслитированноеИмя + ".md");
КонецПроцедуры КонецПроцедуры
@ -54,10 +97,11 @@
#Область РазборМодуля #Область РазборМодуля
Процедура РазобратьМодуль(ТекущийМодуль) Процедура РазобратьМодуль(ТекущийМодуль, ИмяМодуля)
ТекстМодуля = ТекущийМодуль.ПолучитьТекст(); ТекстМодуля = ТекущийМодуль.ПолучитьТекст();
СтруктураОбщихДанных = Новый Структура(); СтруктураОбщихДанных = Новый Структура();
СтруктураОбщихДанных.Вставить("ИмяМодуля", ИмяМодуля);
ПолучитьДанныеМодуля(СтруктураОбщихДанных, ТекущийМодуль); ПолучитьДанныеМодуля(СтруктураОбщихДанных, ТекущийМодуль);
@ -126,6 +170,7 @@
СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, СтруктураДанных); СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, СтруктураДанных);
СформироватьМассивОписанийПараметров(МассивПараметров, Метод, МассивОписанийПараметров); СформироватьМассивОписанийПараметров(МассивПараметров, Метод, МассивОписанийПараметров);
СтруктураДанных.Вставить("ИмяМетода" , Метод.Сигнатура.Имя);
СтруктураДанных.Вставить("Объявление", Объявление); СтруктураДанных.Вставить("Объявление", Объявление);
СтруктураДанных.Вставить("Параметры" , МассивОписанийПараметров); СтруктураДанных.Вставить("Параметры" , МассивОписанийПараметров);
@ -190,6 +235,7 @@
ЗаписыватьОписание = Ложь; ЗаписыватьОписание = Ложь;
ИначеЕсли СтрНайти(СтрокаКомментария, "Возвращаемое значение:") > 0 Тогда ИначеЕсли СтрНайти(СтрокаКомментария, "Возвращаемое значение:") > 0 Тогда
СтруктураДанных.Вставить("ВозвращаемоеЗначение", МассивКомментария[Счетчик]);
Прервать; Прервать;
ИначеЕсли ЗаписыватьПараметры = Истина ИначеЕсли ЗаписыватьПараметры = Истина
@ -254,7 +300,7 @@
Каталог = Новый Файл(Путь); Каталог = Новый Файл(Путь);
Если Не Каталог.Существует() Тогда Если Не Каталог.Существует() Тогда
СоздатьКаталог(Каталог); СоздатьКаталог(Путь);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@ -285,6 +331,55 @@
КонецФункции КонецФункции
Функция ТранслитироватьСтроку(Знач Значение)
Значение = нРег(Значение);
Транслитация = Новый Соответствие();
Транслитация.Вставить("а", "a");
Транслитация.Вставить("б", "b");
Транслитация.Вставить("в", "v");
Транслитация.Вставить("г", "g");
Транслитация.Вставить("д", "d");
Транслитация.Вставить("е", "e");
Транслитация.Вставить("ё", "e");
Транслитация.Вставить("ж", "zh");
Транслитация.Вставить("з", "z");
Транслитация.Вставить("и", "i");
Транслитация.Вставить("й", "y");
Транслитация.Вставить("к", "k");
Транслитация.Вставить("л", "l");
Транслитация.Вставить("м", "m");
Транслитация.Вставить("н", "n");
Транслитация.Вставить("о", "o");
Транслитация.Вставить("п", "p");
Транслитация.Вставить("р", "r");
Транслитация.Вставить("с", "s");
Транслитация.Вставить("т", "t");
Транслитация.Вставить("у", "u");
Транслитация.Вставить("ф", "f");
Транслитация.Вставить("х", "h");
Транслитация.Вставить("ц", "ts");
Транслитация.Вставить("ч", "ch");
Транслитация.Вставить("ш", "sh");
Транслитация.Вставить("щ", "sch");
Транслитация.Вставить("ъ", "");
Транслитация.Вставить("ы", "y");
Транслитация.Вставить("ь", "");
Транслитация.Вставить("э", "e");
Транслитация.Вставить("ю", "u");
Транслитация.Вставить("я", "ya");
Транслитация.Вставить(" ", "-");
Для Каждого ЗаменяемыйСимвол Из Транслитация Цикл
Значение = СтрЗаменить(Значение, ЗаменяемыйСимвол.Ключ, ЗаменяемыйСимвол.Значение);
КонецЦикла;
Значение = ВРег(Лев(Значение,1)) + Сред(Значение,2);
Возврат Значение;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

View File

@ -1,5 +1,5 @@
--- ---
sidebar_position: @Позиция sidebar_position:
--- ---
# @Заголовок # @Заголовок
@ -10,7 +10,7 @@ sidebar_position: @Позиция
| Параметр | CLI опция | Тип | Назначение | | Параметр | CLI опция | Тип | Назначение |
|-|-|-|-| |-|-|-|-|
@ТаблицаПараметров @ТаблицаПараметров
Вовзращаемое значение: @ВозвращаемоеЗначение Вовзращаемое значение: @ВозвращаемоеЗначение

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ OInt/coverage/stat.json
data.json data.json
*.exe *.exe
test.os test.os
/docs