diff --git a/src/emoji-matcher.lisp b/src/emoji-matcher.lisp index cd77f54..0a1a032 100644 --- a/src/emoji-matcher.lisp +++ b/src/emoji-matcher.lisp @@ -4746,5 +4746,10 @@ (first (or (emoji-zwj-sequences-p codepoints-chars) (emoji-sequences-p codepoints-chars)))) -(defun starting-emoji (codepoints-chars) - (emojip codepoints-chars)) +(defgeneric starting-emoji (object)) + +(defmethod starting-emoji ((object list)) + (emojip object)) + +(defmethod starting-emoji ((object string)) + (emojip (coerce object 'list))) diff --git a/src/gemini/gemini-parser.lisp b/src/gemini/gemini-parser.lisp index 4ea36f2..10dbe1c 100644 --- a/src/gemini/gemini-parser.lisp +++ b/src/gemini/gemini-parser.lisp @@ -492,7 +492,9 @@ text))) (linkify (link-name link-value) (if (gemini-link-iri-p link-value) - (format nil "~a~a~%" (link-prefix-gemini theme) link-name) + (if (text-utils:starting-emoji link-name) + (format nil "~a~%" link-name) + (format nil "~a~a~%" (link-prefix-gemini theme) link-name)) (format nil "~a~a~%" (link-prefix-other theme) link-name))) (fit-quote-lines (line win-width) (let* ((words (split-words line))