Sync local Markdown files with Yandex Wiki
Project description
sandboxer-yandex-wiki-sync
Disclaimer: This library is an open-source project by Sandboxer and is not affiliated with, endorsed by, or supported by Yandex LLC. Use of this software is subject to Yandex API Terms of Service.
CLI-инструмент для двусторонней синхронизации локальной документации (Markdown) с Yandex Wiki.
Документация: https://sandboxer-ai.github.io/sandboxer-yandex-wiki-sync/
Репозиторий: https://github.com/Sandboxer-ai/sandboxer-yandex-wiki-sync
🚀 Зачем это нужно?
Вести документацию в веб-интерфейсе Wiki неудобно: нет версионирования, Code Review, нормального поиска по файлам и любимого редактора (VS Code, JetBrains).
sandboxer-yandex-wiki-sync решает эту проблему, позволяя применить подход Docs as Code:
- Пишите документацию в Markdown локально.
- Храните её в Git вместе с кодом.
- Автоматически публикуйте в Yandex Wiki через CI/CD или вручную одной командой.
✨ Возможности
- 🔄 Двусторонняя синхронизация:
push: Загрузка локальных изменений в Wiki.pull: Скачивание правок, сделанных коллегами в веб-интерфейсе.
- 🧠 Умное отслеживание:
- Синхронизация только изменённых файлов (по хешу контента).
- Обнаружение и разрешение конфликтов (если файл изменен и там, и тут).
- 🛠 Удобство работы:
- Поддержка вложенных папок (автоматическое создание структуры в Wiki).
- Игнорирование служебных файлов (
.gitignore-style). - Красивый интерактивный UI с прогресс-барами.
📦 Установка
# Рекомендуемый способ (изолированное окружение)
pipx install sandboxer-yandex-wiki-sync
# Или через pip
pip install sandboxer-yandex-wiki-sync
# Или через uv
uv tool install sandboxer-yandex-wiki-sync
⚡ Быстрый старт
1. Инициализация проекта
Перейдите в папку с вашим проектом и запустите инициализацию:
sb-wiki init
Вас попросят ввести:
- Org ID: ID вашей организации (можно найти в URL страницы Wiki:
.../wiki/org/<ID>/...). - Slug: Базовый путь в Wiki, куда будет загружаться документация (например,
users/my-user/docsилиprojects/backend).
Будет создан файл конфигурации .wiki-sync.toml.
2. Получение токена
Для работы нужен OAuth токен с правами на чтение и запись в Wiki.
- Перейдите на Яндекс.OAuth.
- Создайте приложение (Web services).
- В правах выберите Yandex Wiki API (чтение и запись).
- Получите токен.
Установите токен как переменную окружения (безопасный способ):
export WIKI_SYNC_TOKEN="y0_your_oauth_token..."
⚠️ Важно: Никогда не сохраняйте токен в
config.tomlили в коде, если вы планируете коммитить эти файлы в репозиторий!
3. Запуск
Запустите интерактивное меню:
sb-wiki
Или используйте прямые команды:
# Проверить, какие файлы изменены
sb-wiki status
# Загрузить изменения в Wiki
sb-wiki push
# Скачать правки из Wiki
sb-wiki pull
⚙️ Конфигурация
Файл .wiki-sync.toml:
[wiki]
org_id = "123456" # ID организации
base_slug = "users/dev/project-docs" # Корневой раздел в Wiki
docs_dir = "docs" # Локальная папка с Markdown
[sync]
ignore = ["*.draft.md", "SECRET.md"] # Игнорируемые файлы
strip_title = true # Убирать первый заголовок # при загрузке (Wiki сама добавляет заголовок)
timeout = 60 # Таймаут запросов (сек)
🤝 Contributing
Мы приветствуем вклад в развитие проекта! Подробное руководство см. в CONTRIBUTING.md.
Если вы нашли баг или хотите предложить функцию:
- Создайте Issue.
- Сделайте Fork репозитория.
- Отправьте Pull Request.
📄 Лицензия
Проект распространяется под лицензией MIT. Подробнее см. файл LICENSE.
Built with ❤️ by Sandboxer AI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sandboxer_yandex_wiki_sync-0.1.0.tar.gz.
File metadata
- Download URL: sandboxer_yandex_wiki_sync-0.1.0.tar.gz
- Upload date:
- Size: 90.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd3900c65e61486f564a48534a014fdfc7734150514444fcbddd57a4412b3a29
|
|
| MD5 |
209a9575973e31fcd7b67d911fa7470c
|
|
| BLAKE2b-256 |
bb44841d3fea8049cff6132f891a21bfc42793a9b0511dd5ca5d823295271cde
|
Provenance
The following attestation bundles were made for sandboxer_yandex_wiki_sync-0.1.0.tar.gz:
Publisher:
publish.yml on Sandboxer-ai/sandboxer-yandex-wiki-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sandboxer_yandex_wiki_sync-0.1.0.tar.gz -
Subject digest:
cd3900c65e61486f564a48534a014fdfc7734150514444fcbddd57a4412b3a29 - Sigstore transparency entry: 780847302
- Sigstore integration time:
-
Permalink:
Sandboxer-ai/sandboxer-yandex-wiki-sync@7de9a30a9891f98341adafda6c0cad2ff4e889dd -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Sandboxer-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7de9a30a9891f98341adafda6c0cad2ff4e889dd -
Trigger Event:
release
-
Statement type:
File details
Details for the file sandboxer_yandex_wiki_sync-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sandboxer_yandex_wiki_sync-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3135e75f6df1c22be1a3bff4e398fdbcd543bff5ff28813ddf6ba05942bda8bc
|
|
| MD5 |
7e7e578f77a79093fe17d293931150af
|
|
| BLAKE2b-256 |
bb2845a2f5c4f0333c78b72f3254981d005632f99e875ed1042ba81908b05564
|
Provenance
The following attestation bundles were made for sandboxer_yandex_wiki_sync-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Sandboxer-ai/sandboxer-yandex-wiki-sync
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sandboxer_yandex_wiki_sync-0.1.0-py3-none-any.whl -
Subject digest:
3135e75f6df1c22be1a3bff4e398fdbcd543bff5ff28813ddf6ba05942bda8bc - Sigstore transparency entry: 780847303
- Sigstore integration time:
-
Permalink:
Sandboxer-ai/sandboxer-yandex-wiki-sync@7de9a30a9891f98341adafda6c0cad2ff4e889dd -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Sandboxer-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7de9a30a9891f98341adafda6c0cad2ff4e889dd -
Trigger Event:
release
-
Statement type: