module html
import os
import strings
struct LexicalAttributes {
mut:
current_tag &Tag
open_tag bool
open_code bool
open_string int
open_comment bool
is_attribute bool
opened_code_type string
line_count int
lexeme_builder strings.Builder = strings.Builder{}
code_tags map[string]bool = map{
'script': true
'style': true
}
}
// Parser is responsible for reading the HTML strings and converting them into a `DocumentObjectModel`.
pub struct Parser {
mut:
dom DocumentObjectModel
lexical_attributes LexicalAttributes = LexicalAttributes{
current_tag: &Tag{}
}
filename string = 'direct-parse'
initialized bool
tags []&Tag
debug_file os.File
}
// This function is used to add a tag for the parser ignore it's content.
// For example, if you have an html or XML with a custom tag, like `