diff --git a/ci/os/docs_main.os b/ci/os/docs_main.os
index bc98b50444..a7b82d15c9 100644
--- a/ci/os/docs_main.os
+++ b/ci/os/docs_main.os
@@ -24,8 +24,14 @@
Перем КаталогИнструкцийОригинал;
Перем КаталогИнструкцийЛокализация;
Перем СоответствиеМетодовПутям;
+Перем ИменаБиблиотек;
Процедура ПриСозданииОбъекта()
+
+ ЧтениеJSON = Новый ЧтениеJSON();
+ ЧтениеJSON.ОткрытьФайл("./media/catalogs/names.json");
+ ИменаБиблиотек = ПрочитатьJSON(ЧтениеJSON);
+ ЧтениеJSON.Закрыть();
Языки = Новый Массив();
Языки.Добавить("ru");
@@ -49,6 +55,7 @@
КаталогПримеров = "./docs/" + Язык + "/examples/";
КаталогЗначений = "./docs/" + Язык + "/data/";
КаталогCLI = "./docs/" + Язык + "/cli/";
+
СписокОбластей = Новый СписокЗначений();
ТекущаяОбласть = "";
СчетчикОбласти = 0;
@@ -61,12 +68,16 @@
ПолучитьТаблицуТранслитации();
ПроверитьСоздатьКаталог(КаталогДокументации);
СоздатьФайлыДокументации();
-
+ СоздатьЗаглушкиИнструкций();
+
ЗапуститьПриложение(СтрШаблон("robocopy ""./Melezh/docs/%1/md/Melezh"" ""./docs/%1/md/Addons/Melezh"" /MIR", Язык));
КопироватьФайл(СтрШаблон("./Melezh/docs/%1/md/Melezh.mdx", Язык), СтрШаблон("./docs/%1/md/Addons/Melezh.mdx", Язык));
КонецЦикла;
+ ДополнитьФайлСтиля();
+ СоздатьЗаглушкиИконок();
+
КонецПроцедуры
#Область СлужебныеПроцедурыИФункции
@@ -206,6 +217,41 @@
КонецПроцедуры
+Процедура СоздатьЗаглушкиИнструкций()
+
+ СписокИнструкций = Новый СписокЗначений();
+
+ Для Каждого СуществующаяИнструкция Из НайтиФайлы("КаталогИнструкцийЛокализация", "*.md") Цикл
+ СписокИнструкций.Добавить(СуществующаяИнструкция.ИмяБезРасширения);
+ КонецЦикла;
+
+ ШаблонИнструкции = "---
+ |id: %1
+ |sidebar_class_name: %1
+ |%2
+ |---
+ |
+ |
+ |
+ |# %1";
+
+ Если ТекущийЯзык = "ru" Тогда
+ ШаблонТегов = "keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, %1]";
+ Иначе
+ ШаблонТегов = "keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, %1]";
+ КонецЕсли;
+
+ Для Каждого Библиотека Из ИменаБиблиотек Цикл
+ Если СписокИнструкций.НайтиПоЗначению(Библиотека) = Неопределено Тогда
+
+ ТекущиеТеги = СтрШаблон(ШаблонТегов, Библиотека);
+ ПолучитьДвоичныеДанныеИзСтроки(СтрШаблон(ШаблонИнструкции, Библиотека, ТекущиеТеги)).Записать(КаталогИнструкцийЛокализация + СтрШаблон("/%1.md", Библиотека));
+
+ КонецЕсли;
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
#Область РазборМодуля
@@ -562,6 +608,84 @@
#КонецОбласти
+#Область ПрочиеФайлы
+
+Процедура ДополнитьФайлСтиля()
+
+ ПутьКФайлуСтиля = "/docs/docusaurus/src/css/custom.css";
+
+ ТекстовыйДокумент = Новый ТекстовыйДокумент();
+ ТекстовыйДокумент.Прочитать(ТекстовыйДокумент);
+
+ НомерСтрокиГенерации = Неопределено;
+
+ Для Н = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
+ Если СтрНайти(ТекстовыйДокумент.ПолучитьСтроку(Н), "AUTOGENERATED") > 0 Тогда
+ НомерСтрокиГенерации = Н;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если НомерСтрокиГенерации = Неопределено Тогда
+ ВызватьИсключение "Строка с отметкой начала генерации не найдена в custom.css";
+ КонецЕсли;
+
+ Пока ТекстовыйДокумент.КоличествоСтрок() > НомерСтрокиГенерации Цикл
+ ТекстовыйДокумент.УдалитьСтроку(ТекстовыйДокумент.КоличествоСтрок());
+ КонецЦикла;
+
+ МассивКлассов = Новый Массив;
+ МассивСтилей = Новый Массив;
+
+ Для Каждого ИмяБиблиотеки Из ИменаБиблиотек Цикл
+
+ МассивКлассов.Добавить(СтрШаблон(".%1 a::before,", ИмяБиблиотеки));
+
+ МассивСтилей.Добавить(СтрШаблон(".%1 > div > a::before{
+ | content: url(../../static/img/APIs/small/%1.png);
+ |}", ИмяБиблиотеки));
+
+ КонецЦикла;
+
+ ТекстВставки = СтрСоединить(МассивКлассов, Символы.ПС);
+ ТекстВставки = ТекстВставки + "{
+ | padding-right: 0.7rem;
+ | padding-top: 0.4rem;
+ |}
+ |
+ |";
+
+ ТекстВставки = ТекстВставки + СтрСоединить(МассивСтилей, Символы.ПС + Символы.ПС);
+ ОбщийТекст = ТекстовыйДокумент.ПолучитьТекст() + Символы.ПС + ТекстВставки;
+ ПолучитьДвоичныеДанныеИзСтроки(ОбщийТекст).Записать(ПутьКФайлуСтиля);
+
+КонецПроцедуры
+
+Процедура СоздатьЗаглушкиИконок()
+
+ ПутьКаталогаИконок = "/docs/docusaurus/static/img/APIs/";
+ ПутьКаталогаМаленькихИконок = "/docs/docusaurus/static/img/APIs/small/";
+
+ СоздатьЗаглушкиВКаталоге(ПутьКаталогаИконок);
+ СоздатьЗаглушкиВКаталоге(ПутьКаталогаМаленькихИконок);
+
+КонецПроцедуры
+
+Процедура СоздатьЗаглушкиИконок(ПутьКаталога);
+
+ Для Каждого ИмяБиблиотеки Из ИменаБиблиотек Цикл
+
+ ФайлыИконок = НайтиФайлы(ПутьКаталога, ИмяБиблиотеки + ".png");
+
+ Если ФайлыИконок.Количество() = 0 Тогда
+ КопироватьФайл(ПутьКаталога + "default.png", ПутьКаталога + ИмяБиблиотеки + ".png");
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область Инструменты
Процедура ОчиститьКаталогиДокументов()
diff --git a/ci/os/internal/Modules/МетодыКаталогаAPI.os b/ci/os/internal/Modules/МетодыКаталогаAPI.os
index eea485754e..1c404bae03 100644
--- a/ci/os/internal/Modules/МетодыКаталогаAPI.os
+++ b/ci/os/internal/Modules/МетодыКаталогаAPI.os
@@ -19,7 +19,8 @@
СтрокаТаблицы = "|| `%1`| %3 |";
- МассивТэгов = Новый Массив;
+ МассивТэгов = Новый Массив;
+ МассивИменБезПробелов = Новый Массив;
Для Каждого КлючЗначение Из СоответствиеКаталога Цикл
@@ -43,11 +44,17 @@
+ Символы.ПС;
МассивТэгов.Добавить(КлючЗначение.Ключ);
+ МассивИменБезПробелов.Добавить(ИмяБезПробелов);
КонецЦикла;
ПолучитьДвоичныеДанныеИзСтроки(ТаблицаКаталога).Записать("./media/catalogs/Catalog.md");
+ ЗаписьJSON = Новый ЗаписьJSON();
+ ЗаписьJSON.ОткрытьФайл("./media/catalogs/names.json");
+ ЗаписатьJSON(ЗаписьJSON, МассивИменБезПробелов);
+ ЗаписьJSON.Закрыть();
+
ДополнитьReadmeОблакомТэгов(МассивТэгов);
КонецПроцедуры
diff --git a/docs/docusaurus/src/css/custom.css b/docs/docusaurus/src/css/custom.css
index 50d2a99789..b24860a1e2 100644
--- a/docs/docusaurus/src/css/custom.css
+++ b/docs/docusaurus/src/css/custom.css
@@ -1,10 +1,3 @@
-/**
- * Any CSS included here will be global. The classic template
- * bundles Infima by default. Infima is a CSS framework designed to
- * work well for content-centric websites.
- */
-
-/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #ffffff;
--ifm-color-primary-dark: #ffffff;
@@ -192,6 +185,200 @@ li > a.menu__link {
justify-content: flex-start;
}
+
+
+.theme-code-block,.tabs-container{
+ border: 1px solid rgba(27, 31, 35, 0.15);
+ border-radius: 16px;
+ box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset;
+}
+
+/* CSS */
+.button {
+ appearance: none;
+ background-color: white;
+ border: 1px solid rgba(27, 31, 35, 0.15);
+ border-radius: 16px;
+ box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset;
+ box-sizing: border-box;
+ color: #24292E;
+ cursor: pointer;
+ display: inline-block;
+ font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 20px;
+ list-style: none;
+ padding: 6px 16px;
+ position: relative;
+ transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
+ user-select: none;
+ -webkit-user-select: none;
+ touch-action: manipulation;
+ vertical-align: middle;
+ white-space: nowrap;
+ word-wrap: break-word;
+}
+
+.button:hover {
+ background-color: #F3F4F6;
+ text-decoration: none;
+ transition-duration: 0.1s;
+}
+
+.button:disabled {
+ background-color: #FAFBFC;
+ border-color: rgba(27, 31, 35, 0.15);
+ color: #959DA5;
+ cursor: default;
+}
+
+.button:active {
+ background-color: #EDEFF2;
+ box-shadow: rgba(225, 228, 232, 0.2) 0 1px 0 inset;
+ transition: none 0s;
+}
+
+.button:focus {
+ outline: 1px transparent;
+}
+
+.button:before {
+ display: none;
+}
+
+.button:-webkit-details-marker {
+ display: none;
+}
+
+.wp_logo{
+ margin-right: 5px;
+}
+
+[class*='iconExternalLink_'] {
+ display: none;
+}
+
+.falling-icon {
+ position: absolute;
+ top: -50px;
+ width: 40px;
+ height: auto;
+ opacity: 0;
+ animation: falling linear infinite;
+ will-change: transform;
+ user-select: none;
+ pointer-events: none;
+}
+
+@keyframes falling {
+ 0% {
+ transform: translateY(-30px) ;
+ opacity: 0.3;
+ }
+ 25% {
+ opacity: 0;
+ }
+ 100% {
+ transform: translateY(calc(100vh + 100px));
+ opacity: 0;
+ }
+}
+
+/* Адаптивность для мобильных устройств */
+@media (max-width: 768px) {
+ .falling-icon {
+ width: 30px !important;
+ }
+}
+
+.Messenger > div > a::before{
+ content: url(../../static/img/Categories/chat.png);
+}
+
+.Social > div > a::before{
+ content: url(../../static/img/Categories/social-media.png);
+}
+
+.Database > div > a::before{
+ content: url(../../static/img/Categories/database.png);
+}
+
+.Calendar > div > a::before{
+ content: url(../../static/img/Categories/calendar.png);
+}
+
+.CRM > div > a::before{
+ content: url(../../static/img/Categories/crm.png);
+}
+
+.Exchange > div > a::before{
+ content: url(../../static/img/Categories/network.png);
+}
+
+.Folder > div > a::before{
+ content: url(../../static/img/Categories/folder.png);
+}
+
+.Commerce > div > a::before{
+ content: url(../../static/img/Categories/e-commerce.png);
+}
+
+.Start > div > a::before{
+ content: url(../../static/img/Categories/welcome.png);
+}
+
+.Other > div > a::before{
+ content: url(../../static/img/Categories/other.png);
+}
+
+.AI > div > a::before{
+ content: url(../../static/img/Categories/ai.png);
+}
+
+.WebUI > div > a::before{
+ content: url(../../static/img/Categories/webui.png);
+}
+
+.CL > div > a::before{
+ content: url(../../static/img/Categories/cl.png);
+}
+
+.Info > div > a::before{
+ content: url(../../static/img/Categories/info.png);
+}
+
+.Addons > a::before{
+ content: url(../../static/img/Categories/addons.png);
+}
+
+.Melezh > a::before{
+ content: url(../../static/img/Categories/melezh.png);
+}
+
+.Messenger a::before,
+.Social a::before,
+.Database a::before,
+.Folder a::before,
+.Calendar a::before,
+.CRM a::before,
+.Commerce a::before,
+.Start a::before,
+.Other a::before,
+.AI a:before,
+.Exchange a::before,
+.Addons a::before,
+.Melezh a::before,
+.CL a::before,
+.WebUI a::before,
+.Info a::before{
+ padding-right: 0.7rem;
+ padding-top: 0.4rem;
+}
+
+
+/* AUTOGENERATED */
+
.Airtable a::before , .Telegram a::before, .VK a::before, .Viber a::before, .Twitter a::before,
.Notion a::before, .GoogleCalendar a::before, .GoogleDrive a::before, .GoogleSheets a::before,
.Slack a::before, .YandexDisk a::before, .Dropbox a::before, .Bitrix24 a::before, .Messenger a::before,
@@ -199,7 +386,7 @@ li > a.menu__link {
.VKTeams a::before, .S3 a::before, .TCP a::before, .Neocities a::before, .CDEK a::before, .Start a::before,
.Other a::before, .SQLite a::before, .PostgreSQL a::before, .GreenAPI a::before, .RCON a::before, .MySQL a::before, .MSSQL a::before, .AI a:before,
.Ollama a::before, .Exchange a::before, .HTTP a::before, .OpenAI a::before, .Addons a::before, .Melezh a::before, .CL a::before, .WebUI a::before,
-.Info a::before, .FTP a::before, .SFTP a::before, .SSH a::before, .GreenMax a::before{
+.Info a::before, .FTP a::before, .SFTP a::before, .SSH a::before, .GreenMax a::before, .MongoDB a::before{
padding-right: 0.7rem;
padding-top: 0.4rem;
}
@@ -308,6 +495,9 @@ li > a.menu__link {
content: url(../../static/img/APIs/small/GreenMax.png);
}
+.MongoDB > div > a::before{
+ content: url(../../static/img/APIs/small/MongoDB.png);
+}
.Ollama > div > a::before{
content: url(../../static/img/APIs/small/Ollama.png);
@@ -329,171 +519,3 @@ li > a.menu__link {
content: url(../../static/img/APIs/small/SSH.png);
}
-.Messenger > div > a::before{
- content: url(../../static/img/Categories/chat.png);
-}
-
-.Social > div > a::before{
- content: url(../../static/img/Categories/social-media.png);
-}
-
-.Database > div > a::before{
- content: url(../../static/img/Categories/database.png);
-}
-
-.Calendar > div > a::before{
- content: url(../../static/img/Categories/calendar.png);
-}
-
-.CRM > div > a::before{
- content: url(../../static/img/Categories/crm.png);
-}
-
-.Exchange > div > a::before{
- content: url(../../static/img/Categories/network.png);
-}
-
-.Folder > div > a::before{
- content: url(../../static/img/Categories/folder.png);
-}
-
-.Commerce > div > a::before{
- content: url(../../static/img/Categories/e-commerce.png);
-}
-
-.Start > div > a::before{
- content: url(../../static/img/Categories/welcome.png);
-}
-
-.Other > div > a::before{
- content: url(../../static/img/Categories/other.png);
-}
-
-.AI > div > a::before{
- content: url(../../static/img/Categories/ai.png);
-}
-
-.WebUI > div > a::before{
- content: url(../../static/img/Categories/webui.png);
-}
-
-.CL > div > a::before{
- content: url(../../static/img/Categories/cl.png);
-}
-
-.Info > div > a::before{
- content: url(../../static/img/Categories/info.png);
-}
-
-.Addons > a::before{
- content: url(../../static/img/Categories/addons.png);
-}
-
-.Melezh > a::before{
- content: url(../../static/img/Categories/melezh.png);
-}
-
-.theme-code-block,.tabs-container{
- border: 1px solid rgba(27, 31, 35, 0.15);
- border-radius: 16px;
- box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset;
-}
-
-/* CSS */
-.button {
- appearance: none;
- background-color: white;
- border: 1px solid rgba(27, 31, 35, 0.15);
- border-radius: 16px;
- box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset;
- box-sizing: border-box;
- color: #24292E;
- cursor: pointer;
- display: inline-block;
- font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
- font-size: 14px;
- font-weight: 400;
- line-height: 20px;
- list-style: none;
- padding: 6px 16px;
- position: relative;
- transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
- user-select: none;
- -webkit-user-select: none;
- touch-action: manipulation;
- vertical-align: middle;
- white-space: nowrap;
- word-wrap: break-word;
-}
-
-.button:hover {
- background-color: #F3F4F6;
- text-decoration: none;
- transition-duration: 0.1s;
-}
-
-.button:disabled {
- background-color: #FAFBFC;
- border-color: rgba(27, 31, 35, 0.15);
- color: #959DA5;
- cursor: default;
-}
-
-.button:active {
- background-color: #EDEFF2;
- box-shadow: rgba(225, 228, 232, 0.2) 0 1px 0 inset;
- transition: none 0s;
-}
-
-.button:focus {
- outline: 1px transparent;
-}
-
-.button:before {
- display: none;
-}
-
-.button:-webkit-details-marker {
- display: none;
-}
-
-.wp_logo{
- margin-right: 5px;
-}
-
-[class*='iconExternalLink_'] {
- display: none;
-}
-
-.falling-icon {
- position: absolute;
- top: -50px;
- width: 40px;
- height: auto;
- opacity: 0;
- animation: falling linear infinite;
- will-change: transform;
- user-select: none;
- pointer-events: none;
-}
-
-@keyframes falling {
- 0% {
- transform: translateY(-30px) ;
- opacity: 0.3;
- }
- 25% {
- opacity: 0;
- }
- 100% {
- transform: translateY(calc(100vh + 100px));
- opacity: 0;
- }
-}
-
-/* Адаптивность для мобильных устройств */
-@media (max-width: 768px) {
- .falling-icon {
- width: 30px !important;
- }
-}
\ No newline at end of file
diff --git a/docs/docusaurus/static/img/APIs/default.png b/docs/docusaurus/static/img/APIs/default.png
new file mode 100644
index 0000000000..a3d4092a38
Binary files /dev/null and b/docs/docusaurus/static/img/APIs/default.png differ
diff --git a/docs/docusaurus/static/img/APIs/small/default.png b/docs/docusaurus/static/img/APIs/small/default.png
new file mode 100644
index 0000000000..9f700100fb
Binary files /dev/null and b/docs/docusaurus/static/img/APIs/small/default.png differ
diff --git a/docs/en/md/Instructions/Google_Calendar.md b/docs/en/md/Instructions/GoogleCalendar.md
similarity index 100%
rename from docs/en/md/Instructions/Google_Calendar.md
rename to docs/en/md/Instructions/GoogleCalendar.md
diff --git a/docs/en/md/Instructions/Google_Drive.md b/docs/en/md/Instructions/GoogleDrive.md
similarity index 100%
rename from docs/en/md/Instructions/Google_Drive.md
rename to docs/en/md/Instructions/GoogleDrive.md
diff --git a/docs/en/md/Instructions/Google_Sheets.md b/docs/en/md/Instructions/GoogleSheets.md
similarity index 100%
rename from docs/en/md/Instructions/Google_Sheets.md
rename to docs/en/md/Instructions/GoogleSheets.md
diff --git a/docs/en/md/Instructions/MongoDB.md b/docs/en/md/Instructions/MongoDB.md
new file mode 100644
index 0000000000..663b89a997
--- /dev/null
+++ b/docs/en/md/Instructions/MongoDB.md
@@ -0,0 +1,11 @@
+---
+id: MongoDB
+sidebar_class_name: MongoDB
+---
+
+
+
+# MongoDB
+
+This section is dedicated to the library for working with MongoDB. On this page, all the steps necessary to start working are described
+
diff --git a/docs/en/md/Instructions/Yandex_Disk.md b/docs/en/md/Instructions/YandexDisk.md
similarity index 100%
rename from docs/en/md/Instructions/Yandex_Disk.md
rename to docs/en/md/Instructions/YandexDisk.md
diff --git a/docs/en/md/sidebars.js b/docs/en/md/sidebars.js
index fe389fb950..0c0c2475a2 100644
--- a/docs/en/md/sidebars.js
+++ b/docs/en/md/sidebars.js
@@ -42,6 +42,7 @@
{ type: 'category', link: {type: 'doc', id:'Instructions/SQLite'}, label: 'SQLite', className: 'SQLite', items:[{type: 'autogenerated', dirName: 'SQLite'}]},
{ type: 'category', link: {type: 'doc', id:'Instructions/MySQL'}, label: 'MySQL', className: 'MySQL', items:[{type: 'autogenerated', dirName: 'MySQL'}]},
{ type: 'category', link: {type: 'doc', id:'Instructions/MSSQL' }, label: 'MS SQL Server', className: 'MSSQL', items: [{ type: 'autogenerated', dirName: 'MSSQL' }] },
+ { type: 'category', link: { type: 'doc', id: 'Instructions/MongoDB' }, label: 'MongoDB', className: 'MongoDB', items: [{ type: 'autogenerated', dirName: 'MongoDB' }] },
],
},
{
diff --git a/docs/ru/md/Instructions/Google_Calendar.md b/docs/ru/md/Instructions/GoogleCalendar.md
similarity index 100%
rename from docs/ru/md/Instructions/Google_Calendar.md
rename to docs/ru/md/Instructions/GoogleCalendar.md
diff --git a/docs/ru/md/Instructions/Google_Drive.md b/docs/ru/md/Instructions/GoogleDrive.md
similarity index 100%
rename from docs/ru/md/Instructions/Google_Drive.md
rename to docs/ru/md/Instructions/GoogleDrive.md
diff --git a/docs/ru/md/Instructions/Google_Sheets.md b/docs/ru/md/Instructions/GoogleSheets.md
similarity index 100%
rename from docs/ru/md/Instructions/Google_Sheets.md
rename to docs/ru/md/Instructions/GoogleSheets.md
diff --git a/docs/ru/md/Instructions/Yandex_Disk.md b/docs/ru/md/Instructions/YandexDisk.md
similarity index 100%
rename from docs/ru/md/Instructions/Yandex_Disk.md
rename to docs/ru/md/Instructions/YandexDisk.md