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
next prev parent 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).