Pregunta:
Quiero personalizar cómo se embellece un enlace. Específicamente, quiero que los enlaces de citas de Org-Ref muestren la clave de bibiliografía.
Un enlace de cita se parece a:
[[cite:my-bib-key][pg. 2]]
La pantalla embellecida predeterminada se ve así:
pg. 2
¿Cómo puedo modificar el modo de organización para obtener esta pantalla en su lugar?
@my-bib-key: pg. 2
Respuesta:
Esa es una buena solución. Expandí esto un poco aquí. Coincide con todos los tipos de citas y cambia el color del enlace. No hace la manipulación para poner @ y un espacio, lo que se puede hacer con la propiedad de visualización, pero agrega algo de complejidad con propiedades administradas adicionales que no me parecen justificadas.
(defun org-ref-make-org-link-cite-key-visible (&rest _)
"Make the org-ref cite link visible in descriptive links."
(save-match-data
(let ((s (match-string 1))
(beg (match-beginning 0))
(end (match-end 0))
(cite-re (format "^\\(%s:\\)"
(regexp-opt (-sort
(lambda (a b)
(> (length a) (length b)))
org-ref-cite-types))))
cite-type)
(when (and s (string-match cite-re s))
(setq cite-type (match-string 1 s))
(remove-text-properties beg end
'(invisible))
(add-text-properties
beg end
`(face (:foreground ,org-ref-cite-color)))))))
(advice-add 'org-activate-bracket-links :after #'org-ref-make-org-link-cite-key-visible)
Esto se ha enviado a org-ref, por lo que ahora debería ser el comportamiento predeterminado. ¡Gracias por compartir tu enfoque!