abf4d6ccf7
New 'Filter tags' setting in Recent Files tab. Enter tag names one per line to pin specific tags as filter pills. Leave empty to auto-detect from frontmatter 'type' property (existing behavior).
94 lines
2.3 KiB
TypeScript
94 lines
2.3 KiB
TypeScript
// ── Waypoint Settings ──
|
||
|
||
export interface PeriodNoteSettings {
|
||
folder: string;
|
||
templateFile: string;
|
||
nameFormat: string;
|
||
typeProperty: string;
|
||
}
|
||
|
||
export interface CalendarSettings {
|
||
firstDayOfWeek: number; // 0=Sunday, 1=Monday
|
||
showNoteIndicators: boolean;
|
||
}
|
||
|
||
export interface RecentFilesSettings {
|
||
maxItems: number;
|
||
updateOn: 'file-open' | 'file-edit';
|
||
omittedPaths: string[];
|
||
omittedTags: string[];
|
||
filterTags: string[]; // tags to show as filter pills (empty = auto-detect from frontmatter)
|
||
}
|
||
|
||
export interface DisplaySettings {
|
||
rowSize: number; // px, base height of bookmark items (20–40)
|
||
rowSpacing: number; // px, gap between items (0–12)
|
||
indentSize: number; // px, indent per depth level (8–32)
|
||
fontSize: number; // px, font size for bookmark labels (10–18)
|
||
iconSize: number; // px, icon size (12–24)
|
||
calendarCellSize: number; // px, calendar day cell height (20–48)
|
||
}
|
||
|
||
export interface WaypointSettings {
|
||
calendar: CalendarSettings;
|
||
daily: PeriodNoteSettings;
|
||
weekly: PeriodNoteSettings;
|
||
monthly: PeriodNoteSettings;
|
||
quarterly: PeriodNoteSettings;
|
||
yearly: PeriodNoteSettings;
|
||
recentFiles: RecentFilesSettings;
|
||
display: DisplaySettings;
|
||
}
|
||
|
||
export const DEFAULT_SETTINGS: WaypointSettings = {
|
||
calendar: {
|
||
firstDayOfWeek: 1, // Monday
|
||
showNoteIndicators: true,
|
||
},
|
||
daily: {
|
||
folder: 'periodic/daily',
|
||
templateFile: 'Templates/Daily note',
|
||
nameFormat: 'YYYY-MM-DD',
|
||
typeProperty: 'daily-note',
|
||
},
|
||
weekly: {
|
||
folder: 'periodic/weekly',
|
||
templateFile: 'Templates/Weekly note',
|
||
nameFormat: 'GGGG-[W]WW',
|
||
typeProperty: 'weekly-note',
|
||
},
|
||
monthly: {
|
||
folder: 'periodic/monthly',
|
||
templateFile: 'Templates/Monthly note',
|
||
nameFormat: 'YYYY-MM',
|
||
typeProperty: 'monthly-note',
|
||
},
|
||
quarterly: {
|
||
folder: 'periodic/quarterly',
|
||
templateFile: 'Templates/Quarterly note',
|
||
nameFormat: 'YYYY-[Q]Q',
|
||
typeProperty: 'quarterly-note',
|
||
},
|
||
yearly: {
|
||
folder: 'periodic/yearly',
|
||
templateFile: 'Templates/Yearly note',
|
||
nameFormat: 'YYYY',
|
||
typeProperty: 'yearly-note',
|
||
},
|
||
recentFiles: {
|
||
maxItems: 50,
|
||
updateOn: 'file-open',
|
||
omittedPaths: [],
|
||
omittedTags: [],
|
||
filterTags: [],
|
||
},
|
||
display: {
|
||
rowSize: 26,
|
||
rowSpacing: 2,
|
||
indentSize: 16,
|
||
fontSize: 13,
|
||
iconSize: 16,
|
||
calendarCellSize: 32,
|
||
},
|
||
};
|