insta-toc
Version:
Simultaneously generate, update, and maintain a table of contents for your notes in real time.
73 lines (65 loc) • 2.78 kB
text/typescript
import type { HeadingCache, Pos } from "obsidian";
export const defaultPosition: Pos = { start: { line: 0, col: 0, offset: 0 }, end: { line: 0, col: 0, offset: 0 } };
export const testStandardHeadings: HeadingCache[] = [
{ heading: "Title 1 Level 1", level: 1, position: defaultPosition },
{ heading: "Title 1 Level 2", level: 2, position: defaultPosition },
{
heading: "Title 1 Level 3",
level: 3,
position: defaultPosition
},
{ heading: "Title 1 Level 4", level: 4, position: defaultPosition },
{ heading: "Title 1 Level 5", level: 5, position: defaultPosition },
{ heading: "Title 1 Level 6", level: 6, position: defaultPosition }
];
export const testHeadingsWithoutFirstLevel: HeadingCache[] = [
{ heading: "Title 1 Level 2", level: 2, position: defaultPosition },
{ heading: "Title 1 Level 3", level: 3, position: defaultPosition },
{
heading: "Title 1 Level 4",
level: 4,
position: defaultPosition
},
{ heading: "Title 1 Level 5", level: 5, position: defaultPosition },
{ heading: "Title 1 Level 6", level: 6, position: defaultPosition }
];
export const testHeadingsMixed: HeadingCache[] = [
{ heading: "Title 1 Level 4", level: 4, position: defaultPosition },
{
heading: "Title 1 Level 1",
level: 1,
position: defaultPosition
},
{ heading: "Title 1 Level 6", level: 6, position: defaultPosition },
{ heading: "Title 1 Level 2", level: 2, position: defaultPosition },
{ heading: "Title 2 Level 2", level: 2, position: defaultPosition },
{
heading: "Title 1 Level 3",
level: 3,
position: defaultPosition
}
];
export const testHeadingsWithSpecialChars: HeadingCache[] = [
{
heading:
"Title 1 `level 1` {with special chars}, **bold**, _italic_, #a-tag, ==highlighted== and ~~strikethrough~~ text",
level: 1,
position: defaultPosition
},
{ heading: "Title 1 level 2 <em style=\"color: black\">with HTML</em>", level: 2, position: defaultPosition },
{
heading: "Title 1 level 3 [[wikilink1]] [[wikilink2|wikitext2]] [mdlink](https://mdurl)",
level: 3,
position: defaultPosition
},
{
heading:
"Title 1 level 4 [[wikilink1]] [[wikilink2|wikitext2]] [mdlink1](https://mdurl) [[wikilink3]] [[wikilink4|wikitext3]] [mdlink2](https://mdurl)",
level: 4,
position: defaultPosition
},
{ heading: "Title 1 level 5 <!-- omit -->", level: 5, position: defaultPosition }
];
export const TEST_DEFAULT_SETTINGS = { excludedChars: [ "*", "_", "`", "==", "~~", "{", "}", "#", "\\" ] };
// Omit Specific Headings
export const testOmitHeadingRegex: RegExp = /<!--\s*omit\s*-->/;