EnglishРусский Map

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, делать коммит, пушить, и опубликованный сайт будет выглядеть просто как стилизованная версия локальных заметок. Никаких шагов трансляции и выискивания несовместимого синтаксиса.

Уровни кастомизации

В описании философии проекта выделены три явных режима работы:

  1. Только контент. Редактируете content/, остальное не трогаете.
  2. Только конфигурация. Настраиваете quartz.config.ts (плагины, тема, метаданные) и quartz.layout.ts (структура страницы - состав шапки, боковой панели, подвала).
  3. На уровне исходного кода. Меняете любой плагин или компонент напрямую. Проект поставляется с полным исходным кодом при установке, поэтому можно форкать пайплайн рендеринга без создания отдельного репозитория.

Это тот же паттерн "поставлять исходники, не прятать движок", что и в 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