What if we only standardize on the
UUID://...// syntax, allowing authors to embed it anywhere in a file? The Treaty could recommend that HTML authors put it in a
<meta property=ifiction:ifid> tag like this:
<meta property="ifiction:ifid" content="UUID://448E73DF-2D2F-47E7-A494-A46B40D4CFB3//">
The Babel tool could just search for the
UUID://...// syntax in HTML files, allowing the
UUID://...// to appear anywhere, including in a comment.
This would have the benefit of getting us out of the business of parsing HTML by regex! (Except for
<tw-storydata>, but that’s a particularly trivial case to parse, and we have working code already.)
(Also, your draft version of the Treaty proposes that the
UUID://...// syntax would be valid for HTML games, but upthread, you were musing that perhaps it would/should be supported for all story files. If so, do we wanna amend the Treaty to say that?)
I don’t think that
xmlns is right in this case.
xmlns was the XHTML way to add new tags and attributes to XHTML, and it might make sense to use it if we were asking people to use a colon-prefixed custom tag (like
<ifiction:ifid>) or a custom attribute (
<meta ifiction:ifid="xxxx">), but
xmlns is irrelevant in our case, because the
<meta> tag is already intended to support custom metadata in its attribute’s values, like this:
<meta name="whatever you like" content="custom value">
Now, the subtlety here is that there are two competing ways to put custom metadata in
<meta> tags. The WHATWG HTML standard recommends that you just make up a custom
name attribute, like
<meta name="ifiction.ifid">, but W3C recommends RDFa, in which you use a
property attribute instead of a
name attribute, with a colon-prefixed value, like
<meta property="ifiction:ifid">. RDFa then adds a
prefix attribute that associates the
ifiction: prefix with an URL.
prefix attribute is philosophically similar to
xmlns, but since
prefix is namespacing the value of an attribute,
xmlns doesn’t actually apply.
(Note that WHATWG, the team who maintains the HTML standard, has been feuding with W3C for at least 10 years; the teams aren’t talking to each other, and even contradict one another. The RDFa
prefix attributes (as well as
typeof) appear in a W3C standard https://www.w3.org/TR/rdfa-lite/ but none of the RDFa attributes are even documented in the WHATWG HTML standard or MDN. https://html.spec.whatwg.org/multipage/ Also, RDFa is intended to apply to any element in the file, kinda like microdata, but HTML already has microdata attributes
When I wrote my initial proposal, I picked RDFa because that’s what Facebook used for their Open Graph tags https://ogp.me/
<html prefix="og: https://ogp.me/ns#">
<title>The Rock (1996)</title>
<meta property="og:title" content="The Rock" />
It seemed easy and lightweight to me, especially since the
prefix attribute is optional.
Regardless, I claim that the
prefix should use the
https:// version of the URL, https://babel.ifarchive.org/protocol/iFiction/ and not the
http:// version http://babel.ifarchive.org/protocol/iFiction/.
(Many major historical
xmlns values used
xmlns="http://www.w3.org/1999/xhtml", but I claim that’s because they were defined in the 20th century. In hindsight, they should have used
https:// even then.)