emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Jambunathan K <kjambunathan@gmail.com>
To: Christian Wittern <cwittern@gmail.com>
Cc: Org Mode Mailing List <emacs-orgmode@gnu.org>
Subject: Re: set different colors for different link types
Date: Sat, 30 Apr 2011 09:55:28 +0530	[thread overview]
Message-ID: <81mxj89xhj.fsf@gmail.com> (raw)
In-Reply-To: <4DBB4C73.9020803@gmail.com> (Christian Wittern's message of "Sat, 30 Apr 2011 08:40:35 +0900")


> Hi Michael,
>
> Thank you for your suggestion.  However, I would prefer not to clutter
> the text with repeating the protocol there.  Also, the example I gave
> is mainly for illustration, in the way I use it, the description would
> not show the filename, but some other text.
>
> Chris
>
> On 2011-04-30 00:18, Michael Brand wrote:
>> For links with a description I always just repeat the protocol tag
>> there manually:
>> [[file://path/to/my file][file: myfile]]
>> [[http://www.example.com/path/to/my file][http: myfile]]
>>
>> Together with the space after the colon this shows, also immediately,
>> if you look only at the link description or at the link itself:
>> [[file://path/to/my file]]
>> [[http://www.example.com/path/to/my file]]
>>
>> This color-independent solution works even if colors would not be
>> available occasionally like with some terminal configs.
>>
>> Michael
>>
>> 2011/4/29 Christian Wittern<cwittern@gmail.com>:
>>> In the archives, I have seen on and off references to a new, extensible
>>> syntax that would go beyond /italic/, *bold* and =code=, but I have seen no
>>> traces of seeing it implemented.
>>>
>>> For the time being, therefore I am settling on having different linktypes
>>> coming up in different colors, which I hope is doable, but again, I found no
>>> immediate solution.  I wonder if somebody has an idea of how to go about
>>> this.  What I would like to see is that, for example:
>>>
>>> [[file://path/to/my file][myfile]]  comes out visibly different from
>>> [[http://www.example.com/path/to/my file][myfile]] , for example the one in
>>> red, the other in blue.

The easiest way to figure out the protocol is to "pretend" that you are
editing the link and thereby have the curtain raised a bit to reveal the
backstage. Do a C-c C-l or M-x org-insert-link RET (with cursor right
over the link) followed by 'C-g'ing.

If you are willing to hack something together, here is a possible entry
points for attack. With M-x highlight-regexp you could add persistent
regexp patterns for fontification.

1. Do a M-x describe-text-properties RET on a link to see what is under
   the hood.

   For example in one of my links I see

--8<---------------cut here---------------start------------->8---
Text content at position 509:

There are text properties here:
  face                 org-link
  font-lock-multiline  t
  fontified            t
  help-echo            "LINK: file:src/org-jambu/lisp/org-odt.el"
  keymap               [Show]
  mouse-face           highlight
  org-no-flyspell      t
--8<---------------cut here---------------end--------------->8---

2. Start with org-descriptive-links set to nil (makes all components of
   link visible)

3. Start with org-bracket-link-analytic-regexp as a starting regexp
   which needs to be fine grained into say web urls, file urls etc etc

4. See org-activate-bracket-links for ideas on how org accomplishes
   highlighting correctly.

C-h hi-lock-mode
C-h f highlight-regexp 
C-h v hi-lock-file-patterns-policy
C-h v org-descriptive-links
C-h v org-angle-link-re
C-h v org-bracket-link-regexp
C-h v org-bracket-link-analytic-regexp
C-h f org-activate- <TAB> (look for functions like
org-activate-bracket-links etc)

Jambunathan K.
-- 

      reply	other threads:[~2011-04-30  4:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-29  8:42 set different colors for different link types Christian Wittern
2011-04-29 15:18 ` Michael Brand
2011-04-29 23:40   ` Christian Wittern
2011-04-30  4:25     ` Jambunathan K [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=81mxj89xhj.fsf@gmail.com \
    --to=kjambunathan@gmail.com \
    --cc=cwittern@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).