feat(settings): convert metadata to text (#2444)
This commit is contained in:
parent
585d8c6f0b
commit
7785f4fe06
2 changed files with 28 additions and 4 deletions
|
@ -1 +1,28 @@
|
|||
import type { Node } from 'ultrahtml'
|
||||
import { decode } from 'tiny-decode'
|
||||
import { TEXT_NODE, parse } from 'ultrahtml'
|
||||
|
||||
export const maxAccountFieldCount = computed(() => isGlitchEdition.value ? 16 : 4)
|
||||
|
||||
export function convertMetadata(metadata: string) {
|
||||
try {
|
||||
const tree = parse(metadata)
|
||||
return (tree.children as Node[]).map(n => convertToText(n)).join('').trim()
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err)
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
function convertToText(input: Node): string {
|
||||
let text = ''
|
||||
|
||||
if (input.type === TEXT_NODE)
|
||||
return decode(input.value)
|
||||
|
||||
if ('children' in input)
|
||||
text = (input.children as Node[]).map(n => convertToText(n)).join('')
|
||||
|
||||
return text
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue