restructure and tests
squash! restructure and tests
This commit is contained in:
parent
ca6c7d5b10
commit
cd44556750
9 changed files with 481 additions and 105 deletions
|
@ -1,3 +1,5 @@
|
|||
import { getTagName } from './utility.service.js'
|
||||
|
||||
/**
|
||||
* This is a tiny purpose-built HTML parser/processor. This basically detects
|
||||
* any type of visual newline and converts entire HTML into a array structure.
|
||||
|
@ -26,12 +28,6 @@ export const convertHtmlToLines = (html) => {
|
|||
let textBuffer = '' // Current line content
|
||||
let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag
|
||||
|
||||
// Extracts tag name from tag, i.e. <span a="b"> => span
|
||||
const getTagName = (tag) => {
|
||||
const result = /(?:<\/(\w+)>|<(\w+)\s?[^/]*?\/?>)/gi.exec(tag)
|
||||
return result && (result[1] || result[2])
|
||||
}
|
||||
|
||||
const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer
|
||||
if (textBuffer.trim().length > 0 && !level.some(l => ignoredTags.has(l))) {
|
||||
buffer.push({ text: textBuffer })
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue