- From: Silvia Pfeiffer <silviapfeiffer1@gmail.com>
- Date: Fri, 20 Apr 2012 14:53:30 +1000
- To: Glenn Maynard <glenn@zewt.org>
- Cc: David Singer <singer@apple.com>, public-texttracks@w3.org
On Fri, Apr 20, 2012 at 2:09 PM, Glenn Maynard <glenn@zewt.org> wrote:
> On Thu, Apr 19, 2012 at 8:51 PM, Silvia Pfeiffer <silviapfeiffer1@gmail.com>
> wrote:
>>
>> The difference between JSON and the RFC822 *header* specification is
>> that JSON requires quotation marks around strings and does not allow
>> newlines in values.
>
>
> There's a good bit more than that. JSON is a much simpler specification,
> despite having a broader vocabulary (though RFC-822-style headers could
> certainly be specified much more simply than RFC-822 itself does it, of
> course).
>
>> Thus, IMO, RFC822 headers are actually an improvement over JSON.
>> Similarly to JSON, everyone has a RFC822 header parser available. All
>> values are inherently strings, but converted to their proper type by
>> interpretation of the name.
>
>
> (I'm not at all, wedded to JSON and I'm not even convinced it's the right
> idea myself, but I think it's worthwhile to play out the idea.)
>
> JSON parsers are far more ubiquitous than RFC-822 parsers. You don't have
> one in JavaScript, but you really do always have a JSON parser. All you'd
> need to do is read a line, split on the colon, and feed the right-hand side
> to the JSON parser.
>
> Existing RFC-822 parsers may implement unwanted features, like RFC-2047.
> Python's "email" module supports things like "message/delivery-status",
> which may expose behavior not wanted by WebVTT. You'll never want to use a
> stock parser; you'll need to implement your own, and WebVTT will want to
> specify its own minimal subset of RFC-822 (it definitely couldn't just
> reference RFC-822 and say "do what that says").
Yes, I think you're right there. I think we might end up with
basically the JSON spec, but an addition of how to deal with
multi-line.
> JSON doesn't have this
> problem: you just read a line, split on the colon and feed the right-hand
> side to a standard JSON parser. Standard parsers and the existing specs are
> all that's needed.
>
> JSON allows editors to edit and import strings directly, with no changes to
> the data. The text you import is the text you save; everything (at least,
> all valid Unicode text) round-trips. With RFC-822, you need to insert
> leading whitespace before continuation lines, so it has trouble maintaining
> this property.
>
> (Still, it's ugly that embedding a stylesheet would end up looking messy in
> a plain text editor. You don't really want to flatten a whole stylesheet
> into one line. We should be able to find an approach with none of the
> negatives: clean in plain text, round-trips all text, while remaining
> simple...)
Yeah, I think ultimately we do need a multi-line parsing capability.
It seems that there are work-arounds for multi-line JSON, see
http://stackoverflow.com/questions/2392766/multiline-strings-in-json
and
http://stackoverflow.com/questions/2033729/multi-line-elements-in-json .
However, I still don't like the extra quotes that are required around
everything. How about YAML associative arrays then? We could also not
accept the hierarchical bits. It has both a specification for newline
preserving and newline folding.
For example:
Kind: captions
Initial-Timestamp: 1000
Style: |
p {
font-size: 100px;
}
.class {
text-color: red;
}
It also has some other niceties of how to specify binary data etc. See
http://en.wikipedia.org/wiki/YAML .
Regards,
Silvia.
Received on Friday, 20 April 2012 04:54:20 UTC