-
-
Save iamnasirudeen/17a91510f2256bae67031d400539b40b to your computer and use it in GitHub Desktop.
This is how content data generated by Editor.js could be transformed back into html.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const resursaModel = require('../../models/resursa-red'); | |
const competenteS = require('../../models/competenta-specifica'); | |
module.exports = (params) => { | |
return resursaModel.find({_id: params.idres}).populate({ | |
path: 'competenteS' | |
}).exec().then( (resursa) => { | |
// console.log(resursa); | |
if (resursa[0].content) { | |
let articleHTML = ''; | |
resursa[0].content.blocks.map(obj => { | |
switch (obj.type) { | |
case 'paragraph': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-paragraph cdx-block"> | |
<p>${obj.data.text}</p> | |
</div> | |
</div> | |
</div>\n`; | |
break; | |
case 'image': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-paragraph cdx-block"> | |
<figure> | |
<img src="${obj.data.file.url}" alt="${obj.data.caption}" width="300"/> | |
<figcaption class="text-center"> | |
${obj.data.caption} | |
</figcaption> | |
</figure> | |
</div> | |
</div> | |
</div>\n`; | |
break; | |
case 'header': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-paragraph cdx-block"> | |
<h${obj.data.level}>${obj.data.text}</h${obj.data.level}> | |
</div> | |
</div> | |
</div>\n`; | |
break; | |
case 'raw': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-code"> | |
<code>${obj.data.html}</code> | |
</div> | |
</div> | |
</div>\n`; | |
break; | |
case 'code': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-code"> | |
<code>${obj.data.code}</code> | |
</div> | |
</div> | |
</div>\n`; | |
break; | |
case 'list': | |
if (obj.data.style === 'unordered') { | |
const list = obj.data.items.map(item => { | |
return `<li class="cdx-list__item">${item}</li>`; | |
}); | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-paragraph cdx-block"> | |
<ul class="cdx-list--unordered">${list.join('')}</ul> | |
</div> | |
</div> | |
</div>\n`; | |
} else { | |
const list = obj.data.items.map(item => { | |
return `<li class="cdx-list__item">${item}</li>`; | |
}); | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-paragraph cdx-block"> | |
<ol class="cdx-list--ordered">${list}</ol> | |
</div> | |
</div> | |
</div>\n`; | |
} | |
break; | |
case 'delimeter': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<div class="ce-delimiter cdx-block"></div> | |
</div> | |
</div>\n`; | |
break; | |
case 'attaches': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<a href="${obj.data.file.url}">${obj.data.file.name}</a> | |
</div> | |
</div>\n`; | |
break; | |
case 'embed': | |
articleHTML += `<div class="ce-block"> | |
<div class="ce-block__content"> | |
<iframe width="${obj.data.width}" | |
height="${obj.data.height}" | |
src="${obj.data.source}" | |
frameborder="0" | |
allow="accelerometer; | |
autoplay; | |
encrypted-media; | |
gyroscope; | |
picture-in-picture" | |
allowfullscreen> | |
</iframe> | |
<strong>${obj.data.caption}</strong> | |
</div> | |
</div>\n`; | |
break; | |
default: | |
return ''; | |
} | |
}); | |
resursa[0].content = articleHTML; | |
} | |
return resursa; | |
}); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment