From d8b766ddf82316727a6f8fad6e3df4e470d8fa9b Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 13 Apr 2024 15:42:53 -0300 Subject: content: image: remove width/height slots --- src/content/dependencies/generateCoverArtwork.js | 2 +- src/content/dependencies/image.js | 17 +++++++---- src/content/dependencies/transformContent.js | 36 +++++++++++++----------- 3 files changed, 33 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/content/dependencies/generateCoverArtwork.js b/src/content/dependencies/generateCoverArtwork.js index 0335e54..90c9db9 100644 --- a/src/content/dependencies/generateCoverArtwork.js +++ b/src/content/dependencies/generateCoverArtwork.js @@ -74,7 +74,7 @@ export default { const sizeSlots = (square ? {square: true} - : {width: slots.dimensions[0], height: slots.dimensions[1]}); + : {dimensions: slots.dimensions}); switch (slots.mode) { case 'primary': diff --git a/src/content/dependencies/image.js b/src/content/dependencies/image.js index 134f99c..93e7658 100644 --- a/src/content/dependencies/image.js +++ b/src/content/dependencies/image.js @@ -69,8 +69,6 @@ export default { }, alt: {type: 'string'}, - width: {type: 'number'}, - height: {type: 'number'}, attributes: { type: 'attributes', @@ -139,8 +137,13 @@ export default { !isMissingImageFile && !empty(contentWarnings); + const hasBothDimensions = + !!(slots.dimensions && + slots.dimensions[0] !== null && + slots.dimensions[1] !== null); + const willSquare = - (slots.dimensions + (hasBothDimensions ? slots.dimensions[0] === slots.dimensions[1] : slots.square); @@ -148,8 +151,12 @@ export default { {class: 'image'}, slots.alt && {alt: slots.alt}, - slots.width && {width: slots.width}, - slots.height && {height: slots.height}, + + slots.dimensions?.[0] && + {width: slots.dimensions[0]}, + + slots.dimensions?.[1] && + {width: slots.dimensions[1]}, ]); const isPlaceholder = diff --git a/src/content/dependencies/transformContent.js b/src/content/dependencies/transformContent.js index f1ea957..0904cde 100644 --- a/src/content/dependencies/transformContent.js +++ b/src/content/dependencies/transformContent.js @@ -294,6 +294,25 @@ export default { const image = relations.images[imageIndex++]; + image.setSlots({ + src, + + link: link ?? true, + warnings: warnings ?? null, + thumb: slots.thumb, + }); + + if (width || height) { + image.setSlot('dimensions', [width ?? null, height ?? null]); + } + + image.setSlot('attributes', [ + {class: 'content-image'}, + + pixelate && + {class: 'pixelate'}, + ]); + return { type: 'processed-image', inline: false, @@ -302,22 +321,7 @@ export default { align === 'center' && {class: 'align-center'}, - image.slots({ - src, - - link: link ?? true, - width: width ?? null, - height: height ?? null, - warnings: warnings ?? null, - thumb: slots.thumb, - - attributes: [ - {class: 'content-image'}, - - pixelate && - {class: 'pixelate'}, - ], - })), + image), }; } -- cgit 1.3.0-6-gf8a5