Skip to content

aokhotin/indesign-md-book

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MD Book Generator

Pipeline Markdown -> Adobe InDesign с runtime на ExtendScript и parser-слоем по принципу CommonMark-first.

Состояние

  • Первая рабочая версия сфокусирована на структуре уровня CommonMark.
  • Парсер строит структурированный AST, а не делает только regex-замены по тексту.
  • Вывод в InDesign маппится через paragraph styles и character styles.
  • Таблицы: добавлена поддержка нативных таблиц InDesign для Markdown pipe tables.
  • Obsidian extensions намеренно не включены в текущую версию (следующий этап).

Что уже работает

  • ATX-заголовки и setext-заголовки
  • Параграфы
  • Нумерованные и маркированные списки
  • Вложенные списки
  • Цитаты
  • Fenced и indented code blocks
  • Thematic breaks
  • emphasis, strong, strikethrough, code spans
  • Ссылки, autolinks, изображения
  • Таблицы (pipe tables) — рендеринг как нативные таблицы InDesign
  • Вход через выбор одного Markdown-файла
  • Unit-тесты parser-слоя без Node.js

Структура проекта

  • main.jsx — точка входа ExtendScript для InDesign
  • src/shared/markdown-parser.jsx — CommonMark-first AST parser
  • src/indesign/styles.jsx — helpers для создания стилей
  • src/indesign/renderer.jsx — renderer AST -> InDesign
  • tests/run-tests.js — запуск parser-тестов через osascript
  • tools/build.js — собирает #include-модули в dist/md-book.jsx
  • docs/ — документация по запуску, архитектуре и ограничениям ExtendScript

Использование

Запуск выполняется в Adobe InDesign через main.jsx.

При запуске скрипт открывает диалог выбора одного Markdown-файла.

Скрипт создаёт текстовый фрейм на активной странице и импортирует в него разобранный документ.

Команды разработки

macOS:

  • Запуск parser-тестов: osascript -l JavaScript tests/run-tests.js
  • Сборка bundled JSX: osascript -l JavaScript tools/build.js

Windows:

  • Сборка bundled JSX: node tools/build-windows.js

VS Code

  • F5 запускает main.jsx в InDesign через ExtendScript Debugger
  • Terminal > Run Task > test запускает parser-тесты
  • Terminal > Run Task > build:jsx собирает dist/md-book.jsx

Документация

  • docs/usage.md
  • docs/architecture.md
  • docs/extendscript.md
  • docs/project-generation/README.md

Текущие ограничения

  • Runtime по-прежнему ориентирован на классический ExtendScript, поэтому код остаётся ES3-friendly.
  • Obsidian-специфичный синтаксис отложен на следующий этап.
  • Вставка изображений реализована как best-effort и зависит от локальных путей относительно выбранного Markdown-источника.

Лицензия

MIT

About

Инструмент для верстальщиков и контент-менеджеров: пишете в Markdown (Obsidian, iA Writer, VS Code), скрипт создаёт готовый макет InDesign. Заголовки, списки, цитаты, таблицы — всё сразу в Paragraph Style и Character Style. Дизайнер настраивает стили один раз, скрипт переиспользует. Работает на macOS и Windows через InDesign.

Topics

Resources

Stars

Watchers

Forks

Contributors