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 для InDesignsrc/shared/markdown-parser.jsx— CommonMark-first AST parsersrc/indesign/styles.jsx— helpers для создания стилейsrc/indesign/renderer.jsx— rendererAST -> InDesigntests/run-tests.js— запуск parser-тестов черезosascripttools/build.js— собирает#include-модули вdist/md-book.jsxdocs/— документация по запуску, архитектуре и ограничениям 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
F5запускаетmain.jsxв InDesign черезExtendScript DebuggerTerminal > Run Task > testзапускает parser-тестыTerminal > Run Task > build:jsxсобираетdist/md-book.jsx
docs/usage.mddocs/architecture.mddocs/extendscript.mddocs/project-generation/README.md
- Runtime по-прежнему ориентирован на классический ExtendScript, поэтому код остаётся ES3-friendly.
- Obsidian-специфичный синтаксис отложен на следующий этап.
- Вставка изображений реализована как best-effort и зависит от локальных путей относительно выбранного Markdown-источника.
MIT