Skip to content

📝 Markdown Viewer на Cloudflare Workers с подсветкой кода и поддержкой формул. Лёгкий, быстрый, с KV-хранилищем. 🚀

Notifications You must be signed in to change notification settings

boykopovar/MarkForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Руководство по созданию Markdown Viewer Worker на Cloudflare

Добро пожаловать! Это пошаговое руководство поможет вам развернуть собственный Markdown Viewer Worker на платформе Cloudflare. Мы настроим Worker, подключим KV Namespace для хранения данных и задеплоим всё через GitHub. Следуйте инструкциям ниже, и скоро у вас будет свой собственный сервис для просмотра Markdown! 🎉


📋 Предварительные требования


1️⃣ Форк репозитория

Для начала вам нужно получить копию исходного кода.

  1. Перейдите на репозиторий boykopovar/md.
  2. Нажмите кнопку Fork в правом верхнем углу. Это создаст копию репозитория в вашем аккаунте GitHub.

💡 Примечание: Использование GitHub для деплоя упрощает управление версиями и автоматизацию. Вы можете вносить изменения в код и деплоить их прямо из своего репозитория!


2️⃣ Создание KV Namespace

Cloudflare KV — это ключ-значение хранилище, где мы будем сохранять Markdown-файлы.

  1. В Cloudflare Dashboard перейдите в Workers & PagesKV.
  2. Нажмите Create Namespace.
    • Укажите имя, например, MD_STORAGE.
    • Нажмите Add.

📊 Примечание: На бесплатном тарифе Cloudflare предоставляет лимит KV: 100 000 операций чтения, 1000 операций записи и 1000 операций удаления в день, а также до 1 ГБ хранимого объёма. Наш Worker использует запись для сохранения файлов и чтение для их отображения. Очистка старых файлов (см. шаг 4) помогает оставаться в пределах лимитов, даже если запас кажется большим.


3️⃣ Настройка количества файлов (опционально)

Worker настроен на хранение максимум 100 файлов (MAX_FILES = 100), после чего старые удаляются. Это можно изменить.

  1. Откройте файл index.js в своём репозитории.
  2. Найдите строку:
    const MAX_FILES = 200;
  3. Измените значение на нужное, например:
    const MAX_FILES = 500; // Или любое другое число

🛠️ Примечание: Установка меньшего значения ускоряет очистку старых файлов, что полезно для экономии операций KV. Несмотря на щедрый лимит в 1 ГБ и 1000 операций записи в день, регулярная очистка предотвращает накопление ненужных данных и упрощает управление хранилищем в долгосрочной перспективе.


4️⃣ Создание Worker на Cloudflare

Теперь настроим Worker в вашем аккаунте Cloudflare.

  1. Войдите в Cloudflare Dashboard.
  2. Перейдите в раздел Workers & Pages в левом меню.
  3. Нажмите Create Worker.
    • Укажите имя, например, md.
    • Нажмите Create.

⚠️ Внимание: На этом этапе Worker ещё не будет работать, так как мы пока не загрузили код и не подключили KV. Это просто зарезервированное имя.


5️⃣ Деплой через GitHub

Рекомендуем использовать интеграцию с GitHub для автоматизации деплоя.

  1. В Cloudflare Dashboard вернитесь в Workers & Pages → ваш Worker (md).
  2. Нажмите DeployGitHub.
  3. Подключите свой аккаунт GitHub, если ещё не сделали этого.
  4. Выберите репозиторий <ваш-username>/md.
  5. Cloudflare автоматически подтянет код из ветки main.

🔄 Примечание: После каждого изменения в вашем репозитории (например, git push), Cloudflare по умолчанию автоматически передеплоит Worker.


6️⃣ Привязка KV Namespace

Чтобы Worker мог использовать KV, нужно связать его с созданным Namespace.

  1. В Cloudflare Dashboard откройте свой Worker (md).
  2. Перейдите во вкладку SettingsVariables.
  3. В разделе KV Namespace Bindings нажмите Add binding.
    • Variable name: Укажите KV (имя, используемое в коде env.KV).
    • KV Namespace: Выберите MD_STORAGE (или то имя, которое вы задали в шаге 2).
  4. Нажмите Save.

🔗 Примечание: Имя переменной KV в настройках должно точно совпадать с тем, что используется в коде (env.KV). Это связывает Worker с хранилищем.

⚠️ Важно: При каждом новом деплое через GitHub или вручную привязка KV Namespace сбрасывается, и её нужно указывать заново в настройках. Если это вызывает неудобства, вы можете прописать привязку в файл wrangler.toml в корне репозитория в таком формате:

[[kv_namespaces]]
binding = "KV"
id = "<ID вашего KV Namespace>"

Однако это не рекомендуется, так как ID KV Namespace — это конфиденциальная информация. Хранение таких данных в репозитории может привести к утечке, особенно если он публичный. Если вы всё же решите использовать этот подход, убедитесь, что ваш репозиторий приватный, и ограничьте доступ к нему.


7️⃣ Проверка работоспособности

Ваш Worker готов! Давайте протестируем его.

  1. Отправьте тестовый Markdown через POST-запрос:
    curl -X POST -d "# Hello\nThis is a test" https://view-md<ваш-домен>.workers.dev
    • Замените view-md<ваш-домен>.workers.dev на URL вашего Worker’а.
  2. Скопируйте возвращённую ссылку (например, https://view-md<ваш-домен>.workers.dev/view/<id>).
  3. Откройте её в браузере — вы увидите отформатированный Markdown!

🎉 Готово!

Теперь у вас есть собственный Markdown Viewer на Cloudflare Workers! Вы можете:

  • Редактировать код в своём GitHub-репозитории.
  • Изменять MAX_FILES для управления хранилищем.
  • Деплоить обновления через git push.

Если что-то не работает, проверьте:

  • Привязан ли KV Namespace правильно.
  • Совпадает ли имя Worker’а в коде и настройках.

About

📝 Markdown Viewer на Cloudflare Workers с подсветкой кода и поддержкой формул. Лёгкий, быстрый, с KV-хранилищем. 🚀

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published