Русский
Граф заметок
Коротко. Админка, Notes & Content, Note Graph показывает хранилище как граф: заметки это узлы, вики-ссылки это ребра. Раскладка стягивает заметки одной группы в кластер, а поле Group by: задает признак группировки: подграф (по умолчанию) или любой ключ frontmatter, например lang или author. Чтобы сгруппировать целые папки без правки каждой заметки, добавьте в хранилище файл frontmatter-патча.
Что показывает граф
Каждая заметка это узел, каждая вики-ссылка это ребро со стрелкой от ссылающейся заметки к целевой. Оформление узла кодирует состояние:
| Маркер | Значение |
|---|---|
| Зеленый квадрат | Публичная заметка (free: true) |
| Ромб | Главная страница |
| Круг цвета подграфа | Заметка в этом подграфе |
| Серый круг | Без подграфа |
Цвета берутся из настроек подграфов: Admin, Notes & Content, Subgraphs.
Перетащите узел, и новая позиция сохранится сразу. Граф работает как холст: раскладку можно собрать руками, а не только автоматом.
Кнопки в шапке
| Кнопка | Что делает |
|---|---|
| Auto layout | Пересчитывает все позиции силовой раскладкой. Заметки одной группы притягиваются друг к другу, появляются кластеры. Не сохраняется, пока не нажать Save positions |
| Save positions | Сохраняет текущие позиции всех узлов |
| Public outside | При следующем Auto layout выносит публичные (free: true) заметки на внешнее кольцо. Удобно увидеть публичную поверхность сайта вокруг закрытого ядра |
| Group by: | Поле frontmatter для кластеризации. По умолчанию subgraph |
Группировка по любому полю frontmatter
Введите ключ frontmatter в Group by: и нажмите Auto layout. Заметки с одинаковым значением ключа соберутся в один кластер:
subgraph(по умолчанию) группирует по меткам подграфов, зоны доступа видны как кластеры.langделит граф на языковые острова.- Работает любой свой ключ:
author,status,type, что угодно из ваших заметок.
Заметки без этого поля остаются вне кластеров и располагаются только по связям. Пока позиции не сохранены, граф перекластеризуется сразу при смене поля; при сохраненных позициях он держит их, пока вы не нажмете Auto layout, так что случайный ввод не разрушит ручную раскладку.
Группировка из самого хранилища
Проставлять ключ сотням заметок руками бессмысленно. Заметка с frontmatter-патчем назначает ключ группировки целым папкам при загрузке. Демо-хранилище этого сайта делает ровно это файлом _graph_groups.md в корне:
---
type: frontmatter-patch
include:
- demo/**
- en/user/**
- ru/user/**
- en/hub/**
- ru/hub/**
---
```jsonnet
if std.objectHas(meta, "subgraph") || std.objectHas(meta, "subgraphs") then {}
else if std.startsWith(path, "demo/") then { subgraph: "demo" }
else if std.startsWith(path, "en/user/") then { subgraph: "en_user" }
else if std.startsWith(path, "ru/user/") then { subgraph: "ru_user" }
else if std.startsWith(path, "en/hub/") || std.startsWith(path, "ru/hub/") then { subgraph: "hub" }
else {}
```
Как это читать: include перечисляет папки, к которым применяется правило, jsonnet-блок вычисляет frontmatter для подмешивания. Заметка с уже объявленным subgraph или subgraphs не трогается, остальные получают подграф по папке. Откройте граф заметок на этом сайте и увидите четыре кластера: demo, en_user, ru_user, hub.
Две вещи, которые стоит знать:
- Метка подграфа сама по себе не закрывает заметку. Доступ это отдельная ось:
free: trueоставляет заметку публичной, а читателей ограничивает только подграф с настроенными правилами доступа. См. ru/user/subgraphs. - Имя файла начинается с
_, поэтому сама заметка-патч скрыта из поиска и списков.
Тот же прием работает для любого поля группировки, не только subgraph. Пропатчьте папку { team: "platform" } и группируйте граф по team.
Смотрите также
- ru/user/subgraphs о том, что такое подграфы и как устроен доступ
- ru/user/frontmatter_patches полный синтаксис патчей: глобы, exclude, приоритеты, цепочки