eleventy-plugin-vidyard
v2.0.0
Published
This Eleventy plugin generate embeds responsive Vidyard videos from share URLs.
Maintainers
Readme
eleventy-plugin-vidyard
An Eleventy shortcode, allows to be embedded Vidyard into templates by using Vidyard API v4.
Installation
Install the plugin from npm:
npm install eleventy-plugin-vidyard --save-devAdd it to your Eleventy Config file:
ESM (Recommended for Eleventy 3.x):
import eleventyPluginVidyard from 'eleventy-plugin-vidyard';
export default function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard);
}CommonJS:
const eleventyPluginVidyard = require('eleventy-plugin-vidyard');
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard);
};Advanced usage:
ESM:
import eleventyPluginVidyard from 'eleventy-plugin-vidyard';
export default function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard, {
script: true,
class: 'vidyard-player-embed',
version: 4,
type: 'inline'
});
}CommonJS:
const eleventyPluginVidyard = require('eleventy-plugin-vidyard');
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard, {
script: true,
class: 'vidyard-player-embed',
version: 4,
type: 'inline'
});
};What does it do?
The plugin turns 11ty shortcodes like this:
{% vidyard "https://share.vidyard.com/watch/Cse5Fqy1CpUWqYdtikKrFy?embeded=true" %}into HTML code like this:
<script src="https://play.vidyard.com/embed/v4.js" type="text/javascript" async></script>
<img style="max-width: 100%;"
class="vidyard-player-embed"
src="https://play.vidyard.com/Cse5Fqy1CpUWqYdtikKrFy.jpg"
data-uuid="Cse5Fqy1CpUWqYdtikKrFy"
data-v="4"
data-type="inline" />
Custom Usage
Vidyard documentations says, the script tag should live in the head of your page if at all possible.
In that case, we can disable rendering script within embedded player, and place main script on the head of website manually
<head>
...
<!-- The script tag should live in the head of your page if at all possible -->
<script src="https://play.vidyard.com/embed/v4.js" type="text/javascript" async></script>
...
</head>and set config file to:
ESM:
export default function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard, {
script: false
});
}CommonJS:
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(eleventyPluginVidyard, {
script: false
});
};or by passing options to shortcode directly (Nunjucks):
{% vidyard "https://share.vidyard.com/watch/Cse5Fqy1CpUWqYdtikKrFy?embeded=true", {
script: false,
class: 'vidyard-player-embed my-custom-class',
version: 4,
type: 'inline'
} %}Liquid Template Usage
Liquid templates don't support passing objects to shortcodes. Instead, you can pass extra CSS classes as a string argument:
{% vidyard "https://share.vidyard.com/watch/VIDEO_ID" %}
{% comment %} With extra classes (appended to default class) {% endcomment %}
{% vidyard "https://share.vidyard.com/watch/VIDEO_ID" "my-custom-class another-class" %}For other options like script: false, configure them globally in your Eleventy config file.
Contributing
If you notice an issue, feel free to open an issue.
- Fork this repo
- Clone
git clone [email protected]:reatlat/eleventy-plugin-vidyard.git - Install dependencies
npm install - Build
npm run build - Serve locally
npm run dev
License
The code is available under the MIT license.
