Apa yang perlu saya lakukan ialah membahagikan html saya kepada pelbagai objek,">
Saya sedang membangunkan laman web WordPress tanpa kepala menggunakan Nuxt sebagai bahagian hadapan.
Tapak web mempunyai beribu-ribu artikel dengan kod pendek. Saya mendapat semua data halaman melalui graphql dan memberikan kandungan menggunakan v-html dan semuanya baik-baik saja, tetapi kod pendek nampaknya hanya dipaparkan sebagai teks biasa.
Kebanyakan daripadanya adalah kod pendek yang sangat mudah, jadi saya akan mencipta komponen Vue untuk menggantikannya
Apa yang perlu saya lakukan ialah membahagikan html saya kepada pelbagai objek yang boleh saya gunakan untuk menjadikan bahagian halaman menjadi html atau menjadi komponen, bergantung pada apa itu.
Saya rasa cara terbaik untuk melakukan ini ialah menggunakan ungkapan biasa dan di sinilah saya keliru.
Andaikan saya mempunyai html berikut dan beberapa kod pendek
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
[someshortcode attr1="value1" attr2="value2"]Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
[someshortcode attr1="value1" attr2="value2"]Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Apa yang saya mahu lakukan ialah mengembalikan susunan objek seperti yang ditunjukkan di bawah
[ { type: 'html', content: `Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
` }, { type: 'shortcode', content: `[someshortcode attr1="value1" attr2="value2"]` }, { type: 'html', content: `Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
` }, { type: 'shortcode', content: `[someshortcode attr1="value1" attr2="value2"]` }, { type: 'html', content: `Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus facilisis elit ante. Vivamus semper dui eget justo viverra facilisis. Etiam ut leo fermentum, sagittis mauris nec, placerat lorem.
` }, ]
Ini adalah asas yang saya perlukan dan kemudian saya akan dapat memecahkan kod pendek dengan lebih lanjut dengan mendapatkan hartanah dsb.
Apakah cara terbaik untuk menyelesaikan masalah ini? Adakah ungkapan biasa pendekatan terbaik?
Anda boleh menggunakan penghurai DOM dan mengulangi elemen peringkat atas DOM. Jika elemen sedemikian ialah nod teks dan mempunyai format kod pendek, cipta objek berasingan untuknya dalam tatasusunan output, jika tidak, dapatkan lelaran ke atas HTML elemen dan kumpulkannya jika ia bukan kod pendek, dan akhirnya keluarkannya sebagai objek :