5#include "CoreMinimal.h"
9const FName Anchor{TEXT(
"a")};
10const FName Strong{TEXT(
"strong")};
11const FName Emphasis{TEXT(
"em")};
12const FName InlineCode{TEXT(
"code")};
13const FName DeletedText{TEXT(
"del")};
14const FName Heading1{TEXT(
"h1")};
15const FName Heading2{TEXT(
"h2")};
16const FName Heading3{TEXT(
"h3")};
17const FName Heading4{TEXT(
"h4")};
18const FName Heading5{TEXT(
"h5")};
19const FName Heading6{TEXT(
"h6")};
20const FName UnorderedList{TEXT(
"ul")};
21const FName OrderedList{TEXT(
"ol")};
22const FName ListItem{TEXT(
"li")};
23const FName Paragraph{TEXT(
"p")};
24const FName LineBreak{TEXT(
"br")};
25const FName HorizontalRule{TEXT(
"hr")};
31 explicit FHtmlScanner(
const FString& InSource);
53 const FString& GetOutput()
const;
60 void SkipWhitespace();
89 TMap<FStringView, FStringView> Attributes;
90 int32 OpeningTagStart;
93 using FCallbackFn = TFunction<void(
const FHtmlParser& Parser)>;
97 explicit FHtmlParser(
const FString& Source, FCallbackFn InCallback);
105 FTextRange GetContentRange()
const;
109 FTextRange GetOriginalRange()
const;
110 FStringView GetContent()
const;
111 const FString& GetOutput()
const;
114 int32 ParagraphStartIndex = 0;
115 TArray<FElement> ElementStack;
119 bool AdvanceMatching(FHtmlScanner::ETokenType TokenType);
125 void Newline(uint32 Index);
126 FCallbackFn Callback;
127 FHtmlScanner::FToken Current;
128 FHtmlScanner Scanner;
Parses a subset of XHTML Does NOT support:
Definition: HtmlParser.h:84
ETokenType
The type of token.
Definition: Token.h:15
@ Type
Type of the message.
@ Equal
Matches values that are equal to a specified value.