{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/common/bot_structure/yaml/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"cbe9645d-da40-50ae-8d97-07eb86fef9bb","excerpt":"YAML-справочники?> YAML-справочники используются для хранения различных структурированных данных для проекта. Примеры использования YAML-справочников: Вы можете…","html":"<h1>YAML-справочники</h1>\n<hr>\n<p class='warn'>YAML-справочники используются для хранения различных структурированных данных для проекта.</p>\n<p>Примеры использования YAML-справочников:</p>\n<ul>\n<li>Вы можете вынести в YAML-справочник тексты ответов бота, чтобы хранить их в одном месте и поддерживать отдельно от кода бота.</li>\n<li>Следует хранить в отдельных справочниках параметры конфигурации бота, которые часто используются и могут изменяться: ключи к внешним API, ограничения на различные счетчики и т. д.</li>\n</ul>\n<h2>Формат</h2>\n<p>YAML-справочники хранятся в файлах с расширением <code class=\"language-text\">.yaml</code> или <code class=\"language-text\">.yml</code>.</p>\n<p>YAML — простой формат для записи типизированных значений и стандартных структур данных: последовательностей и пар вида «ключ — значение» произвольной степени вложенности. Например:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">start</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">id</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n  <span class=\"token key atrule\">summary</span><span class=\"token punctuation\">:</span> Приветствие\n  <span class=\"token key atrule\">answers</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> Здравствуйте<span class=\"token tag\">!</span>\n    <span class=\"token punctuation\">-</span> Рад знакомству<span class=\"token tag\">!</span>\n\n<span class=\"token comment\"># ...</span>\n\n<span class=\"token key atrule\">catchAll</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">id</span><span class=\"token punctuation\">:</span> <span class=\"token number\">99</span>\n  <span class=\"token key atrule\">summary</span><span class=\"token punctuation\">:</span> Нераспознанный текст\n  <span class=\"token key atrule\">answers</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> Извините<span class=\"token punctuation\">,</span> я вас не понял.\n    <span class=\"token punctuation\">-</span> Не могли бы вы переформулировать вопрос<span class=\"token punctuation\">?</span></code></pre></div>\n<p class='warn'><a href=https://ru.wikipedia.org/wiki/YAML target=\"_blank\" rel=\"noopener noreferrer\">Подробнее о синтаксисе YAML</a></p>\n<h2>Подключение</h2>\n<p>Для подключения YAML-справочника к сценарию воспользуйтесь тегом <a href=\"/1.11.7/docs/ru/JAICP_DSL/tags/declarative_tags/require\"><code class=\"language-text\">require</code></a> с параметром <code class=\"language-text\">var</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">require:</span> states.yaml\n    var = states</code></pre></div>\n<p class='warn'>При подключении справочник будет преобразован в эквивалентный объект JavaScript, который будет доступен из кода сценария по имени переменной, указанному после <code class=\"language-text\">var</code>.</p>\n<h2>Использование в сценарии</h2>\n<p>Воспользуемся справочником выше, чтобы вывести случайный ответ на нераспознанный текст. Для генерации случайного числа воспользуемся методом <a href=\"/1.11.7/docs/ru/JS_API/built_in_services/reactions/random\"><code class=\"language-text\">$reactions.random</code></a>.</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> CatchAll\n    <span class=\"token storageType\">event!:</span> noMatch\n    <span class=\"token variableParameter\">script:</span>\n        $temp.index = $reactions.random(states.catchAll.answers.length);\n    <span class=\"token variableParameter\">a:</span> <span class=\"token constantCharacter\">{{states.catchAll.answers[$temp.index]}}</span></code></pre></div>","frontmatter":{"title":"","description":null},"headings":[{"value":"YAML-справочники"}]}},"pageContext":{"slug":"/docs/ru/common/bot_structure/yaml/","previous":{"fields":{"slug":"/docs/ru/common/bot_structure/zb_common/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/common/bot_structure/sys_modules/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}