diff options
-rw-r--r-- | src/libserver/css/css_value.cxx | 12 | ||||
-rw-r--r-- | src/libserver/html/html.cxx | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libserver/css/css_value.cxx b/src/libserver/css/css_value.cxx index 799d5f8ef..704905cd4 100644 --- a/src/libserver/css/css_value.cxx +++ b/src/libserver/css/css_value.cxx @@ -40,10 +40,16 @@ namespace rspamd::css { auto css_value::maybe_color_from_string(const std::string_view &input) -> std::optional<css_value> { - auto found_it = css_colors_map.find(input); - if (found_it != css_colors_map.end()) { - return css_value{found_it->second}; + if (input.size() > 1 && input.front() == '#') { + return css_value::maybe_color_from_hex(input.substr(1)); + } + else { + auto found_it = css_colors_map.find(input); + + if (found_it != css_colors_map.end()) { + return css_value{found_it->second}; + } } return std::nullopt; diff --git a/src/libserver/html/html.cxx b/src/libserver/html/html.cxx index b3080bd88..346f87644 100644 --- a/src/libserver/html/html.cxx +++ b/src/libserver/html/html.cxx @@ -2132,6 +2132,9 @@ TEST_CASE("html text extraction") "<span style=\"color: #00aff0;\">F</span>Rev<span style=\"opacity: 1;\"></span></span>ie<span style=\"opacity: 1;\"></span>" "</span>w<span style=\"color: #00aff0;\">F<span style=\"opacity: 1;\">ΜΉ</span></span>", " Review"}, + {"<td style=\"color:#ffffff\" bgcolor=\"#005595\">\n" + "hello world\n" + "</td>", "hello world"}, /* Colors */ {"goodbye <span style=\"COLOR: rgb(64,64,64)\">cruel</span>" "<span>world</span>", "goodbye cruelworld"}, |