emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] patch for custom colored links in org-mode


From: John Kitchin
Subject: Re: [O] patch for custom colored links in org-mode
Date: Tue, 28 Jun 2016 20:44:13 -0400
User-agent: mu4e 0.9.16; emacs 25.1.50.1

I took a stab at this implementation here:

https://github.com/jkitchin/org-mode/compare/master...colored-link-2?expand=1

I wasn't too sure of the defcustom :type syntax.

I also wasn't sure about this line
https://github.com/jkitchin/org-mode/compare/master...colored-link-2?expand=1#diff-cfe1a32c56525d13db03755dbd7b4a01R6069

I set the invisible spec to whatever you set :display to, or 'org-link.
However, if you set :display to t, it still gets folded. I thought any
non-nil value that wasn't 'org-link would work, but apparently not.

What do you think about this?

With that patch, you can do this:

Run this to set the display of doi links
#+BEGIN_SRC emacs-lisp
(setq org-link-display-parameters
 '(("doi"  :face (:foreground "red" :underline t :weight bold) :display 'full)))
#+END_SRC

And then the doi links are bold, underlined red, and not folded in
descriptive mode.

  doi:10.1021

 bracketed:  [[doi:test][what]]                             
 bracketed file link: [[file:test.org][test]]



Nicolas Goaziou writes:

> Hello,
>
> John Kitchin <address@hidden> writes:
>
>> I tried this aproach to enable custom colored links in org-mode if an
>> org-link-type face is defined. If no face is applied, then it just gets
>> the default org-link face
>>
>> For example this will make all doi links red.
>>
>> (defface org-link-doi
>>   `((t (:inherit org-link
>>                  :foreground "red")))
>>   "Color for doi links.")
>>
>> It seems to work pretty well for me. What do you think about making this
>> a feature in org-mode?
>
> This sounds like a good idea. Thank you for submitting it.
>
> However, I'm not convinced by the UI, i.e., creating a face specifically
> named to trigger the feature. As a user, it doesn't seem very natural to
> me.
>
> At first I thought it was better to extend `org-add-link-type' with
> a FACE definition, but we wouldn't have caught default link types.
>
> So, maybe it is more reasonable to create a new variable, e.g.,
> `org-link-display-parameters', which would hold an alist between link
> types and property lists (or something else), e.g.,
>
>   ("doi" :face my-special-face :display full)
>   ("special" :display path)
>
> Note that :display is a way to include your other idea about link
> visibility. Default value for :face and :display would be, respectively,
> `org-link' and `description'.
>
> Of course, we can also create two variables, one for the face, the other
> for the visibility.
>
> WDYT?
>
> Regards,


-- 
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]