From 3e0c0d95d35633ba54eb413f4b473996ef2b516c Mon Sep 17 00:00:00 2001 From: Felix Delval Date: Thu, 23 Nov 2023 11:54:59 +0100 Subject: [PATCH] Fixing metadata --- tools/importer/import.js | 1 + tools/importer/transformers/blogArticle.js | 34 +++++++++++++--------- tools/importer/transformers/metadata.js | 5 ++++ 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/tools/importer/import.js b/tools/importer/import.js index c2382d15..ee9a2959 100644 --- a/tools/importer/import.js +++ b/tools/importer/import.js @@ -63,6 +63,7 @@ export default { 'nav', 'div.imagelist', 'div.cmp-experiencefragment--blog-page-cta-component', + 'div.cmp-layout-manual-articles', ]); // create the metadata block and append it to the main element diff --git a/tools/importer/transformers/blogArticle.js b/tools/importer/transformers/blogArticle.js index 7a9f88bf..7dfaa682 100644 --- a/tools/importer/transformers/blogArticle.js +++ b/tools/importer/transformers/blogArticle.js @@ -1,19 +1,25 @@ function createBlogArticle(main, document) { - // Try to remove dts and dds that are not needed - const dts = document.querySelectorAll('dt'); - const dds = document.querySelectorAll('dd'); - if ( dts ) { - for( let i = 0; i < dts.length; i += 1) { - if( dts[i].textContent === 'Text') - { - const div = document.createElement('div'); - div.innerHTML = dds[i].innerHTML; - dts[i].closest('article').appendChild(div); - dts[i].remove(); - dds[i].remove(); - } - } + // Try to remove dts and dds that are not needed + const dts = document.querySelectorAll('dt'); + const dds = document.querySelectorAll('dd'); + if (dts) { + for (let i = 0; i < dts.length; i += 1) { + if (dts[i].textContent === 'Byline') { + const span = document.createElement('em'); + const authorText = dds[i].textContent.trim(); + span.textContent = authorText; + dts[i].closest('article').appendChild(span); } + + if (dts[i].textContent === 'Text') { + const div = document.createElement('div'); + div.innerHTML = dds[i].innerHTML; + dts[i].closest('article').appendChild(div); + dts[i].remove(); + dds[i].remove(); + } + } + } } export default createBlogArticle; diff --git a/tools/importer/transformers/metadata.js b/tools/importer/transformers/metadata.js index 8cd8a671..5e3f2f6c 100644 --- a/tools/importer/transformers/metadata.js +++ b/tools/importer/transformers/metadata.js @@ -45,6 +45,11 @@ const createMetadata = (main, document) => { } } + const author = document.querySelector('div.cmp-contentfragment__element--byline dd'); + if (author) { + meta.Author = author.textContent.trim().replace(/^By /, ''); + } + const block = WebImporter.Blocks.getMetadataBlock(document, meta); main.append(block);