WebPageOutputOptions options = new WebPageOutputOptions(); options.setMathJax(false); options.setSerializationMethod(SerializationMethod.XHTML); options.setIncludingXMLDeclaration(true); options.setContentType("application/xhtml+xml"); options.setNoCharsetInContentTypeHeader(true); options.setXHTMLPrefix(""); options.setMathMLPrefix(""); options.setDoctypePublic(W3CConstants.XHTML_11_MATHML_20_PUBLIC_IDENTIFIER); options.setDoctypeSystem(W3CConstants.XHTML_11_MATHML_20_SYSTEM_IDENTIFIER); return options;
/** * Computes the appropriate "Content-Type" string to be specified as an HTTP Header. (Note * that MathPlayer only sniffs a limited number of Content Types.) */ private String computeContentTypeHeader() { String result; if (options.getWebPageType()==WebPageType.CROSS_BROWSER_XHTML) { /* MathPlayer can only handle application/xhtml+xml without a "charset" clause */ result = options.getContentType(); } else { result = options.getContentType() + "; charset=" + options.getEncoding(); } return result; }
/** * Computes the appropriate "Content-Type" string to be specified * as an the XHTML <tt>meta</tt> element. * * @see #computeContentTypeHeader() */ private String computeMetaContentType() { return options.getContentType() + "; charset=" + options.getEncoding(); } }
public static final WebPageOutputOptions createUniversalStylesheetOptions(String clientStylesheetUrl, String rendererPreference) { WebPageOutputOptions options = new WebPageOutputOptions(); options.setSerializationMethod(SerializationMethod.XML); options.setIncludingXMLDeclaration(true); options.setMathPrefRenderer(rendererPreference); options.setClientSideXSLTStylesheetURLs(clientStylesheetUrl); return options; }
snuggleOptions = requestedWebOutput ? WebPageOutputOptionsTemplates.createWebPageOptions(webPageType) : new WebPageOutputOptions(); snuggleOptions.setIndenting(false); snuggleOptions.setIndenting(true); snuggleOptions.setIndent(indentAmount); snuggleOptions.setErrorOutputOptions(ErrorOutputOptions.valueOf(value)); snuggleOptions.setInliningCSS(parseBoolean(name, value)); snuggleOptions.setXHTMLPrefix(value); snuggleOptions.setPrefixingXHTML(true); snuggleOptions.setPrefixingXHTML(false); snuggleOptions.setMathMLPrefix(value); snuggleOptions.setPrefixingMathML(true); snuggleOptions.setPrefixingMathML(false); snuggleOptions.setSnuggleXMLPrefix(value); snuggleOptions.setPrefixingSnuggleXML(true); snuggleOptions.setPrefixingSnuggleXML(false); snuggleOptions.setAddingMathSourceAnnotations(parseBoolean(name, value)); snuggleOptions.setMathVariantMapping(parseBoolean(name, value));
snuggleOptions = requestedWebOutput ? WebPageOutputOptionsTemplates.createWebPageOptions(webPageType) : new WebPageOutputOptions(); String value = nextArg; if ("enc".equals(name)) { snuggleOptions.setEncoding(value); snuggleOptions.setIndenting(parseBoolean(name, value)); snuggleOptions.setIncludingXMLDeclaration(parseBoolean(name, value)); snuggleOptions.setDoctypePublic(value); snuggleOptions.setDoctypeSystem(value); snuggleOptions.setContentType(value); snuggleOptions.setLang(value); snuggleOptions.setTitle(value); snuggleOptions.setAddingTitleHeading(parseBoolean(name, value)); snuggleOptions.setIncludingStyleElement(parseBoolean(name, value)); snuggleOptions.addCSSStylesheetURLs(value); snuggleOptions.addClientSideXSLTStylesheetURLs(value);
String[] clientXSLTURLs = options.getClientSideXSLTStylesheetURLs(); if (clientXSLTURLs!=null) { for (String url : clientXSLTURLs) { String title = options.getTitle(); if (title!=null && options.isAddingTitleHeading()) { Element titleHeader = document.createElementNS(W3CConstants.XHTML_NAMESPACE, "h1"); titleHeader.appendChild(document.createTextNode(title)); WebPageType pageType = options.getWebPageType(); if (pageType==WebPageType.MATHPLAYER_HTML) { "namespace=\"" + options.getMathMLPrefix() + "\" implementation=\"#MathPlayer\" ?")); titleElement.appendChild(document.createTextNode(options.getTitle())); head.appendChild(titleElement); String[] cssStylesheetURLs = options.getCSSStylesheetURLs(); if (cssStylesheetURLs!=null) { Element link; if (options.isIncludingStyleElement()) { Element style = document.createElementNS(W3CConstants.XHTML_NAMESPACE, "style"); style.setAttribute("type", "text/css"); String lang = options.getLang(); if (lang!=null) { if (options.getSerializationMethod()!=SerializationMethod.HTML) {
String[] clientXSLTURLs = options.getClientSideXSLTStylesheetURLs(); if (clientXSLTURLs!=null) { for (String url : clientXSLTURLs) { String title = options.getTitle(); if (title!=null && options.isAddingTitleHeading()) { Element titleHeader = createXHTMLElement(document, "h1"); titleHeader.appendChild(document.createTextNode(title)); if (options.isAddingMathPlayerImport()) { "namespace=\"" + options.getMathMLPrefix() + "\" implementation=\"#MathPlayer\" ?")); if (options.isHtml5()) { meta.setAttribute("charset", options.getEncoding()); String[] cssStylesheetURLs = options.getCSSStylesheetURLs(); if (cssStylesheetURLs!=null) { Element link; if (options.isIncludingStyleElement() && !options.isInliningCSS()) { Element style = createXHTMLElement(document, "style"); style.setAttribute("type", "text/css"); if (options.isMathJax()) { String mathJaxUrl = options.getCustomMathJaxUrl(); if (mathJaxUrl==null) {
WebPageOutputOptions options = new WebPageOutputOptions(); options.setWebPageType(webPageType); switch (webPageType) { case MOZILLA: options.setSerializationMethod(SerializationMethod.XHTML); options.setContentType("application/xhtml+xml"); break; options.setSerializationMethod(SerializationMethod.XHTML); options.setIncludingXMLDeclaration(true); options.setDoctypePublic(W3CConstants.XHTML_11_MATHML_20_PUBLIC_IDENTIFIER); options.setDoctypeSystem(W3CConstants.XHTML_11_MATHML_20_SYSTEM_IDENTIFIER); break; options.setSerializationMethod(SerializationMethod.HTML); options.setContentType("text/html"); options.setPrefixingMathML(true); break; options.setSerializationMethod(SerializationMethod.HTML); options.setContentType("text/html"); break; options.setSerializationMethod(SerializationMethod.XML); options.setIncludingXMLDeclaration(true); break; options.setSerializationMethod(SerializationMethod.XML); break;
public static WebPageOutputOptions createWebPageOptions(WebPageType webPageType) { ConstraintUtilities.ensureNotNull(webPageType, "webPageType"); WebPageOutputOptions options = new WebPageOutputOptions(); switch (webPageType) { case MOZILLA: options.setSerializationMethod(SerializationMethod.XHTML); options.setContentType("application/xhtml+xml"); break; options.setSerializationMethod(SerializationMethod.XHTML); options.setIncludingXMLDeclaration(true); options.setDoctypePublic(W3CConstants.XHTML_11_MATHML_20_PUBLIC_IDENTIFIER); options.setDoctypeSystem(W3CConstants.XHTML_11_MATHML_20_SYSTEM_IDENTIFIER); options.setNoCharsetInContentTypeHeader(true); break; options.setSerializationMethod(SerializationMethod.HTML); options.setContentType("text/html"); options.setPrefixingMathML(true); break; options.setSerializationMethod(SerializationMethod.HTML); options.setContentType("text/html"); break; options.setSerializationMethod(SerializationMethod.XML); options.setIncludingXMLDeclaration(true); break;
/** * Creates {@link WebPageOutputOptions} suitable for creating an XHTML + MathML web page, * using MathJax for cross-browser rendering of the MathML. * <p> * This is one of the most effective web page outputs. * * @see #createHTML5MathJaxOptions() */ public static final WebPageOutputOptions createXHTMLMathJaxOptions() { WebPageOutputOptions options = new WebPageOutputOptions(); options.setSerializationMethod(SerializationMethod.XHTML); options.setIncludingXMLDeclaration(false); options.setMathJax(true); return options; }
/** * Creates {@link WebPageOutputOptions} suitable for deploying solely in Internet * Explorer having the MathPlayer plug-in installed. * <p> * This is a niche output kept around for legacy purposes. You should look at some of the * newer HTML5 + MathJax-related options for better compatibility and easier deployment. * * <h3>Technical notes</h3> * * Intended to be served as <tt>text/html</tt>, containing prefixed MathML islands. * <p> * This only works on IE clients with the MathPlayer plug-in preinstalled, * but is a good option if that's your target audience. * <p> * This will display wrongly on IE6/7 if MathPlayer is not installed. */ public static final WebPageOutputOptions createIEMathPlayerSpecificOptions() { WebPageOutputOptions options = new WebPageOutputOptions(); options.setSerializationMethod(SerializationMethod.HTML); options.setContentType("text/html"); options.setPrefixingMathML(true); options.setAddingMathPlayerImport(true); return options; }
/** * Creates {@link WebPageOutputOptions} used to serve up an HTML 5 page, with MathML and any * other XML islands "adopted" into HTML 4 by having their namespace details removed. * <p> * These islands would normally need further processing before * hitting a browser, so this output is probably not useful on its own. * * <h3>Technical notes</h3> * * The JEuclid process hooks in here. */ public static final WebPageOutputOptions createHTML5Options() { WebPageOutputOptions options = new WebPageOutputOptions(); options.setSerializationMethod(SerializationMethod.STRICTLY_HTML); options.setErrorOutputOptions(ErrorOutputOptions.XHTML); options.setHtml5(true); return options; } }
/** * Computes the appropriate "Content-Type" string to be specified as an HTTP Header. (Note * that MathPlayer only sniffs a limited number of Content Types.) */ private String computeContentTypeHeader() { String result; if (options.isNoCharsetInContentTypeHeader()) { result = options.getContentType(); } else { result = options.getContentType() + "; charset=" + options.getEncoding(); } return result; }
/** * Creates {@link WebPageOutputOptions} used to serve up an HTML 4 page, possibly including * MathML and other XML islands. These islands would normally need further processing before * hitting a browser, so this output is probably not useful on its own. * * <h3>Technical notes</h3> * * The JEuclid process hooks in here. */ public static final WebPageOutputOptions createHTML4Options() { WebPageOutputOptions options = new WebPageOutputOptions(); options.setSerializationMethod(SerializationMethod.HTML); return options; }
if (options.getSerializationMethod()==SerializationMethod.HTML) { serializer.setOutputProperty(OutputKeys.MEDIA_TYPE, options.getContentType()); if (supportsXSLT20 && options.getSerializationMethod()!=SerializationMethod.XML) {
serializer.setOutputProperty(OutputKeys.MEDIA_TYPE, options.getContentType()); Properties outputProperties = serializer.getOutputProperties(); if (options.isHtml5()) { outputProperties.remove(OutputKeys.DOCTYPE_SYSTEM); if (options.getSerializationMethod()!=SerializationMethod.XML) {
if (options.isHtml5()) { OutputStreamWriter doctypeWriter = new OutputStreamWriter(outputStream, options.getEncoding()); doctypeWriter.write(W3CConstants.HTML5_DOCTYPE_HEADER); doctypeWriter.flush();
snuggleOptions = requestedWebOutput ? WebPageOutputOptionsTemplates.createWebPageOptions(webPageType) : new WebPageOutputOptions(); String value = nextArg; if ("enc".equals(name)) { snuggleOptions.setEncoding(value); snuggleOptions.setIndenting(parseBoolean(name, value)); snuggleOptions.setIncludingXMLDeclaration(parseBoolean(name, value)); snuggleOptions.setDoctypePublic(value); snuggleOptions.setDoctypeSystem(value); snuggleOptions.setContentType(value); snuggleOptions.setLang(value); snuggleOptions.setTitle(value); snuggleOptions.setAddingTitleHeading(parseBoolean(name, value)); snuggleOptions.setIncludingStyleElement(parseBoolean(name, value)); snuggleOptions.addCSSStylesheetURLs(value); snuggleOptions.addClientSideXSLTStylesheetURLs(value);
String[] clientXSLTURLs = options.getClientSideXSLTStylesheetURLs(); if (clientXSLTURLs!=null) { for (String url : clientXSLTURLs) { String title = options.getTitle(); if (title!=null && options.isAddingTitleHeading()) { Element titleHeader = document.createElementNS(W3CConstants.XHTML_NAMESPACE, "h1"); titleHeader.appendChild(document.createTextNode(title)); WebPageType pageType = options.getWebPageType(); if (pageType==WebPageType.MATHPLAYER_HTML) { "namespace=\"" + options.getMathMLPrefix() + "\" implementation=\"#MathPlayer\" ?")); titleElement.appendChild(document.createTextNode(options.getTitle())); head.appendChild(titleElement); String[] cssStylesheetURLs = options.getCSSStylesheetURLs(); if (cssStylesheetURLs!=null) { Element link; if (options.isIncludingStyleElement()) { Element style = document.createElementNS(W3CConstants.XHTML_NAMESPACE, "style"); style.setAttribute("type", "text/css"); String lang = options.getLang(); if (lang!=null) { if (options.getSerializationMethod()!=SerializationMethod.HTML) {