diff --git a/docs/_navbar.md b/docs/_navbar.md index eccd4415c..649df81ba 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,4 +1,5 @@ - Translations - [:cn: 中文](/zh-cn/) - [:de: Deutsch](/de-de/) + - [:ru: Russian](/ru-ru/) - [:uk: English](/) diff --git a/docs/index.html b/docs/index.html index 0cddb19f9..f01ae0b92 100644 --- a/docs/index.html +++ b/docs/index.html @@ -45,12 +45,14 @@ noData: { '/de-de/': 'Keine Ergebnisse!', '/zh-cn/': '没有结果!', + '/ru-ru/': 'Нет результатов!', '/': 'No results!' }, paths: 'auto', placeholder: { '/de-de/': 'Suche', '/zh-cn/': '搜索', + '/ru-ru/': 'Поиск', '/': 'Search' } }, diff --git a/docs/ru-ru/README.md b/docs/ru-ru/README.md new file mode 100644 index 000000000..a055e6acc --- /dev/null +++ b/docs/ru-ru/README.md @@ -0,0 +1,30 @@ +## docsify + +> Магический генератор документации + +## Что это такое + +docsify генерирует ваш сайт документации на лету. В отличие от GitBook, он не генерирует статические html-файлы. Вместо этого он по умному загружает и парсит ваши файлы Markdown и отображает их как веб-сайт. Все, что вам нужно сделать, это создать `index.html` для запуска и [развернуть его на GitHub Pages](/ru-ru/deploy.md). + +Смотрите дополнительную информацию в разделе [Быстрый старт](/ru-ru/quickstart.md). + +## Особенности + +* Нет статически построенных html файлов +* Простой и легковесный (~19kB gzipped) +* Умный полнотекстовый поиск через plugin +* Различные темы +* Удобный plugin API +* Поддерживает Emoji +* Совместим с IE10+ +* Поддерживает SSR ([пример](https://github.com/QingWei-Li/docsify-ssr-demo)) + +## Примеры + +Ознакомтесь с [Showcase](https://github.com/QingWei-Li/docsify/#showcase) использующих docsify. + +## Donate + +Пожалуйста, подумайте о пожертвовании, если вы считаете, что docsify полезен. Я рад, если вы можете мне помочь [купить чашку кофе](https://github.com/QingWei-Li/donate). :heart: + + diff --git a/docs/ru-ru/_sidebar.md b/docs/ru-ru/_sidebar.md new file mode 100644 index 000000000..b6a37d8d1 --- /dev/null +++ b/docs/ru-ru/_sidebar.md @@ -0,0 +1,30 @@ +* Подготовка + + * [Быстрый старт](ru-ru/quickstart.md) + * [Создание страниц](ru-ru/more-pages.md) + * [Настройка навигации](ru-ru/custom-navbar.md) + * [Обложка](ru-ru/cover.md) + +* Настройка + + * [Конфигурация](ru-ru/configuration.md) + * [Темы оформления](ru-ru/themes.md) + * [Плагины](ru-ru/plugins.md) + * [Написание плагина](ru-ru/write-a-plugin.md) + * [Markdown конфигурация](ru-ru/markdown.md) + * [Подсветка кода](ru-ru/language-highlight.md) + +* Руководство + + * [Развертывание](ru-ru/deploy.md) + * [Helpers](ru-ru/helpers.md) + * [Совместимост с Vue](ru-ru/vue.md) + * [CDN](ru-ru/cdn.md) + * [Offline Mode(PWA)](ru-ru/pwa.md) + * [Server-Side Rendering(SSR)](ru-ru/ssr.md) + * [Внедрение файлов(new)](ru-ru/embed-files.md) + +* [Awesome docsify](ru-ru/awesome.md) +* [Changelog](ru-ru/changelog.md) + + diff --git a/docs/ru-ru/cdn.md b/docs/ru-ru/cdn.md new file mode 100644 index 000000000..bbeac1230 --- /dev/null +++ b/docs/ru-ru/cdn.md @@ -0,0 +1,50 @@ +# CDN + +Рекомендуем: [unpkg](//unpkg.com), который будет отражать последнюю версию, как только она будет опубликована в npm. Вы также можете просмотреть источник пакета npm на [unpkg.com/docsify/](//unpkg.com/docsify/). + +## Последняя версия + +```html + + + + + +``` + +Альтернатива, использовать [сжатые файлы](#compressed-file). + +## Специфичная версия + +```html + + + + + +``` + +## Сжатые файлы + +```html + + + + + +``` + +```html + + + + + +``` + +## Другие CDN + +- http://www.bootcdn.cn/docsify +- https://cdn.jsdelivr.net/npm/docsify/ +- https://cdnjs.com/libraries/docsify + diff --git a/docs/ru-ru/configuration.md b/docs/ru-ru/configuration.md new file mode 100644 index 000000000..04e1f6bb2 --- /dev/null +++ b/docs/ru-ru/configuration.md @@ -0,0 +1,467 @@ +# Конфигурация + +Вы можете настроить `window.$docsify`. + +```html + +``` + +## el + +* Type: `String` +* Default: `#app` + +Элемент DOM должен быть установлен при инициализации. Это может быть строка селектора CSS или фактический элемент HTMLElement. + +```js +window.$docsify = { + el: '#app' +}; +``` + +## repo + +* Type: `String` +* Default: `null` + +Настройте URL-адрес репозитория или строку `username/repo`, чтобы добавить виджет [GitHub Corner](http://tholman.com/github-corners/) в верхнем правом углу сайта. + +```js +window.$docsify = { + repo: 'QingWei-Li/docsify', + // или + repo: 'https://github.com/QingWei-Li/docsify/' +}; +``` + +## maxLevel + +* Type: `Number` +* Default: `6` + +Таблица максимального уровня контента. + +```js +window.$docsify = { + maxLevel: 4 +}; +``` + +## loadNavbar + +* Type: `Boolean|String` +* Default: `false` + +Загружает навигационную панель из файла Markdown `_navbar.md`, если **true**, или из указанного пути. + +```js +window.$docsify = { + // загрузить из _navbar.md + loadNavbar: true, + + // загрузить из nav.md + loadNavbar: 'nav.md' +}; +``` + +## loadSidebar + +* Type: `Boolean|String` +* Default: `false` + +Загружает боковую панель из файла Markdown `_sidebar.md`, если **true **, или из указанного пути. + +```js +window.$docsify = { + // загрузить из _sidebar.md + loadSidebar: true, + + // загрузить из summary.md + loadSidebar: 'summary.md' +}; +``` + +## subMaxLevel + +* Type: `Number` +* Default: `0` + +Добавить оглавление (Table Of Contents) в боковую панель. + +```js +window.$docsify = { + subMaxLevel: 2 +}; +``` + +## auto2top + +* Type: `Boolean` +* Default: `false` + +Прокручивается к верхней части экрана, когда маршрут изменяется. + +```js +window.$docsify = { + auto2top: true +}; +``` + +## homepage + +* Type: `String` +* Default: `README.md` + +`README.md` в папке ваших документов будет рассматриваться как домашняя страница вашего веб-сайта, но иногда вам может понадобиться использовать другой файл в качестве домашней страницы. + +```js +window.$docsify = { + // Поменять на /home.md + homepage: 'home.md', + + // Или использовать readme из вашего репозитория + homepage: + 'https://raw.githubusercontent.com/QingWei-Li/docsify/master/README.md' +}; +``` + +## basePath + +* Type: `String` + +Базовый путь веб-сайта. Вы можете установить его в другой каталог или другое доменное имя. + +```js +window.$docsify = { + basePath: '/path/', + + // Загрузите файлы с другого сайта + basePath: 'https://docsify.js.org/', + + // Даже может загружать файлы из другого репозитория + basePath: + 'https://raw.githubusercontent.com/ryanmcdermott/clean-code-javascript/master/' +}; +``` + +## coverpage + +* Type: `Boolean|String|String[]|Object` +* Default: `false` + +Активирует функцию [обложки](ru-ru/cover.md). Если значение true, оно будет загружаться из `_coverpage.md`. + +```js +window.$docsify = { + coverpage: true, + + // кастомный файл + coverpage: 'cover.md', + + // множество обложек + coverpage: ['/', '/zh-cn/'], + + // множество обложек и кастомный файл + coverpage: { + '/': 'cover.md', + '/zh-cn/': 'cover.md' + } +}; +``` + +## name + +* Type: `String` + +Название сайта, как показано на боковой панели. + +```js +window.$docsify = { + name: 'docsify' +}; +``` + +## nameLink + +* Type: `String` +* Default: `window.location.pathname` + +Имя ссылки. + +```js +window.$docsify = { + nameLink: '/', + + // Для каждого маршрута + nameLink: { + '/zh-cn/': '/zh-cn/', + '/': '/' + } +}; +``` + +## markdown + +* Type: `Function` + +Смотрите [Markdown конфигурацию](ru-ru/markdown.md). + +```js +window.$docsify = { + // object + markdown: { + smartypants: true, + renderer: { + link: function() { + // ... + } + } + }, + + // function + markdown: function(marked, renderer) { + // ... + return marked; + } +}; +``` + +## themeColor + +* Type: `String` + +Настройте цвет темы. Использование функции и полифилов [CSS3 переменных](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables) в старом браузере. + +```js +window.$docsify = { + themeColor: '#3F51B5' +}; +``` + +## alias + +* Type: `Object` + +Установите псевдоним маршрута. Вы можете свободно управлять правилами маршрутизации. Поддерживает RegExp.feature и polyfill в старом браузере. + +```js +window.$docsify = { + alias: { + '/foo/(+*)': '/bar/$1', // supports regexp + '/zh-cn/changelog': '/changelog', + '/changelog': + 'https://raw.githubusercontent.com/QingWei-Li/docsify/master/CHANGELOG', + '/.*/_sidebar.md': '/_sidebar.md' // See #301 + } +}; +``` + +## autoHeader + +* type: `Boolean` + +Если `loadSidebar` и` autoHeader` включены, для каждой ссылки в `_sidebar.md`, добавьте заголовок страницы, прежде чем преобразовать его в html. +Подробнее [#78](https://github.com/QingWei-Li/docsify/issues/78). + +```js +window.$docsify = { + loadSidebar: true, + autoHeader: true +}; +``` + +## executeScript + +* type: `Boolean` + +Выполняет скрипт на странице. Разбирает только первый тёг скрипта ([demo] (themes)). Если Vue присутствует, он включается по умолчанию. + +```js +window.$docsify = { + executeScript: true +}; +``` + +```markdown +## Это тест + + +``` + +Обратите внимание: если вы используете внешний скрипт, например, встроенная демонстрация jsfiddle, обязательно включите плагин [external-script](plugins.md?id=external-script). + +## noEmoji + +* type: `Boolean` + +Отключает emoji парсинг. + +```js +window.$docsify = { + noEmoji: true +}; +``` + +## mergeNavbar + +* type: `Boolean` + +Navbar будет объединен с боковой панелью на меньших экранах. + +```js +window.$docsify = { + mergeNavbar: true +}; +``` + +## formatUpdated + +* type: `String|Function` + +Вы можете отобразить дату обновления файла с помощью переменной **{docsify-updated }**. И форматируйте его `formatUpdated`. +Смотрите https://github.com/lukeed/tinydate#patterns + +```js +window.$docsify = { + formatUpdated: '{MM}/{DD} {HH}:{mm}', + + formatUpdated: function(time) { + // ... + + return time; + } +}; +``` + +## externalLinkTarget + +* type: `String` +* default: `_blank` + +Цель открыть внешние ссылки. По умолчанию `'_blank'` (new window/tab) + +```js +window.$docsify = { + externalLinkTarget: '_self' // default: '_blank' +}; +``` + +## routerMode + +* type: `String` +* default: `history` + +```js +window.$docsify = { + routerMode: 'history' // default: 'hash' +}; +``` + +## noCompileLinks + +* type: `Array` + +Иногда мы не хотим, чтобы docsify обрабатывал наши ссылки. Смотрите [#203](https://github.com/QingWei-Li/docsify/issues/203) + +```js +window.$docsify = { + noCompileLinks: ['/foo', '/bar/.*'] +}; +``` + +## onlyCover + +* type: `Boolean` + +При посещении главной страницы загружается только обложка. + +```js +window.$docsify = { + onlyCover: false +}; +``` + +## requestHeaders + +* type: `Object` + +Задаёт заголовок запроса ресурсов. + +```js +window.$docsify = { + requestHeaders: { + 'x-token': 'xxx' + } +}; +``` + +## ext + +* type: `String` + +Расширение файла запроса. + +```js +window.$docsify = { + ext: '.md' +}; +``` + +## fallbackLanguages + +* type: `Array` + +Список языков, которые будут возвращаться к языку по умолчанию, когда запрашиваемая страница не существует для данных локально. + +Например: + +- сначала попробует получить страницу `/de/overview`. Если эта страница существует, она будет отображаться +- затем попробует получить страницу по умолчанию `/overview` (в зависимости от языка по умолчанию). Если эта страница существует, она будет отображаться +- затем отобразит страницу 404. +  +```js +window.$docsify = { + fallbackLanguages: [ + "ru", + "de" + ] +}; +``` + + +## notFoundPage + +* type: `Boolean` | `String` | `Object` + +Загружает файл `_404.md`: +```js +window.$docsify = { + notFoundPage: true +}; +``` +Загрузит путь пользовательской страницы 404: +```js +window.$docsify = { + notFoundPage: 'my404.md' +}; +``` + +Загрузит страницу 404 в соответствии с локализацией: +```js +window.$docsify = { + notFoundPage: { + '/': '_404.md', + '/ru': 'ru/_404.md', + } +}; +``` +> Примечание: Параметры fallbackLanguages не работают с параметрами `notFoundPage`. + diff --git a/docs/ru-ru/cover.md b/docs/ru-ru/cover.md new file mode 100644 index 000000000..7e1202732 --- /dev/null +++ b/docs/ru-ru/cover.md @@ -0,0 +1,101 @@ +# Обложка + +Активируйте функцию обложки, установив `coverpage` на **true**, подробнее [coverpage конфигурация](ru-ru/configuration.md#coverpage). + +## Основное использование + +Установите `coverpage` в **true**, и создайте `_coverpage.md`: + +```html + + + + +``` + +```markdown + + +![logo](_media/icon.svg) + +# docsify 4.6.10 + +> Магический генератор сайта документации + +* Простой и легковесный (~19kB gzipped) +* Нет статически построенных html файлов +* Множество тем оформления + +[GitHub](https://github.com/QingWei-Li/docsify/) +[Начать](#docsify) +``` + +!> На сайте документа может быть только одна обложка! + +## Настройка background + +По умолчанию фоновый цвет генерируется случайным образом. Вы можете настроить цвет фона или фоновое изображение: + +```markdown + + +# docsify 3.5 + +[GitHub](https://github.com/QingWei-Li/docsify/) +[Начать](#quick-start) + + + +![](_media/bg.png) + + + +![color](#f0f0f0) +``` + +## Обложка как главная страница + +Обычно, одновременно отображаются страница обложки и домашняя страница. Конечно, вы также можете отделить обложку через [опцию onlyCover](ru-ru/configuration.md#onlycover). + +## Несколько обложек + +Если ваш сайт документов находится на нескольких языках, может оказаться полезным установить несколько обложек. + +Например, структура ваших документов выглядит так: + +```text +. +└── docs + ├── README.md + ├── guide.md + ├── _coverpage.md + └── zh-cn + ├── README.md + └── guide.md + └── _coverpage.md +``` + +Теперь вы можете установить + +```js +window.$docsify = { + coverpage: ['/', '/zh-cn/'] +}; +``` + +Или через специальное имя файла + +```js +window.$docsify = { + coverpage: { + '/': 'cover.md', + '/zh-cn/': 'cover.md' + } +}; +``` + + diff --git a/docs/ru-ru/custom-navbar.md b/docs/ru-ru/custom-navbar.md new file mode 100644 index 000000000..785cd88d9 --- /dev/null +++ b/docs/ru-ru/custom-navbar.md @@ -0,0 +1,100 @@ +# Настройка навигации + +## HTML + +Если вам нужна настраиваемая навигация, вы можете создать навигационную панель на основе HTML. + +!> Обратите внимание, что ссылки на документацию начинаются с `#/`. + +```html + + + + +
+ +``` + +## Markdown + +Кроме того, вы можете создать настраиваемый файл навигации, установив `loadNavbar` в **true** и создав `_navbar.md`, подробнее [loadNavbar конфигурация](ru-ru/configuration.md#loadnavbar). + +```html + + + + +``` + +```markdown + + +* [En](/) +* [chinese](/zh-cn/) +* [russian](/ru-ru/) +``` + +!> Вам нужно создать `.nojekyll` в `./docs`, чтобы при использовании GitHub Pages не игнорировались файлы, начинающиеся с подчеркивания. + +`_navbar.md` загружается на каждом уровне директории. Если текущий каталог не имеет `_navbar.md`, он вернется в родительский каталог. Если, например, текущий путь `/guide/quick-start`, `_navbar.md` будет загружен из `/guide/_navbar.md`. + +## Вложенность + +Вы можете создавать суб-списки с помощью отступов, находящихся под определенным родителем. + +```markdown + + +* Getting started + + * [Quick start](quickstart.md) + * [Writing more pages](more-pages.md) + * [Custom navbar](custom-navbar.md) + * [Cover page](cover.md) + +* Configuration + * [Configuration](configuration.md) + * [Themes](themes.md) + * [Using plugins](plugins.md) + * [Markdown configuration](markdown.md) + * [Language highlight](language-highlight.md) +``` + +отображается как + +![Nesting navbar](../_images/nested-navbar.png 'Nesting navbar') + +## Объединение navbars с плагином emoji + +Если вы используете [emoji plugin](ru-ru/plugins#emoji): + +```html + + + + + +``` + +вы можете, например, использовать флаг emojis в вашем настраиваемом navbar файла Markdown: + +```markdown + + +* [:us:, :uk:](/) +* [:cn:](/zh-cn/) +``` + + diff --git a/docs/ru-ru/deploy.md b/docs/ru-ru/deploy.md new file mode 100644 index 000000000..0bc6b8786 --- /dev/null +++ b/docs/ru-ru/deploy.md @@ -0,0 +1,79 @@ +# Развертывание + +Подобно [GitBook](https://www.gitbook.com), вы можете развернуть файлы на страницы GitHub, страницы GitLab или VPS. + +## GitHub Pages + +Есть три места для заполнения ваших документов для вашего репозитория Github: + +* `docs/` folder +* master branch +* gh-pages branch + +Рекомендуется сохранять файлы в подпапке `./docs` раздела` master` вашего репозитория. Затем выберите папку `master branch /docs folder` в качестве источника Github Pages на странице настроек ваших репозиториев. + +![github pages](../_images/deploy-github-pages.png) + +!> Вы также можете сохранить файлы в корневом каталоге и выбрать `master branch`. +Вам нужно будет поместить файл `.nojekyll` в место развертывания (например в `/docs` или в ветвь gh-pages + +## GitLab Pages + +Если вы развертываете свою master ветку, включите `.gitlab-ci.yml` со следующим скриптом: + +?> Обходной путь для `.public` - так бы что `cp` не копировал в себя `public/` в бесконечном цикле. + +``` YAML +pages: + stage: deploy + script: + - mkdir .public + - cp -r * .public + - mv .public public + artifacts: + paths: + - public + only: + - master +``` + +!> Вы можете заменить скрипт на `- cp -r docs/. public`, если `./docs` является подпапкой Docsify. + +## Firebase Hosting + +!> После входа в [консоль Firebase](https://console.firebase.google.com) с помощью учётной записи Google, вам необходимо установить CLI Firebase с помощью `npm i -g firebase-tools`. + +Используя терминал, определите и перейдите к каталогу для своего проекта Firebase - это может быть `~/Projects/Docs` и т.д. Оттуда запустите `firebase init`, выбирая `Hosting` из меню (используйте **пробел** для выбора , **стрелки** для изменения параметров и **ввод** для подтверждения). Следуйте инструкциям по установке. + +У вас должен быть похожий файл `firebase.json` (я изменил каталог развёртывания с `public` на `site`): +```json +{ + "hosting": { + "public": "site", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +} +``` +По завершении создайте исходный шаблон, запустив `docsify init. /site` (заменив сайт каталогом развертывания, который вы определили при запуске `firebase init` - public по умолчанию). Добавьте/отредактируйте документацию, затем запустите `firebase deploy` из базового каталога проекта. + +## VPS + +Попробуйте следовать конфигурации nginx. + +```nginx +server { + listen 80; + server_name your.domain.com; + + location / { + alias /path/to/dir/of/docs; + index index.html; + } +} +``` + + diff --git a/docs/ru-ru/embed-files.md b/docs/ru-ru/embed-files.md new file mode 100644 index 000000000..d3fc937fd --- /dev/null +++ b/docs/ru-ru/embed-files.md @@ -0,0 +1,68 @@ +# Внедрение файлов + +С docsify 4.6 теперь можно вставлять файлы любого типа. +Вы можете вставлять эти файлы в виде видео, аудио, iframe или блоков кода, и даже файлы Markdown могут быть встроены непосредственно в документ. + +Например, здесь встроен файл Markdown. Вам нужно только это сделать: + +```markdown +[filename](_media/example.md ':include') +``` + +Тогда содержимое `example.md` будет отображаться непосредственно здесь + +[filename](../_media/example.md ':include') + +Вы можете проверить исходное содержимое для [example.md](_media/example.md ':ignore'). + +Обычно это будет скомпилировано в ссылку, но в docsify, если вы добавите `:include`, он будет внедрён. + +## Типы встроенных файлов + +В настоящее время расширение файла автоматически распознается и внедряется по-разному. + +Поддерживаемые типы: + +* **iframe** `.html`, `.htm` +* **markdown** `.markdown`, `.md` +* **audio** `.mp3` +* **video** `.mp4`, `.ogg` +* **code** другие расширения файлов + +Конечно, вы можете принудительно указать тип. Например, вам нужно, чтобы файл Markdown был встроен в кодовый блок. + +```markdown +[filename](_media/example.md ':include :type=code') +``` + +Вы получите это + +[filename](../_media/example.md ':include :type=code') + +## Tag атрибута + +Если вы вставляете файл как `iframe`,` audio` и `video`, вам может потребоваться установить атрибуты этих тёгов. + +```markdown +[cinwell website](https://cinwell.com ':include :type=iframe width=100% height=400px') +``` + +[cinwell website](https://cinwell.com ':include :type=iframe width=100% height=400px') + +Вы видели это? Вам нужно только писать напрямую. Вы можете применить атрибуты из [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) . + +## Подсветка блока кода + +Встраивая любой тип исходного кода, вы можете указать выделенный язык или он будет автоматически идентифицирован. + +```markdown +[](_media/example.html ':include :type=code text') +``` + +⬇️ + +[](../_media/example.html ':include :type=code text') + +?> Как установить подсветку? Вы можете посмотреть [здесь](ru-ru/language-highlight.md). + + diff --git a/docs/ru-ru/helpers.md b/docs/ru-ru/helpers.md new file mode 100644 index 000000000..99d4ffc7d --- /dev/null +++ b/docs/ru-ru/helpers.md @@ -0,0 +1,84 @@ +# Doc helper + +docsify расширяет синтаксис Markdown, чтобы сделать ваши документы более читаемыми. + +## Важный контент + +Важный контент как: + +```markdown +!> **Время** деньги, мой друг! +``` + +отобразится как: + +!> **Время** деньги, мой друг! + +## Основной совет + +Совет как: + +```markdown +?> _TODO_ unit test +``` + +отобразится как: + +?> _TODO_ unit test + +## Игнорировать компиляцию ссылки + +В некоторый момент времени вам понадобится добавить какой-то другой относительный путь к ссылке, вам нужно будет сообщить, что вам не нужно компилировать эту ссылку. Например + +```md +[link](/demo/) +``` + +Он будет скомпилирован в `link` и будет загружен `/demo/README.md`. Может быть, вы хотите перейти на `/demo/index.html`. + +Теперь вы можете сделать это + +```md +[link](/demo/ ':ignore') +``` + +Вы получите html `link`. Не волнуйтесь, вы все равно сможете установить заголовок для ссылки. + +```md +[link](/demo/ ':ignore title') + +link +``` + +## Установить целевой атрибут для ссылки + +```md +[link](/demo ':target=_blank') +[link](/demo2 ':target=_self') +``` + +## Отключить ссылку + +```md +[link](/demo ':disabled') +``` + +## Github список задач + +```md +* [ ] foo +* bar +* [x] baz +* [] bam <~ not working + * [ ] bim + * [ ] lim +``` + +* [ ] foo +* bar +* [x] baz +* [] bam <~ not working + * [ ] bim + * [ ] lim + + diff --git a/docs/ru-ru/language-highlight.md b/docs/ru-ru/language-highlight.md new file mode 100644 index 000000000..f3dc0fff3 --- /dev/null +++ b/docs/ru-ru/language-highlight.md @@ -0,0 +1,13 @@ +# Подсветка кода + +**docsify** использует [Prism](https://github.com/PrismJS/prism) подствеку блоков кода на ваших страницах. По умолчанию он поддерживает только CSS, JavaScript и HTML. Вы можете расширить **Prism**, загружая дополнительные языки: + +```html + + + +``` + +?> Проверьте список [компонентов](https://github.com/PrismJS/prism/tree/gh-pages/components), содержащий больше опций. + + diff --git a/docs/ru-ru/markdown.md b/docs/ru-ru/markdown.md new file mode 100644 index 000000000..27d98e828 --- /dev/null +++ b/docs/ru-ru/markdown.md @@ -0,0 +1,57 @@ +# Markdown конфигурация + +**docsify** использует его [разметку](https://github.com/chjj/marked) как анализатор Markdown. Вы можете настроить способ рендеринга вашего контента Markdown в HTML, настроив `renderer`: + +```js +window.$docsify = { + markdown: { + smartypants: true, + renderer: { + link: function() { + // ... + } + } + } +} +``` + +?> Ссылка на опции конфигурации [разметки документа](https://github.com/chjj/marked#options-1) + +Даже вы можете полностью настроить правила синтаксического парсинга. + +```js +window.$docsify = { + markdown: function(marked, renderer) { + // ... + + return marked + } +} +``` + +## Поддержка mermaid + +```js +// Import mermaid +// +// + +mermaid.initialize({ startOnLoad: false }); + +window.$docsify = { + markdown: { + renderer: { + code: function(code, lang) { + if (lang === "mermaid") { + return ( + '
' + mermaid.render(lang, code) + "
" + ); + } + return this.origin.code.apply(this, arguments); + } + } + } +} +``` + + diff --git a/docs/ru-ru/more-pages.md b/docs/ru-ru/more-pages.md new file mode 100644 index 000000000..37e5948f3 --- /dev/null +++ b/docs/ru-ru/more-pages.md @@ -0,0 +1,110 @@ +# Создание страниц + +Если вам нужно больше страниц, вы можете просто создать больше файлов разметки в каталоге docsify. Если вы создаете файл с именем `guide.md`, то он доступен через `/#/guide`. + +Например, структура каталогов выглядит следующим образом: + +```text +. +└── docs + ├── README.md + ├── guide.md + └── zh-cn + ├── README.md + └── guide.md +``` + +Соответствующие маршруты + +```text +docs/README.md => http://domain.com +docs/guide.md => http://domain.com/guide +docs/zh-cn/README.md => http://domain.com/zh-cn/ +docs/zh-cn/guide.md => http://domain.com/zh-cn/guide +``` + +## Боковая панель + +Для того, чтобы иметь боковую панель, вы можете создать свой собственный `_sidebar.md` (см. [Боковая панель этой документации](https://github.com/QingWei-Li/docsify/blob/master/docs/ru-ru/_sidebar.md) для примера): + +Во-первых, вам нужно установить `loadSidebar` в **true**. Подробности доступны в [пункте конфигурации](ru-ru/configuration.md#loadsidebar). + +```html + + + + +``` + +Создайте `_sidebar.md`: + +```markdown + + +* [Home](/) +* [Guide](guide.md) +``` + +Вам нужно создать `.nojekyll` в `./docs`, чтобы GitHub Pages не игнорировал файлы, начинающиеся с символа `_` подчеркивания. + +`_sidebar.md` загружается на каждом уровне каталога. Если текущий каталог не имеет `_sidebar.md`, он вернется в родительский каталог. Если, например, текущий путь `/guide/quick-start`, `_sidebar.md` будет загружен из `/guide/_sidebar.md`. + +Вы можете указать `alias`, во избежание ненужного отказа. + +```html + +``` + +## Оглавление + +После создания `_sidebar.md` содержимое боковой панели автоматически создается на основе заголовков в файлах разметки. + +Настраиваемая боковая панель также может автоматически генерировать оглавление, устанавлив `subMaxLevel`, подробнее [subMaxLevel конфигурация](ru-ru/configuration.md#submaxlevel). + +```html + + + + +``` + +## Игнорирование подзаголовков + +Когда `subMaxLevel` установлен, каждый заголовок автоматически добавляется к оглавлению по умолчанию. Если вы хотите игнорировать определенный заголовок, добавьте `{docsify-ignore}` к нему. + +```markdown +# Getting Started + +## Header {docsify-ignore} + +Этот заголовок не будет отображаться в таблице содержимого боковой панели. +``` + +Чтобы игнорировать все заголовки на определенной странице, вы можете использовать `{docsify-ignore-all}` в первом заголовке страницы. + +```markdown +# Getting Started {docsify-ignore-all} + +## Header + +Все заголовки не будут отображаться в таблице содержимого боковой панели. +``` + +Оба `{docsify-ignore}` и `{docsify-ignore-all}` не будут отображаться на странице при их использовании. + diff --git a/docs/ru-ru/plugins.md b/docs/ru-ru/plugins.md new file mode 100644 index 000000000..531b599b3 --- /dev/null +++ b/docs/ru-ru/plugins.md @@ -0,0 +1,180 @@ +# Плагины + +## Полно-текстовый поиск + +По умолчанию гиперссылка на текущую страницу распознается и содержимое сохраняется в `localStorage`. Вы также можете указать путь к файлам. + +```html + + + +``` + +## Google Analytics + +Установите плагин и настройте track id. + +```html + + + +``` + +Настройте `data-ga`. + +```html + + +``` + +## emoji + +По умолчанию используется поддержка парсинга emoji. Например, `:100:` будет заменён на :100:. Но он не является точным, потому что нет соответствующей non-emoji стоки. Если вам нужно правильно разобрать строку emoji, вам нужно установить этот плагин. + +```html + +``` + +## Внешний скрипт + +Если скрипт на странице является внешним (импортирует файл js через атрибут `src`), вам понадобится этот плагин, чтобы он работал. + +```html + +``` + +## Увеличить изображение + +Среднее увеличение изображение. Основано на [medium-zoom](https://github.com/francoischalifour/medium-zoom). + +```html + +``` + +Исключить специальное изображение + +```markdown +![](image.png ':no-zoom') +``` + +## Редактировать на github + +Добавляет кнопку `Редактировать на github` на каждой странице. Предоставлено [@njleonzhang](https://github.com/njleonzhang), проверить [документ](https://github.com/njleonzhang/docsify-edit-on-github) + +## Демо code с мгновенным просмотром и интеграцией jsfiddle + +С помощью этого плагина код образца можно мгновенно отобразить на странице, чтобы читатели могли сразу его просмотреть. +Когда читатели расширяют демонстрационный бокс, там отображаются исходный код и описание. если они нажмут кнопку `Попробовать в Jsfiddle`, +`jsfiddle.net` будет открыт с кодом этого образца, который позволит читателям пересмотреть код и попробовать самостоятельно. + +[Vue](https://njleonzhang.github.io/docsify-demo-box-vue/) и [React](https://njleonzhang.github.io/docsify-demo-box-react/) поддерживаются. + +## Копировать в буфер обмена + +Добавить простую кнопку `Click to copy` для всех отформатированных блоков кода, чтобы легко позволить пользователям копировать пример кода из списка документов. Предоставлено [@jperasmus](https://github.com/jperasmus) + +```html + +``` + +Смотрите [здесь](https://github.com/jperasmus/docsify-copy-code/blob/master/README.md) для больших подробностей. + +## Disqus + +Disqus комментарии. https://disqus.com/ + +```html + + +``` + +## Gitalk + +[Gitalk](https://github.com/gitalk/gitalk) представляет собой современный компонент комментариев, основанный на Github Issue и Preact. + +```html + + + + + +``` + +## Навигация + +Пагинатор для docsify. От [@imyelo](https://github.com/imyelo) + +```html + + +``` + +## codefund + +[плагин](https://github.com/njleonzhang/docsify-plugin-codefund) легко объединяет с [codefund](https://codesponsor.io/) + +> codefund ранее известен как "codeponsor" + +``` + + +window.$docsify = { + plugins: [ + DocsifyCodefund.create('xxxx-xxx-xxx') // change to your codefund id + ] +} +``` + diff --git a/docs/ru-ru/pwa.md b/docs/ru-ru/pwa.md new file mode 100644 index 000000000..117cf54e3 --- /dev/null +++ b/docs/ru-ru/pwa.md @@ -0,0 +1,117 @@ +# Offline Mode + +[Progressive Web Apps](https://developers.google.com/web/progressive-web-apps/) (PWA) это опыт, который объединяет лучшие веб-сайты с лучшими приложениями. Мы можем улучшить наш веб-сайт сервис воркерами, работая **offline** или в сетях низкого качества. + +Это также очень легко использовать. + +## Создать serviceWorker + +Создайте файл `sw.js` в вашей корневой дирректории документов и скопируите следующий код: + +*sw.js* + +```js +/* =========================================================== + * docsify sw.js + * =========================================================== + * Copyright 2016 @huxpro + * Licensed under Apache 2.0 + * Register service worker. + * ========================================================== */ + +const RUNTIME = 'docsify' +const HOSTNAME_WHITELIST = [ + self.location.hostname, + 'fonts.gstatic.com', + 'fonts.googleapis.com', + 'unpkg.com' +] + +// Функция Util для взлома URL адресов, перехватывает запросы +const getFixedUrl = (req) => { + var now = Date.now() + var url = new URL(req.url) + + // 1. исправляет URL http +  // просто продолжает синхронизацию с location.protocol +  // fetch(httpURL) принадлежит активированному смешанному контенту. +  // И fetch(httpRequest) пока не поддерживается. + url.protocol = self.location.protocol + + // 2. добавит запрос для кэширования-перебора. +  // Github Pages обслуживаются с Cache-Control: max-age = 600, +  // max-age на мутабельном контенте подвержен ошибкам, и жизнь SW ошибок может даже расширяться. +  // До тех пор пока не будет применен режим кэширования Fetch API-интерфейса, мы должны обходить работу с кешем строкой запроса. +  // Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190 + if (url.hostname === self.location.hostname) { + url.search += (url.search ? '&' : '?') + 'cache-bust=' + now + } + return url.href +} + +/** + * @Lifecycle Activate + * Новый активируется, когда старый не используется. + * + * waitUntil(): активация ====> активирован + */ +self.addEventListener('activate', event => { + event.waitUntil(self.clients.claim()) +}) + +/** + * @Functional Fetch + * Все сетевые запросы перехватываются здесь. + * + * void respondWith(Promise r) + */ +self.addEventListener('fetch', event => { + // Пропустит некоторые запросы с кросс-началом, например, для Google Analytics. + if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) { + // Stale-while-revalidate (неготов-пока-ревалидация) + // похожий на HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale + // Обновление от Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1 + const cached = caches.match(event.request) + const fixedUrl = getFixedUrl(event.request) + const fetched = fetch(fixedUrl, { cache: 'no-store' }) + const fetchedCopy = fetched.then(resp => resp.clone()) + + // Вызывает responseWith() с тем, что получает первым. +    // Если сбой извлечения (например, отключен), дожидается кеша. +    // Если в кеше ничего нет, дожидается fetch. +    // Если ни один из них не дает ответа, возвращает offline страницы. + event.respondWith( + Promise.race([fetched.catch(_ => cached), cached]) + .then(resp => resp || fetched) + .catch(_ => { /* съедает любые ошибки */ }) + ) + + // Обновляет кэш с версией, которую мы выбрали (только для статуса ok) + event.waitUntil( + Promise.all([fetchedCopy, caches.open(RUNTIME)]) + .then(([response, cache]) => response.ok && cache.put(event.request, response)) + .catch(_ => { /* съедает любые ошибки */ }) + ) + } +}) +``` + +## Регистрация + +Теперь зарегистрируйте его в своем `index.html`. Он работает только на некоторых современных браузерах, так что не судите строго: + +*index.html* + +```html + +``` + +## Насладиться этим + +Откройте свой веб-сайт и начните испытывать волшебную функцию offline. :ghost: Вы можете отключить Wi-Fi и обновить текущий сайт, чтобы проверить. + + diff --git a/docs/ru-ru/quickstart.md b/docs/ru-ru/quickstart.md new file mode 100644 index 000000000..d26dfa36a --- /dev/null +++ b/docs/ru-ru/quickstart.md @@ -0,0 +1,96 @@ +# Быстрый старт + +Рекомендуется установить `docsify-cli` глобально, что помогает инициализировать и просматривать веб-сайт на локальном компьютере. + +```bash +npm i docsify-cli -g +``` + +## Инициализация + +Если вы хотите написать документацию в подкаталоге `./docs`, вы можете использовать команду `init`. + +```bash +docsify init ./docs +``` + +## Написание контента + +После завершения `init` вы можете увидеть список файлов в подкаталоге `./docs`. + +* `index.html` файл входа +* `README.md` домашняя страница +* `.nojekyll` предотвращает игнорирование GitHub Pages, файлов начинающиеся с символа `_` подчеркивания + +Вы можете легко обновить документацию в `./docs/README.md`, конечно, вы можете добавить [больше страниц](more-pages.md). + +## Предварительный просмотр + +Запустите локальный сервер `docsify serve`. Вы можете просмотреть свой сайт в браузере по адресу `http://localhost:3000`. + +```bash +docsify serve docs +``` + +?> Для использования более практичных случаев `docsify-cli`, перейдите к [docsify-cli документации](https://github.com/QingWei-Li/docsify-cli). + +## Ручная инициализация + +Если вам не нравится `npm` или у вас возникли проблемы с установкой инструмента, вы можете вручную создать `index.html`: + +```html + + + + + + + + + + + +
+ + + + +``` + +Если вы установили python в свою систему, вы можете легко использовать его для запуска статичного сервера для предварительного просмотра вашего сайта. + +```bash +cd docs && python -m SimpleHTTPServer 3000 +``` + +## Диалог загрузки + +Если вы хотите, вы можете показать диалог загрузки, прежде чем docsify начнет визуализировать вашу документацию: + +```html + + +
Please wait...
+``` + +Вы должны установить атрибут `data-app`, если вы изменили `el`: + +```html + + +
Please wait...
+ + +``` + +Подробнее про [el конфигурацию](ru-ru/configuration.md#el). + + diff --git a/docs/ru-ru/ssr.md b/docs/ru-ru/ssr.md new file mode 100644 index 000000000..f49d0788a --- /dev/null +++ b/docs/ru-ru/ssr.md @@ -0,0 +1,126 @@ +# Server-Side Rendering + +Посморите https://docsify.now.sh + +Репозиторий здесь https://github.com/QingWei-Li/docsify-ssr-demo + +## Почему SSR? +- Лучший для SEO +- Почувствовать себя крутым + +## Быстрый старт + +Установите `now` и `docsify-cli` в ваш проект. + +```bash +npm i now docsify-cli -D +``` + +Отредактируйте `package.json`. Если в документации `./docs` есть подкаталоги. + +```json +{ + "name": "my-project", + "scripts": { + "start": "docsify start . -c ssr.config.js", + "deploy": "now -p" + }, + "files": [ + "docs" + ], + "docsify": { + "config": { + "basePath": "https://docsify.js.org/", + "loadSidebar": true, + "loadNavbar": true, + "coverpage": true, + "name": "docsify" + } + } +} +``` + +!> `basePath` потому что в webpack `publicPath`. Мы можем использовать локальные или удаленные файлы. + +Мы можем просмотреть локально, чтобы убедиться работает ли он. + +```bash +npm start + +# open http://localhost:4000 +``` + +Опубликовать его! + +```bash +now -p +``` + +Теперь у вас есть поддержка SSR для сайта документации. + +## Собственный шаблон + +Вы можете предоставить шаблон для всех HTML страниц. Как пример + +```html + + + + + docsify + + + + + + + + + + + + + +``` + +Шаблон должен содержать эти комментарии для отображаемого содержимого приложения. + - `` + - `` + +## Конфигурация + +Вы можете настроить его в специальном файле конфигурации, или `package.json`. + +```js +module.exports = { + template: './ssr.html', + maxAge: 60 * 60 * 1000, // lru-cache config + config: { + // docsify config + } +} +``` + +## Развертывание на VPS + +Вы можете запустить `docsify start` непосредственно на Node сервере, или написать свой собственный сервер приложения с `docsify-server-renderer`. + +```js +var Renderer = require('docsify-server-renderer') +var readFileSync = require('fs').readFileSync + +// init +var renderer = new Renderer({ + template: readFileSync('./docs/index.template.html', 'utf-8')., + config: { + name: 'docsify', + repo: 'qingwei-li/docsify' + } +}) + +renderer.renderToString(url) + .then(html => {}) + .catch(err => {}) +``` + + diff --git a/docs/ru-ru/themes.md b/docs/ru-ru/themes.md new file mode 100644 index 000000000..bca262dcb --- /dev/null +++ b/docs/ru-ru/themes.md @@ -0,0 +1,58 @@ +# Темы оформления + +В настоящее время доступны три темы. Пользовательскую темы можно найти на сайтах [Vue](//vuejs.org), [buble](//buble.surge.sh) и [@liril-net](https://github.com/liril-net) темного стиля. + +```html + + + + +``` + +!> Сжатые файлы доступны в `/lib/themes/`. + +```html + + + + + + +``` + +Если у вас есть идеи или вы хотите создать новую тему, вы можете создать [pull request](https://github.com/QingWei-Li/docsify/pulls). + +#### Кликнуть для просмотра + + + + + + + + diff --git a/docs/ru-ru/vue.md b/docs/ru-ru/vue.md new file mode 100644 index 000000000..d8e220dfb --- /dev/null +++ b/docs/ru-ru/vue.md @@ -0,0 +1,102 @@ +# Совместимость с Vue + +Вы можете писать компоненты Vue непосредственно для файлов Markdown, и он будет проанализирован. Вы можете использовать эту функцию для совместной работы vue demo и документации. + +## Основное использование + +Загружает Vue из `./index.html`. + +```html + + + + + + +``` + +Затем вы можете сразу же написать код Vue в файле Markdown. +`new Vue({ el: '#main' })` скрипт выполняется по умолчанию для создания экземпляра. + +*README.md* + +````markdown +# Vue руководство + +использование `v-for`. + +```html +
    +
  • {{ i }}
  • +
+``` + +
    +
  • {{ i }}
  • +
+```` + +Вы можете вручную инициализировать экземпляр Vue. + +*README.md* + +```markdown +# Vue demo + +
Привет {{ msg }}
+ + +``` + +!> В файле Markdown выполняется скрипт только в первом тёге скрипта. + +## Комбинация Vuep для создания playground + +[Vuep](https://github.com/QingWei-Li/vuep) является компонентом для рендеринга компонентов Vue с живым редактором и предварительным просмотром. Поддерживает спецификацию компонентов Vue и JSX. + +*index.html* + +```html + + + + + + + + + + + + +``` + +*README.md* +```markdown +# Vuep + + + + + +``` + +?> Ссылка на экземпляр [vuep documentation](https://qingwei-li.github.io/vuep/). + + diff --git a/docs/ru-ru/write-a-plugin.md b/docs/ru-ru/write-a-plugin.md new file mode 100644 index 000000000..6be2348f0 --- /dev/null +++ b/docs/ru-ru/write-a-plugin.md @@ -0,0 +1,95 @@ +# Написание плагина + +Плагин - это просто функция, которая воспринимает `hook` как аргумент. Hook поддерживает обработку асинхронных задач. + +## Полная конфигурация + +```js +window.$docsify = { + plugins: [ + function (hook, vm) { + hook.init(function() { + // Вызывается при запуске скрипта, запускается только один раз, без аргументов + }) + + hook.beforeEach(function(content) { + // Вызывается каждый раз перед разбором файла Markdown. + // ... + return content + }) + + hook.afterEach(function(html, next) { + // Вызывается каждый раз после разбора файла Markdown. + // beforeEach и afterEach поддерживают асинхронный вызов. + // ... + // Вызывается `next(html)` когда задача выполнена. + next(html) + }) + + hook.doneEach(function() { + // Вызывается каждый раз после полной загрузки данных, никаких аргументов, + // ... + }) + + hook.mounted(function() { + // Вызывается после первоначального завершения. Только триггер на один раз, никаких аргументов. + }) + + hook.ready(function() { + // Вызывается после первоначального завершения, никаких аргументов. + }) + } + ] +} +``` + +!> Вы можете получить внутренние методы через `window.Docsify`. Получить текущий экземпляр через второй аргумент. + +## Пример + +#### подвал + +Добавляет компонент нижнего колонтитула на каждую страницу. + +```js +window.$docsify = { + plugins: [ + function (hook) { + var footer = [ + '
', + '' + ].join('') + + hook.afterEach(function (html) { + return html + footer + }) + } + ] +} +``` + +### Кнопка редактирования + +```js +window.$docsify = { + plugins: [ + function(hook, vm) { + hook.beforeEach(function (html) { + var url = 'https://github.com/QingWei-Li/docsify/blob/master/docs' + vm.route.file + var editHtml = '[📝 РЕДАКТИРОВАТЬ ДОКУМЕНТ](' + url + ')\n' + + return editHtml + + html + + '\n----\n' + + 'Последняя модификация {docsify-updated} ' + + editHtml + }) + } + ] +} +``` + +