Здесь будет более менее живая заметка о том, как происходит переход. Идея была честно скопирована с западного примера: https://quartz.eilleeenz.com/Quartz-customization-log

Что хочется поменять

Функционально:

  • добавить Recent notes слева на Desktop
  • добавить navbar с дизайном с vanadium23.me
  • на десктопе сделать более широкий контент
  • переверстать страницу одной заметки на более минималистичную
  • накатить новый дизайн на classless

Проблемы:

  • из-за наличия permalinks у меня не сломались старые пути, но новые выглядят как openbox/Openbox - необходимо придумать как от дубля избавиться
    • решилось тем, что openbox в архив, а quartz натянут на блог
  • починить slugify в obsidian-digital-garden, который создаёт бесконечный редирект на quartz
  • проверить, что даты правильно подтягиваются из frontmatter
  • починить preview для ссылок (opengraph метаданные)

Переход на quartz

В тот же момент, когда и выбирал разворачивать в прошлый раз quartz уже был. Правда, вся его архитектура была другая: в основе был hugo и сверху него был скрипт, который приводил obsidian markdown к hugo like. Выглядела конструкция хрупко, а сейчас у этого инструмента уже v4.

В этот раз всё сделано с помощью Typescript и довольно сильно напоминает eleventy. И стоит посмотреть на архитектуру:

  • сам quartz из себя представляет pipeline применённых плагинов, которые разделяются на три вида:
    • transformers - меняют контент внутри заметки (регулярки на стероидах)
    • filters - фильтруют какие файлы не надо публиковать
    • emitters - преобразуют заметку + метаданные в финальный вид (html для сайта, xml для RSS, json для графа)
  • компоненты - это то из чего состоит страница.
    • сама страница разбивается на 5 блока: сверху, контент, справа и футер
    • компонентами являются: метаданные, table of content, локальный граф, и много чего ещё

Что было до текущего состояния

Хотелось часть своих заметок выносить в публичное пространство (подробнее в цифровом архиве написано). Для этого ковырялся в апреле 2022 года и сделал следующее:

  1. за основу github pages взял шаблон на jekyll https://github.com/maximevaillancourt/digital-garden-jekyll-template
  2. а для отправки в Github API выбрал obsidian-digital-garden, но его пришлось форкнуть и дорабатывать