aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/utils
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-12-27 16:30:11 +0200
committerGitHub <noreply@github.com>2025-12-27 14:30:11 +0000
commitaf3010abaa37f7db4144820469422bdbb432adfc (patch)
tree20f29ef6df2efce261d7d7964e0535beb0b51a7b /packages/shared/utils
parent93630ce88dcb07bcdf7445185fe20612a5c22b7b (diff)
downloadkarakeep-af3010abaa37f7db4144820469422bdbb432adfc.tar.zst
feat: add customizable tag styles (#2312)
* feat: add customizable tag styles * add tag lang setting * ui settings cleanup * fix migration * change look of the field * more fixes * fix tests
Diffstat (limited to 'packages/shared/utils')
-rw-r--r--packages/shared/utils/tag.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/shared/utils/tag.ts b/packages/shared/utils/tag.ts
index 8e1bd105..4dc7c696 100644
--- a/packages/shared/utils/tag.ts
+++ b/packages/shared/utils/tag.ts
@@ -1,6 +1,30 @@
+import type { ZTagStyle } from "../types/users";
+
/**
* Ensures exactly ONE leading #
*/
export function normalizeTagName(raw: string): string {
return raw.trim().replace(/^#+/, ""); // strip every leading #
}
+
+export type TagStyle = ZTagStyle;
+
+export function getTagStylePrompt(style: TagStyle): string {
+ switch (style) {
+ case "lowercase-hyphens":
+ return "- Use lowercase letters with hyphens between words (e.g., 'machine-learning', 'web-development')";
+ case "lowercase-spaces":
+ return "- Use lowercase letters with spaces between words (e.g., 'machine learning', 'web development')";
+ case "lowercase-underscores":
+ return "- Use lowercase letters with underscores between words (e.g., 'machine_learning', 'web_development')";
+ case "titlecase-spaces":
+ return "- Use title case with spaces between words (e.g., 'Machine Learning', 'Web Development')";
+ case "titlecase-hyphens":
+ return "- Use title case with hyphens between words (e.g., 'Machine-Learning', 'Web-Development')";
+ case "camelCase":
+ return "- Use camelCase format (e.g., 'machineLearning', 'webDevelopment')";
+ case "as-generated":
+ default:
+ return "";
+ }
+}