/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
// search the char for the CharName
sal_Unicode GetHTMLCharName( std::u16string_view rName );
// search the TokenID for the token
SVT_DLLPUBLIC HtmlTokenId GetHTMLToken( std::u16string_view rName );
// search the TokenId for an attribute token
HtmlOptionId GetHTMLOption( std::u16string_view rName );
// search the 24-bit color for a color name (not found = SAL_MAX_UINT32)
SVT_DLLPUBLIC sal_uInt32 GetHTMLColor( const rtl::OUString& rName );
enumclass HtmlTokenId : sal_Int16
{
INVALID = -1,
NONE = 0, // always starting from 256 on, greater than a char
TEXTTOKEN = 0x100,
SINGLECHAR,
NEWPARA,
TABCHAR,
RAWDATA,
LINEFEEDCHAR,
// these will only be turned on
AREA, // Netscape 2.0
BASE, // HTML 3.0
COMMENT,
CDATA,
DUMMY, // so ONOFF_START is even
DOCTYPE,
EMBED, // Netscape 2.0 ignore </EMBED>
HORZRULE, // ignore </HR>
IMAGE, // ignore </IMG>
INPUT, // ignore </INPUT>
LINEBREAK, // </BR> -> <BR>
LINK, // HTML 3.0
META, // HTML 3.0 ignore </META>
OPTION, // ignore </OPTION>
PARAM, // HotJava
SPACER, // Netscape 3.0b5 // ignore </SPACER>
// tokens recognised using HTML character
NONBREAKSPACE,
SOFTHYPH,
// these will be turned back off, // the off value is always located behind (+1) !!
ONOFF_START,
ABBREVIATION_ON = ONOFF_START, // HTML 3.0
ABBREVIATION_OFF, // HTML 3.0
ACRONYM_ON, // HTML 3.0
ACRONYM_OFF, // HTML 3.0
ADDRESS_ON,
ADDRESS_OFF,
ANCHOR_ON,
ANCHOR_OFF,
APPLET_ON, // HotJava
APPLET_OFF, // HotJava
AUTHOR_ON, // HTML 3.0
AUTHOR_OFF, // HTML 3.0
BANNER_ON, // HTML 3.0
BANNER_OFF, // HTML 3.0
BASEFONT_ON, // Netscape
BASEFONT_OFF, // Netscape
BIGPRINT_ON, // HTML 3.0
BIGPRINT_OFF, // HTML 3.0
BLINK_ON, // Netscape
BLINK_OFF, // Netscape
BLOCKQUOTE30_ON, // HTML 3.0
BLOCKQUOTE30_OFF, // HTML 3.0
BLOCKQUOTE_ON,
BLOCKQUOTE_OFF,
BODY_ON,
BODY_OFF,
BOLD_ON,
BOLD_OFF,
CAPTION_ON, // HTML 3.0
CAPTION_OFF, // HTML 3.0
CENTER_ON, // Netscape
CENTER_OFF, // Netscape
CITATION_ON,
CITATION_OFF,
CODE_ON,
CODE_OFF,
COL_ON, // HTML3 Table Model Draft
COL_OFF, // HTML3 Table Model Draft
COLGROUP_ON, // HTML3 Table Model Draft
COLGROUP_OFF, // HTML3 Table Model Draft
CREDIT_ON, // HTML 3.0
CREDIT_OFF, // HTML 3.0
DD_ON,
DD_OFF,
DEFLIST_ON,
DEFLIST_OFF,
DELETEDTEXT_ON, // HTML 3.0
DELETEDTEXT_OFF, // HTML 3.0
DIRLIST_ON,
DIRLIST_OFF,
DIVISION_ON, // HTML 3.0
DIVISION_OFF, // HTML 3.0
DT_ON,
DT_OFF,
EMPHASIS_ON,
EMPHASIS_OFF,
FIGURE_ON, // HTML 3.0
FIGURE_OFF, // HTML 3.0
FONT_ON, // Netscape
FONT_OFF, // Netscape
FOOTNOTE_ON, // HTML 3.0
FOOTNOTE_OFF, // HTML 3.0
FORM_ON,
FORM_OFF,
FRAME_ON, // Netscape 2.0
FRAME_OFF, // Netscape 2.0
FRAMESET_ON, // Netscape 2.0
FRAMESET_OFF, // Netscape 2.0
HEAD1_ON,
HEAD1_OFF,
HEAD2_ON,
HEAD2_OFF,
HEAD3_ON,
HEAD3_OFF,
HEAD4_ON,
HEAD4_OFF,
HEAD5_ON,
HEAD5_OFF,
HEAD6_ON,
HEAD6_OFF,
HEAD_ON,
HEAD_OFF,
HTML_ON,
HTML_OFF,
IFRAME_ON, // IE 3.0b2
IFRAME_OFF, // IE 3.0b2
INSERTEDTEXT_ON, // HTML 3.0
INSERTEDTEXT_OFF, // HTML 3.0
ITALIC_ON,
ITALIC_OFF,
KEYBOARD_ON,
KEYBOARD_OFF,
LANGUAGE_ON, // HTML 3.0
LANGUAGE_OFF, // HTML 3.0
LISTHEADER_ON, // HTML 3.0
LISTHEADER_OFF, // HTML 3.0
LI_ON,
LI_OFF,
MAP_ON, // Netscape 2.0
MAP_OFF, // Netscape 2.0
MENULIST_ON,
MENULIST_OFF,
MULTICOL_ON, // Netscape 3.0b5
MULTICOL_OFF, // Netscape 3.0b5
NOBR_ON, // Netscape
NOBR_OFF, // Netscape
NOEMBED_ON, // Netscape 2.0
NOEMBED_OFF, // Netscape 2.0
NOFRAMES_ON, // Netscape 2.0
NOFRAMES_OFF, // Netscape 2.0
NOSCRIPT_ON, // Netscape 2.0
NOSCRIPT_OFF, // Netscape 3.0
NOTE_ON, // HTML 3.0
NOTE_OFF, // HTML 3.0
OBJECT_ON, // HotJava
OBJECT_OFF, // HotJava
ORDERLIST_ON,
ORDERLIST_OFF,
PARABREAK_ON,
PARABREAK_OFF,
PERSON_ON, // HTML 3.0
PERSON_OFF, // HTML 3.0
PLAINTEXT_ON, // HTML 3.0
PLAINTEXT_OFF, // HTML 3.0
PREFORMTXT_ON,
PREFORMTXT_OFF,
SAMPLE_ON,
SAMPLE_OFF,
SCRIPT_ON, // HTML 3.2
SCRIPT_OFF, // HTML 3.2
SELECT_ON,
SELECT_OFF,
SHORTQUOTE_ON, // HTML 3.0
SHORTQUOTE_OFF, // HTML 3.0
SMALLPRINT_ON, // HTML 3.0
SMALLPRINT_OFF, // HTML 3.0
SPAN_ON, // Style Sheets
SPAN_OFF, // Style Sheets
STRIKETHROUGH_ON, // HTML 3.0
STRIKETHROUGH_OFF, // HTML 3.0
STRONG_ON,
STRONG_OFF,
STYLE_ON, // HTML 3.0
STYLE_OFF, // HTML 3.0
SUBSCRIPT_ON, // HTML 3.0
SUBSCRIPT_OFF, // HTML 3.0
SUPERSCRIPT_ON, // HTML 3.0
SUPERSCRIPT_OFF, // HTML 3.0
TABLE_ON, // HTML 3.0
TABLE_OFF, // HTML 3.0
TABLEDATA_ON, // HTML 3.0
TABLEDATA_OFF, // HTML 3.0
TABLEHEADER_ON, // HTML 3.0
TABLEHEADER_OFF, // HTML 3.0
TABLEROW_ON, // HTML 3.0
TABLEROW_OFF, // HTML 3.0
TBODY_ON, // HTML3 Table Model Draft
TBODY_OFF, // HTML3 Table Model Draft
TELETYPE_ON,
TELETYPE_OFF,
TEXTAREA_ON,
TEXTAREA_OFF,
TFOOT_ON, // HTML3 Table Model Draft
TFOOT_OFF, // HTML3 Table Model Draft
THEAD_ON, // HTML3 Table Model Draft
THEAD_OFF, // HTML3 Table Model Draft
TITLE_ON,
TITLE_OFF,
UNDERLINE_ON,
UNDERLINE_OFF,
UNORDERLIST_ON,
UNORDERLIST_OFF,
VARIABLE_ON,
VARIABLE_OFF,
// obsolete features
XMP_ON,
XMP_OFF,
LISTING_ON,
LISTING_OFF,
// proposed features
DEFINSTANCE_ON,
DEFINSTANCE_OFF,
STRIKE_ON,
STRIKE_OFF,
UNKNOWNCONTROL_ON,
UNKNOWNCONTROL_OFF,
// Microsoft features
COMMENT2_ON, // HTML 2.0 ?
COMMENT2_OFF, // HTML 2.0 ?
MARQUEE_ON,
MARQUEE_OFF,
PLAINTEXT2_ON, // HTML 2.0 ?
PLAINTEXT2_OFF, // HTML 2.0 ?
SDFIELD_ON,
SDFIELD_OFF
};
constexpr bool isOffToken(HtmlTokenId nToken)
{ return (nToken == HtmlTokenId::NONE || nToken >= HtmlTokenId::ONOFF_START)
? (1 & static_cast<int>(nToken))
: throw std::logic_error("Assertion failed!"); // C++11 does not do assert in constexpr
}
constexpr HtmlTokenId getOnToken(HtmlTokenId nToken)
{ return (nToken == HtmlTokenId::NONE || nToken >= HtmlTokenId::ONOFF_START)
? HtmlTokenId(~1 & static_cast<int>(nToken))
: throw std::logic_error("Assertion failed!"); // C++11 does not do assert in constexpr
}
// HTML attribute token (=Options)
enumclass HtmlOptionId
{ // always starting from 256 on, greater than a char
BOOL_START = 0x100,
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.