fix: Use markdown link format for meetingbar output
Meeting titles containing < characters were truncated by the <||> delimiter parsing logic.

Assisted-by: Claude Haiku 4.5 via Claude Code
change npuwntxlwkwoswmkkluxrpynqsoosqqp
commit 0a2d92a00dce22feeaaf56e39a0ef6c577ec87aa
author Alpha Chen <alpha@kejadlen.dev>
date
parent xymrvnqy
diff --git a/.config/sketchybar/meetingbar.swift b/.config/sketchybar/meetingbar.swift
index 99bd0d48..d53058a4 100755
--- a/.config/sketchybar/meetingbar.swift
+++ b/.config/sketchybar/meetingbar.swift
@@ -226,9 +226,9 @@ do {
             displayText = "\(event.title ?? "Untitled Event") \(timeStr)"
         }
 
-        // Output format: DISPLAY_TEXT<||>ZOOM_URL (or just DISPLAY_TEXT if no Zoom URL)
+        // Output format: markdown link [DISPLAY_TEXT](URL) or just DISPLAY_TEXT if no URL
         if let zoomURL = extractZoomURL(from: event) {
-            print("\(displayText)<||>\(zoomURL)")
+            print("[\(displayText)](\(zoomURL))")
         } else {
             print(displayText)
         }
diff --git a/.config/sketchybar/plugins/meetingbar.sh b/.config/sketchybar/plugins/meetingbar.sh
index deff3678..8c2bbe5e 100755
--- a/.config/sketchybar/plugins/meetingbar.sh
+++ b/.config/sketchybar/plugins/meetingbar.sh
@@ -3,10 +3,11 @@
 CALENDAR=
 OUTPUT=$("$CONFIG_DIR/meetingbar.swift" "$CALENDAR")
 
-# Parse output: format is "DISPLAY_TEXT<||>ZOOM_URL" or just "DISPLAY_TEXT"
-if echo "$OUTPUT" | grep -q "<||>"; then
-    MEETING=$(echo "$OUTPUT" | cut -d'<' -f1)
-    ZOOM_URL=$(echo "$OUTPUT" | grep -o '<||>.*' | sed 's/<||>//')
+# Parse output: format is markdown link [DISPLAY_TEXT](URL) or just DISPLAY_TEXT
+if echo "$OUTPUT" | grep -q '\[.*\]('; then
+    # Extract display text and URL from markdown link format
+    MEETING=$(echo "$OUTPUT" | sed -E 's/\[(.*)\]\(.*/\1/')
+    ZOOM_URL=$(echo "$OUTPUT" | sed -E 's/.*\((.*)\)/\1/')
 
     # Create a temporary script for clicking
     CLICK_SCRIPT="open \"$ZOOM_URL\""
@@ -15,7 +16,7 @@ if echo "$OUTPUT" | grep -q "<||>"; then
         label="$MEETING" \
         click_script="$CLICK_SCRIPT"
 else
-    # No Zoom URL, just set the label and clear any click script
+    # No URL, just set the label and clear any click script
     sketchybar --set "$NAME" \
         label="$OUTPUT" \
         click_script=""