insta-toc
Version:
Simultaneously generate, update, and maintain a table of contents for your notes in real time.
25 lines (18 loc) • 676 B
text/typescript
import type { HeadingCache } from "obsidian";
import { omitHeadingRegex } from "../constants";
export function getLocalSettingsOmitSuggestions(headings?: HeadingCache[]): string[] {
if (!headings || headings.length === 0) return [];
const suggestions = new Set<string>();
for (const heading of headings) {
const normalizedHeading = heading.heading.trim();
if (
normalizedHeading.length === 0
|| omitHeadingRegex.test(normalizedHeading)
|| suggestions.has(normalizedHeading)
) {
continue;
}
suggestions.add(normalizedHeading);
}
return Array.from(suggestions);
}