From 75ee13fe949946c23065093e9d5a3cc7db788646 Mon Sep 17 00:00:00 2001 From: matthieu42morin Date: Fri, 22 Mar 2024 15:00:56 +0100 Subject: [PATCH] remark custom plugins --- .../remark-link-with-image-as-only-child.js | 22 +++++++++++++++++++ src/lib/utils/remark-set-image-path.js | 19 ++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/lib/utils/remark-link-with-image-as-only-child.js create mode 100644 src/lib/utils/remark-set-image-path.js diff --git a/src/lib/utils/remark-link-with-image-as-only-child.js b/src/lib/utils/remark-link-with-image-as-only-child.js new file mode 100644 index 0000000..27c8f46 --- /dev/null +++ b/src/lib/utils/remark-link-with-image-as-only-child.js @@ -0,0 +1,22 @@ +import { visit } from 'unist-util-visit'; + +const visitor = (node) => { + node.data = node.data || {}; + node.data.hProperties = node.data.hProperties || {}; + if (node.type === 'link') { + if ( + node.children && + node.children.length && + node.children.length === 1 + ) { + if (node.children[0].type === 'image') { + node.data.hProperties.class = 'after:hidden'; + } + } + } +}; + +export default () => async (tree) => { + visit(tree, visitor); + return tree; +}; diff --git a/src/lib/utils/remark-set-image-path.js b/src/lib/utils/remark-set-image-path.js new file mode 100644 index 0000000..44aeb8d --- /dev/null +++ b/src/lib/utils/remark-set-image-path.js @@ -0,0 +1,19 @@ +import { visit } from 'unist-util-visit'; + +const imagesRelativeUrlPattern = '/images/'; + +const visitor = (node) => { + if (node.type === 'image' && node.url.indexOf(imagesRelativeUrlPattern) > 0) { + node.url = node.url.substring(node.url.indexOf(imagesRelativeUrlPattern) + ''.length); + } +}; + +export default () => async (tree, vFile) => { + if ( + vFile.filename.indexOf('src/routes/blog/') > 0 || + vFile.filename.indexOf('src/routes/projects/') > 0 + ) { + visit(tree, visitor); + } + return tree; +};