- From: Greg Whitworth <gkwinspired@gmail.com>
- Date: Sat, 18 May 2013 07:55:45 -0800
- To: Julee Burdekin <jburdeki@adobe.com>
- Cc: Lea Verou <lea@w3.org>, "public-webplatform@w3.org" <public-webplatform@w3.org>, Doug Schepers <schepers@w3.org>
- Message-ID: <CAMWDHBob9+wbUpMersoVm6FOa=eytVBDhBthrK=zQSxn=v+ifw@mail.gmail.com>
I love, love, love the context linking of the properties back to WPD! Very cool idea! I agree that these are the type of offerings that will keep people driving back to WPD. Greg On Sat, May 18, 2013 at 7:49 AM, Julee Burdekin <jburdeki@adobe.com> wrote: > Even cooler! Thanks, Lea! J > > > Sent from my "Smartphone" -- go figure... > > > ----- Reply message ----- > From: "Lea Verou" <lea@w3.org> > To: "Julee Burdekin" <jburdeki@adobe.com> > Cc: "public-webplatform@w3.org" <public-webplatform@w3.org>, "Doug > Schepers" <schepers@w3.org> > Subject: Prism WPD plugin ‹ Telling HTML and XML (SVG, MathML etc) apart > Date: Sat, May 18, 2013 6:46 AM > > > > Hi Julee, > > See inline answers. > > On May 13, 2013, at 21:50, Julee Burdekin <jburdeki@adobe.com> wrote: > > Lea: > > This is sooo cool. But I'm not sure what the offering is and what the > interface is. Do I have this right? prismjs is syntax highlighting with a > keyword linker plugin? > > Exactly. > > Will the users of code.webplatform.org have do anything or is the > keyword linker plugin something you plug in to code.webplatform.org? > > We will plug it into code.webplatform.org as well, but the main idea is > something much bigger. Something that won't just be used in WPD Code or WPD > code examples, but also in other websites that use Prism (and there are > many, even big ones like Smashing Magazine or A List Apart) to promote WPD > by adding value for their users. Win-win :) > > Cheers, > Lea > > > Thanks! > > Julee > ---------------------------- > julee@adobe.com > @adobejulee > > From: Lea Verou <lea@w3.org> > Date: Saturday, May 11, 2013 3:24 PM > To: "public-webplatform@w3.org" <public-webplatform@w3.org> > Cc: Doug Schepers <schepers@w3.org> > Subject: Re: Prism WPD plugin — Telling HTML and XML (SVG, MathML etc) > apart > Resent-From: <public-webplatform@w3.org> > Resent-Date: Saturday, May 11, 2013 3:24 PM > > Here’s a first alpha version: http://prismjs.com/plugins/wpd/ > > It’s still unpublished in the plugin directory, as I wanted to get some > feedback first. The tokens should be properly linked. Their styling is too > obvious at this point, to spot potential mistakes. Before publishing, I > will make the underline on hover only. > > Things that are linked: > > CSS > - properties > - atrules > - pseudo-classes > - pseudo-elements > > Markup > - tags > - attributes > > What else should I add? Please note that it should be easy to > programmatically detect, e.g. CSS values like <length> would require lots > of special casing. > > Distinguishing between markup types proved out to be even harder than > the solution I outlined in the previous message: Several (not few) elements > did not correspond to specific interfaces in some browser, so I had to > cache them in the script. Also, no browser seems to provide interface names > for MathML elements, so I hacked around it by caching the HTML+SVG elements > that start with "m" and having all others considered MathML. > > Any feedback is very welcome. > > Lea Verou > W3C developer relations > http://w3.org/people/all#lea ? http://lea.verou.me ? @leaverou > > > > > > > On May 10, 2013, at 22:12, Lea Verou <lea@w3.org> wrote: > > The problem > ============= > As you might know, I’m writing a Prism [1] plugin that converts some > tokens [3] into links to WPD documentation, both for our use and for > developers in general, to promote WPD. A conundrum I ran into was how to do > that for HTML and XML languages such as SVG and MathML. Prism currently > uses the same language definition for both HTML and XML variants > ("markup"), so it was hard for the plugin to decide where to link tokens > found in "markup" contexts. > > Solution #1 > =========== > We chatted about this with Doug last week and we decided on using the WPD > API to fetch a list of tags for HTML, SVG and MathML, so that Prism could > use those to decide where those tokens [3] would link to. However, when I > investigated this idea (thanks fr0zenice for helping with the API!), I > encountered a number of issues. Since plugins hook into Prism’s main code, > there is no way for a plugin to delay Prism execution (e.g. until an async > request finishes). Therefore, the API requests would need to happen > synchronously. This is a bad practice and could cause significant delays, > making the plugin less appealing to authors. So, this solution is not > feasible after all. > > Note that we could always make an extended version of the plugin in the > future, which makes API requests when somebody hovers over these tokens > showing a tooltip or something, which would fetch the API info just-in-time > instead of when the page loads. > > Solution #2 > =========== > The idea I’m probably going with (unless somebody has something better to > suggest, which is why I'm writing this email) is to defer element > recognition to the browser. Every known element (with very few exceptions, > which could be special cased) corresponds to a specific interface, e.g. > HTMLInputElement or SVGCircleElement. There is a way to get this interface > name through JavaScript [2]. Unknown elements on the other hand resolve to > different interface names, such as HTMLUnknownElement or HTMLElement or > Element, depending on the browser. I’ve verified this is true for both > Trident (IE10), WebKit and Gecko. > The main issue I see with this solution is that elements that are not > supported by the current browser would not be linked. That's unfortunate, > but I don't think it's a blocker. > > Hope it all makes sense, I tried to describe it in as much detail as > possible. Any feedback and/or advice is welcome! > > [1]: http://prismjs.com > [2]: e.g. try document.createElementNS('http://www.w3.org/2000/svg', > 'circle').toString() > [3] tokens in this context are the parts of the code that get highlighted, > e.g. "tag", "attribute", "property" etc. > > Lea Verou > W3C developer relations > http://w3.org/people/all#lea ? http://lea.verou.me ? @leaverou > > > > > > > > > -- Greg Whitworth
Received on Saturday, 18 May 2013 15:56:15 UTC