HTML6 icon indicating copy to clipboard operation
HTML6 copied to clipboard

Needs client side polyfill

Open OscarGodson opened this issue 13 years ago • 9 comments

OscarGodson avatar Aug 20 '12 06:08 OscarGodson

I've made a little parser in JavaScript. It's not finished yet. http://github.com/m93a/nml-parser

EDIT: Updating to 1.1.0, now it can export DOMDocument.

It's just a parser but it can be used:

  • to make a html6-html5 convertor
  • as a node.js html6 module
  • in a browser extension for html6 compatibility
  • to use NML in ajax, instead of XML
  • to make your disk 20kB smaller
  • and much more...

cshaa avatar Sep 18 '13 11:09 cshaa

Looks really cool. Hope to see more :)

OscarGodson avatar Sep 19 '13 01:09 OscarGodson

But before html6-html5 convertor, we need a CSS parser. And maybe a JS framework.

cshaa avatar Sep 21 '13 20:09 cshaa

Why do we need a CSS parser? CSS works fine with XML. And why a whole framework?

OscarGodson avatar Sep 21 '13 21:09 OscarGodson

OK, we can use xhtml with both html and form namespace prefixes set to http://www.w3.org/1999/xhtml. There is just a problem with splitting media tag to img, video and audio. We have to:

  • rewrite all the CSS selectors (media -> img, video, audio and #foo -> [id=foo])
  • make document.getElementsByTagNameNS('media',"http://www.w3.org/1999/xhtml"); select img, video and audio

Oh and also there's a problem with programmatically creating elements with ns prefix. That's impossible!

This comment was editted 5 times.

cshaa avatar Sep 22 '13 12:09 cshaa

CSS selectors need to be general and work across XML. CSS doesn't have predefined elements you can select for example. You can style those elements fine right now: http://jsbin.com/iCuDEYE/2/edit

The only thing I can think of is adding 1 selector to make html\:foo a little nicer to write. I'm not sure what you mean by your 2nd example of the ID.

The JS thing should just be part of the polyfill.

OscarGodson avatar Sep 22 '13 16:09 OscarGodson

I don't mean creating a new spec - our problem is that all media tags will be replaced by a) img b) audio or c) video tag so your styles won't match any element. I don't see any way to make media tag work without changing DOM. That means that the convertor has to change every html:media to img, video or audio.

And the second problem with css is that #foo doesn't work with xml (in all modern browsers - that means all the browsers but MSIE).

Do you understand?

EDIT: Oops, to fast reading. I thought you said that CSS works across all the XML. My fault, correcting the comment.

cshaa avatar Sep 23 '13 15:09 cshaa

I've just found an alternative way

  1. Leave html:media unchanged
  2. Add a tag like abc:xyz at the end of the body element
  3. Choose the type of media tag (image, video or audio)
  4. Create image, video or audio tag as a child of abc:xyz
  5. Make the video/audio/image tag cover the media using javascript and css absolute position

Pros:

  • no css modifications needed
  • no JS framework needed

Cons:

  • not a valid xHTML
  • abc:xyz can be still detected using JavaScript
  • media's computed styles have to be checked every hunderth of a second (not exactly :D)
  • no animation and transition support

cshaa avatar Sep 23 '13 16:09 cshaa

After a short break (not even a year), I've got a new update! HTML6 Polyfill Beta can be found at m93a/nml-polyfill.

cshaa avatar Sep 18 '14 14:09 cshaa