diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-09-29 12:24:58 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-29 12:26:15 +0200 |
commit | 5b942b519c2fbbab10d61af7f09e5449019cce89 (patch) | |
tree | 06b7a143f339a375513812e53bc7c8527fd1e750 | |
parent | f38b0f667eb144c4df62dcf58fb0e50ee73cc4c0 (diff) | |
download | serenity-5b942b519c2fbbab10d61af7f09e5449019cce89.zip |
LibHTML: Add HTMLHeadingElement for <h1> through <h6>
-rw-r--r-- | Libraries/LibHTML/DOM/HTMLHeadingElement.cpp | 10 | ||||
-rw-r--r-- | Libraries/LibHTML/DOM/HTMLHeadingElement.h | 9 | ||||
-rw-r--r-- | Libraries/LibHTML/Makefile.shared | 1 | ||||
-rw-r--r-- | Libraries/LibHTML/Parser/HTMLParser.cpp | 12 |
4 files changed, 31 insertions, 1 deletions
diff --git a/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp b/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp new file mode 100644 index 0000000000..9b949a8381 --- /dev/null +++ b/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp @@ -0,0 +1,10 @@ +#include <LibHTML/DOM/HTMLHeadingElement.h> + +HTMLHeadingElement::HTMLHeadingElement(Document& document, const String& tag_name) + : HTMLElement(document, tag_name) +{ +} + +HTMLHeadingElement::~HTMLHeadingElement() +{ +} diff --git a/Libraries/LibHTML/DOM/HTMLHeadingElement.h b/Libraries/LibHTML/DOM/HTMLHeadingElement.h new file mode 100644 index 0000000000..38daa33568 --- /dev/null +++ b/Libraries/LibHTML/DOM/HTMLHeadingElement.h @@ -0,0 +1,9 @@ +#pragma once + +#include <LibHTML/DOM/HTMLElement.h> + +class HTMLHeadingElement : public HTMLElement { +public: + HTMLHeadingElement(Document&, const String& tag_name); + virtual ~HTMLHeadingElement() override; +}; diff --git a/Libraries/LibHTML/Makefile.shared b/Libraries/LibHTML/Makefile.shared index bb2e2ed0b4..efa0f8ccd3 100644 --- a/Libraries/LibHTML/Makefile.shared +++ b/Libraries/LibHTML/Makefile.shared @@ -4,6 +4,7 @@ LIBHTML_OBJS = \ DOM/Element.o \ DOM/HTMLElement.o \ DOM/HTMLAnchorElement.o \ + DOM/HTMLHeadingElement.o \ DOM/Document.o \ DOM/Text.o \ CSS/Selector.o \ diff --git a/Libraries/LibHTML/Parser/HTMLParser.cpp b/Libraries/LibHTML/Parser/HTMLParser.cpp index 0e31bda194..d01df0c1de 100644 --- a/Libraries/LibHTML/Parser/HTMLParser.cpp +++ b/Libraries/LibHTML/Parser/HTMLParser.cpp @@ -2,6 +2,7 @@ #include <AK/StringBuilder.h> #include <LibHTML/DOM/Element.h> #include <LibHTML/DOM/HTMLAnchorElement.h> +#include <LibHTML/DOM/HTMLHeadingElement.h> #include <LibHTML/DOM/Text.h> #include <LibHTML/Parser/HTMLParser.h> #include <ctype.h> @@ -9,8 +10,17 @@ static NonnullRefPtr<Element> create_element(Document& document, const String& tag_name) { - if (tag_name.to_lowercase() == "a") + auto lowercase_tag_name = tag_name.to_lowercase(); + if (lowercase_tag_name == "a") return adopt(*new HTMLAnchorElement(document, tag_name)); + if (lowercase_tag_name == "h1" + || lowercase_tag_name == "h2" + || lowercase_tag_name == "h3" + || lowercase_tag_name == "h4" + || lowercase_tag_name == "h5" + || lowercase_tag_name == "h6") { + return adopt(*new HTMLHeadingElement(document, tag_name)); + } return adopt(*new Element(document, tag_name)); } |