Quartz
- title
- Quartz
- type
- toolbox
- summary
- Генератор статических сайтов, публикующий Markdown-хранилища для Obsidian как цифровые сады
- tags
- typescript, static-site-generator, obsidian, digital-garden, publishing, pkm
- language
- TypeScript
- license
- MIT
- created
- 2026-04-22
- updated
- 2026-04-22
- lang
- ru
- translation_of
- quartz
- source_updated
- 2026-04-22
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Quartz - генератор статических сайтов, созданный Jacky Zhao (jackyzha0) для публикации личных Markdown-хранилищ в виде веб-сайтов. Замысел намеренно сфокусирован: это слой публикации для цифровых садов. Закидываете папку с Markdown в content/, запускаете npx quartz build и получаете сайт с wikilink'ами, обратными ссылками, полнотекстовым поиском, графом и всплывающими превью - всеми теми привычными возможностями Obsidian, но в виде статического HTML.
Изначально проект базировался на Hugo, но затем был полностью переписан на TypeScript с компонентной системой на JSX. Исходный код целиком поставляется каждому пользователю; здесь нет непрозрачного бинарника CLI, занимающегося рендерингом.
Что он делает
Конвейер сборки выглядит так: Markdown -> AST unified/remark -> трансформации через плагины -> JSX-рендеринг -> статический HTML. Плагины подключаются на трёх этапах - парсинг, фильтрация и эмиссия. Стандартные плагины закрывают базовые потребности авторов цифровых садов:
- Разрешают
[[wikilinks]]и![[transclusions]](в стиле Obsidian) - Рендерят свойства frontmatter, callout'ы и диаграммы Mermaid
- Строят индекс обратных ссылок
- Генерируют данные графа для встроенного виджета графа на страницах
- Формируют полнотекстовый поисковый индекс lunr.js, работающий на стороне клиента
- Запускают KaTeX для LaTeX и Shiki для подсветки синтаксиса
Интерактивность на страницах (поиск, граф, всплывающие окна, SPA-маршрутизация) поставляется небольшими клиентскими бандлами без тяжелых фреймворков. Переходы между страницами работают через micromorph, обеспечивая мгновенные переходы в стиле SPA без накладных расходов полноценного SPA в рантайме.
Совместимость с Obsidian
Степень совместимости - главное отличие Quartz. Большинство генераторов статических сайтов воспринимают Markdown как формат по наименьшему общему делителю и игнорируют расширения Obsidian. Quartz же считает Obsidian Flavored Markdown своим входным контрактом:
- Wikilink'и разрешаются по имени файла сквозь папки точно так же, как в Obsidian
- Трансклюзии рендерят встроенный контент из другого файла
- Callout'ы рендерятся с тем же синтаксисом
> [!note] - Свойства frontmatter (tags, aliases, parent) поддержаны полноценно
- Структура папок становится структурой URL
- Скрытые файлы (с префиксом
_) и служебная папка.obsidian/отфильтровываются автоматически
Практическое следствие: можно писать в Obsidian, делать коммит, пушить, и опубликованный сайт будет выглядеть просто как стилизованная версия локальных заметок. Никаких шагов трансляции и выискивания несовместимого синтаксиса.
Уровни кастомизации
В описании философии проекта выделены три явных режима работы:
- Только контент. Редактируете
content/, остальное не трогаете. - Только конфигурация. Настраиваете
quartz.config.ts(плагины, тема, метаданные) иquartz.layout.ts(структура страницы - состав шапки, боковой панели, подвала). - На уровне исходного кода. Меняете любой плагин или компонент напрямую. Проект поставляется с полным исходным кодом при установке, поэтому можно форкать пайплайн рендеринга без создания отдельного репозитория.
Это тот же паттерн "поставлять исходники, не прятать движок", что и в karing (форк sing-box, поставляемый вместе с клиентом) и mihomo (форк Clash). Специфика мотивации Quartz в том, что личные сайты глубоко индивидуальны: настройки по умолчанию должны задавать вектор, но не связывать руки.
Сборка и хостинг
Команда npx quartz build --serve запускает dev-сервер с горячей перезагрузкой при изменении конфигурации и инкрементальной пересборкой при правках контента. На выходе получается чистый статический HTML/CSS/JS, подходящий для любого статического хостинга: GitHub Pages (основной документированный путь), Cloudflare Pages, Netlify, S3, собственный nginx или Docker-образ. В репозитории "из коробки" лежат Dockerfile и конфигурации для docker-compose.
Производительность сборки - заявленный приоритет. Инкрементальная пересборка сохраняет быстрый цикл обратной связи даже на хранилищах с тысячами файлов, а SPA-маршрутизация делает переходы по опубликованным страницам мгновенными после первой загрузки.
Философия
Страница философии сформулирована непривычно прямо для генератора статических сайтов. Дизайн определяют три тезиса:
- Сад должен быть настоящим гипертекстом. Ссылаясь на эссе Майка Колфилда "The Garden and the Stream", Quartz отвергает иерархии картотек и предварительную категоризацию в духе Zettelkasten. Мышление ризоматично, инструмент публикации должен быть таким же.
- Садом нужно делиться. Цитата Хэмминга об "открытой двери" здесь принципиальна. Публикация даже сырых заметок создаёт петли обратной связи, невозможные для полностью закрытых записей.
- Сад должен быть вашим собственным. Три уровня кастомизации существуют для того, чтобы инструмент подошёл как авторам без технического бэкграунда, так и опытным разработчикам, не загоняя ни тех, ни других в чужой рабочий процесс.
Проект открыто позиционирует себя как "agentic software" - продуманные настройки по умолчанию, полный контроль пользователя, никакой привязки к платформе.
Компромиссы
- Требуются TypeScript и Node v22+. Инструментарий тяжелее, чем у Hugo или Zola: это не проблема, если Node уже установлен, но лишнее препятствие, если его нет.
- Заточен исключительно под Obsidian. Quartz - не универсальный генератор статических сайтов. Если ваш контент не укладывается в формат wiki-хранилища, стандартные темы и компоненты покажутся перегруженными.
- Система плагинов вместо каталога тем. Кастомизация делается в коде, а не простым закидыванием папки с темой. Продвинутым пользователям это нравится, но люди без навыков программирования упрутся в стену быстрее, чем с темами для Hugo.
- Сообщество живёт в Discord. Трекер issue относительно активен, но основная оперативная помощь идёт в Discord, что удобно постоянным пользователям платформы, но неудобно всем остальным.
Репозиторий
https://github.com/jackyzha0/quartz - 11 915 звёзд, 3 704 форка, лицензия MIT, создан в июле 2021 года. Сайт документации на quartz.jzhao.xyz сам собран на Quartz, что служит лучшей демонстрацией возможностей.
Связанные страницы
- digital-garden - формат публикации, ради которого существует Quartz
- llm-wiki-pattern - Quartz как один из подходящих вариантов публикации вики, поддерживаемой LLM
- files-as-graph-database - Quartz публикует граф как есть, сохраняя структуру wikilink'ов на сгенерированном сайте
- obsidian-ai-complete-guide - хранилище Хуашу использует похожие соглашения; Quartz стал бы для него естественным слоем публикации
- filesystem-is-graph-database - та же базовая ставка на масштабируемость связки Markdown + wikilinks