- From: Alex Muir <alex.g.muir@gmail.com>
- Date: Thu, 16 Aug 2012 13:36:12 -0400
- To: Zearin <zearin@gonk.net>
- Cc: David Cramer <david@thingbag.net>, XProc Dev <xproc-dev@w3.org>
- Message-ID: <CAFtPEJYzM2TvEWSkRbBXmpNdcynw=omOs4npOQHRxUkuMq7w8Q@mail.gmail.com>
Well if it's relevant when saving to disk you could create an extension to save output a bit differently appending that statement. I did something similar below but for doing a replace ("&", "&"); before saving. package com.mh.calabash.extensions; import java.net.URI; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import com.xmlcalabash.io.ReadablePipe; import com.xmlcalabash.io.WritablePipe; import com.xmlcalabash.model.RuntimeValue; import com.xmlcalabash.util.TreeWriter; import com.xmlcalabash.library.DefaultStep; import com.xmlcalabash.core.XProcRuntime; import net.sf.saxon.s9api.SaxonApiException; import net.sf.saxon.s9api.XdmNode; import net.sf.saxon.s9api.QName; import com.xmlcalabash.runtime.XAtomicStep; import com.xmlcalabash.core.XProcConstants; import com.xmlcalabash.core.XProcException; public class StoreAsText extends DefaultStep { private static final QName _href = new QName("href"); private ReadablePipe source = null; private WritablePipe result = null; /** * Creates a new instance of Store */ public StoreAsText(XProcRuntime runtime, XAtomicStep step) { super(runtime, step); } public void setInput(String port, ReadablePipe pipe) { source = pipe; } public void setOutput(String port, WritablePipe pipe) { result = pipe; } public void reset() { source.resetReader(); result.resetWriter(); } public void run() throws SaxonApiException { super.run(); if (runtime.getSafeMode()) { throw XProcException.dynamicError(21); } URI href = null; RuntimeValue hrefOpt = getOption(_href); XdmNode doc = source.read(); if (doc == null || source.moreDocuments()) { throw XProcException.dynamicError(6); } if (hrefOpt != null) { href = hrefOpt.getBaseURI().resolve(hrefOpt.getString()); } else { href = doc.getBaseURI(); } fine(hrefOpt.getNode(), "Storing to \"" + href + "\"."); storeXMLAsText(doc, href); TreeWriter tree = new TreeWriter(runtime); tree.startDocument(step.getNode().getBaseURI()); tree.addStartElement(XProcConstants.c_result); tree.startContent(); tree.addText(href.toString()); tree.addEndElement(); tree.endDocument(); result.write(tree.getResult()); } private void storeXMLAsText(XdmNode doc, URI href) throws SaxonApiException { String output = doc.toString(); output = output.replace("&", "&"); File tmpfile = new File(href); try { File path = new File(tmpfile.getParent()); if (!path.isDirectory()) { if (!path.mkdirs()) { throw XProcException.stepError(50); } } BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tmpfile)); bufferedWriter.write(output); bufferedWriter.flush(); bufferedWriter.close(); } catch (IOException ioe) { throw XProcException.stepError(50, ioe); } } } On Thu, Aug 16, 2012 at 12:09 PM, Zearin <zearin@gonk.net> wrote: > On Aug 16, 2012, at 9:14 AM, David Cramer <david@thingbag.net> wrote: > > Hi there, > > How do you generate html files with the html 5 DOCTYPE declaration > > (<!DOCTYPE html>) using XProc/Calabash? > > Good question! +1. > > This is a major issue for me, and a significant factor in why I don’t use > Calabash so much these days. > > > > I tried using <!DOCTYPE html SYSTEM "about:legacy-compat">, but that > > caused problems in some contexts. > > Interesting. Could you elaborate on those contexts? > > > —T > > -- - Alex G. Muir Software Engineering Consultant Linkedin Profile : http://ca.linkedin.com/pub/alex-muir/36/ab7/125
Received on Thursday, 16 August 2012 17:36:39 UTC