tweaks and updated docs for #2627

master
Hakim El Hattab 2020-03-10 10:18:37 +01:00
parent 98a6d1de6b
commit 9a2160536d
3 changed files with 16 additions and 17 deletions

View File

@ -522,12 +522,9 @@ You can add your own extensions using the same syntax. The following properties
- **callback**: [optional] Function to execute when the script has loaded - **callback**: [optional] Function to execute when the script has loaded
- **condition**: [optional] Function which must return true for the script to be loaded - **condition**: [optional] Function which must return true for the script to be loaded
You can additionally use the following syntax, in case you are using a bundler: You can also include dependencies which are bundled/already present on the page. To include a bundled plugin. replace the `src` property with a plugin `id` and a reference to the `plugin` instance:
- **id**: the id of the plugin to load - **id**: the id of the plugin
- **plugin**: the plugin object to load. It is the plugin implementation that can contain an `init` function - **plugin**: the plugin instance (see [Plugins](#plugins))
- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false
- **callback**: [optional] Function to execute when the script has loaded
- **condition**: [optional] Function which must return true for the script to be loaded
### Ready Event ### Ready Event

View File

@ -58,11 +58,12 @@ export default class Plugins {
// Load synchronous scripts // Load synchronous scripts
scripts.forEach( s => { scripts.forEach( s => {
if (s.id) { if( s.id ) {
this.registerPlugin(s.id, s.plugin); this.registerPlugin( s.id, s.plugin );
scriptLoadedCallback(s); scriptLoadedCallback( s );
} else { }
loadScript( s.src, () => scriptLoadedCallback(s)); else {
loadScript( s.src, () => scriptLoadedCallback(s) );
} }
} ); } );
} }
@ -134,11 +135,12 @@ export default class Plugins {
if( this.asyncDependencies.length ) { if( this.asyncDependencies.length ) {
this.asyncDependencies.forEach( s => { this.asyncDependencies.forEach( s => {
if (s.id) { if( s.id ) {
this.registerPlugin(s.id, s.plugin); this.registerPlugin( s.id, s.plugin );
if (typeof s.plugin.init === 'function') { s.plugin.init(); } if( typeof s.plugin.init === 'function' ) s.plugin.init();
if (typeof s.callback === 'function') { s.callback(); } if( typeof s.callback === 'function' ) s.callback();
} else { }
else {
loadScript( s.src, s.callback ); loadScript( s.src, s.callback );
} }
} ); } );

View File

@ -10,6 +10,6 @@ export const isAndroid = /android/gi.test( UA );
// Flags if we should use zoom instead of transform to scale // Flags if we should use zoom instead of transform to scale
// up slides. Zoom produces crisper results but has a lot of // up slides. Zoom produces crisper results but has a lot of
// xbrowser quirks so we only use it in whitelsited browsers. // xbrowser quirks so we only use it in whitelisted browsers.
export const supportsZoom = 'zoom' in testElement.style && !isMobile && export const supportsZoom = 'zoom' in testElement.style && !isMobile &&
( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) ); ( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );