chore: added link prefix 55b2d8be
Steve · 2025-12-25 19:32 1 file(s) · +27 −1
Titan/Services/TitanParser.swift +27 −1
66 66
        let components = trimmed.components(separatedBy: .whitespaces).filter { !$0.isEmpty }
67 67
68 68
        let rawURL = components.first ?? ""
69 -
        let label = components.count > 1 ? components.dropFirst().joined(separator: " ") : rawURL
69 +
        let baseLabel = components.count > 1 ? components.dropFirst().joined(separator: " ") : rawURL
70 70
71 71
        let resolvedURL: String
72 72
        if rawURL.contains("://") {
78 78
            resolvedURL = rawURL
79 79
        }
80 80
81 +
        // Add scheme prefix for non-gemini links
82 +
        let label = schemePrefix(for: resolvedURL) + baseLabel
83 +
81 84
        return (resolvedURL, label)
85 +
    }
86 +
87 +
    private static func schemePrefix(for url: String) -> String {
88 +
        guard let parsed = URL(string: url), let scheme = parsed.scheme?.lowercased() else {
89 +
            return ""
90 +
        }
91 +
92 +
        switch scheme {
93 +
        case "gemini":
94 +
            return ""
95 +
        case "http", "https":
96 +
            return "[http] "
97 +
        case "file":
98 +
            return "[file] "
99 +
        case "gopher":
100 +
            return "[gopher] "
101 +
        case "mailto":
102 +
            return "[mail] "
103 +
        case "finger":
104 +
            return "[finger] "
105 +
        default:
106 +
            return "[\(scheme)] "
107 +
        }
82 108
    }
83 109
}