mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-11-24 08:52:18 +02:00
Автоматизация создания документации
This commit is contained in:
parent
ae2ef53f89
commit
9c65223dcd
60
.github/workflows/os/oint_docs.os
vendored
60
.github/workflows/os/oint_docs.os
vendored
@ -1,19 +1,19 @@
|
||||
#Использовать osparser
|
||||
#Использовать cmdline
|
||||
|
||||
Перем СоответствиеМодулейКоманд;
|
||||
Перем ТекущийМодуль;
|
||||
Перем МассивРасположенийМодулей;
|
||||
Перем Парсер;
|
||||
Перем Расположение;
|
||||
Перем СПодкаталогами;
|
||||
Перем КаталогДокументации;
|
||||
Перем СписокОбластей;
|
||||
|
||||
Процедура ПриСозданииОбъекта()
|
||||
|
||||
Расположение = ".\OInt";
|
||||
СПодкаталогами = Истина;
|
||||
КаталогДокументации = ".\docs";
|
||||
СписокОбластей = Новый СписокЗначений();
|
||||
|
||||
ПроверитьСоздатьКаталог(КаталогДокументации);
|
||||
СоздатьФайлыДокументации();
|
||||
@ -45,10 +45,14 @@
|
||||
|
||||
Процедура СоздатьСтраницуДокументации(СтруктураМетода)
|
||||
|
||||
КаталогБиблиотеки = КаталогДокументации + "\" + СтруктураМетода["Каталог"];
|
||||
ПроверитьСоздатьКаталог(КаталогБиблиотеки);
|
||||
ТранслитированноеИмя = ТранслитироватьСтроку(СтруктураМетода["Заголовок"]);
|
||||
СинонимОбласти = Синонимайзер(СтруктураМетода["Область"]);
|
||||
ТранслитированнаяОбласть = ТранслитироватьСтроку(СинонимОбласти);
|
||||
|
||||
ТранслитированноеИмя = ТранслитироватьСтроку(СтруктураМетода["Заголовок"]);
|
||||
КаталогБиблиотеки = КаталогДокументации + "\" + СтруктураМетода["Каталог"];
|
||||
КаталогОбласти = КаталогБиблиотеки + "\" + ТранслитированнаяОбласть;
|
||||
ПроверитьСоздатьКаталог(КаталогБиблиотеки);
|
||||
ПроверитьСоздатьКаталог(КаталогОбласти);
|
||||
|
||||
Макет = Новый ТекстовыйДокумент();
|
||||
Макет.Прочитать(".\.github\workflows\os\template.md", "UTF-8");
|
||||
@ -89,7 +93,7 @@
|
||||
|
||||
НовыйДокумент = Новый ТекстовыйДокумент();
|
||||
НовыйДокумент.УстановитьТекст(Макет);
|
||||
НовыйДокумент.Записать(КаталогБиблиотеки + "\" + ТранслитированноеИмя + ".md");
|
||||
НовыйДокумент.Записать(КаталогОбласти + "\" + ТранслитированноеИмя + ".md");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -118,8 +122,14 @@
|
||||
РазобратьМетод(ТекущийМодуль, Метод, СтруктураОбщихДанных);
|
||||
КонецЕсли;
|
||||
|
||||
Если Метод.Тип = "ИнструкцияПрепроцессораОбласть" Тогда
|
||||
СписокОбластей.Добавить(Метод.Начало.НомерСтроки, Метод.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СписокОбластей.СортироватьПоЗначению();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПолучитьДанныеМодуля(СтруктураОбщихДанных, ТекущийМодуль)
|
||||
@ -157,8 +167,25 @@
|
||||
|
||||
НомерСтроки = Метод.Начало.НомерСтроки;
|
||||
ИмяМетода = Метод.Сигнатура.Имя;
|
||||
Объявление = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки);
|
||||
Объявление = "";
|
||||
|
||||
Для Н = НомерСтроки По Метод.Конец.НомерСтроки Цикл
|
||||
|
||||
Часть = СокрЛП(ТекстовыйДокумент.ПолучитьСтроку(Н));
|
||||
Объявление = Объявление + Часть;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Часть) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Область Из СписокОбластей Цикл
|
||||
Если НомерСтроки > Область.Значение Тогда
|
||||
СтруктураДанных.Вставить("Область", Область.Представление);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
МассивКомментария = ПарсингКомментария(ТекстовыйДокумент, НомерСтроки, СтруктураДанных);
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивОписанийПараметров = Новый Массив;
|
||||
@ -170,7 +197,7 @@
|
||||
СформироватьСтруктуруМетода(МассивКомментария, МассивПараметров, СтруктураДанных);
|
||||
СформироватьМассивОписанийПараметров(МассивПараметров, Метод, МассивОписанийПараметров);
|
||||
|
||||
СтруктураДанных.Вставить("ИмяМетода" , Метод.Сигнатура.Имя);
|
||||
СтруктураДанных.Вставить("ИмяМетода" , ИмяМетода);
|
||||
СтруктураДанных.Вставить("Объявление", Объявление);
|
||||
СтруктураДанных.Вставить("Параметры" , МассивОписанийПараметров);
|
||||
|
||||
@ -380,6 +407,23 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Синонимайзер(Имя) Экспорт
|
||||
|
||||
Ответ = "";
|
||||
Стэйт = 7;
|
||||
б = "";
|
||||
|
||||
Для ё = 1 По СтрДлина(Имя) Цикл
|
||||
а = Сред(Имя, ё, 1);
|
||||
Стэйт = (НРег(а) <> а) * 4 + Цел(Стэйт / 2);
|
||||
Ответ = Ответ + ?(Стэйт = 2, НРег(б), ?(ё = 2, ВРег(б), б)) + ?(Стэйт = 4 ИЛИ Стэйт = 5, " ", "");
|
||||
б = а
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ответ + б
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user