@stayradiated/gatsby-remark-video
v2.4.0
Published
Embed video tags in your gatsby project
Downloads
63
Maintainers
Readme
@stayradiated/gatsby-remark-video
Embeds video tag in your gatsby project
This is a fork of
nullhook/gatsby-remark-video
.
Key differences:
- You can override the default options (width, height, etc) for each video you embed.
- You can set any attribute on the video tag
- The video tag is wrapped in a parent div to make it easier to style
Other differences:
- Options are parsed using TOML
- Type checking with typescript
- Unit tests
Installation
npm install @stayradiated/gatsby-remark-video
Add the following in your gatsby-config.js
{
resolve: '@stayradiated/gatsby-remark-video',
options: {
parentTag: 'div',
parentClass: 'gatsby-remark-video',
defaultAttributes: {}
}
}
Usage
In your markdown add the video({ ... })
tag.
Options are parsed as a TOML Inline Table.
`video({ src = "./my_video.mp4" })`
You can also add a title to the video tag by adding it in your markdown
`video({ title = "Short demo", src = "./my_video.mp4" })`
All <video />
tag attributes are supported, and can even be placed on
multiple lines.
`video({
title = "Short demo",
src = "./my_video.mp4",
width = 500,
height = "auto",
autoplay = true
})`
Both single quotes and double quotes are supported.
`video({ title = 'Short "demo"', src = './my_video.mp4' })`
You can even escape quotes with backslashes.
`video({ title = "Short \"demo\"", src = './my_video.mp4' })`
Plugin Options
Default Attributes
You can set default attributes for all video tags in gatsby-config.js
.
{
resolve: '@stayradiated/gatsby-remark-video',
options: {
defaultAttributes: {
width: 800,
height: 'auto',
preload: 'auto',
muted: true,
autoplay: true,
playsinline: true,
controls: false,
loop: true
}
}
}
Parent Element
By default, all video tags are wrapped in a <div class="gatsby-remark-video">
tag. You can customise the tag type and class name.
{
resolve: '@stayradiated/gatsby-remark-video',
options: {
parentTag: 'p',
parentClass: 'video'
}
}