X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Foutput_xhtml.h;h=de88282a8044a773f03a3cf8fb956a6988d8d770;hb=ce2e071cdfde88864c1524818d66cbae52273502;hp=1b68261be34f34db94f61c56a715dd895d15bee2;hpb=603b94966ac8b995ec9d1ad79e05774e57fa9aed;p=lyx.git diff --git a/src/output_xhtml.h b/src/output_xhtml.h index 1b68261be3..de88282a80 100644 --- a/src/output_xhtml.h +++ b/src/output_xhtml.h @@ -13,6 +13,7 @@ #define OUTPUT_XHTML_H #include "support/docstream.h" +#include "support/strfwd.h" #include #include @@ -26,11 +27,13 @@ class Text; // Inspiration for the *Tag structs and for XHTMLStream // came from MathStream and its cousins. +/// Attributes will be escaped automatically and so should NOT +/// be escaped before passing to the constructor. struct StartTag { /// - StartTag(std::string const & tag) : tag_(tag) {} + explicit StartTag(std::string const & tag) : tag_(tag) {} /// - StartTag(std::string const & tag, std::string const & attr, + explicit StartTag(std::string const & tag, std::string const & attr, bool keepempty = false) : tag_(tag), attr_(attr), keepempty_(keepempty) {} /// @@ -49,7 +52,7 @@ struct StartTag { struct EndTag { /// - EndTag(std::string tag) : tag_(tag) {} + explicit EndTag(std::string tag) : tag_(tag) {} /// docstring asEndTag() const; /// @@ -57,13 +60,15 @@ struct EndTag { }; -// Tags like +/// Tags like +/// Attributes will be escaped automatically and so should NOT +/// be escaped before passing to the constructor. struct CompTag { /// - CompTag(std::string const & tag) + explicit CompTag(std::string const & tag) : tag_(tag) {} /// - CompTag(std::string const & tag, std::string const & attr) + explicit CompTag(std::string const & tag, std::string const & attr) : tag_(tag), attr_(attr) {} /// docstring asTag() const; @@ -141,6 +146,15 @@ namespace html { docstring escapeChar(char_type c); /// converts a string to a form safe for links, etc docstring htmlize(docstring const & str); +/// cleans \param str for use as an atttribute by replacing +/// all non-alnum by "_" +docstring cleanAttr(docstring const & str); +/// +std::string escapeChar(char c); +/// +std::string htmlize(std::string const & str); +/// +std::string cleanAttr(std::string const & str); // to be removed /// \return true if tag was opened, false if not