[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: -1 on the features draft
- To: Brian Smith <brian@xxxxxxxxxxxxxx>
- Subject: Re: -1 on the features draft
- From: James M Snell <jasnell@xxxxxxxxx>
- Date: Tue, 11 Sep 2007 12:21:31 -0700
- Cc: "'atom-protocol Protocol'" <atom-protocol@xxxxxxx>
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; bh=x47qC197Q8R93Gu0ck2L8vG6ljvOOYhjzKAb0g8oS0o=; b=teZ+QeySz3CV1rHhATUxHN+vBMucwfMfxcZUPOmThNWgP8WEMevfirKRWt5/7CHgz3vK45mlBQNUdcCww/uvzFluwUXq6O6RfldOVr2ymMuQd6VuNktkn/jPZ/rchc3dxhhpqWi3q3QDps1pCURtE1b5rwBp2ohFMvG157mFMAA=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:cc:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; b=MARdz0BkWHScReiiAI4jRrUXIfrppzIaaVU2PJ9HAOcJJwLtJj/IB9HGc+yAJcvrcpvy+uWAL9dBkZIhOS5qL4EQoU7/wPFKS1/CAKgXHJ0eZneeSkqMWBbUieE4jp2rr4D5MhPNoXHn5kKYABKQmOFWtQveS0Vz3N2l3neoFSU=
- In-reply-to: <>
- List-archive: <http://www.imc.org/atom-protocol/mail-archive/>
- List-id: <atom-protocol.imc.org>
- List-unsubscribe: <mailto:atom-protocol-request@imc.org?body=unsubscribe>
- References: <CA346305-6193-4EBF-94D8-6C4D89AA0692@xxxxxxx> <> <46E63CC0.6060802@xxxxxxxxx> <>
- Sender: owner-atom-protocol@xxxxxxxxxxxx
- User-agent: Thunderbird 2.0.0.6 (X11/20070728)
This would make an excellent beginning to an Atompub Blog Impl guide.
I'd encourage you to add this to the Atom wiki somewhere.
- James
Brian Smith wrote:
> James M Snell wrote:
>>> As a result, I think there is no need to have features that
>>> distinguish between plain text and XHTML text; every implementation
>>> should support both.
>> I disagree and I know my users would as well, especially if
>> it means that table they spent so much time putting together
>> with formatting and image includes and a youtube embed, etc
>> suddenly came out with all markup removed.
>
>> You, Tim and Rob have all alluded to this idea that impls
>> "should" be following some minimum set of behaviors.
>> Unfortunately, neither of Atom specs back any of that up.
>
> First, let's talk specifically about using AtomPub for weblog entries
> specifically. Somebody could write a separate RFC or a whole book "Atom
> Weblog Publishing Guide." I suspect it would have something like the
> following in it:
>
> * Drafts: It is unacceptable not to offer the ability to preview an
> entry before publishing it. The only way the client can currently expect
> to provide realistic preview is by submitting a draft. So, this feature
> is basically a requirement.
>
> * Titles: I don't see how this is even an argument. Take any weblog, and
> look at its web page representation. There is a plain-text version of
> the title in the <html:title>. Now, look at it in Google Reader; it is
> plain text there too. If your title doesn't make sense in plain text
> then you are making a mistake as an author. If your client software
> allows somebody to put a Youtube video into the title then you need to
> find a new UI designer. As a result, the server should assume that it
> can strip out as much markup as it wants from the title if it has a good
> reason to do so, without worrying if it is going to turn the title into
> nonsense. But, the more markup it supports, the better. By the
> robustness principle, the server should never reject a title it can
> parse, and everybody can parse XHTML and plain text without question, so
> those types should never be rejected.
>
> * Summaries: The server should be able to tell the client "don't waste
> any effort generating a summary, because I will never use it." But, if
> the client sends a summary anyway, the server should use it. The server
> should definitely never reject an entry for containing a
> client-generated summary. And, the client should never expect the server
> to auto-generate a summary, so if it wants one, it should generate one
> itself. Similarly to titles, the client's UI shouldn't encourage the
> user to insert a 5,000 row table into a summary. Should the server
> accept a 5,000 row table in a summary? Probably not. But the software
> should accept some basic markup like hyperlinks and <em> tags in
> summaries or nobody will want to it.
>
> * Rights: The server should be able to tell the client "don't waste your
> time generating a rights statement, I have my own policy I'm going to
> use instead." But, the server should never require a rights statement.
> Whether or not the server accepts, edits, or rejects a rights statement
> is a legal question, not a technological question. IMO, it would be
> smart for clients to just omit a user interface for per-entry rights
> statements.
>
> * Content: Users will learn the server's markup capabilities from the
> documentation and from previewing. If the user wants to insert a YouTube
> video, a table, or an image, then he is going to find some way to do it,
> even if it means dumping his software for something else. If your
> software doesn't allow as much markup as WordPress allows, then it will
> fail.
>
> No client is going to let the user insert a youtube embed, an image, or
> a table into a weblog title. Weblog authors already know that their
> titles have to be presentable in plain text: That is how they are
> presented in <html:title> tags and in most feed readers. If an entry
> title doesn't make sense as plain text, then that is the author's fault.
> If the client encourages the user to put nonsense into the title, that
> is the software designer's fault.
>
> * ID. The client *has* to generate an ID, but it is likely that the
> server is going to override it. Clients must be coded to handle that. A
> server probably *should* override it to guarantee uniqueness.
>
> * Foreign markup and links: The client should not expect any foreign
> markup to survive the publishing process, because servers are likely to
> strip out foreign markup for privacy reasons. But, I think the spec.
> already says that a server cannot flat-out reject an entry because it
> contains foreign markup. How clients and servers preserve particular
> kinds of foreign markup and links probably needs to be specified on a
> case-by-case basis, is out of scope here.
>
> * Dates: The client should send reasonable dates and the client should
> expect those dates to be overridden by the server. Servers probably need
> to do that for many reasons. If the server provides some way to
> forward-date or back-date entries, then it should indicate that as a
> feature, but a client shouldn't assume that functionality is there
> without the explicit indication.
>
> * Authors and Contributors: The server should probably not reject these
> but it will probably have some policies in place that may cause them to
> be totally overridden. Some hinting would be nice here.
>
> * Support for HTML: Let it be a quality-of-implementation issue. It is
> recommended that servers support receiving HTML everywhere and clients
> should send XHTML unless they think the server supports HTML. If a
> client does not send HTML in an entry then the server should not
> transform it into HTML when sending it back to the client; that is, the
> server should store HTML if and only if it was originally given HTML.
> (Disclaimer: I greatly prefer XHTML over HTML.)
>
> * Slug: A weblog server should support it but may ignore it. A hint
> would be helpful so the client can enable/disable the UI for it, but
> client software should include some heuristics to determine whether
> slugs are supported.
>
> - Brian
>
>
>> I've got no problem with the notion that any impl that
>> supports HTML should also support XHTML (and vice versa) but
>> it's silly to think that text and xhtml support are somehow
>> equivalent.
>>
>> This particular set of features likely could be simplified,
>> but not like this.
>>
>>> However, I think it is unreasonable to require implementations to
>>> parse HTML. I think content producers (clients and servers) should
>>> observe Postel's law and send XHTML; the receiver can always easily
>>> convert it to HTML if needed. If the server accepts HTML at all, it
>>> should support it in all text constructs (likely stripping
>> out markup
>>> different types of markup for titles, summaries, rights,
>> and content).
>>>
>> - James
>>
>>
>
>