emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* suggestion: display of #+TITLE
@ 2010-03-16 16:25 Dan Davison
  2010-03-18  6:04 ` Carsten Dominik
  0 siblings, 1 reply; 11+ messages in thread
From: Dan Davison @ 2010-03-16 16:25 UTC (permalink / raw)
  To: emacs org-mode mailing list

Might it be worth considering a special display for the #+title line in
org buffers?

Currently it is easy for the title to get buried among more technical
configuration lines like #+options, #+startup, #+seq_toto etc. One can
take the approach of leaving #+title at the top of the document, and
moving the other config lines elesewhere, but even so I am wondering
whether anyone else is attracted by the idea of providing an org-title
display property that would hide the #+title: component, and use an
appropriate face for the title text.

In some ways, the current state gives the impression that the title is
something which becomes important during export, but is not really a key
component of document when it is being viewed in emacs. For example, I
expect others are familiar with the experience of exporting an org file
without a title, finding that the first heading has been used as a
title, and then going back to add in the title as an afterthought. But a
title is an important part of a document, and I thought perhaps a
special title display would help to make the title more of a first class
citizen in org buffers?

Dan

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-16 16:25 suggestion: display of #+TITLE Dan Davison
@ 2010-03-18  6:04 ` Carsten Dominik
  2010-03-18 14:21   ` Dan Davison
  0 siblings, 1 reply; 11+ messages in thread
From: Carsten Dominik @ 2010-03-18  6:04 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs org-mode mailing list


On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:

> Might it be worth considering a special display for the #+title line  
> in
> org buffers?
>
> Currently it is easy for the title to get buried among more technical
> configuration lines like #+options, #+startup, #+seq_toto etc. One can
> take the approach of leaving #+title at the top of the document, and
> moving the other config lines elesewhere, but even so I am wondering
> whether anyone else is attracted by the idea of providing an org-title
> display property that would hide the #+title: component, and use an
> appropriate face for the title text.
>
> In some ways, the current state gives the impression that the title is
> something which becomes important during export, but is not really a  
> key
> component of document when it is being viewed in emacs. For example, I
> expect others are familiar with the experience of exporting an org  
> file
> without a title, finding that the first heading has been used as a
> title, and then going back to add in the title as an afterthought.  
> But a
> title is an important part of a document, and I thought perhaps a
> special title display would help to make the title more of a first  
> class
> citizen in org buffers?

Hi Dan,

I agree.  Maybe he same should be true for DATE and AUTHOR, maybe EMAIL?

Would you like to make a patch for this, introducing a new face
and applying it to these constructs?

- Carsten

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-18  6:04 ` Carsten Dominik
@ 2010-03-18 14:21   ` Dan Davison
  2010-03-22  1:36     ` Dan Davison
       [not found]     ` <877hp5i1wl.fsf@stats.ox.ac.uk>
  0 siblings, 2 replies; 11+ messages in thread
From: Dan Davison @ 2010-03-18 14:21 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: emacs org-mode mailing list

Carsten Dominik <carsten.dominik@gmail.com> writes:

> On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>
>> Might it be worth considering a special display for the #+title line
>> in
>> org buffers?
>>
>> Currently it is easy for the title to get buried among more technical
>> configuration lines like #+options, #+startup, #+seq_toto etc. One can
>> take the approach of leaving #+title at the top of the document, and
>> moving the other config lines elesewhere, but even so I am wondering
>> whether anyone else is attracted by the idea of providing an org-title
>> display property that would hide the #+title: component, and use an
>> appropriate face for the title text.
>>
>> In some ways, the current state gives the impression that the title is
>> something which becomes important during export, but is not really a
>> key
>> component of document when it is being viewed in emacs. For example, I
>> expect others are familiar with the experience of exporting an org
>> file
>> without a title, finding that the first heading has been used as a
>> title, and then going back to add in the title as an
>> afterthought. But a
>> title is an important part of a document, and I thought perhaps a
>> special title display would help to make the title more of a first
>> class
>> citizen in org buffers?
>
> Hi Dan,
>
> I agree.  Maybe he same should be true for DATE and AUTHOR, maybe EMAIL?
>
> Would you like to make a patch for this, introducing a new face
> and applying it to these constructs?

OK, it's on my list.

Dan

>
> - Carsten
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-18 14:21   ` Dan Davison
@ 2010-03-22  1:36     ` Dan Davison
       [not found]     ` <877hp5i1wl.fsf@stats.ox.ac.uk>
  1 sibling, 0 replies; 11+ messages in thread
From: Dan Davison @ 2010-03-22  1:36 UTC (permalink / raw)
  To: emacs org-mode mailing list

Dan Davison <davison@stats.ox.ac.uk> writes:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>> On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>>
>>> Might it be worth considering a special display for the #+title line
>>> in
>>> org buffers?
>>>
>>> Currently it is easy for the title to get buried among more technical
>>> configuration lines like #+options, #+startup, #+seq_toto etc. One can
>>> take the approach of leaving #+title at the top of the document, and
>>> moving the other config lines elesewhere, but even so I am wondering
>>> whether anyone else is attracted by the idea of providing an org-title
>>> display property that would hide the #+title: component, and use an
>>> appropriate face for the title text.
>>>
>>> In some ways, the current state gives the impression that the title is
>>> something which becomes important during export, but is not really a
>>> key
>>> component of document when it is being viewed in emacs. For example, I
>>> expect others are familiar with the experience of exporting an org
>>> file
>>> without a title, finding that the first heading has been used as a
>>> title, and then going back to add in the title as an
>>> afterthought. But a
>>> title is an important part of a document, and I thought perhaps a
>>> special title display would help to make the title more of a first
>>> class
>>> citizen in org buffers?
>>
>> Hi Dan,
>>
>> I agree.  Maybe he same should be true for DATE and AUTHOR, maybe EMAIL?
>>
>> Would you like to make a patch for this, introducing a new face
>> and applying it to these constructs?

[I tried sending this with screenshot images and it got rejected. I've
replaced them with URLs]

I've made a proposed patch (below). This involved making a few decisions
about appearance -- it would be great to get other peoples' views and
alternative proposals.

At the risk of stating the obvious, I think we should ask the question
"What might attract new users to org-mode most?", rather than query our
personal preferences (because we can all change it ourselves or fire off
an email to this list asking how).

Here's my main proposal (corresponding to the patch below). Note that in
the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still there,
but invisible.

http://www.princeton.edu/~ddavison/org-faces/Default-MidnightBlue.png

The main issue then is that I'm suggesting making the title face larger
than the other faces. This would be the only large face in org-mode, but
I thought that it was appropriate for the title. Here's a version
without the large title face:

http://www.princeton.edu/~ddavison/org-faces/Default-MidnightBlue-NoBigTitle.png

As for the colours, here's an alternative:

http://www.princeton.edu/~ddavison/org-faces/Default-DarkSlateGrey.png

The important thing is the default emacs colour theme shown above, but I
did pick a colour for dark backgrounds. For what it's worth, here is
what it looks like with (the excellent) color-theme-charcoal-black:

http://www.princeton.edu/~ddavison/org-faces/CharcoalBlack-SteelBlue.png

Here's the patch. If anyone wants to play around, it's pretty obvious in
the patch below where to change the colours (and boldness and
height). Don't forget the functions list-colors-display and
list-faces-display.

There's at least one issue with the patch: if you leave a space between
e.g. '#+TITLE:' and the start of the title text, then that space will
not be made invisible and so will appear at the start of the title. I
couldn't see how to avoid that without altering one of the key font-lock
regexps.

Dan

--8<---------------cut here---------------start------------->8---
commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
Author: Dan Davison <davison@stats.ox.ac.uk>
Date:   Sun Mar 21 20:26:02 2010 -0400

    Alter display of title, author, email and date lines.
    
    For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
    initial #+KEYWORD: part is hidden and the following new
    faces are applied to the remaining visible part:
    
    org-title-line
    org-author-line
    org-email-line
    org-date-line

diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index e336b3c..ebc9596 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -468,6 +468,25 @@ changes."
   :group 'org-faces
   :version "22.1")
 
+(defface org-title-line
+  '((((class color) (background light)) (:foreground "midnight blue" :weight bold :height 1.44))
+    (((class color) (background dark)) (:foreground "steel blue" :weight bold :height 1.44))
+    (t (:weight bold :height 1.44)))
+  "Face for #+TITLE: line."
+  :group 'org-faces)
+
+(defface org-author-line
+  '((((class color) (background light)) (:foreground "midnight blue"))
+    (((class color) (background dark)) (:foreground "steel blue")))
+  "Face for #+AUTHOR: line."
+  :group 'org-faces)
+
+(org-copy-face 'org-author-line 'org-email-line
+  "Face for #+EMAIL: line.")
+
+(org-copy-face 'org-author-line 'org-date-line
+  "Face for #+DATE: line.")
+
 (defface org-block
   (org-compatible-face 'shadow
     '((((class color grayscale) (min-colors 88) (background light))
diff --git a/lisp/org.el b/lisp/org.el
index b723528..17e3877 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -4642,6 +4642,22 @@ will be prompted for."
 	       ((string= block-type "verse")
 		(add-text-properties beg1 end1 '(face org-verse))))
 	      t))
+	   ((equal dc1 "title:")
+	    (add-text-properties beg (match-end 3) '(font-lock-fontified t invisible t))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6) '(font-lock-fontified t face org-title-line)))
+	   ((equal dc1 "author:")
+	    (add-text-properties beg (match-end 3) '(font-lock-fontified t invisible t))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6) '(font-lock-fontified t face org-author-line)))
+	   ((equal dc1 "email:")
+	    (add-text-properties beg (match-end 3) '(font-lock-fontified t invisible t))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6) '(font-lock-fontified t face org-email-line)))
+	   ((equal dc1 "date:")
+	    (add-text-properties beg (match-end 3) '(font-lock-fontified t invisible t))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6) '(font-lock-fontified t face org-date-line)))
 	   ((not (member (char-after beg) '(?\  ?\t)))
 	    ;; just any other in-buffer setting, but not indented
 	    (add-text-properties
--8<---------------cut here---------------end--------------->8---




>
> OK, it's on my list.
>
> Dan
>
>>
>> - Carsten
>>
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
       [not found]     ` <877hp5i1wl.fsf@stats.ox.ac.uk>
@ 2010-03-24 14:52       ` Carsten Dominik
  2010-03-24 20:22         ` Scot Becker
  0 siblings, 1 reply; 11+ messages in thread
From: Carsten Dominik @ 2010-03-24 14:52 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs org-mode mailing list

Hi Dan,

I think the patch is almost good.  I do like the larger face
for the title, and I know that some themes also use larger faces
for headlines.

But I think we at least need a variable
governing if the keyword will be made invisible or not.
If you type "#+email:", for example, that string does disappear
without a trace, and that is very confusing.  In fact, my preference
would be to not make the keyword invisible.

Thanks

- Carsten

On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:

> Dan Davison <davison@stats.ox.ac.uk> writes:
>
>> Carsten Dominik <carsten.dominik@gmail.com> writes:
>>
>>> On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>>>
>>>> Might it be worth considering a special display for the #+title  
>>>> line
>>>> in
>>>> org buffers?
>>>>
>>>> Currently it is easy for the title to get buried among more  
>>>> technical
>>>> configuration lines like #+options, #+startup, #+seq_toto etc.  
>>>> One can
>>>> take the approach of leaving #+title at the top of the document,  
>>>> and
>>>> moving the other config lines elesewhere, but even so I am  
>>>> wondering
>>>> whether anyone else is attracted by the idea of providing an org- 
>>>> title
>>>> display property that would hide the #+title: component, and use an
>>>> appropriate face for the title text.
>>>>
>>>> In some ways, the current state gives the impression that the  
>>>> title is
>>>> something which becomes important during export, but is not  
>>>> really a
>>>> key
>>>> component of document when it is being viewed in emacs. For  
>>>> example, I
>>>> expect others are familiar with the experience of exporting an org
>>>> file
>>>> without a title, finding that the first heading has been used as a
>>>> title, and then going back to add in the title as an
>>>> afterthought. But a
>>>> title is an important part of a document, and I thought perhaps a
>>>> special title display would help to make the title more of a first
>>>> class
>>>> citizen in org buffers?
>>>
>>> Hi Dan,
>>>
>>> I agree.  Maybe he same should be true for DATE and AUTHOR, maybe  
>>> EMAIL?
>>>
>>> Would you like to make a patch for this, introducing a new face
>>> and applying it to these constructs?
>
> I've made a proposed patch (below). This involved making a few  
> decisions
> about appearance -- it would be great to get other peoples' views and
> alternative proposals.
>
> At the risk of stating the obvious, I think we should ask the question
> "What might attract new users to org-mode most?", rather than query  
> our
> personal preferences (because we can all change it ourselves or fire  
> off
> an email to this list asking how).
>
> Here's my main proposal (corresponding to the patch below). Note  
> that in
> the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still there,
> but invisible.
>
> [I've also put the screenshots at http://www.princeton.edu/~ddavison/org-faces/ 
> ]
>
> [Default-MidnightBlue.png]
> <Default-MidnightBlue.png>
> The main issue then is that I'm suggesting making the title face  
> larger
> than the other faces. This would be the only large face in org-mode,  
> but
> I thought that it was appropriate for the title. Here's a version
> without the large title face:
>
> [Default-MidnightBlue-NoBigTitle.png]
> <Default-MidnightBlue-NoBigTitle.png>
> As for the colours, here's an alternative:
>
> [Default-DarkSlateGrey.png]
> <Default-DarkSlateGrey.png>
> The important thing is the default emacs colour theme shown above,  
> but I
> did pick a colour for dark backgrounds. For what it's worth, here is
> what it looks like with (the excellent) color-theme-charcoal-black:
>
> [CharcoalBlack-SteelBlue.png]
> <CharcoalBlack-SteelBlue.png>
> Here's the patch. If anyone wants to play around, it's pretty  
> obvious in
> the patch below where to change the colours (and boldness and
> height). Don't forget the functions list-colors-display and
> list-faces-display.
>
> There's at least one issue with the patch: if you leave a space  
> between
> e.g. '#+TITLE:' and the start of the title text, then that space will
> not be made invisible and so will appear at the start of the title. I
> couldn't see how to avoid that without altering one of the key font- 
> lock
> regexps.
>
> Dan
>
> --8<---------------cut here---------------start------------->8---
> commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
> Author: Dan Davison <davison@stats.ox.ac.uk>
> Date:   Sun Mar 21 20:26:02 2010 -0400
>
>    Alter display of title, author, email and date lines.
>
>    For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>    initial #+KEYWORD: part is hidden and the following new
>    faces are applied to the remaining visible part:
>
>    org-title-line
>    org-author-line
>    org-email-line
>    org-date-line
>
> diff --git a/lisp/org-faces.el b/lisp/org-faces.el
> index e336b3c..ebc9596 100644
> --- a/lisp/org-faces.el
> +++ b/lisp/org-faces.el
> @@ -468,6 +468,25 @@ changes."
>   :group 'org-faces
>   :version "22.1")
>
> +(defface org-title-line
> +  '((((class color) (background light)) (:foreground "midnight  
> blue" :weight bold :height 1.44))
> +    (((class color) (background dark)) (:foreground "steel  
> blue" :weight bold :height 1.44))
> +    (t (:weight bold :height 1.44)))
> +  "Face for #+TITLE: line."
> +  :group 'org-faces)
> +
> +(defface org-author-line
> +  '((((class color) (background light)) (:foreground "midnight  
> blue"))
> +    (((class color) (background dark)) (:foreground "steel blue")))
> +  "Face for #+AUTHOR: line."
> +  :group 'org-faces)
> +
> +(org-copy-face 'org-author-line 'org-email-line
> +  "Face for #+EMAIL: line.")
> +
> +(org-copy-face 'org-author-line 'org-date-line
> +  "Face for #+DATE: line.")
> +
> (defface org-block
>   (org-compatible-face 'shadow
>     '((((class color grayscale) (min-colors 88) (background light))
> diff --git a/lisp/org.el b/lisp/org.el
> index b723528..17e3877 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -4642,6 +4642,22 @@ will be prompted for."
> 	       ((string= block-type "verse")
> 		(add-text-properties beg1 end1 '(face org-verse))))
> 	      t))
> +	   ((equal dc1 "title:")
> +	    (add-text-properties beg (match-end 3) '(font-lock-fontified t  
> invisible t))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6) '(font-lock-fontified t  
> face org-title-line)))
> +	   ((equal dc1 "author:")
> +	    (add-text-properties beg (match-end 3) '(font-lock-fontified t  
> invisible t))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6) '(font-lock-fontified t  
> face org-author-line)))
> +	   ((equal dc1 "email:")
> +	    (add-text-properties beg (match-end 3) '(font-lock-fontified t  
> invisible t))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6) '(font-lock-fontified t  
> face org-email-line)))
> +	   ((equal dc1 "date:")
> +	    (add-text-properties beg (match-end 3) '(font-lock-fontified t  
> invisible t))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6) '(font-lock-fontified t  
> face org-date-line)))
> 	   ((not (member (char-after beg) '(?\  ?\t)))
> 	    ;; just any other in-buffer setting, but not indented
> 	    (add-text-properties
> --8<---------------cut here---------------end--------------->8---
>
>
>
>>
>> OK, it's on my list.
>>
>> Dan
>>
>>>
>>> - Carsten
>>>
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-24 14:52       ` Carsten Dominik
@ 2010-03-24 20:22         ` Scot Becker
  2010-03-26  3:34           ` Dan Davison
  0 siblings, 1 reply; 11+ messages in thread
From: Scot Becker @ 2010-03-24 20:22 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: Dan Davison, emacs org-mode mailing list


[-- Attachment #1.1: Type: text/plain, Size: 8800 bytes --]

Or what about---in the spirit of the 'hidden' outline stars---the option to
set "#+TITLE:" and friends in a 'barely visible' color, and in the
'standard' font of the document, if that's possible.  As sexy as it is,
really hiding the markup is a fair break from most (all?) of 'standard' org
mode, where what you see is what you got.    Even the invisible starts are
there when you cursor over them.  Just my 2p.

Scot


On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik
<carsten.dominik@gmail.com>wrote:

> Hi Dan,
>
> I think the patch is almost good.  I do like the larger face
> for the title, and I know that some themes also use larger faces
> for headlines.
>
> But I think we at least need a variable
> governing if the keyword will be made invisible or not.
> If you type "#+email:", for example, that string does disappear
> without a trace, and that is very confusing.  In fact, my preference
> would be to not make the keyword invisible.
>
> Thanks
>
> - Carsten
>
>
> On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
>
>  Dan Davison <davison@stats.ox.ac.uk> writes:
>>
>>  Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>
>>>  On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>>>>
>>>>  Might it be worth considering a special display for the #+title line
>>>>> in
>>>>> org buffers?
>>>>>
>>>>> Currently it is easy for the title to get buried among more technical
>>>>> configuration lines like #+options, #+startup, #+seq_toto etc. One can
>>>>> take the approach of leaving #+title at the top of the document, and
>>>>> moving the other config lines elesewhere, but even so I am wondering
>>>>> whether anyone else is attracted by the idea of providing an org-title
>>>>> display property that would hide the #+title: component, and use an
>>>>> appropriate face for the title text.
>>>>>
>>>>> In some ways, the current state gives the impression that the title is
>>>>> something which becomes important during export, but is not really a
>>>>> key
>>>>> component of document when it is being viewed in emacs. For example, I
>>>>> expect others are familiar with the experience of exporting an org
>>>>> file
>>>>> without a title, finding that the first heading has been used as a
>>>>> title, and then going back to add in the title as an
>>>>> afterthought. But a
>>>>> title is an important part of a document, and I thought perhaps a
>>>>> special title display would help to make the title more of a first
>>>>> class
>>>>> citizen in org buffers?
>>>>>
>>>>
>>>> Hi Dan,
>>>>
>>>> I agree.  Maybe he same should be true for DATE and AUTHOR, maybe EMAIL?
>>>>
>>>> Would you like to make a patch for this, introducing a new face
>>>> and applying it to these constructs?
>>>>
>>>
>> I've made a proposed patch (below). This involved making a few decisions
>> about appearance -- it would be great to get other peoples' views and
>> alternative proposals.
>>
>> At the risk of stating the obvious, I think we should ask the question
>> "What might attract new users to org-mode most?", rather than query our
>> personal preferences (because we can all change it ourselves or fire off
>> an email to this list asking how).
>>
>> Here's my main proposal (corresponding to the patch below). Note that in
>> the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still there,
>> but invisible.
>>
>> [I've also put the screenshots at
>> http://www.princeton.edu/~ddavison/org-faces/]
>>
>> [Default-MidnightBlue.png]
>>
>> <Default-MidnightBlue.png>
>> The main issue then is that I'm suggesting making the title face larger
>> than the other faces. This would be the only large face in org-mode, but
>> I thought that it was appropriate for the title. Here's a version
>> without the large title face:
>>
>> [Default-MidnightBlue-NoBigTitle.png]
>>
>> <Default-MidnightBlue-NoBigTitle.png>
>> As for the colours, here's an alternative:
>>
>> [Default-DarkSlateGrey.png]
>>
>> <Default-DarkSlateGrey.png>
>> The important thing is the default emacs colour theme shown above, but I
>> did pick a colour for dark backgrounds. For what it's worth, here is
>> what it looks like with (the excellent) color-theme-charcoal-black:
>>
>> [CharcoalBlack-SteelBlue.png]
>>
>> <CharcoalBlack-SteelBlue.png>
>> Here's the patch. If anyone wants to play around, it's pretty obvious in
>> the patch below where to change the colours (and boldness and
>> height). Don't forget the functions list-colors-display and
>> list-faces-display.
>>
>> There's at least one issue with the patch: if you leave a space between
>> e.g. '#+TITLE:' and the start of the title text, then that space will
>> not be made invisible and so will appear at the start of the title. I
>> couldn't see how to avoid that without altering one of the key font-lock
>> regexps.
>>
>> Dan
>>
>> --8<---------------cut here---------------start------------->8---
>> commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
>> Author: Dan Davison <davison@stats.ox.ac.uk>
>> Date:   Sun Mar 21 20:26:02 2010 -0400
>>
>>   Alter display of title, author, email and date lines.
>>
>>   For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>>   initial #+KEYWORD: part is hidden and the following new
>>   faces are applied to the remaining visible part:
>>
>>   org-title-line
>>   org-author-line
>>   org-email-line
>>   org-date-line
>>
>> diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>> index e336b3c..ebc9596 100644
>> --- a/lisp/org-faces.el
>> +++ b/lisp/org-faces.el
>> @@ -468,6 +468,25 @@ changes."
>>  :group 'org-faces
>>  :version "22.1")
>>
>> +(defface org-title-line
>> +  '((((class color) (background light)) (:foreground "midnight blue"
>> :weight bold :height 1.44))
>> +    (((class color) (background dark)) (:foreground "steel blue" :weight
>> bold :height 1.44))
>> +    (t (:weight bold :height 1.44)))
>> +  "Face for #+TITLE: line."
>> +  :group 'org-faces)
>> +
>> +(defface org-author-line
>> +  '((((class color) (background light)) (:foreground "midnight blue"))
>> +    (((class color) (background dark)) (:foreground "steel blue")))
>> +  "Face for #+AUTHOR: line."
>> +  :group 'org-faces)
>> +
>> +(org-copy-face 'org-author-line 'org-email-line
>> +  "Face for #+EMAIL: line.")
>> +
>> +(org-copy-face 'org-author-line 'org-date-line
>> +  "Face for #+DATE: line.")
>> +
>> (defface org-block
>>  (org-compatible-face 'shadow
>>    '((((class color grayscale) (min-colors 88) (background light))
>> diff --git a/lisp/org.el b/lisp/org.el
>> index b723528..17e3877 100644
>> --- a/lisp/org.el
>> +++ b/lisp/org.el
>> @@ -4642,6 +4642,22 @@ will be prompted for."
>>               ((string= block-type "verse")
>>                (add-text-properties beg1 end1 '(face org-verse))))
>>              t))
>> +          ((equal dc1 "title:")
>> +           (add-text-properties beg (match-end 3) '(font-lock-fontified t
>> invisible t))
>> +           (add-text-properties
>> +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>> face org-title-line)))
>> +          ((equal dc1 "author:")
>> +           (add-text-properties beg (match-end 3) '(font-lock-fontified t
>> invisible t))
>> +           (add-text-properties
>> +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>> face org-author-line)))
>> +          ((equal dc1 "email:")
>> +           (add-text-properties beg (match-end 3) '(font-lock-fontified t
>> invisible t))
>> +           (add-text-properties
>> +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>> face org-email-line)))
>> +          ((equal dc1 "date:")
>> +           (add-text-properties beg (match-end 3) '(font-lock-fontified t
>> invisible t))
>> +           (add-text-properties
>> +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>> face org-date-line)))
>>           ((not (member (char-after beg) '(?\  ?\t)))
>>            ;; just any other in-buffer setting, but not indented
>>            (add-text-properties
>> --8<---------------cut here---------------end--------------->8---
>>
>>
>>
>>
>>> OK, it's on my list.
>>>
>>> Dan
>>>
>>>
>>>> - Carsten
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Emacs-orgmode mailing list
>>>> Please use `Reply All' to send replies to the list.
>>>> Emacs-orgmode@gnu.org
>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>>
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>
> - Carsten
>
>
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

[-- Attachment #1.2: Type: text/html, Size: 11529 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-24 20:22         ` Scot Becker
@ 2010-03-26  3:34           ` Dan Davison
  2010-03-27 21:34             ` Scot Becker
  0 siblings, 1 reply; 11+ messages in thread
From: Dan Davison @ 2010-03-26  3:34 UTC (permalink / raw)
  To: Scot Becker; +Cc: emacs org-mode mailing list, Carsten Dominik

Carsten, Scot --

Scot Becker <scot.becker@gmail.com> writes:

> Or what about---in the spirit of the 'hidden' outline stars---the option to set
> "#+TITLE:" and friends in a 'barely visible' color, and in the 'standard' font
> of the document, if that's possible.

OK, I understand that suddenly-disappearing text might be confusing. My
intention was to help in the current efforts to avoid making org seem
too "technical" to people coming from more mainstream software, by
providing a clean document title. But OK, so magical hiding off by
default. Scot's suggestion seems like a good intermediate
position. Below is a new version of the patch which follows that. I
resisted the temptation to go crazy with the "barely visible"-ness, just
the same as other dimmed text in org (archived, code, etc).  An image is
at

http://www.princeton.edu/~ddavison/org-faces/Default-MidnightBlue-DimmedKeywords.png

>  As sexy as it is, really hiding the
> markup is a fair break from most (all?) of 'standard' org mode,

Right, apart from links I guess. Org users are used to sudden hiding
behaviour on their part.

[...]

> On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik <carsten.dominik@gmail.com>
> wrote:
>
>     Hi Dan,
>
>     I think the patch is almost good.  I do like the larger face
>     for the title, and I know that some themes also use larger faces
>     for headlines.
>
>     But I think we at least need a variable
>     governing if the keyword will be made invisible or not.

In addition to the new faces, I've introduced a new variable
org-hidden-keywords which is a list of special keywords to hide, with a
customise interface. At the moment that allows for hiding
of #+TITLE, #+AUTHOR, #+DATE and #+EMAIL. By default all hiding is off.

Dan

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index e336b3c..fc80e82 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -59,6 +59,19 @@ The foreground color of this face should be equal to the background
 color of the frame."
   :group 'org-faces)
 
+(defface org-dim    ; similar to shadow
+  (org-compatible-face 'shadow
+    '((((class color grayscale) (min-colors 88) (background light))
+       (:foreground "grey50"))
+      (((class color grayscale) (min-colors 88) (background dark))
+       (:foreground "grey70"))
+      (((class color) (min-colors 8) (background light))
+       (:foreground "green"))
+      (((class color) (min-colors 8) (background dark))
+       (:foreground "yellow"))))
+  "Face used to de-emphasise text by dimming."
+  :group 'org-faces)
+
 (defface org-level-1 ;; originally copied from font-lock-function-name-face
   (org-compatible-face 'outline-1
     '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
@@ -468,6 +481,41 @@ changes."
   :group 'org-faces
   :version "22.1")
 
+(defface org-document-title
+  '((((class color) (background light)) (:foreground "midnight blue" :weight bold :height 1.44))
+    (((class color) (background dark)) (:foreground "steel blue" :weight bold :height 1.44))
+    (t (:weight bold :height 1.44)))
+  "Face for document title, i.e. that which follows the #+TITLE: keyword."
+  :group 'org-faces)
+
+(defface org-document-author
+  '((((class color) (background light)) (:foreground "midnight blue"))
+    (((class color) (background dark)) (:foreground "steel blue")))
+  "Face for document author, i.e. that which follows the #+AUTHOR: keyword."
+  :group 'org-faces)
+
+(defface org-document-email
+  (org-compatible-face 'org-document-author '((t nil)))
+  "Face for document email, i.e. that which follows the #+EMAIL: keyword."
+  :group 'org-faces)
+
+(defface org-document-date
+  (org-compatible-face 'org-document-author '((t nil)))
+  "Face for document date, i.e. that which follows the #+DATE: keyword."
+  :group 'org-faces)
+
+(org-copy-face 'org-dim 'org-document-title-keyword
+  "Face for #+TITLE: keyword.")
+
+(org-copy-face 'org-dim 'org-document-author-keyword
+  "Face for #+AUTHOR: keyword.")
+
+(org-copy-face 'org-dim 'org-document-email-keyword
+  "Face for #+EMAIL: keyword.")
+
+(org-copy-face 'org-dim 'org-document-date-keyword
+  "Face for #+DATE: keyword.")
+
 (defface org-block
   (org-compatible-face 'shadow
     '((((class color grayscale) (min-colors 88) (background light))
diff --git a/lisp/org.el b/lisp/org.el
index dad8649..4410f46 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -2975,6 +2975,17 @@ lines to the buffer:
   :group 'org-font-lock
   :type 'boolean)
 
+(defcustom org-hidden-keywords nil
+  "List of keywords that should be hidden when typed in the org buffer.
+For example, add #+TITLE to this list in order to make the
+document title appear in the buffer without the initial #+TITLE
+keyword."
+  :group 'org-font-lock
+  :type '(set (const :tag "#+AUTHOR" author)
+	      (const :tag "#+DATE" date)
+	      (const :tag "#+EMAIL" email)
+	      (const :tag "#+TITLE"  title)))
+
 (defcustom org-fontify-done-headline nil
   "Non-nil means change the face of a headline if it is marked DONE.
 Normally, only the TODO/DONE keyword indicates the state of a headline.
@@ -4681,6 +4692,42 @@ will be prompted for."
 	       ((string= block-type "verse")
 		(add-text-properties beg1 end1 '(face org-verse))))
 	      t))
+	   ((equal dc1 "title:")
+	    (add-text-properties
+	     beg (match-end 3)
+	     (if (member 'title org-hidden-keywords)
+		 '(font-lock-fontified t invisible t)
+	       '(font-lock-fontified t face org-document-title-keyword)))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6)
+	     '(font-lock-fontified t face org-document-title)))
+	   ((equal dc1 "author:")
+	    (add-text-properties
+	     beg (match-end 3)
+	     (if (member 'author org-hidden-keywords)
+		 '(font-lock-fontified t invisible t)
+	       '(font-lock-fontified t face org-document-author-keyword)))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6)
+	     '(font-lock-fontified t face org-document-author)))
+	   ((equal dc1 "email:")
+	    (add-text-properties
+	     beg (match-end 3)
+	     (if (member 'email org-hidden-keywords)
+		 '(font-lock-fontified t invisible t)
+	       '(font-lock-fontified t face org-document-email-keyword)))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6)
+	     '(font-lock-fontified t face org-document-email)))
+	   ((equal dc1 "date:")
+	    (add-text-properties
+	     beg (match-end 3)
+	     (if (member 'date org-hidden-keywords)
+		 '(font-lock-fontified t invisible t)
+	       '(font-lock-fontified t face org-document-date-keyword)))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6)
+	     '(font-lock-fontified t face org-document-date)))
 	   ((not (member (char-after beg) '(?\  ?\t)))
 	    ;; just any other in-buffer setting, but not indented
 	    (add-text-properties
--8<---------------cut here---------------end--------------->8---



>     If you type "#+email:", for example, that string does disappear
>     without a trace, and that is very confusing.  In fact, my preference
>     would be to not make the keyword invisible.
>
>     Thanks
>
>     - Carsten
>
>
>     On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
>
>
>         Dan Davison <davison@stats.ox.ac.uk> writes:
>
>
>             Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>
>                 On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>
>
>                     Might it be worth considering a special display for the #
>                     +title line
>                     in
>                     org buffers?
>
>                     Currently it is easy for the title to get buried among more
>                     technical
>                     configuration lines like #+options, #+startup, #+seq_toto
>                     etc. One can
>                     take the approach of leaving #+title at the top of the
>                     document, and
>                     moving the other config lines elesewhere, but even so I am
>                     wondering
>                     whether anyone else is attracted by the idea of providing
>                     an org-title
>                     display property that would hide the #+title: component,
>                     and use an
>                     appropriate face for the title text.
>
>                     In some ways, the current state gives the impression that
>                     the title is
>                     something which becomes important during export, but is not
>                     really a
>                     key
>                     component of document when it is being viewed in emacs. For
>                     example, I
>                     expect others are familiar with the experience of exporting
>                     an org
>                     file
>                     without a title, finding that the first heading has been
>                     used as a
>                     title, and then going back to add in the title as an
>                     afterthought. But a
>                     title is an important part of a document, and I thought
>                     perhaps a
>                     special title display would help to make the title more of
>                     a first
>                     class
>                     citizen in org buffers?
>
>
>                 Hi Dan,
>
>                 I agree.  Maybe he same should be true for DATE and AUTHOR,
>                 maybe EMAIL?
>
>                 Would you like to make a patch for this, introducing a new face
>                 and applying it to these constructs?
>
>
>         I've made a proposed patch (below). This involved making a few
>         decisions
>         about appearance -- it would be great to get other peoples' views and
>         alternative proposals.
>
>         At the risk of stating the obvious, I think we should ask the question
>         "What might attract new users to org-mode most?", rather than query our
>         personal preferences (because we can all change it ourselves or fire
>         off
>         an email to this list asking how).
>
>         Here's my main proposal (corresponding to the patch below). Note that
>         in
>         the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still there,
>         but invisible.
>
>         [I've also put the screenshots at http://www.princeton.edu/~ddavison/
>         org-faces/]
>
>         [Default-MidnightBlue.png]
>
>         <Default-MidnightBlue.png>
>         The main issue then is that I'm suggesting making the title face larger
>         than the other faces. This would be the only large face in org-mode,
>         but
>         I thought that it was appropriate for the title. Here's a version
>         without the large title face:
>
>         [Default-MidnightBlue-NoBigTitle.png]
>
>         <Default-MidnightBlue-NoBigTitle.png>
>         As for the colours, here's an alternative:
>
>         [Default-DarkSlateGrey.png]
>
>         <Default-DarkSlateGrey.png>
>         The important thing is the default emacs colour theme shown above, but
>         I
>         did pick a colour for dark backgrounds. For what it's worth, here is
>         what it looks like with (the excellent) color-theme-charcoal-black:
>
>         [CharcoalBlack-SteelBlue.png]
>
>         <CharcoalBlack-SteelBlue.png>
>         Here's the patch. If anyone wants to play around, it's pretty obvious
>         in
>         the patch below where to change the colours (and boldness and
>         height). Don't forget the functions list-colors-display and
>         list-faces-display.
>
>         There's at least one issue with the patch: if you leave a space between
>         e.g. '#+TITLE:' and the start of the title text, then that space will
>         not be made invisible and so will appear at the start of the title. I
>         couldn't see how to avoid that without altering one of the key
>         font-lock
>         regexps.
>
>         Dan
>
>         --8<---------------cut here---------------start------------->8---
>         commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
>         Author: Dan Davison <davison@stats.ox.ac.uk>
>         Date:   Sun Mar 21 20:26:02 2010 -0400
>
>           Alter display of title, author, email and date lines.
>
>           For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>           initial #+KEYWORD: part is hidden and the following new
>           faces are applied to the remaining visible part:
>
>           org-title-line
>           org-author-line
>           org-email-line
>           org-date-line
>
>         diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>         index e336b3c..ebc9596 100644
>         --- a/lisp/org-faces.el
>         +++ b/lisp/org-faces.el
>         @@ -468,6 +468,25 @@ changes."
>          :group 'org-faces
>          :version "22.1")
>
>         +(defface org-title-line
>         +  '((((class color) (background light)) (:foreground "midnight blue"
>         :weight bold :height 1.44))
>         +    (((class color) (background dark)) (:foreground "steel blue"
>         :weight bold :height 1.44))
>         +    (t (:weight bold :height 1.44)))
>         +  "Face for #+TITLE: line."
>         +  :group 'org-faces)
>         +
>         +(defface org-author-line
>         +  '((((class color) (background light)) (:foreground "midnight blue"))
>         +    (((class color) (background dark)) (:foreground "steel blue")))
>         +  "Face for #+AUTHOR: line."
>         +  :group 'org-faces)
>         +
>         +(org-copy-face 'org-author-line 'org-email-line
>         +  "Face for #+EMAIL: line.")
>         +
>         +(org-copy-face 'org-author-line 'org-date-line
>         +  "Face for #+DATE: line.")
>         +
>         (defface org-block
>          (org-compatible-face 'shadow
>            '((((class color grayscale) (min-colors 88) (background light))
>         diff --git a/lisp/org.el b/lisp/org.el
>         index b723528..17e3877 100644
>         --- a/lisp/org.el
>         +++ b/lisp/org.el
>         @@ -4642,6 +4642,22 @@ will be prompted for."
>                       ((string= block-type "verse")
>                        (add-text-properties beg1 end1 '(face org-verse))))
>                      t))
>         +          ((equal dc1 "title:")
>         +           (add-text-properties beg (match-end 3) '
>         (font-lock-fontified t invisible t))
>         +           (add-text-properties
>         +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>         face org-title-line)))
>         +          ((equal dc1 "author:")
>         +           (add-text-properties beg (match-end 3) '
>         (font-lock-fontified t invisible t))
>         +           (add-text-properties
>         +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>         face org-author-line)))
>         +          ((equal dc1 "email:")
>         +           (add-text-properties beg (match-end 3) '
>         (font-lock-fontified t invisible t))
>         +           (add-text-properties
>         +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>         face org-email-line)))
>         +          ((equal dc1 "date:")
>         +           (add-text-properties beg (match-end 3) '
>         (font-lock-fontified t invisible t))
>         +           (add-text-properties
>         +            (match-beginning 6) (match-end 6) '(font-lock-fontified t
>         face org-date-line)))
>                   ((not (member (char-after beg) '(?\  ?\t)))
>                    ;; just any other in-buffer setting, but not indented
>                    (add-text-properties
>         --8<---------------cut here---------------end--------------->8---
>
>
>
>
>
>             OK, it's on my list.
>
>             Dan
>
>
>
>                 - Carsten
>
>
>
>                 _______________________________________________
>                 Emacs-orgmode mailing list
>                 Please use `Reply All' to send replies to the list.
>                 Emacs-orgmode@gnu.org
>                 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
>
>             _______________________________________________
>             Emacs-orgmode mailing list
>             Please use `Reply All' to send replies to the list.
>             Emacs-orgmode@gnu.org
>             http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
>     - Carsten
>
>
>
>
>
>     _______________________________________________
>     Emacs-orgmode mailing list
>     Please use `Reply All' to send replies to the list.
>     Emacs-orgmode@gnu.org
>     http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-26  3:34           ` Dan Davison
@ 2010-03-27 21:34             ` Scot Becker
  2010-03-28  2:52               ` Dan Davison
  0 siblings, 1 reply; 11+ messages in thread
From: Scot Becker @ 2010-03-27 21:34 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs org-mode mailing list, Carsten Dominik


[-- Attachment #1.1: Type: text/plain, Size: 18557 bytes --]

I like it.  This is a great little piece of work.   Thanks a lot.

Scot


On Fri, Mar 26, 2010 at 3:34 AM, Dan Davison <davison@stats.ox.ac.uk> wrote:

> Carsten, Scot --
>
> Scot Becker <scot.becker@gmail.com> writes:
>
> > Or what about---in the spirit of the 'hidden' outline stars---the option
> to set
> > "#+TITLE:" and friends in a 'barely visible' color, and in the 'standard'
> font
> > of the document, if that's possible.
>
> OK, I understand that suddenly-disappearing text might be confusing. My
> intention was to help in the current efforts to avoid making org seem
> too "technical" to people coming from more mainstream software, by
> providing a clean document title. But OK, so magical hiding off by
> default. Scot's suggestion seems like a good intermediate
> position. Below is a new version of the patch which follows that. I
> resisted the temptation to go crazy with the "barely visible"-ness, just
> the same as other dimmed text in org (archived, code, etc).  An image is
> at
>
>
> http://www.princeton.edu/~ddavison/org-faces/Default-MidnightBlue-DimmedKeywords.png<http://www.princeton.edu/%7Eddavison/org-faces/Default-MidnightBlue-DimmedKeywords.png>
>
> >  As sexy as it is, really hiding the
> > markup is a fair break from most (all?) of 'standard' org mode,
>
> Right, apart from links I guess. Org users are used to sudden hiding
> behaviour on their part.
>
> [...]
>
> > On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik <
> carsten.dominik@gmail.com>
> > wrote:
> >
> >     Hi Dan,
> >
> >     I think the patch is almost good.  I do like the larger face
> >     for the title, and I know that some themes also use larger faces
> >     for headlines.
> >
> >     But I think we at least need a variable
> >     governing if the keyword will be made invisible or not.
>
> In addition to the new faces, I've introduced a new variable
> org-hidden-keywords which is a list of special keywords to hide, with a
> customise interface. At the moment that allows for hiding
> of #+TITLE, #+AUTHOR, #+DATE and #+EMAIL. By default all hiding is off.
>
> Dan
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/lisp/org-faces.el b/lisp/org-faces.el
> index e336b3c..fc80e82 100644
> --- a/lisp/org-faces.el
> +++ b/lisp/org-faces.el
> @@ -59,6 +59,19 @@ The foreground color of this face should be equal to the
> background
>  color of the frame."
>   :group 'org-faces)
>
> +(defface org-dim    ; similar to shadow
> +  (org-compatible-face 'shadow
> +    '((((class color grayscale) (min-colors 88) (background light))
> +       (:foreground "grey50"))
> +      (((class color grayscale) (min-colors 88) (background dark))
> +       (:foreground "grey70"))
> +      (((class color) (min-colors 8) (background light))
> +       (:foreground "green"))
> +      (((class color) (min-colors 8) (background dark))
> +       (:foreground "yellow"))))
> +  "Face used to de-emphasise text by dimming."
> +  :group 'org-faces)
> +
>  (defface org-level-1 ;; originally copied from
> font-lock-function-name-face
>   (org-compatible-face 'outline-1
>     '((((class color) (min-colors 88) (background light)) (:foreground
> "Blue1"))
> @@ -468,6 +481,41 @@ changes."
>    :group 'org-faces
>   :version "22.1")
>
> +(defface org-document-title
> +  '((((class color) (background light)) (:foreground "midnight blue"
> :weight bold :height 1.44))
> +    (((class color) (background dark)) (:foreground "steel blue" :weight
> bold :height 1.44))
> +    (t (:weight bold :height 1.44)))
> +  "Face for document title, i.e. that which follows the #+TITLE: keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-author
> +  '((((class color) (background light)) (:foreground "midnight blue"))
> +    (((class color) (background dark)) (:foreground "steel blue")))
> +  "Face for document author, i.e. that which follows the #+AUTHOR:
> keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-email
> +  (org-compatible-face 'org-document-author '((t nil)))
> +  "Face for document email, i.e. that which follows the #+EMAIL: keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-date
> +  (org-compatible-face 'org-document-author '((t nil)))
> +  "Face for document date, i.e. that which follows the #+DATE: keyword."
> +  :group 'org-faces)
> +
> +(org-copy-face 'org-dim 'org-document-title-keyword
> +  "Face for #+TITLE: keyword.")
> +
> +(org-copy-face 'org-dim 'org-document-author-keyword
> +  "Face for #+AUTHOR: keyword.")
> +
> +(org-copy-face 'org-dim 'org-document-email-keyword
> +  "Face for #+EMAIL: keyword.")
> +
> +(org-copy-face 'org-dim 'org-document-date-keyword
> +  "Face for #+DATE: keyword.")
> +
>  (defface org-block
>   (org-compatible-face 'shadow
>     '((((class color grayscale) (min-colors 88) (background light))
> diff --git a/lisp/org.el b/lisp/org.el
> index dad8649..4410f46 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -2975,6 +2975,17 @@ lines to the buffer:
>   :group 'org-font-lock
>   :type 'boolean)
>
> +(defcustom org-hidden-keywords nil
> +  "List of keywords that should be hidden when typed in the org buffer.
> +For example, add #+TITLE to this list in order to make the
> +document title appear in the buffer without the initial #+TITLE
> +keyword."
> +  :group 'org-font-lock
> +  :type '(set (const :tag "#+AUTHOR" author)
> +             (const :tag "#+DATE" date)
> +             (const :tag "#+EMAIL" email)
> +             (const :tag "#+TITLE"  title)))
> +
>  (defcustom org-fontify-done-headline nil
>   "Non-nil means change the face of a headline if it is marked DONE.
>  Normally, only the TODO/DONE keyword indicates the state of a headline.
> @@ -4681,6 +4692,42 @@ will be prompted for."
>                ((string= block-type "verse")
>                (add-text-properties beg1 end1 '(face org-verse))))
>              t))
> +          ((equal dc1 "title:")
> +           (add-text-properties
> +            beg (match-end 3)
> +            (if (member 'title org-hidden-keywords)
> +                '(font-lock-fontified t invisible t)
> +              '(font-lock-fontified t face org-document-title-keyword)))
> +           (add-text-properties
> +            (match-beginning 6) (match-end 6)
> +            '(font-lock-fontified t face org-document-title)))
> +          ((equal dc1 "author:")
> +           (add-text-properties
> +            beg (match-end 3)
> +            (if (member 'author org-hidden-keywords)
> +                '(font-lock-fontified t invisible t)
> +              '(font-lock-fontified t face org-document-author-keyword)))
> +           (add-text-properties
> +            (match-beginning 6) (match-end 6)
> +            '(font-lock-fontified t face org-document-author)))
> +          ((equal dc1 "email:")
> +           (add-text-properties
> +            beg (match-end 3)
> +            (if (member 'email org-hidden-keywords)
> +                '(font-lock-fontified t invisible t)
> +              '(font-lock-fontified t face org-document-email-keyword)))
> +           (add-text-properties
> +            (match-beginning 6) (match-end 6)
> +            '(font-lock-fontified t face org-document-email)))
> +          ((equal dc1 "date:")
> +           (add-text-properties
> +            beg (match-end 3)
> +            (if (member 'date org-hidden-keywords)
> +                '(font-lock-fontified t invisible t)
> +              '(font-lock-fontified t face org-document-date-keyword)))
> +           (add-text-properties
> +            (match-beginning 6) (match-end 6)
> +            '(font-lock-fontified t face org-document-date)))
>            ((not (member (char-after beg) '(?\  ?\t)))
>            ;; just any other in-buffer setting, but not indented
>            (add-text-properties
> --8<---------------cut here---------------end--------------->8---
>
>
>
> >     If you type "#+email:", for example, that string does disappear
> >     without a trace, and that is very confusing.  In fact, my preference
> >     would be to not make the keyword invisible.
> >
> >     Thanks
> >
> >     - Carsten
> >
> >
> >     On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
> >
> >
> >         Dan Davison <davison@stats.ox.ac.uk> writes:
> >
> >
> >             Carsten Dominik <carsten.dominik@gmail.com> writes:
> >
> >
> >                 On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
> >
> >
> >                     Might it be worth considering a special display for
> the #
> >                     +title line
> >                     in
> >                     org buffers?
> >
> >                     Currently it is easy for the title to get buried
> among more
> >                     technical
> >                     configuration lines like #+options, #+startup,
> #+seq_toto
> >                     etc. One can
> >                     take the approach of leaving #+title at the top of
> the
> >                     document, and
> >                     moving the other config lines elesewhere, but even so
> I am
> >                     wondering
> >                     whether anyone else is attracted by the idea of
> providing
> >                     an org-title
> >                     display property that would hide the #+title:
> component,
> >                     and use an
> >                     appropriate face for the title text.
> >
> >                     In some ways, the current state gives the impression
> that
> >                     the title is
> >                     something which becomes important during export, but
> is not
> >                     really a
> >                     key
> >                     component of document when it is being viewed in
> emacs. For
> >                     example, I
> >                     expect others are familiar with the experience of
> exporting
> >                     an org
> >                     file
> >                     without a title, finding that the first heading has
> been
> >                     used as a
> >                     title, and then going back to add in the title as an
> >                     afterthought. But a
> >                     title is an important part of a document, and I
> thought
> >                     perhaps a
> >                     special title display would help to make the title
> more of
> >                     a first
> >                     class
> >                     citizen in org buffers?
> >
> >
> >                 Hi Dan,
> >
> >                 I agree.  Maybe he same should be true for DATE and
> AUTHOR,
> >                 maybe EMAIL?
> >
> >                 Would you like to make a patch for this, introducing a
> new face
> >                 and applying it to these constructs?
> >
> >
> >         I've made a proposed patch (below). This involved making a few
> >         decisions
> >         about appearance -- it would be great to get other peoples' views
> and
> >         alternative proposals.
> >
> >         At the risk of stating the obvious, I think we should ask the
> question
> >         "What might attract new users to org-mode most?", rather than
> query our
> >         personal preferences (because we can all change it ourselves or
> fire
> >         off
> >         an email to this list asking how).
> >
> >         Here's my main proposal (corresponding to the patch below). Note
> that
> >         in
> >         the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still
> there,
> >         but invisible.
> >
> >         [I've also put the screenshots at
> http://www.princeton.edu/~ddavison/<http://www.princeton.edu/%7Eddavison/>
> >         org-faces/]
> >
> >         [Default-MidnightBlue.png]
> >
> >         <Default-MidnightBlue.png>
> >         The main issue then is that I'm suggesting making the title face
> larger
> >         than the other faces. This would be the only large face in
> org-mode,
> >         but
> >         I thought that it was appropriate for the title. Here's a version
> >         without the large title face:
> >
> >         [Default-MidnightBlue-NoBigTitle.png]
> >
> >         <Default-MidnightBlue-NoBigTitle.png>
> >         As for the colours, here's an alternative:
> >
> >         [Default-DarkSlateGrey.png]
> >
> >         <Default-DarkSlateGrey.png>
> >         The important thing is the default emacs colour theme shown
> above, but
> >         I
> >         did pick a colour for dark backgrounds. For what it's worth, here
> is
> >         what it looks like with (the excellent)
> color-theme-charcoal-black:
> >
> >         [CharcoalBlack-SteelBlue.png]
> >
> >         <CharcoalBlack-SteelBlue.png>
> >         Here's the patch. If anyone wants to play around, it's pretty
> obvious
> >         in
> >         the patch below where to change the colours (and boldness and
> >         height). Don't forget the functions list-colors-display and
> >         list-faces-display.
> >
> >         There's at least one issue with the patch: if you leave a space
> between
> >         e.g. '#+TITLE:' and the start of the title text, then that space
> will
> >         not be made invisible and so will appear at the start of the
> title. I
> >         couldn't see how to avoid that without altering one of the key
> >         font-lock
> >         regexps.
> >
> >         Dan
> >
> >         --8<---------------cut here---------------start------------->8---
> >         commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
> >         Author: Dan Davison <davison@stats.ox.ac.uk>
> >         Date:   Sun Mar 21 20:26:02 2010 -0400
> >
> >           Alter display of title, author, email and date lines.
> >
> >           For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
> >           initial #+KEYWORD: part is hidden and the following new
> >           faces are applied to the remaining visible part:
> >
> >           org-title-line
> >           org-author-line
> >           org-email-line
> >           org-date-line
> >
> >         diff --git a/lisp/org-faces.el b/lisp/org-faces.el
> >         index e336b3c..ebc9596 100644
> >         --- a/lisp/org-faces.el
> >         +++ b/lisp/org-faces.el
> >         @@ -468,6 +468,25 @@ changes."
> >          :group 'org-faces
> >          :version "22.1")
> >
> >         +(defface org-title-line
> >         +  '((((class color) (background light)) (:foreground "midnight
> blue"
> >         :weight bold :height 1.44))
> >         +    (((class color) (background dark)) (:foreground "steel blue"
> >         :weight bold :height 1.44))
> >         +    (t (:weight bold :height 1.44)))
> >         +  "Face for #+TITLE: line."
> >         +  :group 'org-faces)
> >         +
> >         +(defface org-author-line
> >         +  '((((class color) (background light)) (:foreground "midnight
> blue"))
> >         +    (((class color) (background dark)) (:foreground "steel
> blue")))
> >         +  "Face for #+AUTHOR: line."
> >         +  :group 'org-faces)
> >         +
> >         +(org-copy-face 'org-author-line 'org-email-line
> >         +  "Face for #+EMAIL: line.")
> >         +
> >         +(org-copy-face 'org-author-line 'org-date-line
> >         +  "Face for #+DATE: line.")
> >         +
> >         (defface org-block
> >          (org-compatible-face 'shadow
> >            '((((class color grayscale) (min-colors 88) (background
> light))
> >         diff --git a/lisp/org.el b/lisp/org.el
> >         index b723528..17e3877 100644
> >         --- a/lisp/org.el
> >         +++ b/lisp/org.el
> >         @@ -4642,6 +4642,22 @@ will be prompted for."
> >                       ((string= block-type "verse")
> >                        (add-text-properties beg1 end1 '(face
> org-verse))))
> >                      t))
> >         +          ((equal dc1 "title:")
> >         +           (add-text-properties beg (match-end 3) '
> >         (font-lock-fontified t invisible t))
> >         +           (add-text-properties
> >         +            (match-beginning 6) (match-end 6)
> '(font-lock-fontified t
> >         face org-title-line)))
> >         +          ((equal dc1 "author:")
> >         +           (add-text-properties beg (match-end 3) '
> >         (font-lock-fontified t invisible t))
> >         +           (add-text-properties
> >         +            (match-beginning 6) (match-end 6)
> '(font-lock-fontified t
> >         face org-author-line)))
> >         +          ((equal dc1 "email:")
> >         +           (add-text-properties beg (match-end 3) '
> >         (font-lock-fontified t invisible t))
> >         +           (add-text-properties
> >         +            (match-beginning 6) (match-end 6)
> '(font-lock-fontified t
> >         face org-email-line)))
> >         +          ((equal dc1 "date:")
> >         +           (add-text-properties beg (match-end 3) '
> >         (font-lock-fontified t invisible t))
> >         +           (add-text-properties
> >         +            (match-beginning 6) (match-end 6)
> '(font-lock-fontified t
> >         face org-date-line)))
> >                   ((not (member (char-after beg) '(?\  ?\t)))
> >                    ;; just any other in-buffer setting, but not indented
> >                    (add-text-properties
> >         --8<---------------cut here---------------end--------------->8---
> >
> >
> >
> >
> >
> >             OK, it's on my list.
> >
> >             Dan
> >
> >
> >
> >                 - Carsten
> >
> >
> >
> >                 _______________________________________________
> >                 Emacs-orgmode mailing list
> >                 Please use `Reply All' to send replies to the list.
> >                 Emacs-orgmode@gnu.org
> >                 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
> >
> >
> >             _______________________________________________
> >             Emacs-orgmode mailing list
> >             Please use `Reply All' to send replies to the list.
> >             Emacs-orgmode@gnu.org
> >             http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
> >
> >     - Carsten
> >
> >
> >
> >
> >
> >     _______________________________________________
> >     Emacs-orgmode mailing list
> >     Please use `Reply All' to send replies to the list.
> >     Emacs-orgmode@gnu.org
> >     http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
> >
> > _______________________________________________
> > Emacs-orgmode mailing list
> > Please use `Reply All' to send replies to the list.
> > Emacs-orgmode@gnu.org
> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

[-- Attachment #1.2: Type: text/html, Size: 23185 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-27 21:34             ` Scot Becker
@ 2010-03-28  2:52               ` Dan Davison
  2010-03-28  7:36                 ` Carsten Dominik
  2010-03-30  2:04                 ` Thomas S. Dye
  0 siblings, 2 replies; 11+ messages in thread
From: Dan Davison @ 2010-03-28  2:52 UTC (permalink / raw)
  To: Scot Becker; +Cc: emacs org-mode mailing list, Carsten Dominik

Thanks Scot, here's the final version of my proposed patch (no change in
outward appearance from previous version).

By default, title, author, date and email lines appear in dark blue with
the initial keywords greyed out. The title is in a larger font than the
others. To change that appearance, customise the faces

org-document-title
org-document-info
org-document-info-keyword

In addition, the variable org-hidden-keywords can be used to make any of
those keywords disappear. You can use the customize interface for this,
or e.g.

(setq org-hidden-keywords '(title date))

Dan

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index e336b3c..8ec7ce1 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -468,6 +468,34 @@ changes."
   :group 'org-faces
   :version "22.1")
 
+(defface org-document-title
+  '((((class color) (background light)) (:foreground "midnight blue" :weight bold :height 1.44))
+    (((class color) (background dark)) (:foreground "pale turquoise" :weight bold :height 1.44))
+    (t (:weight bold :height 1.44)))
+  "Face for document title, i.e. that which follows the #+TITLE: keyword."
+  :group 'org-faces)
+
+(defface org-document-info
+  '((((class color) (background light)) (:foreground "midnight blue"))
+    (((class color) (background dark)) (:foreground "pale turquoise"))
+    (t nil))
+  "Face for document date, author and email; i.e. that which
+follows a #+DATE:, #+AUTHOR: or #+EMAIL: keyword."
+  :group 'org-faces)
+
+(defface org-document-info-keyword
+  (org-compatible-face 'shadow
+    '((((class color grayscale) (min-colors 88) (background light))
+       (:foreground "grey50"))
+      (((class color grayscale) (min-colors 88) (background dark))
+       (:foreground "grey70"))
+      (((class color) (min-colors 8) (background light))
+       (:foreground "green"))
+      (((class color) (min-colors 8) (background dark))
+       (:foreground "yellow"))))
+  "Face for #+TITLE:, #+AUTHOR:, #+EMAIL: and #+DATE: keywords."
+  :group 'org-faces)
+
 (defface org-block
   (org-compatible-face 'shadow
     '((((class color grayscale) (min-colors 88) (background light))
diff --git a/lisp/org.el b/lisp/org.el
index dad8649..e30c49a 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -2975,6 +2975,17 @@ lines to the buffer:
   :group 'org-font-lock
   :type 'boolean)
 
+(defcustom org-hidden-keywords nil
+  "List of keywords that should be hidden when typed in the org buffer.
+For example, add #+TITLE to this list in order to make the
+document title appear in the buffer without the initial #+TITLE:
+keyword."
+  :group 'org-font-lock
+  :type '(set (const :tag "#+AUTHOR" author)
+	      (const :tag "#+DATE" date)
+	      (const :tag "#+EMAIL" email)
+	      (const :tag "#+TITLE"  title)))
+
 (defcustom org-fontify-done-headline nil
   "Non-nil means change the face of a headline if it is marked DONE.
 Normally, only the TODO/DONE keyword indicates the state of a headline.
@@ -4681,6 +4692,17 @@ will be prompted for."
 	       ((string= block-type "verse")
 		(add-text-properties beg1 end1 '(face org-verse))))
 	      t))
+	   ((member dc1 '("title:" "author:" "email:" "date:"))
+	    (add-text-properties
+	     beg (match-end 3)
+	     (if (member (intern (substring dc1 0 -1)) org-hidden-keywords)
+		 '(font-lock-fontified t invisible t)
+	       '(font-lock-fontified t face org-document-info-keyword)))
+	    (add-text-properties
+	     (match-beginning 6) (match-end 6)
+	     (if (string-equal dc1 "title:")
+		 '(font-lock-fontified t face org-document-title)
+	       '(font-lock-fontified t face org-document-info))))
 	   ((not (member (char-after beg) '(?\  ?\t)))
 	    ;; just any other in-buffer setting, but not indented
 	    (add-text-properties
--8<---------------cut here---------------end--------------->8---


Scot Becker <scot.becker@gmail.com> writes:

> I like it.  This is a great little piece of work.   Thanks a lot. 
>
> Scot
>
>
> On Fri, Mar 26, 2010 at 3:34 AM, Dan Davison <davison@stats.ox.ac.uk> wrote:
>
>     Carsten, Scot --
>
>     Scot Becker <scot.becker@gmail.com> writes:
>
>     > Or what about---in the spirit of the 'hidden' outline stars---the option
>     to set
>     > "#+TITLE:" and friends in a 'barely visible' color, and in the 'standard'
>     font
>     > of the document, if that's possible.
>
>     OK, I understand that suddenly-disappearing text might be confusing. My
>     intention was to help in the current efforts to avoid making org seem
>     too "technical" to people coming from more mainstream software, by
>     providing a clean document title. But OK, so magical hiding off by
>     default. Scot's suggestion seems like a good intermediate
>     position. Below is a new version of the patch which follows that. I
>     resisted the temptation to go crazy with the "barely visible"-ness, just
>     the same as other dimmed text in org (archived, code, etc).  An image is
>     at
>
>     http://www.princeton.edu/~ddavison/org-faces/
>     Default-MidnightBlue-DimmedKeywords.png
>
>     >  As sexy as it is, really hiding the
>     > markup is a fair break from most (all?) of 'standard' org mode,
>
>     Right, apart from links I guess. Org users are used to sudden hiding
>     behaviour on their part.
>
>     [...]
>
>     > On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik <
>     carsten.dominik@gmail.com>
>     > wrote:
>     >
>     >     Hi Dan,
>     >
>     >     I think the patch is almost good.  I do like the larger face
>     >     for the title, and I know that some themes also use larger faces
>     >     for headlines.
>     >
>     >     But I think we at least need a variable
>     >     governing if the keyword will be made invisible or not.
>
>     In addition to the new faces, I've introduced a new variable
>     org-hidden-keywords which is a list of special keywords to hide, with a
>     customise interface. At the moment that allows for hiding
>     of #+TITLE, #+AUTHOR, #+DATE and #+EMAIL. By default all hiding is off.
>
>     Dan
>
>     --8<---------------cut here---------------start------------->8---
>     diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>     index e336b3c..fc80e82 100644
>     --- a/lisp/org-faces.el
>     +++ b/lisp/org-faces.el
>     @@ -59,6 +59,19 @@ The foreground color of this face should be equal to the
>     background
>      color of the frame."
>       :group 'org-faces)
>
>     +(defface org-dim    ; similar to shadow
>     +  (org-compatible-face 'shadow
>     +    '((((class color grayscale) (min-colors 88) (background light))
>     +       (:foreground "grey50"))
>     +      (((class color grayscale) (min-colors 88) (background dark))
>     +       (:foreground "grey70"))
>     +      (((class color) (min-colors 8) (background light))
>     +       (:foreground "green"))
>     +      (((class color) (min-colors 8) (background dark))
>     +       (:foreground "yellow"))))
>     +  "Face used to de-emphasise text by dimming."
>     +  :group 'org-faces)
>     +
>      (defface org-level-1 ;; originally copied from
>     font-lock-function-name-face
>       (org-compatible-face 'outline-1
>         '((((class color) (min-colors 88) (background light)) (:foreground
>     "Blue1"))
>     @@ -468,6 +481,41 @@ changes."
>       :group 'org-faces
>       :version "22.1")
>
>     +(defface org-document-title
>     +  '((((class color) (background light)) (:foreground "midnight blue"
>     :weight bold :height 1.44))
>     +    (((class color) (background dark)) (:foreground "steel blue" :weight
>     bold :height 1.44))
>     +    (t (:weight bold :height 1.44)))
>     +  "Face for document title, i.e. that which follows the #+TITLE: keyword."
>     +  :group 'org-faces)
>     +
>     +(defface org-document-author
>     +  '((((class color) (background light)) (:foreground "midnight blue"))
>     +    (((class color) (background dark)) (:foreground "steel blue")))
>     +  "Face for document author, i.e. that which follows the #+AUTHOR:
>     keyword."
>     +  :group 'org-faces)
>     +
>     +(defface org-document-email
>     +  (org-compatible-face 'org-document-author '((t nil)))
>     +  "Face for document email, i.e. that which follows the #+EMAIL: keyword."
>     +  :group 'org-faces)
>     +
>     +(defface org-document-date
>     +  (org-compatible-face 'org-document-author '((t nil)))
>     +  "Face for document date, i.e. that which follows the #+DATE: keyword."
>     +  :group 'org-faces)
>     +
>     +(org-copy-face 'org-dim 'org-document-title-keyword
>     +  "Face for #+TITLE: keyword.")
>     +
>     +(org-copy-face 'org-dim 'org-document-author-keyword
>     +  "Face for #+AUTHOR: keyword.")
>     +
>     +(org-copy-face 'org-dim 'org-document-email-keyword
>     +  "Face for #+EMAIL: keyword.")
>     +
>     +(org-copy-face 'org-dim 'org-document-date-keyword
>     +  "Face for #+DATE: keyword.")
>     +
>      (defface org-block
>       (org-compatible-face 'shadow
>         '((((class color grayscale) (min-colors 88) (background light))
>     diff --git a/lisp/org.el b/lisp/org.el
>     index dad8649..4410f46 100644
>     --- a/lisp/org.el
>     +++ b/lisp/org.el
>     @@ -2975,6 +2975,17 @@ lines to the buffer:
>       :group 'org-font-lock
>       :type 'boolean)
>
>     +(defcustom org-hidden-keywords nil
>     +  "List of keywords that should be hidden when typed in the org buffer.
>     +For example, add #+TITLE to this list in order to make the
>     +document title appear in the buffer without the initial #+TITLE
>     +keyword."
>     +  :group 'org-font-lock
>     +  :type '(set (const :tag "#+AUTHOR" author)
>     +             (const :tag "#+DATE" date)
>     +             (const :tag "#+EMAIL" email)
>     +             (const :tag "#+TITLE"  title)))
>     +
>      (defcustom org-fontify-done-headline nil
>       "Non-nil means change the face of a headline if it is marked DONE.
>      Normally, only the TODO/DONE keyword indicates the state of a headline.
>     @@ -4681,6 +4692,42 @@ will be prompted for."
>                   ((string= block-type "verse")
>                    (add-text-properties beg1 end1 '(face org-verse))))
>                  t))
>     +          ((equal dc1 "title:")
>     +           (add-text-properties
>     +            beg (match-end 3)
>     +            (if (member 'title org-hidden-keywords)
>     +                '(font-lock-fontified t invisible t)
>     +              '(font-lock-fontified t face org-document-title-keyword)))
>     +           (add-text-properties
>     +            (match-beginning 6) (match-end 6)
>     +            '(font-lock-fontified t face org-document-title)))
>     +          ((equal dc1 "author:")
>     +           (add-text-properties
>     +            beg (match-end 3)
>     +            (if (member 'author org-hidden-keywords)
>     +                '(font-lock-fontified t invisible t)
>     +              '(font-lock-fontified t face org-document-author-keyword)))
>     +           (add-text-properties
>     +            (match-beginning 6) (match-end 6)
>     +            '(font-lock-fontified t face org-document-author)))
>     +          ((equal dc1 "email:")
>     +           (add-text-properties
>     +            beg (match-end 3)
>     +            (if (member 'email org-hidden-keywords)
>     +                '(font-lock-fontified t invisible t)
>     +              '(font-lock-fontified t face org-document-email-keyword)))
>     +           (add-text-properties
>     +            (match-beginning 6) (match-end 6)
>     +            '(font-lock-fontified t face org-document-email)))
>     +          ((equal dc1 "date:")
>     +           (add-text-properties
>     +            beg (match-end 3)
>     +            (if (member 'date org-hidden-keywords)
>     +                '(font-lock-fontified t invisible t)
>     +              '(font-lock-fontified t face org-document-date-keyword)))
>     +           (add-text-properties
>     +            (match-beginning 6) (match-end 6)
>     +            '(font-lock-fontified t face org-document-date)))
>               ((not (member (char-after beg) '(?\  ?\t)))
>                ;; just any other in-buffer setting, but not indented
>                (add-text-properties
>     --8<---------------cut here---------------end--------------->8---
>
>
>
>     >     If you type "#+email:", for example, that string does disappear
>     >     without a trace, and that is very confusing.  In fact, my preference
>     >     would be to not make the keyword invisible.
>     >
>     >     Thanks
>     >
>     >     - Carsten
>     >
>     >
>     >     On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
>     >
>     >
>     >         Dan Davison <davison@stats.ox.ac.uk> writes:
>     >
>     >
>     >             Carsten Dominik <carsten.dominik@gmail.com> writes:
>     >
>     >
>     >                 On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>     >
>     >
>     >                     Might it be worth considering a special display for
>     the #
>     >                     +title line
>     >                     in
>     >                     org buffers?
>     >
>     >                     Currently it is easy for the title to get buried
>     among more
>     >                     technical
>     >                     configuration lines like #+options, #+startup, #
>     +seq_toto
>     >                     etc. One can
>     >                     take the approach of leaving #+title at the top of
>     the
>     >                     document, and
>     >                     moving the other config lines elesewhere, but even so
>     I am
>     >                     wondering
>     >                     whether anyone else is attracted by the idea of
>     providing
>     >                     an org-title
>     >                     display property that would hide the #+title:
>     component,
>     >                     and use an
>     >                     appropriate face for the title text.
>     >
>     >                     In some ways, the current state gives the impression
>     that
>     >                     the title is
>     >                     something which becomes important during export, but
>     is not
>     >                     really a
>     >                     key
>     >                     component of document when it is being viewed in
>     emacs. For
>     >                     example, I
>     >                     expect others are familiar with the experience of
>     exporting
>     >                     an org
>     >                     file
>     >                     without a title, finding that the first heading has
>     been
>     >                     used as a
>     >                     title, and then going back to add in the title as an
>     >                     afterthought. But a
>     >                     title is an important part of a document, and I
>     thought
>     >                     perhaps a
>     >                     special title display would help to make the title
>     more of
>     >                     a first
>     >                     class
>     >                     citizen in org buffers?
>     >
>     >
>     >                 Hi Dan,
>     >
>     >                 I agree.  Maybe he same should be true for DATE and
>     AUTHOR,
>     >                 maybe EMAIL?
>     >
>     >                 Would you like to make a patch for this, introducing a
>     new face
>     >                 and applying it to these constructs?
>     >
>     >
>     >         I've made a proposed patch (below). This involved making a few
>     >         decisions
>     >         about appearance -- it would be great to get other peoples' views
>     and
>     >         alternative proposals.
>     >
>     >         At the risk of stating the obvious, I think we should ask the
>     question
>     >         "What might attract new users to org-mode most?", rather than
>     query our
>     >         personal preferences (because we can all change it ourselves or
>     fire
>     >         off
>     >         an email to this list asking how).
>     >
>     >         Here's my main proposal (corresponding to the patch below). Note
>     that
>     >         in
>     >         the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are still
>     there,
>     >         but invisible.
>     >
>     >         [I've also put the screenshots at http://www.princeton.edu/
>     ~ddavison/
>     >         org-faces/]
>     >
>     >         [Default-MidnightBlue.png]
>     >
>     >         <Default-MidnightBlue.png>
>     >         The main issue then is that I'm suggesting making the title face
>     larger
>     >         than the other faces. This would be the only large face in
>     org-mode,
>     >         but
>     >         I thought that it was appropriate for the title. Here's a version
>     >         without the large title face:
>     >
>     >         [Default-MidnightBlue-NoBigTitle.png]
>     >
>     >         <Default-MidnightBlue-NoBigTitle.png>
>     >         As for the colours, here's an alternative:
>     >
>     >         [Default-DarkSlateGrey.png]
>     >
>     >         <Default-DarkSlateGrey.png>
>     >         The important thing is the default emacs colour theme shown
>     above, but
>     >         I
>     >         did pick a colour for dark backgrounds. For what it's worth, here
>     is
>     >         what it looks like with (the excellent)
>     color-theme-charcoal-black:
>     >
>     >         [CharcoalBlack-SteelBlue.png]
>     >
>     >         <CharcoalBlack-SteelBlue.png>
>     >         Here's the patch. If anyone wants to play around, it's pretty
>     obvious
>     >         in
>     >         the patch below where to change the colours (and boldness and
>     >         height). Don't forget the functions list-colors-display and
>     >         list-faces-display.
>     >
>     >         There's at least one issue with the patch: if you leave a space
>     between
>     >         e.g. '#+TITLE:' and the start of the title text, then that space
>     will
>     >         not be made invisible and so will appear at the start of the
>     title. I
>     >         couldn't see how to avoid that without altering one of the key
>     >         font-lock
>     >         regexps.
>     >
>     >         Dan
>     >
>     >         --8<---------------cut here---------------start------------->8---
>     >         commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
>     >         Author: Dan Davison <davison@stats.ox.ac.uk>
>     >         Date:   Sun Mar 21 20:26:02 2010 -0400
>     >
>     >           Alter display of title, author, email and date lines.
>     >
>     >           For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>     >           initial #+KEYWORD: part is hidden and the following new
>     >           faces are applied to the remaining visible part:
>     >
>     >           org-title-line
>     >           org-author-line
>     >           org-email-line
>     >           org-date-line
>     >
>     >         diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>     >         index e336b3c..ebc9596 100644
>     >         --- a/lisp/org-faces.el
>     >         +++ b/lisp/org-faces.el
>     >         @@ -468,6 +468,25 @@ changes."
>     >          :group 'org-faces
>     >          :version "22.1")
>     >
>     >         +(defface org-title-line
>     >         +  '((((class color) (background light)) (:foreground "midnight
>     blue"
>     >         :weight bold :height 1.44))
>     >         +    (((class color) (background dark)) (:foreground "steel blue"
>     >         :weight bold :height 1.44))
>     >         +    (t (:weight bold :height 1.44)))
>     >         +  "Face for #+TITLE: line."
>     >         +  :group 'org-faces)
>     >         +
>     >         +(defface org-author-line
>     >         +  '((((class color) (background light)) (:foreground "midnight
>     blue"))
>     >         +    (((class color) (background dark)) (:foreground "steel
>     blue")))
>     >         +  "Face for #+AUTHOR: line."
>     >         +  :group 'org-faces)
>     >         +
>     >         +(org-copy-face 'org-author-line 'org-email-line
>     >         +  "Face for #+EMAIL: line.")
>     >         +
>     >         +(org-copy-face 'org-author-line 'org-date-line
>     >         +  "Face for #+DATE: line.")
>     >         +
>     >         (defface org-block
>     >          (org-compatible-face 'shadow
>     >            '((((class color grayscale) (min-colors 88) (background
>     light))
>     >         diff --git a/lisp/org.el b/lisp/org.el
>     >         index b723528..17e3877 100644
>     >         --- a/lisp/org.el
>     >         +++ b/lisp/org.el
>     >         @@ -4642,6 +4642,22 @@ will be prompted for."
>     >                       ((string= block-type "verse")
>     >                        (add-text-properties beg1 end1 '(face
>     org-verse))))
>     >                      t))
>     >         +          ((equal dc1 "title:")
>     >         +           (add-text-properties beg (match-end 3) '
>     >         (font-lock-fontified t invisible t))
>     >         +           (add-text-properties
>     >         +            (match-beginning 6) (match-end 6) '
>     (font-lock-fontified t
>     >         face org-title-line)))
>     >         +          ((equal dc1 "author:")
>     >         +           (add-text-properties beg (match-end 3) '
>     >         (font-lock-fontified t invisible t))
>     >         +           (add-text-properties
>     >         +            (match-beginning 6) (match-end 6) '
>     (font-lock-fontified t
>     >         face org-author-line)))
>     >         +          ((equal dc1 "email:")
>     >         +           (add-text-properties beg (match-end 3) '
>     >         (font-lock-fontified t invisible t))
>     >         +           (add-text-properties
>     >         +            (match-beginning 6) (match-end 6) '
>     (font-lock-fontified t
>     >         face org-email-line)))
>     >         +          ((equal dc1 "date:")
>     >         +           (add-text-properties beg (match-end 3) '
>     >         (font-lock-fontified t invisible t))
>     >         +           (add-text-properties
>     >         +            (match-beginning 6) (match-end 6) '
>     (font-lock-fontified t
>     >         face org-date-line)))
>     >                   ((not (member (char-after beg) '(?\  ?\t)))
>     >                    ;; just any other in-buffer setting, but not indented
>     >                    (add-text-properties
>     >         --8<---------------cut here---------------end--------------->8---
>     >
>     >
>     >
>     >
>     >
>     >             OK, it's on my list.
>     >
>     >             Dan
>     >
>     >
>     >
>     >                 - Carsten
>     >
>     >
>     >
>     >                 _______________________________________________
>     >                 Emacs-orgmode mailing list
>     >                 Please use `Reply All' to send replies to the list.
>     >                 Emacs-orgmode@gnu.org
>     >                 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>     >
>     >
>     >
>     >             _______________________________________________
>     >             Emacs-orgmode mailing list
>     >             Please use `Reply All' to send replies to the list.
>     >             Emacs-orgmode@gnu.org
>     >             http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>     >
>     >
>     >     - Carsten
>     >
>     >
>     >
>     >
>     >
>     >     _______________________________________________
>     >     Emacs-orgmode mailing list
>     >     Please use `Reply All' to send replies to the list.
>     >     Emacs-orgmode@gnu.org
>     >     http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>     >
>     >
>     > _______________________________________________
>     > Emacs-orgmode mailing list
>     > Please use `Reply All' to send replies to the list.
>     > Emacs-orgmode@gnu.org
>     > http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-28  2:52               ` Dan Davison
@ 2010-03-28  7:36                 ` Carsten Dominik
  2010-03-30  2:04                 ` Thomas S. Dye
  1 sibling, 0 replies; 11+ messages in thread
From: Carsten Dominik @ 2010-03-28  7:36 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs org-mode mailing list

Hi Dan,

this is great, thanks.

please do not yet apply it - I am in the middle of some more complex  
merging.

- Carsten

On Mar 28, 2010, at 4:52 AM, Dan Davison wrote:

> Thanks Scot, here's the final version of my proposed patch (no  
> change in
> outward appearance from previous version).
>
> By default, title, author, date and email lines appear in dark blue  
> with
> the initial keywords greyed out. The title is in a larger font than  
> the
> others. To change that appearance, customise the faces
>
> org-document-title
> org-document-info
> org-document-info-keyword
>
> In addition, the variable org-hidden-keywords can be used to make  
> any of
> those keywords disappear. You can use the customize interface for  
> this,
> or e.g.
>
> (setq org-hidden-keywords '(title date))
>
> Dan
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/lisp/org-faces.el b/lisp/org-faces.el
> index e336b3c..8ec7ce1 100644
> --- a/lisp/org-faces.el
> +++ b/lisp/org-faces.el
> @@ -468,6 +468,34 @@ changes."
>   :group 'org-faces
>   :version "22.1")
>
> +(defface org-document-title
> +  '((((class color) (background light)) (:foreground "midnight  
> blue" :weight bold :height 1.44))
> +    (((class color) (background dark)) (:foreground "pale  
> turquoise" :weight bold :height 1.44))
> +    (t (:weight bold :height 1.44)))
> +  "Face for document title, i.e. that which follows the #+TITLE:  
> keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-info
> +  '((((class color) (background light)) (:foreground "midnight  
> blue"))
> +    (((class color) (background dark)) (:foreground "pale  
> turquoise"))
> +    (t nil))
> +  "Face for document date, author and email; i.e. that which
> +follows a #+DATE:, #+AUTHOR: or #+EMAIL: keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-info-keyword
> +  (org-compatible-face 'shadow
> +    '((((class color grayscale) (min-colors 88) (background light))
> +       (:foreground "grey50"))
> +      (((class color grayscale) (min-colors 88) (background dark))
> +       (:foreground "grey70"))
> +      (((class color) (min-colors 8) (background light))
> +       (:foreground "green"))
> +      (((class color) (min-colors 8) (background dark))
> +       (:foreground "yellow"))))
> +  "Face for #+TITLE:, #+AUTHOR:, #+EMAIL: and #+DATE: keywords."
> +  :group 'org-faces)
> +
> (defface org-block
>   (org-compatible-face 'shadow
>     '((((class color grayscale) (min-colors 88) (background light))
> diff --git a/lisp/org.el b/lisp/org.el
> index dad8649..e30c49a 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -2975,6 +2975,17 @@ lines to the buffer:
>   :group 'org-font-lock
>   :type 'boolean)
>
> +(defcustom org-hidden-keywords nil
> +  "List of keywords that should be hidden when typed in the org  
> buffer.
> +For example, add #+TITLE to this list in order to make the
> +document title appear in the buffer without the initial #+TITLE:
> +keyword."
> +  :group 'org-font-lock
> +  :type '(set (const :tag "#+AUTHOR" author)
> +	      (const :tag "#+DATE" date)
> +	      (const :tag "#+EMAIL" email)
> +	      (const :tag "#+TITLE"  title)))
> +
> (defcustom org-fontify-done-headline nil
>   "Non-nil means change the face of a headline if it is marked DONE.
> Normally, only the TODO/DONE keyword indicates the state of a  
> headline.
> @@ -4681,6 +4692,17 @@ will be prompted for."
> 	       ((string= block-type "verse")
> 		(add-text-properties beg1 end1 '(face org-verse))))
> 	      t))
> +	   ((member dc1 '("title:" "author:" "email:" "date:"))
> +	    (add-text-properties
> +	     beg (match-end 3)
> +	     (if (member (intern (substring dc1 0 -1)) org-hidden-keywords)
> +		 '(font-lock-fontified t invisible t)
> +	       '(font-lock-fontified t face org-document-info-keyword)))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6)
> +	     (if (string-equal dc1 "title:")
> +		 '(font-lock-fontified t face org-document-title)
> +	       '(font-lock-fontified t face org-document-info))))
> 	   ((not (member (char-after beg) '(?\  ?\t)))
> 	    ;; just any other in-buffer setting, but not indented
> 	    (add-text-properties
> --8<---------------cut here---------------end--------------->8---
>
>
> Scot Becker <scot.becker@gmail.com> writes:
>
>> I like it.  This is a great little piece of work.   Thanks a lot.
>>
>> Scot
>>
>>
>> On Fri, Mar 26, 2010 at 3:34 AM, Dan Davison  
>> <davison@stats.ox.ac.uk> wrote:
>>
>>    Carsten, Scot --
>>
>>    Scot Becker <scot.becker@gmail.com> writes:
>>
>>> Or what about---in the spirit of the 'hidden' outline stars---the  
>>> option
>>    to set
>>> "#+TITLE:" and friends in a 'barely visible' color, and in the  
>>> 'standard'
>>    font
>>> of the document, if that's possible.
>>
>>    OK, I understand that suddenly-disappearing text might be  
>> confusing. My
>>    intention was to help in the current efforts to avoid making org  
>> seem
>>    too "technical" to people coming from more mainstream software, by
>>    providing a clean document title. But OK, so magical hiding off by
>>    default. Scot's suggestion seems like a good intermediate
>>    position. Below is a new version of the patch which follows  
>> that. I
>>    resisted the temptation to go crazy with the "barely visible"- 
>> ness, just
>>    the same as other dimmed text in org (archived, code, etc).  An  
>> image is
>>    at
>>
>>    http://www.princeton.edu/~ddavison/org-faces/
>>    Default-MidnightBlue-DimmedKeywords.png
>>
>>>  As sexy as it is, really hiding the
>>> markup is a fair break from most (all?) of 'standard' org mode,
>>
>>    Right, apart from links I guess. Org users are used to sudden  
>> hiding
>>    behaviour on their part.
>>
>>    [...]
>>
>>> On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik <
>>    carsten.dominik@gmail.com>
>>> wrote:
>>>
>>>     Hi Dan,
>>>
>>>     I think the patch is almost good.  I do like the larger face
>>>     for the title, and I know that some themes also use larger faces
>>>     for headlines.
>>>
>>>     But I think we at least need a variable
>>>     governing if the keyword will be made invisible or not.
>>
>>    In addition to the new faces, I've introduced a new variable
>>    org-hidden-keywords which is a list of special keywords to hide,  
>> with a
>>    customise interface. At the moment that allows for hiding
>>    of #+TITLE, #+AUTHOR, #+DATE and #+EMAIL. By default all hiding  
>> is off.
>>
>>    Dan
>>
>>    --8<---------------cut here---------------start------------->8---
>>    diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>>    index e336b3c..fc80e82 100644
>>    --- a/lisp/org-faces.el
>>    +++ b/lisp/org-faces.el
>>    @@ -59,6 +59,19 @@ The foreground color of this face should be  
>> equal to the
>>    background
>>     color of the frame."
>>      :group 'org-faces)
>>
>>    +(defface org-dim    ; similar to shadow
>>    +  (org-compatible-face 'shadow
>>    +    '((((class color grayscale) (min-colors 88) (background  
>> light))
>>    +       (:foreground "grey50"))
>>    +      (((class color grayscale) (min-colors 88) (background  
>> dark))
>>    +       (:foreground "grey70"))
>>    +      (((class color) (min-colors 8) (background light))
>>    +       (:foreground "green"))
>>    +      (((class color) (min-colors 8) (background dark))
>>    +       (:foreground "yellow"))))
>>    +  "Face used to de-emphasise text by dimming."
>>    +  :group 'org-faces)
>>    +
>>     (defface org-level-1 ;; originally copied from
>>    font-lock-function-name-face
>>      (org-compatible-face 'outline-1
>>        '((((class color) (min-colors 88) (background light))  
>> (:foreground
>>    "Blue1"))
>>    @@ -468,6 +481,41 @@ changes."
>>      :group 'org-faces
>>      :version "22.1")
>>
>>    +(defface org-document-title
>>    +  '((((class color) (background light)) (:foreground "midnight  
>> blue"
>>    :weight bold :height 1.44))
>>    +    (((class color) (background dark)) (:foreground "steel  
>> blue" :weight
>>    bold :height 1.44))
>>    +    (t (:weight bold :height 1.44)))
>>    +  "Face for document title, i.e. that which follows the # 
>> +TITLE: keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-author
>>    +  '((((class color) (background light)) (:foreground "midnight  
>> blue"))
>>    +    (((class color) (background dark)) (:foreground "steel  
>> blue")))
>>    +  "Face for document author, i.e. that which follows the # 
>> +AUTHOR:
>>    keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-email
>>    +  (org-compatible-face 'org-document-author '((t nil)))
>>    +  "Face for document email, i.e. that which follows the # 
>> +EMAIL: keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-date
>>    +  (org-compatible-face 'org-document-author '((t nil)))
>>    +  "Face for document date, i.e. that which follows the #+DATE:  
>> keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(org-copy-face 'org-dim 'org-document-title-keyword
>>    +  "Face for #+TITLE: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-author-keyword
>>    +  "Face for #+AUTHOR: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-email-keyword
>>    +  "Face for #+EMAIL: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-date-keyword
>>    +  "Face for #+DATE: keyword.")
>>    +
>>     (defface org-block
>>      (org-compatible-face 'shadow
>>        '((((class color grayscale) (min-colors 88) (background  
>> light))
>>    diff --git a/lisp/org.el b/lisp/org.el
>>    index dad8649..4410f46 100644
>>    --- a/lisp/org.el
>>    +++ b/lisp/org.el
>>    @@ -2975,6 +2975,17 @@ lines to the buffer:
>>      :group 'org-font-lock
>>      :type 'boolean)
>>
>>    +(defcustom org-hidden-keywords nil
>>    +  "List of keywords that should be hidden when typed in the org  
>> buffer.
>>    +For example, add #+TITLE to this list in order to make the
>>    +document title appear in the buffer without the initial #+TITLE
>>    +keyword."
>>    +  :group 'org-font-lock
>>    +  :type '(set (const :tag "#+AUTHOR" author)
>>    +             (const :tag "#+DATE" date)
>>    +             (const :tag "#+EMAIL" email)
>>    +             (const :tag "#+TITLE"  title)))
>>    +
>>     (defcustom org-fontify-done-headline nil
>>      "Non-nil means change the face of a headline if it is marked  
>> DONE.
>>     Normally, only the TODO/DONE keyword indicates the state of a  
>> headline.
>>    @@ -4681,6 +4692,42 @@ will be prompted for."
>>                  ((string= block-type "verse")
>>                   (add-text-properties beg1 end1 '(face org-verse))))
>>                 t))
>>    +          ((equal dc1 "title:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'title org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-title- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-title)))
>>    +          ((equal dc1 "author:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'author org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-author- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-author)))
>>    +          ((equal dc1 "email:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'email org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-email- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-email)))
>>    +          ((equal dc1 "date:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'date org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-date- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-date)))
>>              ((not (member (char-after beg) '(?\  ?\t)))
>>               ;; just any other in-buffer setting, but not indented
>>               (add-text-properties
>>    --8<---------------cut here---------------end--------------->8---
>>
>>
>>
>>>     If you type "#+email:", for example, that string does disappear
>>>     without a trace, and that is very confusing.  In fact, my  
>>> preference
>>>     would be to not make the keyword invisible.
>>>
>>>     Thanks
>>>
>>>     - Carsten
>>>
>>>
>>>     On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
>>>
>>>
>>>         Dan Davison <davison@stats.ox.ac.uk> writes:
>>>
>>>
>>>             Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>
>>>
>>>                 On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>>>
>>>
>>>                     Might it be worth considering a special  
>>> display for
>>    the #
>>>                     +title line
>>>                     in
>>>                     org buffers?
>>>
>>>                     Currently it is easy for the title to get buried
>>    among more
>>>                     technical
>>>                     configuration lines like #+options, #+startup, #
>>    +seq_toto
>>>                     etc. One can
>>>                     take the approach of leaving #+title at the  
>>> top of
>>    the
>>>                     document, and
>>>                     moving the other config lines elesewhere, but  
>>> even so
>>    I am
>>>                     wondering
>>>                     whether anyone else is attracted by the idea of
>>    providing
>>>                     an org-title
>>>                     display property that would hide the #+title:
>>    component,
>>>                     and use an
>>>                     appropriate face for the title text.
>>>
>>>                     In some ways, the current state gives the  
>>> impression
>>    that
>>>                     the title is
>>>                     something which becomes important during  
>>> export, but
>>    is not
>>>                     really a
>>>                     key
>>>                     component of document when it is being viewed in
>>    emacs. For
>>>                     example, I
>>>                     expect others are familiar with the experience  
>>> of
>>    exporting
>>>                     an org
>>>                     file
>>>                     without a title, finding that the first  
>>> heading has
>>    been
>>>                     used as a
>>>                     title, and then going back to add in the title  
>>> as an
>>>                     afterthought. But a
>>>                     title is an important part of a document, and I
>>    thought
>>>                     perhaps a
>>>                     special title display would help to make the  
>>> title
>>    more of
>>>                     a first
>>>                     class
>>>                     citizen in org buffers?
>>>
>>>
>>>                 Hi Dan,
>>>
>>>                 I agree.  Maybe he same should be true for DATE and
>>    AUTHOR,
>>>                 maybe EMAIL?
>>>
>>>                 Would you like to make a patch for this,  
>>> introducing a
>>    new face
>>>                 and applying it to these constructs?
>>>
>>>
>>>         I've made a proposed patch (below). This involved making a  
>>> few
>>>         decisions
>>>         about appearance -- it would be great to get other  
>>> peoples' views
>>    and
>>>         alternative proposals.
>>>
>>>         At the risk of stating the obvious, I think we should ask  
>>> the
>>    question
>>>         "What might attract new users to org-mode most?", rather  
>>> than
>>    query our
>>>         personal preferences (because we can all change it  
>>> ourselves or
>>    fire
>>>         off
>>>         an email to this list asking how).
>>>
>>>         Here's my main proposal (corresponding to the patch  
>>> below). Note
>>    that
>>>         in
>>>         the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are  
>>> still
>>    there,
>>>         but invisible.
>>>
>>>         [I've also put the screenshots at http://www.princeton.edu/
>>    ~ddavison/
>>>         org-faces/]
>>>
>>>         [Default-MidnightBlue.png]
>>>
>>>         <Default-MidnightBlue.png>
>>>         The main issue then is that I'm suggesting making the  
>>> title face
>>    larger
>>>         than the other faces. This would be the only large face in
>>    org-mode,
>>>         but
>>>         I thought that it was appropriate for the title. Here's a  
>>> version
>>>         without the large title face:
>>>
>>>         [Default-MidnightBlue-NoBigTitle.png]
>>>
>>>         <Default-MidnightBlue-NoBigTitle.png>
>>>         As for the colours, here's an alternative:
>>>
>>>         [Default-DarkSlateGrey.png]
>>>
>>>         <Default-DarkSlateGrey.png>
>>>         The important thing is the default emacs colour theme shown
>>    above, but
>>>         I
>>>         did pick a colour for dark backgrounds. For what it's  
>>> worth, here
>>    is
>>>         what it looks like with (the excellent)
>>    color-theme-charcoal-black:
>>>
>>>         [CharcoalBlack-SteelBlue.png]
>>>
>>>         <CharcoalBlack-SteelBlue.png>
>>>         Here's the patch. If anyone wants to play around, it's  
>>> pretty
>>    obvious
>>>         in
>>>         the patch below where to change the colours (and boldness  
>>> and
>>>         height). Don't forget the functions list-colors-display and
>>>         list-faces-display.
>>>
>>>         There's at least one issue with the patch: if you leave a  
>>> space
>>    between
>>>         e.g. '#+TITLE:' and the start of the title text, then that  
>>> space
>>    will
>>>         not be made invisible and so will appear at the start of the
>>    title. I
>>>         couldn't see how to avoid that without altering one of the  
>>> key
>>>         font-lock
>>>         regexps.
>>>
>>>         Dan
>>>
>>>         --8<---------------cut here--------------- 
>>> start------------->8---
>>>         commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
>>>         Author: Dan Davison <davison@stats.ox.ac.uk>
>>>         Date:   Sun Mar 21 20:26:02 2010 -0400
>>>
>>>           Alter display of title, author, email and date lines.
>>>
>>>           For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>>>           initial #+KEYWORD: part is hidden and the following new
>>>           faces are applied to the remaining visible part:
>>>
>>>           org-title-line
>>>           org-author-line
>>>           org-email-line
>>>           org-date-line
>>>
>>>         diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>>>         index e336b3c..ebc9596 100644
>>>         --- a/lisp/org-faces.el
>>>         +++ b/lisp/org-faces.el
>>>         @@ -468,6 +468,25 @@ changes."
>>>          :group 'org-faces
>>>          :version "22.1")
>>>
>>>         +(defface org-title-line
>>>         +  '((((class color) (background light)) (:foreground  
>>> "midnight
>>    blue"
>>>         :weight bold :height 1.44))
>>>         +    (((class color) (background dark)) (:foreground  
>>> "steel blue"
>>>         :weight bold :height 1.44))
>>>         +    (t (:weight bold :height 1.44)))
>>>         +  "Face for #+TITLE: line."
>>>         +  :group 'org-faces)
>>>         +
>>>         +(defface org-author-line
>>>         +  '((((class color) (background light)) (:foreground  
>>> "midnight
>>    blue"))
>>>         +    (((class color) (background dark)) (:foreground "steel
>>    blue")))
>>>         +  "Face for #+AUTHOR: line."
>>>         +  :group 'org-faces)
>>>         +
>>>         +(org-copy-face 'org-author-line 'org-email-line
>>>         +  "Face for #+EMAIL: line.")
>>>         +
>>>         +(org-copy-face 'org-author-line 'org-date-line
>>>         +  "Face for #+DATE: line.")
>>>         +
>>>         (defface org-block
>>>          (org-compatible-face 'shadow
>>>            '((((class color grayscale) (min-colors 88) (background
>>    light))
>>>         diff --git a/lisp/org.el b/lisp/org.el
>>>         index b723528..17e3877 100644
>>>         --- a/lisp/org.el
>>>         +++ b/lisp/org.el
>>>         @@ -4642,6 +4642,22 @@ will be prompted for."
>>>                       ((string= block-type "verse")
>>>                        (add-text-properties beg1 end1 '(face
>>    org-verse))))
>>>                      t))
>>>         +          ((equal dc1 "title:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-title-line)))
>>>         +          ((equal dc1 "author:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-author-line)))
>>>         +          ((equal dc1 "email:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-email-line)))
>>>         +          ((equal dc1 "date:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-date-line)))
>>>                   ((not (member (char-after beg) '(?\  ?\t)))
>>>                    ;; just any other in-buffer setting, but not  
>>> indented
>>>                    (add-text-properties
>>>         --8<---------------cut here--------------- 
>>> end--------------->8---
>>>
>>>
>>>
>>>
>>>
>>>             OK, it's on my list.
>>>
>>>             Dan
>>>
>>>
>>>
>>>                 - Carsten
>>>
>>>
>>>
>>>                 _______________________________________________
>>>                 Emacs-orgmode mailing list
>>>                 Please use `Reply All' to send replies to the list.
>>>                 Emacs-orgmode@gnu.org
>>>                 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>>
>>>             _______________________________________________
>>>             Emacs-orgmode mailing list
>>>             Please use `Reply All' to send replies to the list.
>>>             Emacs-orgmode@gnu.org
>>>             http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>>     - Carsten
>>>
>>>
>>>
>>>
>>>
>>>     _______________________________________________
>>>     Emacs-orgmode mailing list
>>>     Please use `Reply All' to send replies to the list.
>>>     Emacs-orgmode@gnu.org
>>>     http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: suggestion: display of #+TITLE
  2010-03-28  2:52               ` Dan Davison
  2010-03-28  7:36                 ` Carsten Dominik
@ 2010-03-30  2:04                 ` Thomas S. Dye
  1 sibling, 0 replies; 11+ messages in thread
From: Thomas S. Dye @ 2010-03-30  2:04 UTC (permalink / raw)
  To: Dan Davison; +Cc: emacs org-mode mailing list

Hi Dan,

What a pleasant surprise to see the tastefully displayed #+Title:, # 
+Author:, #+Email: and #+Date: after I pulled from git earlier today.

What's next, org-mode stylesheets?

All the best,
Tom

On Mar 27, 2010, at 4:52 PM, Dan Davison wrote:

> Thanks Scot, here's the final version of my proposed patch (no  
> change in
> outward appearance from previous version).
>
> By default, title, author, date and email lines appear in dark blue  
> with
> the initial keywords greyed out. The title is in a larger font than  
> the
> others. To change that appearance, customise the faces
>
> org-document-title
> org-document-info
> org-document-info-keyword
>
> In addition, the variable org-hidden-keywords can be used to make  
> any of
> those keywords disappear. You can use the customize interface for  
> this,
> or e.g.
>
> (setq org-hidden-keywords '(title date))
>
> Dan
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/lisp/org-faces.el b/lisp/org-faces.el
> index e336b3c..8ec7ce1 100644
> --- a/lisp/org-faces.el
> +++ b/lisp/org-faces.el
> @@ -468,6 +468,34 @@ changes."
>   :group 'org-faces
>   :version "22.1")
>
> +(defface org-document-title
> +  '((((class color) (background light)) (:foreground "midnight  
> blue" :weight bold :height 1.44))
> +    (((class color) (background dark)) (:foreground "pale  
> turquoise" :weight bold :height 1.44))
> +    (t (:weight bold :height 1.44)))
> +  "Face for document title, i.e. that which follows the #+TITLE:  
> keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-info
> +  '((((class color) (background light)) (:foreground "midnight  
> blue"))
> +    (((class color) (background dark)) (:foreground "pale  
> turquoise"))
> +    (t nil))
> +  "Face for document date, author and email; i.e. that which
> +follows a #+DATE:, #+AUTHOR: or #+EMAIL: keyword."
> +  :group 'org-faces)
> +
> +(defface org-document-info-keyword
> +  (org-compatible-face 'shadow
> +    '((((class color grayscale) (min-colors 88) (background light))
> +       (:foreground "grey50"))
> +      (((class color grayscale) (min-colors 88) (background dark))
> +       (:foreground "grey70"))
> +      (((class color) (min-colors 8) (background light))
> +       (:foreground "green"))
> +      (((class color) (min-colors 8) (background dark))
> +       (:foreground "yellow"))))
> +  "Face for #+TITLE:, #+AUTHOR:, #+EMAIL: and #+DATE: keywords."
> +  :group 'org-faces)
> +
> (defface org-block
>   (org-compatible-face 'shadow
>     '((((class color grayscale) (min-colors 88) (background light))
> diff --git a/lisp/org.el b/lisp/org.el
> index dad8649..e30c49a 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -2975,6 +2975,17 @@ lines to the buffer:
>   :group 'org-font-lock
>   :type 'boolean)
>
> +(defcustom org-hidden-keywords nil
> +  "List of keywords that should be hidden when typed in the org  
> buffer.
> +For example, add #+TITLE to this list in order to make the
> +document title appear in the buffer without the initial #+TITLE:
> +keyword."
> +  :group 'org-font-lock
> +  :type '(set (const :tag "#+AUTHOR" author)
> +	      (const :tag "#+DATE" date)
> +	      (const :tag "#+EMAIL" email)
> +	      (const :tag "#+TITLE"  title)))
> +
> (defcustom org-fontify-done-headline nil
>   "Non-nil means change the face of a headline if it is marked DONE.
> Normally, only the TODO/DONE keyword indicates the state of a  
> headline.
> @@ -4681,6 +4692,17 @@ will be prompted for."
> 	       ((string= block-type "verse")
> 		(add-text-properties beg1 end1 '(face org-verse))))
> 	      t))
> +	   ((member dc1 '("title:" "author:" "email:" "date:"))
> +	    (add-text-properties
> +	     beg (match-end 3)
> +	     (if (member (intern (substring dc1 0 -1)) org-hidden-keywords)
> +		 '(font-lock-fontified t invisible t)
> +	       '(font-lock-fontified t face org-document-info-keyword)))
> +	    (add-text-properties
> +	     (match-beginning 6) (match-end 6)
> +	     (if (string-equal dc1 "title:")
> +		 '(font-lock-fontified t face org-document-title)
> +	       '(font-lock-fontified t face org-document-info))))
> 	   ((not (member (char-after beg) '(?\  ?\t)))
> 	    ;; just any other in-buffer setting, but not indented
> 	    (add-text-properties
> --8<---------------cut here---------------end--------------->8---
>
>
> Scot Becker <scot.becker@gmail.com> writes:
>
>> I like it.  This is a great little piece of work.   Thanks a lot.
>>
>> Scot
>>
>>
>> On Fri, Mar 26, 2010 at 3:34 AM, Dan Davison  
>> <davison@stats.ox.ac.uk> wrote:
>>
>>    Carsten, Scot --
>>
>>    Scot Becker <scot.becker@gmail.com> writes:
>>
>>> Or what about---in the spirit of the 'hidden' outline stars---the  
>>> option
>>    to set
>>> "#+TITLE:" and friends in a 'barely visible' color, and in the  
>>> 'standard'
>>    font
>>> of the document, if that's possible.
>>
>>    OK, I understand that suddenly-disappearing text might be  
>> confusing. My
>>    intention was to help in the current efforts to avoid making org  
>> seem
>>    too "technical" to people coming from more mainstream software, by
>>    providing a clean document title. But OK, so magical hiding off by
>>    default. Scot's suggestion seems like a good intermediate
>>    position. Below is a new version of the patch which follows  
>> that. I
>>    resisted the temptation to go crazy with the "barely visible"- 
>> ness, just
>>    the same as other dimmed text in org (archived, code, etc).  An  
>> image is
>>    at
>>
>>    http://www.princeton.edu/~ddavison/org-faces/
>>    Default-MidnightBlue-DimmedKeywords.png
>>
>>>  As sexy as it is, really hiding the
>>> markup is a fair break from most (all?) of 'standard' org mode,
>>
>>    Right, apart from links I guess. Org users are used to sudden  
>> hiding
>>    behaviour on their part.
>>
>>    [...]
>>
>>> On Wed, Mar 24, 2010 at 2:52 PM, Carsten Dominik <
>>    carsten.dominik@gmail.com>
>>> wrote:
>>>
>>>     Hi Dan,
>>>
>>>     I think the patch is almost good.  I do like the larger face
>>>     for the title, and I know that some themes also use larger faces
>>>     for headlines.
>>>
>>>     But I think we at least need a variable
>>>     governing if the keyword will be made invisible or not.
>>
>>    In addition to the new faces, I've introduced a new variable
>>    org-hidden-keywords which is a list of special keywords to hide,  
>> with a
>>    customise interface. At the moment that allows for hiding
>>    of #+TITLE, #+AUTHOR, #+DATE and #+EMAIL. By default all hiding  
>> is off.
>>
>>    Dan
>>
>>    --8<---------------cut here---------------start------------->8---
>>    diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>>    index e336b3c..fc80e82 100644
>>    --- a/lisp/org-faces.el
>>    +++ b/lisp/org-faces.el
>>    @@ -59,6 +59,19 @@ The foreground color of this face should be  
>> equal to the
>>    background
>>     color of the frame."
>>      :group 'org-faces)
>>
>>    +(defface org-dim    ; similar to shadow
>>    +  (org-compatible-face 'shadow
>>    +    '((((class color grayscale) (min-colors 88) (background  
>> light))
>>    +       (:foreground "grey50"))
>>    +      (((class color grayscale) (min-colors 88) (background  
>> dark))
>>    +       (:foreground "grey70"))
>>    +      (((class color) (min-colors 8) (background light))
>>    +       (:foreground "green"))
>>    +      (((class color) (min-colors 8) (background dark))
>>    +       (:foreground "yellow"))))
>>    +  "Face used to de-emphasise text by dimming."
>>    +  :group 'org-faces)
>>    +
>>     (defface org-level-1 ;; originally copied from
>>    font-lock-function-name-face
>>      (org-compatible-face 'outline-1
>>        '((((class color) (min-colors 88) (background light))  
>> (:foreground
>>    "Blue1"))
>>    @@ -468,6 +481,41 @@ changes."
>>      :group 'org-faces
>>      :version "22.1")
>>
>>    +(defface org-document-title
>>    +  '((((class color) (background light)) (:foreground "midnight  
>> blue"
>>    :weight bold :height 1.44))
>>    +    (((class color) (background dark)) (:foreground "steel  
>> blue" :weight
>>    bold :height 1.44))
>>    +    (t (:weight bold :height 1.44)))
>>    +  "Face for document title, i.e. that which follows the # 
>> +TITLE: keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-author
>>    +  '((((class color) (background light)) (:foreground "midnight  
>> blue"))
>>    +    (((class color) (background dark)) (:foreground "steel  
>> blue")))
>>    +  "Face for document author, i.e. that which follows the # 
>> +AUTHOR:
>>    keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-email
>>    +  (org-compatible-face 'org-document-author '((t nil)))
>>    +  "Face for document email, i.e. that which follows the # 
>> +EMAIL: keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(defface org-document-date
>>    +  (org-compatible-face 'org-document-author '((t nil)))
>>    +  "Face for document date, i.e. that which follows the #+DATE:  
>> keyword."
>>    +  :group 'org-faces)
>>    +
>>    +(org-copy-face 'org-dim 'org-document-title-keyword
>>    +  "Face for #+TITLE: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-author-keyword
>>    +  "Face for #+AUTHOR: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-email-keyword
>>    +  "Face for #+EMAIL: keyword.")
>>    +
>>    +(org-copy-face 'org-dim 'org-document-date-keyword
>>    +  "Face for #+DATE: keyword.")
>>    +
>>     (defface org-block
>>      (org-compatible-face 'shadow
>>        '((((class color grayscale) (min-colors 88) (background  
>> light))
>>    diff --git a/lisp/org.el b/lisp/org.el
>>    index dad8649..4410f46 100644
>>    --- a/lisp/org.el
>>    +++ b/lisp/org.el
>>    @@ -2975,6 +2975,17 @@ lines to the buffer:
>>      :group 'org-font-lock
>>      :type 'boolean)
>>
>>    +(defcustom org-hidden-keywords nil
>>    +  "List of keywords that should be hidden when typed in the org  
>> buffer.
>>    +For example, add #+TITLE to this list in order to make the
>>    +document title appear in the buffer without the initial #+TITLE
>>    +keyword."
>>    +  :group 'org-font-lock
>>    +  :type '(set (const :tag "#+AUTHOR" author)
>>    +             (const :tag "#+DATE" date)
>>    +             (const :tag "#+EMAIL" email)
>>    +             (const :tag "#+TITLE"  title)))
>>    +
>>     (defcustom org-fontify-done-headline nil
>>      "Non-nil means change the face of a headline if it is marked  
>> DONE.
>>     Normally, only the TODO/DONE keyword indicates the state of a  
>> headline.
>>    @@ -4681,6 +4692,42 @@ will be prompted for."
>>                  ((string= block-type "verse")
>>                   (add-text-properties beg1 end1 '(face org-verse))))
>>                 t))
>>    +          ((equal dc1 "title:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'title org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-title- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-title)))
>>    +          ((equal dc1 "author:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'author org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-author- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-author)))
>>    +          ((equal dc1 "email:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'email org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-email- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-email)))
>>    +          ((equal dc1 "date:")
>>    +           (add-text-properties
>>    +            beg (match-end 3)
>>    +            (if (member 'date org-hidden-keywords)
>>    +                '(font-lock-fontified t invisible t)
>>    +              '(font-lock-fontified t face org-document-date- 
>> keyword)))
>>    +           (add-text-properties
>>    +            (match-beginning 6) (match-end 6)
>>    +            '(font-lock-fontified t face org-document-date)))
>>              ((not (member (char-after beg) '(?\  ?\t)))
>>               ;; just any other in-buffer setting, but not indented
>>               (add-text-properties
>>    --8<---------------cut here---------------end--------------->8---
>>
>>
>>
>>>     If you type "#+email:", for example, that string does disappear
>>>     without a trace, and that is very confusing.  In fact, my  
>>> preference
>>>     would be to not make the keyword invisible.
>>>
>>>     Thanks
>>>
>>>     - Carsten
>>>
>>>
>>>     On Mar 22, 2010, at 2:24 AM, Dan Davison wrote:
>>>
>>>
>>>         Dan Davison <davison@stats.ox.ac.uk> writes:
>>>
>>>
>>>             Carsten Dominik <carsten.dominik@gmail.com> writes:
>>>
>>>
>>>                 On Mar 16, 2010, at 5:25 PM, Dan Davison wrote:
>>>
>>>
>>>                     Might it be worth considering a special  
>>> display for
>>    the #
>>>                     +title line
>>>                     in
>>>                     org buffers?
>>>
>>>                     Currently it is easy for the title to get buried
>>    among more
>>>                     technical
>>>                     configuration lines like #+options, #+startup, #
>>    +seq_toto
>>>                     etc. One can
>>>                     take the approach of leaving #+title at the  
>>> top of
>>    the
>>>                     document, and
>>>                     moving the other config lines elesewhere, but  
>>> even so
>>    I am
>>>                     wondering
>>>                     whether anyone else is attracted by the idea of
>>    providing
>>>                     an org-title
>>>                     display property that would hide the #+title:
>>    component,
>>>                     and use an
>>>                     appropriate face for the title text.
>>>
>>>                     In some ways, the current state gives the  
>>> impression
>>    that
>>>                     the title is
>>>                     something which becomes important during  
>>> export, but
>>    is not
>>>                     really a
>>>                     key
>>>                     component of document when it is being viewed in
>>    emacs. For
>>>                     example, I
>>>                     expect others are familiar with the experience  
>>> of
>>    exporting
>>>                     an org
>>>                     file
>>>                     without a title, finding that the first  
>>> heading has
>>    been
>>>                     used as a
>>>                     title, and then going back to add in the title  
>>> as an
>>>                     afterthought. But a
>>>                     title is an important part of a document, and I
>>    thought
>>>                     perhaps a
>>>                     special title display would help to make the  
>>> title
>>    more of
>>>                     a first
>>>                     class
>>>                     citizen in org buffers?
>>>
>>>
>>>                 Hi Dan,
>>>
>>>                 I agree.  Maybe he same should be true for DATE and
>>    AUTHOR,
>>>                 maybe EMAIL?
>>>
>>>                 Would you like to make a patch for this,  
>>> introducing a
>>    new face
>>>                 and applying it to these constructs?
>>>
>>>
>>>         I've made a proposed patch (below). This involved making a  
>>> few
>>>         decisions
>>>         about appearance -- it would be great to get other  
>>> peoples' views
>>    and
>>>         alternative proposals.
>>>
>>>         At the risk of stating the obvious, I think we should ask  
>>> the
>>    question
>>>         "What might attract new users to org-mode most?", rather  
>>> than
>>    query our
>>>         personal preferences (because we can all change it  
>>> ourselves or
>>    fire
>>>         off
>>>         an email to this list asking how).
>>>
>>>         Here's my main proposal (corresponding to the patch  
>>> below). Note
>>    that
>>>         in
>>>         the first 4 lines the #+TITLE: and #+AUTHOR: etc bits are  
>>> still
>>    there,
>>>         but invisible.
>>>
>>>         [I've also put the screenshots at http://www.princeton.edu/
>>    ~ddavison/
>>>         org-faces/]
>>>
>>>         [Default-MidnightBlue.png]
>>>
>>>         <Default-MidnightBlue.png>
>>>         The main issue then is that I'm suggesting making the  
>>> title face
>>    larger
>>>         than the other faces. This would be the only large face in
>>    org-mode,
>>>         but
>>>         I thought that it was appropriate for the title. Here's a  
>>> version
>>>         without the large title face:
>>>
>>>         [Default-MidnightBlue-NoBigTitle.png]
>>>
>>>         <Default-MidnightBlue-NoBigTitle.png>
>>>         As for the colours, here's an alternative:
>>>
>>>         [Default-DarkSlateGrey.png]
>>>
>>>         <Default-DarkSlateGrey.png>
>>>         The important thing is the default emacs colour theme shown
>>    above, but
>>>         I
>>>         did pick a colour for dark backgrounds. For what it's  
>>> worth, here
>>    is
>>>         what it looks like with (the excellent)
>>    color-theme-charcoal-black:
>>>
>>>         [CharcoalBlack-SteelBlue.png]
>>>
>>>         <CharcoalBlack-SteelBlue.png>
>>>         Here's the patch. If anyone wants to play around, it's  
>>> pretty
>>    obvious
>>>         in
>>>         the patch below where to change the colours (and boldness  
>>> and
>>>         height). Don't forget the functions list-colors-display and
>>>         list-faces-display.
>>>
>>>         There's at least one issue with the patch: if you leave a  
>>> space
>>    between
>>>         e.g. '#+TITLE:' and the start of the title text, then that  
>>> space
>>    will
>>>         not be made invisible and so will appear at the start of the
>>    title. I
>>>         couldn't see how to avoid that without altering one of the  
>>> key
>>>         font-lock
>>>         regexps.
>>>
>>>         Dan
>>>
>>>         --8<---------------cut here--------------- 
>>> start------------->8---
>>>         commit 72aa791ea0bf613d50b9bf88affd6a53e91c1ebe
>>>         Author: Dan Davison <davison@stats.ox.ac.uk>
>>>         Date:   Sun Mar 21 20:26:02 2010 -0400
>>>
>>>           Alter display of title, author, email and date lines.
>>>
>>>           For each of #+TITLE:, #+AUTHOR:, #+EMAIL:, #+DATE:, the
>>>           initial #+KEYWORD: part is hidden and the following new
>>>           faces are applied to the remaining visible part:
>>>
>>>           org-title-line
>>>           org-author-line
>>>           org-email-line
>>>           org-date-line
>>>
>>>         diff --git a/lisp/org-faces.el b/lisp/org-faces.el
>>>         index e336b3c..ebc9596 100644
>>>         --- a/lisp/org-faces.el
>>>         +++ b/lisp/org-faces.el
>>>         @@ -468,6 +468,25 @@ changes."
>>>          :group 'org-faces
>>>          :version "22.1")
>>>
>>>         +(defface org-title-line
>>>         +  '((((class color) (background light)) (:foreground  
>>> "midnight
>>    blue"
>>>         :weight bold :height 1.44))
>>>         +    (((class color) (background dark)) (:foreground  
>>> "steel blue"
>>>         :weight bold :height 1.44))
>>>         +    (t (:weight bold :height 1.44)))
>>>         +  "Face for #+TITLE: line."
>>>         +  :group 'org-faces)
>>>         +
>>>         +(defface org-author-line
>>>         +  '((((class color) (background light)) (:foreground  
>>> "midnight
>>    blue"))
>>>         +    (((class color) (background dark)) (:foreground "steel
>>    blue")))
>>>         +  "Face for #+AUTHOR: line."
>>>         +  :group 'org-faces)
>>>         +
>>>         +(org-copy-face 'org-author-line 'org-email-line
>>>         +  "Face for #+EMAIL: line.")
>>>         +
>>>         +(org-copy-face 'org-author-line 'org-date-line
>>>         +  "Face for #+DATE: line.")
>>>         +
>>>         (defface org-block
>>>          (org-compatible-face 'shadow
>>>            '((((class color grayscale) (min-colors 88) (background
>>    light))
>>>         diff --git a/lisp/org.el b/lisp/org.el
>>>         index b723528..17e3877 100644
>>>         --- a/lisp/org.el
>>>         +++ b/lisp/org.el
>>>         @@ -4642,6 +4642,22 @@ will be prompted for."
>>>                       ((string= block-type "verse")
>>>                        (add-text-properties beg1 end1 '(face
>>    org-verse))))
>>>                      t))
>>>         +          ((equal dc1 "title:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-title-line)))
>>>         +          ((equal dc1 "author:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-author-line)))
>>>         +          ((equal dc1 "email:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-email-line)))
>>>         +          ((equal dc1 "date:")
>>>         +           (add-text-properties beg (match-end 3) '
>>>         (font-lock-fontified t invisible t))
>>>         +           (add-text-properties
>>>         +            (match-beginning 6) (match-end 6) '
>>    (font-lock-fontified t
>>>         face org-date-line)))
>>>                   ((not (member (char-after beg) '(?\  ?\t)))
>>>                    ;; just any other in-buffer setting, but not  
>>> indented
>>>                    (add-text-properties
>>>         --8<---------------cut here--------------- 
>>> end--------------->8---
>>>
>>>
>>>
>>>
>>>
>>>             OK, it's on my list.
>>>
>>>             Dan
>>>
>>>
>>>
>>>                 - Carsten
>>>
>>>
>>>
>>>                 _______________________________________________
>>>                 Emacs-orgmode mailing list
>>>                 Please use `Reply All' to send replies to the list.
>>>                 Emacs-orgmode@gnu.org
>>>                 http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>>
>>>             _______________________________________________
>>>             Emacs-orgmode mailing list
>>>             Please use `Reply All' to send replies to the list.
>>>             Emacs-orgmode@gnu.org
>>>             http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>>     - Carsten
>>>
>>>
>>>
>>>
>>>
>>>     _______________________________________________
>>>     Emacs-orgmode mailing list
>>>     Please use `Reply All' to send replies to the list.
>>>     Emacs-orgmode@gnu.org
>>>     http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-03-30  2:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-16 16:25 suggestion: display of #+TITLE Dan Davison
2010-03-18  6:04 ` Carsten Dominik
2010-03-18 14:21   ` Dan Davison
2010-03-22  1:36     ` Dan Davison
     [not found]     ` <877hp5i1wl.fsf@stats.ox.ac.uk>
2010-03-24 14:52       ` Carsten Dominik
2010-03-24 20:22         ` Scot Becker
2010-03-26  3:34           ` Dan Davison
2010-03-27 21:34             ` Scot Becker
2010-03-28  2:52               ` Dan Davison
2010-03-28  7:36                 ` Carsten Dominik
2010-03-30  2:04                 ` Thomas S. Dye

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).