all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nic James Ferrier <nferrier@tapsellferrier.co.uk>
To: rms@gnu.org
Cc: Oliver Scholz <alkibiades@gmx.de>, emacs-devel@gnu.org
Subject: Re: Saving markup formats
Date: Thu, 21 Jun 2007 01:05:55 +0100	[thread overview]
Message-ID: <87r6o6uq70.fsf@kanga.tapsellferrier.co.uk> (raw)
In-Reply-To: <874pl2wfom.fsf@kanga.tapsellferrier.co.uk> (Nic James Ferrier's message of "Wed\, 20 Jun 2007 21\:10\:01 +0100")

Nic James Ferrier <nferrier@tapsellferrier.co.uk> writes:

> Richard Stallman <rms@gnu.org> writes:
>
>> I am against structured data formats for an Emacs buffer because there
>> is no way to reconcile that cleanly with the Emacs Lisp model of a
>> buffer as a string of text.  I thought about this thoroughly 15 years
>> ago.
>
> I don't *think* I'm talking about a data format in an emacs buffer.
>
> I'm talking about using properties to mark the syntax of pieces of
> text (in an ordinary buffer) as they are described in a word processor
> schema instance (a document).
>
>
> I think I'm just going to have to knock up an example and see whether
> it's viable.

Ok. I looked into it a bit more.

I don't think I'm talking about something that breaks the primacy of
the buffer. In fact, what I'm talking about has practically already
been done.

I am talking about writing a mode that works primarily on text
properties specified via what most word processors call style. Emacs
has a term for this as well: the category property.

  `category'
     If a character has a `category' property, we call it the
     "category" of the character.  It should be a symbol.  The
     properties of the symbol serve as defaults for the properties of
     the character.

That's really all I'm talking about.

Importing an OpenDoc (or in principle a Word document) into Emacs in a
way that would ensure that you could save it back to something not too
dissimilar would mean:

- read the opendoc XML

- convert all the styles to elisp symbols;

  some of these styles ("list-item", "p", etc...) would have well understood
  display; for example a heading needs to be display in bold or
  something. We could map standard Emacs display stuff onto the
  category symbols.

- read in the document content inserting just the text into the
  buffer

- propertize each piece of text, as you insert, with the name of the
  appropriate category; eg: if you have the following XML:

    <text:p text:style-name="Standard">Designed a REST binding for the
            SAML specification for single sign on web applications.</text:p>

  then that would be converted into the following text buffer content:

    Designed a REST binding for the SAML specification for single sign
    on web applications.

  and the text would have a property assigned:

    category Standard

  so as to record the origin structure we might also add the following
  property:

    element p

  or:

    element text:p

- let the user edit the text, editing would have to include the
  ability to add, remove or change the category property from/to text.

  cut and paste is not a problem. the text carries with it the
  properties it was assigned. That's fine. That's all word processor
  users expect.


This doesn't deal with more complex structure (say, where you have a
paragraph embedded in a list item) but I think that is possible quite
naturally as well.

I hope this answers some concerns. I think it shows that Emacs _could_
be a viable word processor for modern wp formats (and RTF as well).

But if people are still doubtfull I'll have to go away and do it (in
the 10seconds of free time I have every week).

-- 
Nic Ferrier
http://www.tapsellferrier.co.uk   

  reply	other threads:[~2007-06-21  0:05 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <871wgi9jzb.fsf@jidanni.org>
     [not found] ` <87odjlwpu1.fsf@jurta.org>
     [not found]   ` <E1HyNsO-000697-UX@fencepost.gnu.org>
     [not found]     ` <87ir9r1m99.fsf@jurta.org>
     [not found]       ` <E1Hys3j-0004Ml-Vp@fencepost.gnu.org>
     [not found]         ` <87myz2i9tj.fsf@jurta.org>
     [not found]           ` <E1HzHMV-0002cZ-DJ@fencepost.gnu.org>
     [not found]             ` <87r6ocx0tk.fsf_-_@jurta.org>
     [not found]               ` <E1HzdLq-0006ns-K7@fencepost.gnu.org>
2007-06-16 19:56                 ` Saving markup formats Reiner Steib
2007-06-17 18:54                   ` Juri Linkov
2007-06-17 21:08                     ` Nic James Ferrier
2007-06-17 21:18                       ` Lennart Borgman (gmail)
2007-06-17 21:57                         ` Juri Linkov
2007-06-17 22:13                           ` Lennart Borgman (gmail)
2007-06-17 22:27                           ` Nic James Ferrier
2007-06-17 22:37                             ` Lennart Borgman (gmail)
2007-06-17 22:47                               ` Nic James Ferrier
2007-06-17 23:02                                 ` Lennart Borgman (gmail)
2007-06-17 23:13                                   ` Nic James Ferrier
2007-06-17 23:46                                     ` Lennart Borgman (gmail)
2007-06-18  8:03                                       ` Nic James Ferrier
2007-06-18  8:26                                         ` Lennart Borgman (gmail)
2007-06-18  8:44                                           ` Nic James Ferrier
2007-06-18  9:25                                         ` Dave Pawson
2007-06-18 21:25                                         ` Juri Linkov
2007-06-18 22:13                                           ` Nic James Ferrier
2007-06-19  7:18                                             ` Dave Pawson
2007-06-19  7:41                                               ` Nic James Ferrier
2007-06-17 23:08                                 ` Jason Rumney
2007-06-18  0:30                             ` XML editing wishlist (was: Saving markup formats) Drew Adams
2007-06-18  8:10                               ` XML editing wishlist Lennart Borgman (gmail)
2007-06-18 13:51                                 ` Drew Adams
2007-06-18 14:39                                   ` Lennart Borgman (gmail)
2007-06-19 23:57                               ` Lennart Borgman (gmail)
2007-06-20 20:49                                 ` Vagn Johansen
2007-06-17 21:55                       ` Saving markup formats Juri Linkov
2007-06-18 21:31                     ` Richard Stallman
2007-06-18  0:05                   ` Oliver Scholz
2007-06-18 21:19                     ` Juri Linkov
2007-06-19  7:43                       ` Oliver Scholz
2007-06-19 13:38                         ` Drew Adams
2007-06-19 13:59                         ` Stefan Monnier
2007-06-19 22:25                         ` Richard Stallman
2007-06-19 23:40                           ` Nic James Ferrier
2007-06-20  0:10                             ` Lennart Borgman (gmail)
2007-06-20  0:22                               ` Nic James Ferrier
2007-06-20  0:38                                 ` Lennart Borgman (gmail)
2007-06-20  1:02                                   ` Nic James Ferrier
2007-06-20  2:19                                     ` Jeremy Maitin-Shepard
2007-06-20  8:51                                     ` David House
2007-06-20 10:16                                       ` Nic James Ferrier
2007-06-20 10:46                                         ` David House
2007-06-20 10:56                                           ` Nic James Ferrier
2007-06-20  9:45                                     ` Mathias Dahl
2007-06-20 10:19                                       ` Nic James Ferrier
2007-06-20 11:20                                         ` Mathias Dahl
2007-06-20 11:49                                           ` Nic James Ferrier
2007-06-20  0:08                           ` Oliver Scholz
2007-06-20  5:37                             ` David Kastrup
2007-06-20 10:05                               ` Oliver Scholz
2007-06-20 10:23                                 ` Nic James Ferrier
2007-06-20 11:12                                   ` Oliver Scholz
2007-06-20 11:20                                     ` Nic James Ferrier
2007-06-20 12:36                                       ` Oliver Scholz
2007-06-20 17:36                                     ` Richard Stallman
2007-06-20 20:10                                       ` Nic James Ferrier
2007-06-21  0:05                                         ` Nic James Ferrier [this message]
2007-06-21  3:59                                           ` Davis Herring
2007-06-21  7:56                                             ` Nic James Ferrier
2007-06-21 10:07                                               ` Thien-Thi Nguyen
2007-06-21 10:31                                                 ` Nic James Ferrier
2007-06-21 10:52                                                   ` Kim F. Storm
2007-06-21 12:50                                                   ` Thien-Thi Nguyen
2007-06-21 13:05                                               ` Davis Herring
2007-06-21 13:23                                                 ` Nic James Ferrier
2007-06-22  1:51                                                 ` Richard Stallman
2007-06-21 17:32                                         ` Richard Stallman

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

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

  git send-email \
    --in-reply-to=87r6o6uq70.fsf@kanga.tapsellferrier.co.uk \
    --to=nferrier@tapsellferrier.co.uk \
    --cc=alkibiades@gmx.de \
    --cc=emacs-devel@gnu.org \
    --cc=rms@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.