* 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
[parent not found: <877hp5i1wl.fsf@stats.ox.ac.uk>]
* 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).