+(defun elpher-gemini-insert-link (link-line)
+ (let* ((url (elpher-gemini-get-link-url link-line))
+ (display-string (let ((s (elpher-gemini-get-link-display-string link-line)))
+ (if (string-empty-p s) url s)))
+ (address (elpher-address-from-gemini-url url))
+ (type (if address (elpher-address-type address) nil))
+ (type-map-entry (cdr (assoc type elpher-type-map))))
+ (insert "→ ")
+ (if type-map-entry
+ (let* ((face (elt type-map-entry 3))
+ (filtered-display-string (ansi-color-filter-apply display-string))
+ (page (elpher-make-page filtered-display-string address)))
+ (insert-text-button filtered-display-string
+ 'face face
+ 'elpher-page page
+ 'action #'elpher-click-link
+ 'follow-link t
+ 'help-echo (elpher-page-button-help page)))
+ (insert (propertize display-string 'face 'elpher-unknown)))
+ (insert "\n")))
+
+(defun elpher-gemini-insert-header (header-line)
+ (insert header-line "\n"))
+
+(defun elpher--trim-prefix-p (prefix string)
+ (string-prefix-p prefix (string-trim-left string)))
+