emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Scot Becker <scot.becker@gmail.com>
To: Dan Davison <davison@stats.ox.ac.uk>
Cc: emacs org-mode mailing list <emacs-orgmode@gnu.org>,
	Carsten Dominik <carsten.dominik@gmail.com>
Subject: Re: suggestion: display of #+TITLE
Date: Sat, 27 Mar 2010 21:34:37 +0000	[thread overview]
Message-ID: <e0e1fe621003271434p1bfdbca1qf3af78a21a6bbddc@mail.gmail.com> (raw)
In-Reply-To: <874ok3wybm.fsf@stats.ox.ac.uk>


[-- 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

  reply	other threads:[~2010-03-27 21:35 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2010-03-28  2:52               ` Dan Davison
2010-03-28  7:36                 ` Carsten Dominik
2010-03-30  2:04                 ` Thomas S. Dye

Reply instructions:

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

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

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

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

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

  git send-email \
    --in-reply-to=e0e1fe621003271434p1bfdbca1qf3af78a21a6bbddc@mail.gmail.com \
    --to=scot.becker@gmail.com \
    --cc=carsten.dominik@gmail.com \
    --cc=davison@stats.ox.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

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

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

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

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