mirror of
https://github.com/devonthesofa/obsidian-note-status.git
synced 2026-07-22 05:45:04 +00:00
31 lines
871 B
TypeScript
31 lines
871 B
TypeScript
import { TFile } from "obsidian";
|
|
import settingsService from "./settingsService";
|
|
import { getKnownFrontmatterKeys } from "@/utils/frontmatterMappings";
|
|
|
|
const ensureOrderedKeys = (keys: string[]): string[] => {
|
|
const defaultKey = settingsService.settings.tagPrefix;
|
|
const seen = new Set<string>();
|
|
const ordered: string[] = [];
|
|
|
|
[defaultKey, ...keys].forEach((key) => {
|
|
const trimmed = key?.trim();
|
|
if (!trimmed || seen.has(trimmed)) return;
|
|
seen.add(trimmed);
|
|
ordered.push(trimmed);
|
|
});
|
|
|
|
return ordered;
|
|
};
|
|
|
|
export const getAllFrontmatterKeys = (): string[] => {
|
|
const keys = getKnownFrontmatterKeys(settingsService.settings);
|
|
return ensureOrderedKeys(keys);
|
|
};
|
|
|
|
export const getFrontmatterKeysForFile = (file: TFile): string[] => {
|
|
if (file.extension !== "md") {
|
|
return [settingsService.settings.tagPrefix];
|
|
}
|
|
|
|
return getAllFrontmatterKeys();
|
|
};
|