1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-26 05:37:27 +02:00

Переработка формирования примеров CLI

This commit is contained in:
Anton Titovets 2024-10-15 09:29:55 +03:00
parent e1ea790b40
commit fc289bb4f2
4 changed files with 72 additions and 83 deletions

View File

@ -47,7 +47,7 @@
КаталогЛогов = "./docs/" + Язык + "/results/";
КаталогПримеров = "./docs/" + Язык + "/examples/";
КаталогЗначений = "./docs/" + Язык + "/data/";
КаталогCLI = "./docs/" + Язык + "/cli/";
КаталогCLI = "./docs/" + Язык + "/cli/NEW_CLI/";
СписокОбластей = Новый СписокЗначений();
ТекущаяОбласть = "";
СчетчикОбласти = 0;
@ -163,78 +163,22 @@
ТаблицаПараметров = "";
Вызов1С = ПолучитьВызов1С(СтруктураМетода["ИмяМодуля"], СтруктураМетода["ИмяМетода"]);
ПутьCLI = КаталогCLI + ИмяМодуляБезПрефикса + "/" + СтруктураМетода["ИмяМетода"] + ".txt";
ФайлCLI = Новый Файл(ПутьCLI);
ВызовCLI = "";
Если Не ФайлCLI.Существует() Тогда
КаталогТекущиегоCLI = КаталогCLI + ИмяМодуляБезПрефикса;
ФайлКаталога = Новый Файл(КаталогТекущиегоCLI);
Если Не ФайлКаталога.Существует() Тогда
СоздатьКаталог(КаталогТекущиегоCLI);
ВызовCLI = ПолучитьВызовCLI(ИмяМодуляБезПрефикса, СтруктураМетода);
Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл
Если Не ЗначениеЗаполнено(ПараметрМетода.Опция) Или Не СтруктураМетода["ЕстьCLI"] Тогда
Сообщить("Метод не имеет опции: " + СтруктураМетода["Заголовок"]);
Возврат;
КонецЕсли;
ВызовCLI = "oint " + СтруктураМетода["Команда"] + " " + СтруктураМетода["ИмяМетода"];
Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл
Если Не ЗначениеЗаполнено(ПараметрМетода.Опция) Или Не СтруктураМетода["ЕстьCLI"] Тогда
Сообщить("Метод не имеет опции: " + СтруктураМетода["Заголовок"]);
Возврат;
КонецЕсли;
ТаблицаПараметров = ТаблицаПараметров + " | "
+ ПараметрМетода.Имя + " | "
+ ПараметрМетода.Опция + " | "
+ ПараметрМетода.Типы + " | "
+ ПараметрМетода.Описание + " |"
+ Символы.ПС;
ВызовCLI = ВызовCLI + " " + ПараметрМетода.Опция + " ";
ВызовCLI = ВызовCLI + ОпределитьЗначениеОпции(ПараметрМетода.Опция, СтруктураЗначений[ПараметрМетода.Имя]);
КонецЦикла;
ВызовCLI = СокрЛП(ВызовCLI);
ТекстCLI = Новый ТекстовыйДокумент();
ТекстCLI.УстановитьТекст(ВызовCLI);
ТекстCLI.Записать(ПутьCLI);
Иначе
Для каждого ПараметрМетода Из СтруктураМетода["Параметры"] Цикл
Если Не ЗначениеЗаполнено(ПараметрМетода.Опция) Или Не СтруктураМетода["ЕстьCLI"] Тогда
Сообщить("Метод не имеет опции: " + СтруктураМетода["Заголовок"]);
Возврат;
КонецЕсли;
ТаблицаПараметров = ТаблицаПараметров + " | "
+ ПараметрМетода.Имя + " | "
+ ПараметрМетода.Опция + " | "
+ ПараметрМетода.Типы + " | "
+ ПараметрМетода.Описание + " |"
+ Символы.ПС;
КонецЦикла;
ТекстCLI = Новый ТекстовыйДокумент();
ТекстCLI.Прочитать(ПутьCLI);
Для Н = 1 По ТекстCLI.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ТекстCLI.ПолучитьСтроку(Н));
Если ЗначениеЗаполнено(ТекущаяСтрока) Тогда
ВызовCLI = ВызовCLI + " " + ТекущаяСтрока + Символы.ПС;
КонецЕсли;
КонецЦикла;
Если ЗначениеЗаполнено(ВызовCLI) Тогда
ВызовCLI = Лев(ВызовCLI, СтрДлина(ВызовCLI) - 1);
КонецЕсли;
КонецЕсли;
ТаблицаПараметров = ТаблицаПараметров + " | "
+ ПараметрМетода.Имя + " | "
+ ПараметрМетода.Опция + " | "
+ ПараметрМетода.Типы + " | "
+ ПараметрМетода.Описание + " |"
+ Символы.ПС;
КонецЦикла;
Макет = СтрЗаменить(Макет, "@Вызов1С" , Вызов1С);
Макет = СтрЗаменить(Макет, "@ВызовCLI" , ВызовCLI);
@ -568,6 +512,61 @@
КонецФункции
Функция ПолучитьВызовCLI(СтруктураМетода)
ПутьCLI = КаталогCLI + СтруктураМетода["Команда"];;
ФайлCLI = Новый Файл(ПутьCLI);
ВызовCLI = "";
Если Не ФайлCLI.Существует() Тогда
Возврат "";
Иначе
СоответствиеПодсветки = Новый Соответствие();
СоответствиеПодсветки.Вставить("bat" , "batch");
СоответствиеПодсветки.Вставить("bash" , "sh");
СоответствиеПодсветки.Вставить("single", "powershell");
СоответствиеЗаголовков = Новый Соответствие();
СоответствиеЗаголовков.Вставить("bat" , "CMD/Bat");
СоответствиеЗаголовков.Вставить("bash" , "Bash");
СоответствиеЗаголовков.Вставить("single", "*");
ФайлыВызова = НайтиФайлы(ПутьCLI, "*.txt");
ПолныйТекст = "
| <Tabs>";
ШаблонПримера = "
| <TabItem value=""%1"" label=""%2"" default>
| ```%3
|
| ```
| </TabItem>";
Для Каждого ФайлВызова Из ФайлыВызова Цикл
ТекущийПуть = ФайлВызова.ПолноеИмя;
ДанныеФайла = Новый ДвоичныеДанные(ТекущийПуть);
ДанныеФайла = ПолучитьСтрокуИзДвоичныхДанных(ДанныеФайла);
Ключ = ФайлВызова.ИмяБезРасширения;
Подсветка = СоответствиеПодсветки[Ключ];
Заголовок = СоответствиеЗаголовков[Ключ];
ПолныйТекст = ПолныйТекст + Символы.ПС + СтрШаблон(ШаблонПримера, Ключ, Заголовок, Подсветка);
КонецЦикла;
ПолныйТекст = ПолныйТекст + Символы.ПС + "</Tabs>";
Возврат ПолныйТекст;
КонецЕсли;
КонецФункции
Функция ОпределитьЗначениеОпции(Опция, Значение = "")
Если ЗначениеЗаполнено(Значение) Тогда

View File

@ -156,7 +156,7 @@ window.yaContextCb.push(() => {
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.github,
additionalLanguages: ['powershell','json','bsl']
additionalLanguages: ['powershell','json','bsl','batch','sh']
},
}),
};

View File

@ -23,14 +23,9 @@ sidebar_position: @Счетчик
```bsl title="Code example"
@Вызов1С
```
```sh title="CLI command example"
@ВызовCLI
```
```json title="Result"
@Результат

View File

@ -23,14 +23,9 @@ sidebar_position: @Счетчик
```bsl title="Пример кода"
@Вызов1С
```
```sh title="Пример команды CLI"
@ВызовCLI
```
```json title="Результат"
@Результат