2.4.0 • Published 6 years ago
@stayradiated/gatsby-remark-video v2.4.0
@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-videoAdd 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'
  }
}