2025-07-15 15:30:17 +00:00
|
|
|
import { NoteStatus } from "./noteStatus";
|
|
|
|
|
|
2025-11-21 16:10:10 +00:00
|
|
|
export type StatusFrontmatterMapping =
|
|
|
|
|
| {
|
|
|
|
|
id: string;
|
|
|
|
|
scope: "template";
|
|
|
|
|
templateId: string;
|
|
|
|
|
frontmatterKeys: string[];
|
|
|
|
|
}
|
|
|
|
|
| {
|
|
|
|
|
id: string;
|
|
|
|
|
scope: "status";
|
|
|
|
|
templateId?: string;
|
|
|
|
|
statusName: string;
|
|
|
|
|
frontmatterKeys: string[];
|
|
|
|
|
};
|
|
|
|
|
|
2025-07-15 15:30:17 +00:00
|
|
|
export interface StatusTemplate {
|
|
|
|
|
id: string;
|
|
|
|
|
name: string;
|
|
|
|
|
description: string;
|
2026-03-18 17:10:00 +00:00
|
|
|
authorGithub?: string;
|
2026-03-19 10:52:27 +00:00
|
|
|
isPredefined?: boolean;
|
2025-07-15 15:30:17 +00:00
|
|
|
statuses: NoteStatus[];
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-18 11:35:49 +00:00
|
|
|
export type SyncGroup =
|
|
|
|
|
| "templates"
|
|
|
|
|
| "customStatuses"
|
|
|
|
|
| "statusColors"
|
|
|
|
|
| "uiAppearance"
|
|
|
|
|
| "workflow"
|
|
|
|
|
| "storage"
|
|
|
|
|
| "features";
|
2026-03-18 10:45:54 +00:00
|
|
|
|
2025-07-15 15:30:17 +00:00
|
|
|
export type PluginSettings = {
|
2025-07-19 11:14:54 +00:00
|
|
|
fileExplorerIconPosition:
|
|
|
|
|
| "absolute-right"
|
|
|
|
|
| "file-name-left"
|
|
|
|
|
| "file-name-right";
|
2025-11-17 18:39:02 +00:00
|
|
|
fileExplorerIconFrame: "always" | "never";
|
2025-11-17 18:41:48 +00:00
|
|
|
fileExplorerIconColorMode: "status" | "theme";
|
2025-07-15 15:30:17 +00:00
|
|
|
statusColors: Record<string, string>;
|
|
|
|
|
showStatusBar: boolean;
|
|
|
|
|
autoHideStatusBar: boolean;
|
2025-11-17 17:01:05 +00:00
|
|
|
enableStatusOverviewPopup: boolean; // Whether to show popup with grouped statuses
|
2025-08-06 15:38:13 +00:00
|
|
|
templates: StatusTemplate[];
|
2025-07-15 15:30:17 +00:00
|
|
|
customStatuses: NoteStatus[];
|
2025-08-06 17:36:36 +00:00
|
|
|
statusBarShowTemplateName: "always" | "never" | "auto"; // How to show template names in status bar
|
2025-11-22 10:23:07 +00:00
|
|
|
statusBarBadgeStyle: "accent" | "filled" | "dot";
|
2025-11-22 10:32:02 +00:00
|
|
|
statusBarBadgeContentMode: "icon-text" | "icon" | "text" | "none";
|
2025-07-15 15:30:17 +00:00
|
|
|
showStatusIconsInExplorer: boolean;
|
|
|
|
|
hideUnknownStatusInExplorer: boolean;
|
2025-11-21 13:38:17 +00:00
|
|
|
fileExplorerColorFileName: boolean; // Whether to color the file explorer filename text using the current status color
|
2025-11-21 14:31:01 +00:00
|
|
|
fileExplorerColorBlock: boolean; // Whether to tint the entire explorer list item background using the status color
|
|
|
|
|
fileExplorerLeftBorder: boolean; // Whether to display a colored border on the explorer item
|
|
|
|
|
fileExplorerStatusDot: boolean; // Whether to append a small colored dot next to the filename
|
|
|
|
|
fileExplorerUnderlineFileName: boolean; // Whether to underline the filename using the status color
|
2025-11-21 14:46:13 +00:00
|
|
|
enableExperimentalFeatures: boolean; // Gate for experimental features
|
|
|
|
|
enableStatusDashboard: boolean; // Toggle for the status dashboard experiment
|
|
|
|
|
enableGroupedStatusView: boolean; // Toggle for the grouped status view experiment
|
2025-07-15 15:30:17 +00:00
|
|
|
enabledTemplates: string[]; // IDs of enabled templates
|
|
|
|
|
useCustomStatusesOnly: boolean; // Whether to use only custom statuses or include templates
|
|
|
|
|
useMultipleStatuses: boolean; // Whether to allow multiple statuses per note
|
2025-11-18 17:48:58 +00:00
|
|
|
singleStatusStorageMode: "list" | "string"; // How to store single statuses when multiple statuses are disabled
|
2025-07-15 15:30:17 +00:00
|
|
|
tagPrefix: string; // Prefix for the status tag (default: 'status')
|
|
|
|
|
strictStatuses: boolean; // Whether to only show known statuses
|
|
|
|
|
quickStatusCommands: string[];
|
2025-07-20 18:02:43 +00:00
|
|
|
// Unknown status customization
|
|
|
|
|
unknownStatusIcon: string; // Custom icon for unknown status
|
2025-11-21 08:30:10 +00:00
|
|
|
unknownStatusLucideIcon?: string; // Optional Lucide icon for unknown status
|
2025-07-20 18:02:43 +00:00
|
|
|
unknownStatusColor: string; // Custom hex color for unknown status
|
|
|
|
|
statusBarNoStatusText: string; // Custom text for status bar when no status
|
|
|
|
|
statusBarShowNoStatusIcon: boolean; // Whether to show icon in status bar for no status
|
|
|
|
|
statusBarShowNoStatusText: boolean; // Whether to show text in status bar for no status
|
2025-07-21 19:11:10 +00:00
|
|
|
vaultSizeLimit: number; // Disable dashboard and grouped view for vaults with more notes than this limit
|
2025-08-07 17:41:11 +00:00
|
|
|
// Editor toolbar button settings
|
|
|
|
|
showEditorToolbarButton: boolean; // Whether to show the toolbar button
|
|
|
|
|
editorToolbarButtonPosition: "left" | "right" | "right-before"; // Position of the toolbar button
|
2025-08-07 18:59:49 +00:00
|
|
|
editorToolbarButtonDisplay: "all-notes" | "active-only"; // Whether to show button in all notes or only active one
|
2025-11-18 17:18:43 +00:00
|
|
|
applyStatusRecursivelyToSubfolders: boolean; // Whether to show recursive folder context option
|
2025-11-21 16:10:10 +00:00
|
|
|
statusFrontmatterMappings: StatusFrontmatterMapping[]; // Custom mappings between templates/statuses and frontmatter keys
|
2025-11-21 17:54:03 +00:00
|
|
|
writeMappedTagsToDefault: boolean; // Whether mapped tags should also write to the default tag
|
2026-03-18 10:32:38 +00:00
|
|
|
enableExternalStatusSync: boolean; // Whether to sync statuses to an external file
|
|
|
|
|
externalStatusSyncPath: string; // Path to the external sync file
|
2026-03-18 10:45:54 +00:00
|
|
|
syncGroups: SyncGroup[]; // Selected groups of settings to synchronize
|
2026-03-18 11:35:49 +00:00
|
|
|
enableNonMarkdownSync: boolean; // Whether to sync non-markdown statuses to a vault file
|
|
|
|
|
nonMarkdownSyncPath: string; // Path to the non-markdown sync file
|
2026-03-18 18:38:17 +00:00
|
|
|
defaultStatusForNewNotes: string | null; // Default status to apply to new notes
|
2025-07-15 15:30:17 +00:00
|
|
|
[key: string]: unknown;
|
|
|
|
|
};
|