[{"data":1,"prerenderedAt":533},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fgetting-started":3},{"id":4,"title":5,"body":6,"description":525,"extension":526,"meta":527,"navigation":470,"path":529,"seo":530,"stem":531,"__hash__":532},"docs\u002Fdocs\u002Fgetting-started.md","Быстрый старт",{"type":7,"value":8,"toc":519},"minimark",[9,13,18,41,60,63,79,98,102,275,278,282,285,378,381,385,495,498,515],[10,11,12],"p",{},"ViText — редактор содержимого: вы оформляете текст визуально (WYSIWYG), а приложение получает HTML. Community распространяется под MIT; React, Vue и сервер ViText для базового редактирования не нужны. Этот быстрый старт использует готовую браузерную поставку.",[14,15,17],"h2",{"id":16},"подготовьте-окружение","Подготовьте окружение",[10,19,20,25,26,30,31,35,36,40],{},[21,22,24],"a",{"href":23},"\u002Fdownloads\u002Fvitext-community-1.0.0-beta.6.zip","Скачайте браузерную сборку ViText Community"," и распакуйте архив целиком. ",[21,27,29],{"href":28},"\u002Fdownloads\u002Fvitext-community-1.0.0-beta.6.zip.sha256","SHA256"," позволяет проверить файл. GitHub-доступ, npm и сборщик для браузерного подключения не нужны; для ESM доступна установка ",[32,33,34],"code",{},"npm install @vitext-ru\u002Feditor@beta"," (",[21,37,39],{"href":38},"\u002Fdocs\u002Finstallation\u002Fesm","инструкция",").",[10,42,43,44,47,48,51,52,55,56,59],{},"Внутри — ",[32,45,46],{},"vitext\u002F"," с четырьмя браузерными ресурсами, ",[32,49,50],{},"example\u002Findex.html",", инструкции RU\u002FEN, LICENSE и THIRD_PARTY_NOTICES.md. Откройте пример через статический HTTP\u002FHTTPS-сервер; ",[32,53,54],{},"file:\u002F\u002F"," не поддерживается. Для английского примера добавьте ",[32,57,58],{},"?lang=en",".",[10,61,62],{},"Если установлен Python 3, запустите из распакованной папки:",[64,65,70],"pre",{"className":66,"code":67,"language":68,"meta":69,"style":69},"language-sh shiki shiki-themes github-dark","python3 -m http.server 8080 --bind 127.0.0.1\n","sh","",[32,71,72],{"__ignoreMap":69},[73,74,77],"span",{"class":75,"line":76},"line",1,[73,78,67],{},[10,80,81,82,85,86,90,91,93,94,97],{},"Откройте ",[32,83,84],{},"http:\u002F\u002F127.0.0.1:8080\u002Fexample\u002Findex.html",". Для своего приложения скопируйте ",[87,88,89],"strong",{},"всю"," папку ",[32,92,46],{}," в его статические ресурсы. Пример ниже использует адрес ",[32,95,96],{},"\u002Fvitext\u002F","; сохраните LICENSE и THIRD_PARTY_NOTICES.md при распространении.",[14,99,101],{"id":100},"подключите-к-странице","Подключите к странице",[64,103,107],{"className":104,"code":105,"language":106,"meta":69,"style":69},"language-html shiki shiki-themes github-dark","\u003Clink rel=\"stylesheet\" href=\"\u002Fvitext\u002Fvitext.css\">\n\u003Cdiv id=\"editor\">\u003C\u002Fdiv>\n\u003Cscript src=\"\u002Fvitext\u002Fvitext.iife.js\">\u003C\u002Fscript>\n\u003Cscript>\n  const editor = new ViText.ViText('#editor', {\n    preset: 'pro',\n    language: 'ru',\n    content: '\u003Cp>Ваш первый документ\u003C\u002Fp>'\n  });\n\u003C\u002Fscript>\n","html",[32,108,109,141,164,186,195,227,239,250,259,265],{"__ignoreMap":69},[73,110,111,115,119,123,126,130,133,135,138],{"class":75,"line":76},[73,112,114],{"class":113},"s95oV","\u003C",[73,116,118],{"class":117},"s4JwU","link",[73,120,122],{"class":121},"svObZ"," rel",[73,124,125],{"class":113},"=",[73,127,129],{"class":128},"sU2Wk","\"stylesheet\"",[73,131,132],{"class":121}," href",[73,134,125],{"class":113},[73,136,137],{"class":128},"\"\u002Fvitext\u002Fvitext.css\"",[73,139,140],{"class":113},">\n",[73,142,144,146,149,152,154,157,160,162],{"class":75,"line":143},2,[73,145,114],{"class":113},[73,147,148],{"class":117},"div",[73,150,151],{"class":121}," id",[73,153,125],{"class":113},[73,155,156],{"class":128},"\"editor\"",[73,158,159],{"class":113},">\u003C\u002F",[73,161,148],{"class":117},[73,163,140],{"class":113},[73,165,167,169,172,175,177,180,182,184],{"class":75,"line":166},3,[73,168,114],{"class":113},[73,170,171],{"class":117},"script",[73,173,174],{"class":121}," src",[73,176,125],{"class":113},[73,178,179],{"class":128},"\"\u002Fvitext\u002Fvitext.iife.js\"",[73,181,159],{"class":113},[73,183,171],{"class":117},[73,185,140],{"class":113},[73,187,189,191,193],{"class":75,"line":188},4,[73,190,114],{"class":113},[73,192,171],{"class":117},[73,194,140],{"class":113},[73,196,198,202,206,209,212,215,218,221,224],{"class":75,"line":197},5,[73,199,201],{"class":200},"snl16","  const",[73,203,205],{"class":204},"sDLfK"," editor",[73,207,208],{"class":200}," =",[73,210,211],{"class":200}," new",[73,213,214],{"class":113}," ViText.",[73,216,217],{"class":121},"ViText",[73,219,220],{"class":113},"(",[73,222,223],{"class":128},"'#editor'",[73,225,226],{"class":113},", {\n",[73,228,230,233,236],{"class":75,"line":229},6,[73,231,232],{"class":113},"    preset: ",[73,234,235],{"class":128},"'pro'",[73,237,238],{"class":113},",\n",[73,240,242,245,248],{"class":75,"line":241},7,[73,243,244],{"class":113},"    language: ",[73,246,247],{"class":128},"'ru'",[73,249,238],{"class":113},[73,251,253,256],{"class":75,"line":252},8,[73,254,255],{"class":113},"    content: ",[73,257,258],{"class":128},"'\u003Cp>Ваш первый документ\u003C\u002Fp>'\n",[73,260,262],{"class":75,"line":261},9,[73,263,264],{"class":113},"  });\n",[73,266,268,271,273],{"class":75,"line":267},10,[73,269,270],{"class":113},"\u003C\u002F",[73,272,171],{"class":117},[73,274,140],{"class":113},[10,276,277],{},"Внутри страницы появится панель и редактируемый документ. По умолчанию библиотека использует pro; в этом примере он указан явно. Все наборы бесплатны.",[14,279,281],{"id":280},"начните-с-markdown","Начните с Markdown",[10,283,284],{},"Добавьте после создания экземпляра:",[64,286,290],{"className":287,"code":288,"language":289,"meta":69,"style":69},"language-js shiki shiki-themes github-dark","async function importMarkdown() {\n  await editor.setContent('# Привет\\n\\n**Текст** из Markdown', {\n    format: 'markdown'\n  });\n  console.log(editor.getHTML());\n}\nimportMarkdown().catch(console.error);\n","js",[32,291,292,306,330,338,342,359,364],{"__ignoreMap":69},[73,293,294,297,300,303],{"class":75,"line":76},[73,295,296],{"class":200},"async",[73,298,299],{"class":200}," function",[73,301,302],{"class":121}," importMarkdown",[73,304,305],{"class":113},"() {\n",[73,307,308,311,314,317,319,322,325,328],{"class":75,"line":143},[73,309,310],{"class":200},"  await",[73,312,313],{"class":113}," editor.",[73,315,316],{"class":121},"setContent",[73,318,220],{"class":113},[73,320,321],{"class":128},"'# Привет",[73,323,324],{"class":204},"\\n\\n",[73,326,327],{"class":128},"**Текст** из Markdown'",[73,329,226],{"class":113},[73,331,332,335],{"class":75,"line":166},[73,333,334],{"class":113},"    format: ",[73,336,337],{"class":128},"'markdown'\n",[73,339,340],{"class":75,"line":188},[73,341,264],{"class":113},[73,343,344,347,350,353,356],{"class":75,"line":197},[73,345,346],{"class":113},"  console.",[73,348,349],{"class":121},"log",[73,351,352],{"class":113},"(editor.",[73,354,355],{"class":121},"getHTML",[73,357,358],{"class":113},"());\n",[73,360,361],{"class":75,"line":229},[73,362,363],{"class":113},"}\n",[73,365,366,369,372,375],{"class":75,"line":241},[73,367,368],{"class":121},"importMarkdown",[73,370,371],{"class":113},"().",[73,373,374],{"class":121},"catch",[73,376,377],{"class":113},"(console.error);\n",[10,379,380],{},"Ожидаемый документ содержит заголовок и абзац с жирным текстом. Markdown загружает отдельный движок: дождитесь Promise перед чтением результата.",[14,382,384],{"id":383},"сохраните-и-завершите-работу","Сохраните и завершите работу",[64,386,388],{"className":287,"code":387,"language":289,"meta":69,"style":69},"const unsubscribe = editor.on('change', ({ html, css, json, revision }) => {\n  \u002F\u002F Здесь приложение сохраняет согласованную пару html + css\n  \u002F\u002F или json + css. Сервер ViText не создаётся автоматически.\n  console.log({ html, css, json, revision });\n});\n\n\u002F\u002F При удалении страницы или компонента:\nunsubscribe();\neditor.destroy();\n",[32,389,390,441,447,452,461,466,472,477,485],{"__ignoreMap":69},[73,391,392,395,398,400,402,405,407,410,413,416,419,422,424,427,429,432,435,438],{"class":75,"line":76},[73,393,394],{"class":200},"const",[73,396,397],{"class":204}," unsubscribe",[73,399,208],{"class":200},[73,401,313],{"class":113},[73,403,404],{"class":121},"on",[73,406,220],{"class":113},[73,408,409],{"class":128},"'change'",[73,411,412],{"class":113},", ({ ",[73,414,106],{"class":415},"s9osk",[73,417,418],{"class":113},", ",[73,420,421],{"class":415},"css",[73,423,418],{"class":113},[73,425,426],{"class":415},"json",[73,428,418],{"class":113},[73,430,431],{"class":415},"revision",[73,433,434],{"class":113}," }) ",[73,436,437],{"class":200},"=>",[73,439,440],{"class":113}," {\n",[73,442,443],{"class":75,"line":143},[73,444,446],{"class":445},"sAwPA","  \u002F\u002F Здесь приложение сохраняет согласованную пару html + css\n",[73,448,449],{"class":75,"line":166},[73,450,451],{"class":445},"  \u002F\u002F или json + css. Сервер ViText не создаётся автоматически.\n",[73,453,454,456,458],{"class":75,"line":188},[73,455,346],{"class":113},[73,457,349],{"class":121},[73,459,460],{"class":113},"({ html, css, json, revision });\n",[73,462,463],{"class":75,"line":197},[73,464,465],{"class":113},"});\n",[73,467,468],{"class":75,"line":229},[73,469,471],{"emptyLinePlaceholder":470},true,"\n",[73,473,474],{"class":75,"line":241},[73,475,476],{"class":445},"\u002F\u002F При удалении страницы или компонента:\n",[73,478,479,482],{"class":75,"line":252},[73,480,481],{"class":121},"unsubscribe",[73,483,484],{"class":113},"();\n",[73,486,487,490,493],{"class":75,"line":261},[73,488,489],{"class":113},"editor.",[73,491,492],{"class":121},"destroy",[73,494,484],{"class":113},[10,496,497],{},"HTML\u002FCSS и Markdown применяются в документ автоматически после корректной проверки. Это не отправка на сервер. В исходнике при ошибке доступна последняя корректная версия документа.",[10,499,500,501,418,504,418,507,418,511,59],{},"Дальше: ",[21,502,171],{"href":503},"\u002Fdocs\u002Finstallation\u002Fscript",[21,505,506],{"href":38},"ESM",[21,508,510],{"href":509},"\u002Fdocs\u002Fconfiguration\u002Fpresets","наборы",[21,512,514],{"href":513},"\u002Fexamples","рабочие примеры",[516,517,518],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .s4JwU, html code.shiki .s4JwU{--shiki-default:#85E89D}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":69,"searchDepth":143,"depth":143,"links":520},[521,522,523,524],{"id":16,"depth":143,"text":17},{"id":100,"depth":143,"text":101},{"id":280,"depth":143,"text":281},{"id":383,"depth":143,"text":384},"Подключите JavaScript WYSIWYG-редактор ViText к странице без сборщика. Импортируйте Markdown, оформите текст и получите HTML.","md",{"group":528,"order":76},"Начало работы","\u002Fdocs\u002Fgetting-started",{"title":5,"description":525},"docs\u002Fgetting-started","W-VAxTBJFQyFxwpLVf2KJUwhwh_D9uUu_HSBIIw532Y",1792670389276]