// Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // Copyright (c) 2008 Novell, Inc. // // Authors: // Andreia Gaita (avidigal@novell.com) // using System; namespace Mono.Mozilla.DOM { internal enum DocumentEncoderFlags: uint { /** * Output only the selection (as opposed to the whole document). */ OutputSelectionOnly = (1 << 0), /** Plaintext output: Convert html to plaintext that looks like the html. * Implies wrap (except inside
), since html wraps. * HTML output: always do prettyprinting, ignoring existing formatting. * (Probably not well tested for HTML output.) */ OutputFormatted = (1 << 1), /** Don't do prettyprinting of HTML. Don't do any wrapping that's not in * the existing HTML source. This option overrides OutputFormatted if both * are set. * @note This option does not affect entity conversion. */ OutputRaw = (1 << 2), /** * Do not print html head tags. */ OutputBodyOnly = (1 << 3), /** * Wrap even if we're not doing formatted output (e.g. for text fields) * XXXbz this doesn't seem to be used by all serializers... document? How * does this interact with * OutputFormatted/OutputRaw/OutputWrap/OutputFormatFlowed? */ OutputPreformatted = (1 << 4), /** * Output as though the content is preformatted * (e.g. maybe it's wrapped in a MOZ_PRE or MOZ_PRE_WRAP style tag) * XXXbz this doesn't seem to be used by all serializers... document? How * does this interact with * OutputFormatted/OutputRaw/OutputPreformatted/OutputFormatFlowed? */ OutputWrap = (1 << 5), /** * Output for format flowed (RFC 2646). This is used when converting * to text for mail sending. This differs just slightly * but in an important way from normal formatted, and that is that * lines are space stuffed. This can't (correctly) be done later. * XXXbz this doesn't seem to be used by all serializers... document? How * does this interact with * OutputFormatted/OutputRaw/OutputPreformatted/OutputWrap? */ OutputFormatFlowed = (1 << 6), /** * Convert links, image src, and script src to absolute URLs when possible */ OutputAbsoluteLinks = (1 << 7), /** * Attempt to encode entities standardized at W3C (HTML, MathML, etc). * This is a catch-all flag for documents with mixed contents. Beware of * interoperability issues. See below for other flags which might likely * do what you want. */ OutputEncodeW3CEntities = (1 << 8), /** * LineBreak processing: if this flag is set than CR line breaks will * be written. If neither this nor OutputLFLineBreak is set, then we * will use platform line breaks. The combination of the two flags will * cause CRLF line breaks to be written. */ OutputCRLineBreak = (1 << 9), /** * LineBreak processing: if this flag is set than LF line breaks will * be written. If neither this nor OutputCRLineBreak is set, then we * will use platform line breaks. The combination of the two flags will * cause CRLF line breaks to be written. */ OutputLFLineBreak = (1 << 10), /** * Output the content of noscript elements (only for serializing * to plaintext). */ OutputNoScriptContent = (1 << 11), /** * Output the content of noframes elements (only for serializing * to plaintext). */ OutputNoFramesContent = (1 << 12), /** * Don't allow any formatting nodes (e.g.
, ) inside a. * This is used primarily by mail. */ OutputNoFormattingInPre = (1 << 13), /** * Encode entities when outputting to a string. * E.g. If set, we'll output if clear, we'll output 0xa0. * The basic set is just & < > " for interoperability * with older products that don't support α and friends. */ OutputEncodeBasicEntities = (1 << 14), /** * Encode entities when outputting to a string. * The Latin1 entity set additionally includes 8bit accented letters * between 128 and 255. */ OutputEncodeLatin1Entities = (1 << 15), /** * Encode entities when outputting to a string. * The HTML entity set additionally includes accented letters, greek * letters, and other special markup symbols as defined in HTML4. */ OutputEncodeHTMLEntities = (1 << 16), /** * Normally is replaced with a space character when * encoding data as plain text, set this flag if that's * not desired. */ OutputPersistNBSP = (1 << 17), } }