emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: Eric Abrahamsen <eric@ericabrahamsen.net>
Cc: emacs-orgmode@gnu.org
Subject: Re: Marking/highlighting text temporarily
Date: Fri, 08 May 2015 12:19:06 +0200	[thread overview]
Message-ID: <873837gyn9.fsf@nicolasgoaziou.fr> (raw)
In-Reply-To: <87pp6m5qy4.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Thu, 30 Apr 2015 09:45:55 +0800")

Hello,

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> We're just talking about annotations-plus-metadata here, right? Not
> actual in-text TODOs?

I'm not convinced in-text TODOs would be interesting, because they would
make building the agenda an order of magnitude slower.

My concerns about syntax are:

  - it should not cripple readability of the document
  - it needs to mark both objects (inline) and elements, even multiple
    elements (e.g., two paragraphs)

In particular, the last point is difficult to handle for the parser.
Indeed, any syntax is either contained in a paragraph or stops one, so
this syntax should be a bit "outside" the parser.

Anyway, here we go for another proposal.

In-text markers:

  [@:ID]...[@]

ID is expected to be unique, and consists of alphanumeric characters
only. Markers are allowed anywhere standard syntax is (e.g., paragraphs,
verse blocks, table cells, captions, parsed keyword).

Both makers have to be found within the same section, i.e, one cannot
annotate across headlines. Annotations can be nested but cannot
partially overlap.

From the parser point of view, Element can recognize such markers, but
will not be able to "associate" them since they exist above structure of
the document.

One important limitation is that example or source blocks cannot be
annotated, Therefore I also suggest creating a new affiliated keyword,

  #+ANNOTATE: ID

which will annotate the whole element it is applied to.

Some examples:

  [@:1]Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  tempor incididunt ut labore et [@:2]dolore magna[@] aliqua.

  Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi
  ut aliquip ex ea commodo consequat.[@]

  #+ANNOTATE: foo
  #+BEGIN_SRC emacs-lisp
  (+ 1 1)
  #+END_SRC

Then references are collected in a dedicated section, much like
footnotes (e.g., `org-annotation-section'), although it cannot be nil.

Annotations start at column 0

  [@:ID:AUTHOR-ID] OTHER-AUTHOR-ID
  CONTENTS

where:

 - ID obviously refers to in-text markers' ID, 

 - AUTHOR-ID consists of word and blank characters only. If empty, it
   may default to `user-login-name'.

 - OTHER-AUTHOR-ID is also optional. It is meant for empty contents.
   During export, it could be possible to select annotation from
   a single source, e.g.,

     #+OPTIONS: @:student1

 - CONTENTS consists of either comments and non-comments. Any
   non-comment is considered as data to replace (if in-text markers are
   not sticked to each other), or insert (when they are) during export.

   Comments will be displayed as a conversation thread by a special
   function in "org-annotate.el".
   
This syntax allows to copy annotation from another author, e.g.

   [@:1:teacher]
   # This is wrong, it should be "foo".
   foo

   [@:1:student1] teacher

   [@:2:teacher]
   # Please reformulate.

   [@:2:student1]
   # What about "bar"?
   bar

Timestamps, if needed, can be inserted in comments.

WDYT?

-- 
Nicolas Goaziou

  parent reply	other threads:[~2015-05-08 10:17 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-24  6:19 Marking/highlighting text temporarily Vikas Rawal
2015-04-24  6:42 ` Thomas S. Dye
2015-04-24  7:53   ` Marcin Borkowski
2015-04-24  7:05 ` Glyn Millington
2015-04-24  7:13 ` Eric Abrahamsen
2015-04-24  7:19   ` Eric Abrahamsen
2015-04-24  7:38 ` Fabrice Niessen
2015-04-24  7:40 ` Eric S Fraga
2015-04-24  7:58   ` Marcin Borkowski
2015-04-24  8:48     ` Eric S Fraga
2015-04-24 21:38       ` Vikas Rawal
2015-04-25  0:52         ` John Kitchin
2015-04-25  1:34           ` Eric Abrahamsen
2015-04-25  4:13           ` Vikas Rawal
2015-04-25  7:47             ` Eric Abrahamsen
2015-04-25  9:08               ` Eric Abrahamsen
2015-04-26 18:14                 ` John Kitchin
2015-04-27  6:13                   ` Eric Abrahamsen
2015-04-27 10:27                     ` John Kitchin
2015-04-27 11:11                       ` Marcin Borkowski
2015-04-27 12:37                         ` Eric Abrahamsen
2015-04-27 12:58                           ` John Kitchin
2015-04-27 13:06                             ` Eric Abrahamsen
2015-04-27 23:35                 ` John Kitchin
2015-04-28  2:28                   ` Eric Abrahamsen
2015-04-28 19:32                     ` John Kitchin
2015-04-29  8:41                       ` Eric Abrahamsen
2015-04-29  9:57                         ` Rasmus
2015-04-29 12:14                           ` Eric Abrahamsen
2015-04-29 12:31                             ` Rasmus
2015-04-29 13:57                               ` John Kitchin
2015-04-29 13:52                             ` John Kitchin
2015-04-29 10:39                         ` Nicolas Goaziou
2015-04-29 12:34                           ` Eric Abrahamsen
2015-04-29 12:51                             ` Rasmus
2015-04-29 13:21                               ` Eric S Fraga
2015-04-29 14:00                                 ` John Kitchin
2015-04-29 14:42                                   ` Eric S Fraga
2015-04-29 14:54                               ` Eric Abrahamsen
2015-04-29 13:16                             ` Eric S Fraga
2015-04-29 14:56                               ` Eric Abrahamsen
2015-04-29 13:38                             ` John Kitchin
2015-04-29 21:51                             ` Nicolas Goaziou
2015-04-30  1:45                               ` Eric Abrahamsen
2015-04-30  9:58                                 ` Rasmus
2015-04-30 11:32                                   ` Eric S Fraga
2015-04-30 13:45                                   ` John Kitchin
2015-05-03 13:33                                   ` Eric Abrahamsen
2015-05-08 10:19                                 ` Nicolas Goaziou [this message]
2015-05-18  9:57                                   ` Rasmus
2015-05-18 11:48                                     ` Nicolas Goaziou
2015-05-18 13:16                                       ` Rasmus
2015-05-18 15:44                                         ` Eric S Fraga
2015-05-18 16:31                                           ` Rasmus
2015-05-18 20:49                                             ` Eric Abrahamsen
2015-05-18 15:50                                         ` Nicolas Goaziou
2015-05-18 16:25                                           ` Rasmus
2015-05-18 16:56                                             ` Nicolas Goaziou
2015-05-18 17:28                                               ` Rasmus
2015-05-18 18:36                                                 ` Eric S Fraga
2015-05-19  8:14                                                 ` Nicolas Goaziou
2015-04-28 10:48                   ` Eric Abrahamsen
2015-04-25  9:04           ` Eric S Fraga
2015-05-18 21:42 ` Marcin Borkowski
2015-05-28 10:52   ` Alan Schmitt

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=873837gyn9.fsf@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=emacs-orgmode@gnu.org \
    --cc=eric@ericabrahamsen.net \
    /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).