Оглавление: живой список заголовков
Список заголовков страницы. Каждый пункт ведёт к своему заголовку. Вставляется через тулбокс или вводом /toc.
Список строится по странице на лету, поэтому он не сохраняется. Он обновляется, когда вы добавляете, переименовываете, перемещаете или удаляете заголовки. Блок показывает заголовки верхнего уровня и заголовки внутри колонок и выносок. Заголовки внутри переключателей, списков и заголовков-переключателей он пропускает. Пункты сдвигаются по уровню заголовка, а пропущенный уровень не добавляет лишнего отступа.
Щёлкните пункт или поставьте на него фокус и нажмите Enter, чтобы прокрутить к заголовку. ArrowUp/ArrowDown, Home и End переключают пункты. Пункт раздела, который вы сейчас читаете, отмечен атрибутом aria-current="location".
Без заголовков блок показывает «Добавьте заголовки, чтобы создать оглавление.». Он работает в режиме только для чтения. Вставка оглавления из Notion создаёт этот блок. При экспорте в Markdown блок пропускается, потому что заголовки экспортируются сами.
blocksToHtml (и HTML-экспорт на сервере) выводит его как <nav> со ссылками, собранный по сохранённым заголовкам. Каждый заголовок из списка получает id, чтобы ссылки работали: свой anchor, если он есть, иначе id блока. У каждого пункта есть data-depth.
Импорт
import { TableOfContents } from '@bloklabs/core/tools';Формат данных
interface TableOfContentsData {
textColor?: string; // Colour preset name, absent for default
backgroundColor?: string; // Colour preset name, absent for none
}{
"id": "toc001",
"type": "table_of_contents",
"data": {
"backgroundColor": "gray"
}
}Пример использования
import { Blok } from '@bloklabs/core';
import { TableOfContents } from '@bloklabs/core/tools';
const editor = new Blok({
holder: 'editor',
tools: {
table_of_contents: {
class: TableOfContents,
},
},
});