local-garden-build

Локальная сборка garden

Этот документ нужен, когда нужно проверить конкретный garden repo без полного production deploy.

Где запускать

В корне garden repo:

cd /home/supervisor/leonid_projects/obsidians/<slug>/site

Там должны быть:

package.json
garden.config.json
src/site/notes/
<slug>-vault/

Установить зависимости

npm install --no-audit --no-fund --prefer-online

Собрать сайт

npm run build

Внутри это вызывает:

duck-garden build

Результат:

dist/

Временная рабочая папка:

.duck-garden/

Проверить dist

npm run assert:dist

Если в garden repo нет npm script assert:dist, можно вызвать напрямую:

node node_modules/@duck/garden-engine/scripts/assert-dist.js

Проверяются:

dist/graph.json
nodes в graph
links в graph
searchIndex.json
локальные картинки из HTML

Полная чистая пересборка

rm -rf node_modules package-lock.json dist .duck-garden
npm install --no-audit --no-fund --prefer-online
npm run build
npm run assert:dist

Если файлы были созданы от root:

sudo chown -R supervisor:supervisor .

Проверить главную страницу

ls -lah dist/index.html

Если dist/index.html не появился, проверь Home note.

Рабочий вариант:

---
dg-publish: true
dg-home: true
---

# Home

или:

---
dg-publish: true
tags:
  - gardenEntry
---

# Home

Сотрудникам не нужно руками писать dg-permalink: /.

Проверить обычную страницу

Файл:

src/site/notes/Guide/First Note.md

даёт URL:

/guide/first-note/

и HTML:

dist/guide/first-note/index.html

Проверить картинки

Ссылка в markdown:

![Example](/img/user/foto/example.jpg)

Debug копирования:

DUCK_DEBUG_IMAGES=1 npm run build

Проверить результат:

find dist/img/user -maxdepth 5 -type f | sort
DUCK_ASSERT_MIN_LINKS=1 npm run assert:dist
DUCK_ASSERT_BACKLINK_URL=/ npm run assert:dist

Можно вместе:

DUCK_ASSERT_MIN_LINKS=1 DUCK_ASSERT_BACKLINK_URL=/ npm run assert:dist

Подробнее: как работает engine.