Subject: [xsl] Re: XSLT-driven syntax highlighting for XPath 2.0, XSLT 2.0 and XSD 1.1 From: Philip Fearon <pgfearo@xxxxxxxxxxxxxx> Date: Fri, 30 Nov 2012 10:31:12 +0000 |
Excellent, it would be good to see this. A minor change would be required to identify partial code examples by something other than the namespace where this is omitted from examples for brevity sake - currently, if the XML parse to extract the namespace fails, the input is assumed to be plain-text XPath. The 'xsl' prefix used for the XSLT namespace would also need to be supplied somehow. Phil On Fri, Nov 30, 2012 at 9:39 AM, Philip Fearon <pgfearo@xxxxxxxxxxxxxx> wrote: > I frequently need to publish documentation in HTML form that has code samples > which include XPath 2.0 expressions, either standalone or embedded in XSLT 2.0. > But has anyone else noticed that there aren't many syntax highlighters > for standalone > or XML-embedded XPath on the web? > > To improve this choice, I've developed an XSLT 2.0 stylesheet that's a > syntax highlighter > specially for XPath 2.0, XSLT 2.0, XSD 1.1 (the assert element) and > also suitable for > generic XML. The input to the stylesheet (specfied in an XSL > parameter) is either XML > or plain-text, the output is an HTML document and a CSS file. > > I'm sharing this in the hope that others may also find it useful. Note > that this is not a > 'pretty-print' formatter, it is assumed that whitespace formatting is > in-place and this is > all preserved in the output (including inter/intra-attribute whitespace etc.). > > One main concern with embedded languages (like XPath within XSLT) is > not to overwhelm > the reader with highlighted code colors. To alleviate this I've used > the Solarized[1] color > theme which has 8 highlight colors (+ 8 base colors) of relatively low > contrast. Cooler > colors are used for XML-based syntax and warmer colors for the XPath. > There's some > crossover though: for example, to show that an xsl:function 'name' > attribute is referenced > from XPath, a warmer color is used. > > Features List: > -------------- > - Open source - maintained on GitHub > - Processes plain-text or XML files > - Identifies XML coloring scheme from the root namespace (if XML) > - Just 1300 or so lines of XSLT in one file - no dependencies > - Standard XSLT 2.0. No extensions required (developed/tested on > Saxon-HE and Saxon-CE) > - Uses 'Solarized' color theme > - Light or dark color themes > - Generates the required CSS file also - depending on theme specified > > - XPath 2.0 Highlighting: > - Supports XPath Comments > - All whitespace formatting preserved > - No dependency on reserved keywords > - Standalone files supported - or embedded in XML > - Designed to be extensible to support XPath 3.0 > - XML Highlighting > - Built-in XML parser (coded in XSLT) keeps all text, as-is > - CDATA preserved intact and highlighted > - XSLT 2.0 Highlighting > - Scheme colors help separate instructions from expressions > - Literal Result Elements have different coloring > - AVTs or native XPath attributes supported > - All whitespace formatting preserved > - XSD 1.1 Highlighting > - Element and Attribute definition elements highlighted > - XPath coloring for *test* attribute in *assert* element > > Links: > > Sample screenshot of XSLT 2.0 using dark color theme: > > http://qutoric.com/xslt/xmlspectrum/images/xsl-dark.PNG > > The stylesheet 'xmlspectrum.xsl' is on the GitHub project site along > with samples etc. at: > > https://github.com/pgfearo/xmlspectrum > > Acknowledgements: > > [1 Solarized] http://ethanschoonover.com/solarized > > As ever, any feedback on color themes, missing features, issues etc > would be greatly appreciated. Details on other XSLT stylesheets that > do the same thing that would also > be useful to know. > > Many thanks, > > Phil Fearon > http://qutoric.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT-driven syntax highli, Michael Kay | Thread | Re: [xsl] Re: XSLT-driven syntax hi, Dimitre Novatchev |
Re: [xsl] XSLT-driven syntax highli, Michael Kay | Date | Re: [xsl] Re: XSLT-driven syntax hi, Dimitre Novatchev |
Month |