包含我的图像的Markdown页面已被gatsby-remark-copy-linked-files
正确使用和链接,但是我需要使用图像的URL构建一个JSON feed。因此,gatsby-remark-copy-linked-files
将图像复制到其中后,我需要访问图像的路径。
如何查询以找到gatsby-remark-copy-linked-files
用于构建<img/>
标签的图像的路径?
答案 0 :(得分:1)
gatsby-remark-copy-linked-files
仅将文件复制到public
文件夹中。您是说gatsby-remark-images
吗?后者会自动将其图像放入public/static
文件夹中。然后,您将无法访问这些指向图像的链接。
答案 1 :(得分:0)
<img/>
标签可以在节点的htmlAst
属性中找到。
这是一个用于获取htmlAst
的graphql查询:
{
allMarkdownRemark() {
edges {
node {
htmlAst
}
}
}
}
此函数将进入html树并找到img
标签:
const imagesFromAst = htmlAst => {
const findImageTags = node => {
if (node.children) {
const myTags = node.children.filter(propEq("tagName", "img"))
const childrensTags = node.children.map(findImageTags)
return [...myTags, ...flatten(childrensTags)]
} else {
return []
}
}
return findImageTags(htmlAst)
}