Назад к проектам

confx

Chrome-расширение для извлечения страниц Confluence, задач Jira и деревьев страниц в Markdown. Поддерживает tree-экспорт с вложенными страницами, block picker, подписки на изменения и rule-based форматирование.

Кратко

Chrome-расширение для экспорта контента Confluence и Jira в Markdown

Демонстрирует: Chrome Extension API, content script injection, dual-browser build pipeline

Ключевые возможности

  • Экспортирует страницы Confluence, задачи Jira и деревья страниц в Markdown с rule-based форматированием
  • Предоставляет block picker для извлечения произвольных секций контента с любой страницы
  • Поставляет сборки для Chrome и Yandex с автоматизированным CI/CD-релизом

Задача

Извлекать структурированный контент из Confluence-страниц и Jira-задач без копирования и ручного форматирования.

Архитектура

Content scripts внедряются в страницы Confluence и Jira для извлечения структурированных данных. Sidebar popup предоставляет UI для выбора режима экспорта, rule set и запуска извлечения. Background service worker отвечает за координацию между вкладками и загрузку файлов. Vite собирает отдельные бандлы для Chrome и Yandex.

Ключевые решения

  • Использовать content script injection вместо внешних API-вызовов, чтобы избежать сложности аутентификации и работать с любым экземпляром Confluence/Jira.
  • Собирать два браузерных таргета (Chrome zip + Yandex crx) из одной кодовой базы через конфигурацию Vite.
  • Генерировать релизы через GitHub Actions при push tag с SHA256 checksums для целостности дистрибутива.

Технологии

TypeScriptViteChrome Extension APIVitest

Chrome-расширение для экспорта контента из Confluence и Jira в Markdown. Поддерживает три режима: отдельная страница (Page), всё пространство (Space) и дерево с вложенными страницами (Tree). Каждый режим предлагает выбор rule set для форматирования и пресеты вложений.

Расширение включает block picker для точечного извлечения произвольных блоков со страницы, подписки на изменения контента и sidebar-интерфейс с тёмной темой. Сборка настроена на два браузера: Chrome (zip) и Yandex (crx), с автоматическим релизом через GitHub Actions при создании tag.

Проект написан на TypeScript strict mode с Vite-сборкой, покрыт 319 тестами (Vitest) и включает CI/CD pipeline с typecheck, линтером, тестами и автоматической публикацией артефактов в GitHub Releases.