История работ
- [ ]
Здесь будет более менее живая заметка о том, как происходит переход. Идея была честно скопирована с западного примера: https://quartz.eilleeenz.com/Quartz-customization-log
Что хочется поменять
Функционально:
- добавить Recent notes слева на Desktop
- добавить чтобы у заметки была дата создания и дата обновления
- сделать кастомный crawler, который поменяет Openbox url на урлы до цифрового архива.
- добавить navbar с дизайном с vanadium23.me
- на десктопе сделать более широкий контент
- переверстать страницу одной заметки на более минималистичную
- накатить новый дизайн на classless
Проблемы:
- из-за наличия permalinks у меня не сломались старые пути, но новые выглядят как
openbox/Openbox
- необходимо придумать как от дубля избавиться- решилось тем, что openbox в архив, а quartz натянут на блог
- починить slugify в obsidian-digital-garden, который создаёт бесконечный редирект на quartz
- решилось тем, что отключил slugify в настройках obsidian-digital-garden
- починить preview для ссылок (opengraph метаданные)
- поменять картинку
- починить загрузку картинок через digital garden
- разобраться с бесконечным permalink, если совпадает с slug
- закинуть PR с фиксом бесконечных редиректов в upstream
- починить шрифт в картинках на превьюшках
Добавлено в quartz
Подтягивание дат
В quartz настроено куча полей откуда по умолчанию брать даты создания и изменения (src), суть в том что на всех не напасёшься. Поэтому пришлось сделать пару изменений (src).
По хорошему эта переделка должна быть такой:
- В contentMeta сказать какие поля показывать в качестве дат (по умолчанию только created).
- В lastmod для frontmatter добавить конфиг с полями для проверки даты модификации и старты.
И это тогда можно законтрибьютить назад.
Navbar
В quartz есть header, но он помещается над основным контентом и учитывает левые и правый сайдбар в ширине. А на сайтах часто есть ещё и navbar сверху, над всем контентом сайта.
В этом плане мне нравится то, что добавились семантические теги в html.
Header уже сделан неправильно, но вот nav точно должен быть над article. Получилось сделать в PR 11.
- Законтрибьюьтить navbar обратно в upstream quartz. ✅ 2024-11-13
Переход на quartz
В тот же момент, когда и выбирал разворачивать в прошлый раз quartz уже был. Правда, вся его архитектура была другая: в основе был hugo и сверху него был скрипт, который приводил obsidian markdown к hugo like. Выглядела конструкция хрупко, а сейчас у этого инструмента уже v4.
В этот раз всё сделано с помощью Typescript и довольно сильно напоминает eleventy. И стоит посмотреть на архитектуру:
- сам quartz из себя представляет pipeline применённых плагинов, которые разделяются на три вида:
- transformers - меняют контент внутри заметки (регулярки на стероидах)
- filters - фильтруют какие файлы не надо публиковать
- emitters - преобразуют заметку + метаданные в финальный вид (html для сайта, xml для RSS, json для графа)
- компоненты - это то из чего состоит страница.
- сама страница разбивается на 5 блока: сверху, контент, справа и футер
- компонентами являются: метаданные, table of content, локальный граф, и много чего ещё