add image-like syntax support for video files in markdown (#5904)

This commit is contained in:
Eli Kinsey
2023-05-05 08:14:35 -07:00
committed by GitHub
parent 4e435e7858
commit 23b96d2a69
4 changed files with 31 additions and 0 deletions

View File

@@ -81,6 +81,9 @@ module.exports = {
{
resolve: require.resolve(`./plugins/gatsby-remark-mermaid`),
},
{
resolve: require.resolve('./plugins/gatsby-remark-video'),
},
],
plugins: [`gatsby-remark-static-images`],
},

View File

@@ -0,0 +1,18 @@
const visit = require('unist-util-visit')
const fs = require(`fs-extra`)
const path = require(`path`)
const isRelative = require('is-relative')
module.exports = ({ markdownAST }) => {
visit(markdownAST, `image`, (node) => {
const fileType = node.url.split('.').pop()
if (fileType === 'mp4') {
node.type = `html`
node.value = `<video autoplay loop muted playsinline src="${node.url}"></video>`
return node
} else {
return null
}
})
return
}

View File

@@ -0,0 +1,5 @@
{
"name": "gatsby-remark-video",
"version": "0.1.0",
"main": "index.js"
}

View File

@@ -131,6 +131,11 @@ export default function BlogPost({ data, pageContext, location }) {
inlineCode: InlineCode,
blockquote: Blockquote,
img: ZoomImage,
video: (props) => (
<ZoomImage>
<video {...props} />
</ZoomImage>
),
a: A,
TutorialsSlider,
...shortcodes,