From 9c65223dcd7799428b6f1b057eaa1f6c3e3937ab Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Tue, 23 Apr 2024 11:54:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=D0=BE=D0=B7=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/os/oint_docs.os | 60 ++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/.github/workflows/os/oint_docs.os b/.github/workflows/os/oint_docs.os index 7aea77ee0..b12576dba 100644 --- a/.github/workflows/os/oint_docs.os +++ b/.github/workflows/os/oint_docs.os @@ -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, " ", ""); + б = а + КонецЦикла; + + Возврат Ответ + б + + КонецФункции + #КонецОбласти #КонецОбласти