Babel is why I keep blogging with Emacs
Автор испытывает двойственные чувства к своему блогинговому процессу в Emacs. С одной стороны, он завидует простым статическим генераторам сайтов, которые можно написать за пару тысяч строк кода и полностью контролировать. С другой, он продолжает использовать Org mode со встроенной публикацией, несмотря на её сложность и непрозрачность — экспортный код Org составляет свыше 20 000 строк, что делает его глубокое понимание практически невозможным.
Ключевая причина, по которой он не переходит на простой кастомный движок — это Babel, мощная система Org для выполнения кода прямо во время экспорта. Она позволяет запускать блоки кода на множестве языков, вставлять результаты (включая таблицы и изображения) в статью и использовать сессии для переиспользования данных. Это незаменимо для одновременной работы с данными, графиками и текстом, особенно в R.
Таким образом, несмотря на желание упростить процесс, необходимость в функциональности Babel перевешивает — её реализация с нуля заняла бы месяцы, что неприемлемо при ограниченном времени. Автор смиряется с сложностью Emacs, ценя его уникальные возможности.
Комментарии (71)
- Участники обсуждают использование Emacs и Org-mode для ведения блогов, включая выполнение кода через Babel и экспорт в различные форматы.
- Многие перешли на статические генераторы сайтов (Hugo, Zola, Pelican, Astro) из-за простоты или ограничений Org-mode, но некоторые интегрируют его через ox-hugo.
- Поднимаются вопросы о недостатках привязки разметки к редактору, преимуществах чистого Markdown и альтернативах вроде Pandoc или Quarto.
- Некоторые предпочитают минималистичные подходы: публикация сырых текстовых файлов или использование собственных скриптов для загрузки на S3.
- Отмечаются сложности с поддержкой формул, интерактивностью и зависимостями в различных инструментах.
Комментарии (112)
- Предложены инструменты для конвертации HTML в PDF: браузерные решения (headless Chrome, Puppeteer, Playwright), open-source (WeasyPrint, Gotenberg, Pandoc) и коммерческие (Prince XML).
- Обсуждаются нюансы: важность настройки print CSS для корректной пагинации, возможность обхода браузера через прямую генерацию PDF (Apache PDFBox, Typst).
- Упомянуты альтернативы: архивация страниц в единый HTML-файл (SingleFile), конвертация из Markdown (KeenWrite), обратная задача — PDF в HTML для доступности.
- Отмечена надежность браузерного подхода для сложных версток, но также ресурсоемкость и сложность поддержки такого решения.
- WeasyPrint получил несколько положительных отзывов за стабильность и простоту интеграции, особенно в Django-средах.