emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Aaron Ecay <aaronecay@gmail.com>
To: John Kitchin <jkitchin@andrew.cmu.edu>,
	emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: refontifying links
Date: Thu, 03 Dec 2015 19:46:47 +0000	[thread overview]
Message-ID: <87610fb9i0.fsf@gmail.com> (raw)
In-Reply-To: <m2ziy2kes7.fsf@andrew.cmu.edu>

Hi John,

2015ko azaroak 25an, John Kitchin-ek idatzi zuen:
> 
> Hi,
> 
> I am trying to find a nice way to change the color of some links. So far
> the only solution I have found is to create a new face, and use
> highlight-regexp to do it.
> 
> I would prefer to just use font-lock to change the color of the link. so
> far I have not found a way to do that.
> 
> I have found the org-activate-plain-links, and org-font-lock-keywords
> and the org-font-lock-hook, but so far have not figured out how to
> overwrite the org-link face.
> 
> I am kind of looking for a general approach to fontifying here, but the
> specific problem I want to solve is to be able to write:
> 
> [[color:Orangered1][Some text I want colored]] and have it show in my
> buffer in Orangered1.
> 
> Any thoughts?

Links are currently defined by an open function and an export function.
It might be interesting if org added a third function to this set, a
fontification function.

OTOH we would have to consider if links are the best place to add this
functionality.  The work you have done on org-ref and other projects
(which I greatly admire!) (ab)uses links as an analogue of HTML’s span
element: a way to encapsulate and attach attributes to a
sub-paragraph-sized chunk of text whose semantics are somewhat
amorphous.  Your example here pushes that further, using the link for
pure formatting: it no longer “links” to anything at all (and thus
probably should not have an associated open function nor be click-active
in the buffer).

I think “Spans” are something org should support, but not by co-opting
links to do it.  We ought to either make new syntax, or change the name
of “links” to “spans” and say the former are a special case of the
latter (preserving backwards compatibility of existing documents to the
extent possible of course, but also doing our best to free ourselves of
link-specific implementation details like percent-escaping).

FWIW, HTH,
Aaron

PS I think if we had spans 2-3 years ago, then you would have used them
to implement org-ref, and that code would already be in core.  I think
the same would be true of annotations, for which we’ve recently had a
well-responded thread with several code contribtions, including from you
IIRC.  On the other hand I don’t think we want org to become like Latex,
where almost all documents require a complicated web of third-party
dependencies to “work” at all.  It’s a delicate balance...

-- 
Aaron Ecay

  reply	other threads:[~2015-12-03 19:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-25  2:12 refontifying links John Kitchin
2015-12-03 19:46 ` Aaron Ecay [this message]
2015-12-03 23:55   ` John Kitchin

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=87610fb9i0.fsf@gmail.com \
    --to=aaronecay@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=jkitchin@andrew.cmu.edu \
    /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).