diff --git a/include/docpp.hpp b/include/docpp.hpp index bdfa714..21149ea 100644 --- a/include/docpp.hpp +++ b/include/docpp.hpp @@ -54,171 +54,171 @@ namespace docpp { * @brief Enum for element tags. */ enum Tag { - ELEMENT_EMPTY, - ELEMENT_EMPTY_NO_FORMAT, - ELEMENT_ABBREVIATION, - ELEMENT_ABBR, - ELEMENT_ACRONYM, - ELEMENT_ADDRESS, - ELEMENT_ANCHOR, - ELEMENT_A, - ELEMENT_APPLET, - ELEMENT_ARTICLE, - ELEMENT_AREA, - ELEMENT_ASIDE, - ELEMENT_AUDIO, - ELEMENT_BASE, - ELEMENT_BASEFONT, - ELEMENT_BDI, - ELEMENT_BDO, - ELEMENT_BGSOUND, - ELEMENT_BIG, - ELEMENT_BLOCKQUOTE, - ELEMENT_BODY, - ELEMENT_BOLD, - ELEMENT_B, - ELEMENT_BR, - ELEMENT_BREAK, - ELEMENT_BUTTON, - ELEMENT_CAPTION, - ELEMENT_CANVAS, - ELEMENT_CENTER, - ELEMENT_CITE, - ELEMENT_CODE, - ELEMENT_COLGROUP, - ELEMENT_COL, - ELEMENT_COLUMN, - ELEMENT_DATA, - ELEMENT_DATALIST, - ELEMENT_DD, - ELEMENT_DFN, - ELEMENT_DEFINE, - ELEMENT_DELETE, - ELEMENT_DEL, - ELEMENT_DETAILS, - ELEMENT_DIALOG, - ELEMENT_DIR, - ELEMENT_DIV, - ELEMENT_DL, - ELEMENT_DT, - ELEMENT_EMBED, - ELEMENT_FIELDSET, - ELEMENT_FIGCAPTION, - ELEMENT_FIGURE, - ELEMENT_FONT, - ELEMENT_FOOTER, - ELEMENT_FORM, - ELEMENT_FRAME, - ELEMENT_FRAMESET, - ELEMENT_HEAD, - ELEMENT_HEADER, - ELEMENT_H1, - ELEMENT_H2, - ELEMENT_H3, - ELEMENT_H4, - ELEMENT_H5, - ELEMENT_H6, - ELEMENT_HGROUP, - ELEMENT_HR, - ELEMENT_HTML, - ELEMENT_IFRAME, - ELEMENT_IMAGE, - ELEMENT_IMG, - ELEMENT_INPUT, - ELEMENT_INS, - ELEMENT_ISINDEX, - ELEMENT_ITALIC, - ELEMENT_I, - ELEMENT_KBD, - ELEMENT_KEYGEN, - ELEMENT_LABEL, - ELEMENT_LEGEND, - ELEMENT_LIST, - ELEMENT_LI, - ELEMENT_LINK, - ELEMENT_MAIN, - ELEMENT_MARK, - ELEMENT_MARQUEE, - ELEMENT_MENUITEM, - ELEMENT_META, - ELEMENT_METER, - ELEMENT_NAV, - ELEMENT_NOBREAK, - ELEMENT_NOBR, - ELEMENT_NOEMBED, - ELEMENT_NOSCRIPT, - ELEMENT_OBJECT, - ELEMENT_OPTGROUP, - ELEMENT_OPTION, - ELEMENT_OUTPUT, - ELEMENT_PARAGRAPH, - ELEMENT_P, - ELEMENT_PARAM, - ELEMENT_PHRASE, - ELEMENT_PRE, - ELEMENT_PROGRESS, - ELEMENT_QUOTE, - ELEMENT_Q, - ELEMENT_RP, - ELEMENT_RT, - ELEMENT_RUBY, - ELEMENT_OUTDATED, - ELEMENT_S, - ELEMENT_SAMPLE, - ELEMENT_SAMP, - ELEMENT_SCRIPT, - ELEMENT_SECTION, - ELEMENT_SMALL, - ELEMENT_SOURCE, - ELEMENT_SPACER, - ELEMENT_SPAN, - ELEMENT_STRIKE, - ELEMENT_STRONG, - ELEMENT_STYLE, - ELEMENT_SUB, - ELEMENT_SUBSCRIPT, - ELEMENT_SUP, - ELEMENT_SUPERSCRIPT, - ELEMENT_SUMMARY, - ELEMENT_SVG, - ELEMENT_TABLE, - ELEMENT_TBODY, - ELEMENT_TD, - ELEMENT_TEMPLATE, - ELEMENT_TFOOT, - ELEMENT_TH, - ELEMENT_THEAD, - ELEMENT_TIME, - ELEMENT_TITLE, - ELEMENT_TR, - ELEMENT_TRACK, - ELEMENT_TT, - ELEMENT_UNDERLINE, - ELEMENT_U, - ELEMENT_VAR, - ELEMENT_VIDEO, - ELEMENT_WBR, - ELEMENT_XMP, + ELEMENT_EMPTY, /* Empty element */ + ELEMENT_EMPTY_NO_FORMAT, /* Empty element, that ignores any formatting by get() calls. */ + ELEMENT_ABBREVIATION, /* */ + ELEMENT_ABBR, /* */ + ELEMENT_ACRONYM, /* */ + ELEMENT_ADDRESS, /*
*/ + ELEMENT_ANCHOR, /* */ + ELEMENT_A, /* */ + ELEMENT_APPLET, /* */ + ELEMENT_ARTICLE, /*
*/ + ELEMENT_AREA, /* */ + ELEMENT_ASIDE, /* */ + ELEMENT_AUDIO, /* */ + ELEMENT_BASE, /* */ + ELEMENT_BASEFONT, /* */ + ELEMENT_BDI, /* */ + ELEMENT_BDO, /* */ + ELEMENT_BGSOUND, /* */ + ELEMENT_BIG, /* */ + ELEMENT_BLOCKQUOTE, /*
*/ + ELEMENT_BODY, /* */ + ELEMENT_BOLD, /* */ + ELEMENT_B, /* */ + ELEMENT_BR, /*
*/ + ELEMENT_BREAK, /*
*/ + ELEMENT_BUTTON, /* */ + ELEMENT_CAPTION, /* */ + ELEMENT_CANVAS, /* */ + ELEMENT_CENTER, /*
*/ + ELEMENT_CITE, /* */ + ELEMENT_CODE, /* */ + ELEMENT_COLGROUP, /* */ + ELEMENT_COL, /* */ + ELEMENT_COLUMN, /* */ + ELEMENT_DATA, /* */ + ELEMENT_DATALIST, /* */ + ELEMENT_DD, /*
*/ + ELEMENT_DFN, /* */ + ELEMENT_DEFINE, /* */ + ELEMENT_DELETE, /* */ + ELEMENT_DEL, /* */ + ELEMENT_DETAILS, /*
*/ + ELEMENT_DIALOG, /* */ + ELEMENT_DIR, /* */ + ELEMENT_DIV, /*
*/ + ELEMENT_DL, /*
*/ + ELEMENT_DT, /*
*/ + ELEMENT_EMBED, /* */ + ELEMENT_FIELDSET, /*
*/ + ELEMENT_FIGCAPTION, /*
*/ + ELEMENT_FIGURE, /*
*/ + ELEMENT_FONT, /* */ + ELEMENT_FOOTER, /* */ + ELEMENT_FORM, /*
*/ + ELEMENT_FRAME, /* */ + ELEMENT_FRAMESET, /* */ + ELEMENT_HEAD, /* */ + ELEMENT_HEADER, /*
*/ + ELEMENT_H1, /*

*/ + ELEMENT_H2, /*

*/ + ELEMENT_H3, /*

*/ + ELEMENT_H4, /*

*/ + ELEMENT_H5, /*
*/ + ELEMENT_H6, /*
*/ + ELEMENT_HGROUP, /*
*/ + ELEMENT_HR, /*
*/ + ELEMENT_HTML, /* */ + ELEMENT_IFRAME, /* */ + ELEMENT_IMAGE, /* */ + ELEMENT_IMG, /* */ + ELEMENT_INPUT, /* */ + ELEMENT_INS, /* */ + ELEMENT_ISINDEX, /* */ + ELEMENT_ITALIC, /* */ + ELEMENT_I, /* */ + ELEMENT_KBD, /* */ + ELEMENT_KEYGEN, /* */ + ELEMENT_LABEL, /* */ + ELEMENT_LEGEND, /* */ + ELEMENT_LIST, /*
  • */ + ELEMENT_LI, /*
  • */ + ELEMENT_LINK, /* */ + ELEMENT_MAIN, /*
    */ + ELEMENT_MARK, /* */ + ELEMENT_MARQUEE, /* */ + ELEMENT_MENUITEM, /* */ + ELEMENT_META, /* */ + ELEMENT_METER, /* */ + ELEMENT_NAV, /* */ + ELEMENT_NOBREAK, /* */ + ELEMENT_NOBR, /* */ + ELEMENT_NOEMBED, /* */ + ELEMENT_NOSCRIPT, /* */ + ELEMENT_OBJECT, /* */ + ELEMENT_OPTGROUP, /* */ + ELEMENT_OPTION, /* */ + ELEMENT_OUTPUT, /* */ + ELEMENT_PARAGRAPH, /*

    */ + ELEMENT_P, /*

    */ + ELEMENT_PARAM, /* */ + ELEMENT_PHRASE, /* */ + ELEMENT_PRE, /*
     */
    +            ELEMENT_PROGRESS, /*  */
    +            ELEMENT_QUOTE, /*  */
    +            ELEMENT_Q, /*  */
    +            ELEMENT_RP, /*  */
    +            ELEMENT_RT, /*  */
    +            ELEMENT_RUBY, /*  */
    +            ELEMENT_OUTDATED, /*  */
    +            ELEMENT_S, /*  */
    +            ELEMENT_SAMPLE, /*  */
    +            ELEMENT_SAMP, /*  */
    +            ELEMENT_SCRIPT, /*  */
    +            ELEMENT_SECTION, /* 
    */ + ELEMENT_SMALL, /* */ + ELEMENT_SOURCE, /* */ + ELEMENT_SPACER, /* */ + ELEMENT_SPAN, /* */ + ELEMENT_STRIKE, /* */ + ELEMENT_STRONG, /* */ + ELEMENT_STYLE, /* */ + ELEMENT_SUB, /* */ + ELEMENT_SUBSCRIPT, /* */ + ELEMENT_SUP, /* */ + ELEMENT_SUPERSCRIPT, /* */ + ELEMENT_SUMMARY, /* */ + ELEMENT_SVG, /* */ + ELEMENT_TABLE, /*
    */ + ELEMENT_TBODY, /* */ + ELEMENT_TD, /* */ + ELEMENT_TEMPLATE, /* */ + ELEMENT_TFOOT, /* */ + ELEMENT_TH, /* */ + ELEMENT_THEAD, /* */ + ELEMENT_TIME, /* */ + ELEMENT_TITLE, /* */ + ELEMENT_TR, /* */ + ELEMENT_TRACK, /* */ + ELEMENT_TT, /* */ + ELEMENT_UNDERLINE, /* */ + ELEMENT_U, /* */ + ELEMENT_VAR, /* */ + ELEMENT_VIDEO, /* */ + ELEMENT_WBR, /* */ + ELEMENT_XMP, /* */ }; /** * @brief Enum for element types. */ enum Type { - TYPE_SELF_CLOSING, - TYPE_NON_SELF_CLOSING, - TYPE_NON_CLOSED, - TYPE_TEXT, - TYPE_TEXT_TAB, + TYPE_SELF_CLOSING, /* Self-closing element ()*/ + TYPE_NON_SELF_CLOSING, /* Non-self-closing element () */ + TYPE_NON_CLOSED, /* Non-closed element () */ + TYPE_TEXT, /* Text element (my text here). Note that this does *not* append a newline character. */ + TYPE_TEXT_TAB, /* Text element with tab characters appropriately prepended (my text here). Note that this does *not* append a newline character. */ }; /** * @brief Enum for formatting options. */ enum Formatting { - FORMATTING_NONE, - FORMATTING_PRETTY, - FORMATTING_NEWLINE, + FORMATTING_NONE, /* No formatting. Output is in the form of one long string of text, and a single newline character. */ + FORMATTING_PRETTY, /* Pretty formatting. Output is formatted with newlines and tabs as deemed appropriate. */ + FORMATTING_NEWLINE, /* Newline formatting. Each element has a newline appended. */ }; /** @@ -513,12 +513,13 @@ namespace docpp { */ Element() = default; /** - * @brief Set the tag, id, and classes of the element + * @brief Set the tag, properties, and data of the element * @param tag The tag of the element - * @param id The id of the element - * @param classes The classes of the element + * @param properties The properties of the element + * @param data The data of the element + * @param type The close tag type. */ - void set(const std::string& tag, const Properties& properties = {}, const std::string& data = {}, const Type = TYPE_NON_SELF_CLOSING); + void set(const std::string& tag, const Properties& properties = {}, const std::string& data = {}, const Type type = TYPE_NON_SELF_CLOSING); /** * @brief Get the element in the form of an HTML tag.