Browse Source

tweaks and updated docs for #2627

Hakim El Hattab 5 years ago
parent
commit
9a2160536d
3 changed files with 16 additions and 17 deletions
  1. 3 6
      README.md
  2. 12 10
      js/controllers/plugins.js
  3. 1 1
      js/utils/device.js

+ 3 - 6
README.md

@@ -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
 - **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:
-- **id**: the id of the plugin to load
-- **plugin**: the plugin object to load. It is the plugin implementation that can contain an `init` function
-- **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
+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
+- **plugin**: the plugin instance (see [Plugins](#plugins))
 
 ### Ready Event
 

+ 12 - 10
js/controllers/plugins.js

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

+ 1 - 1
js/utils/device.js

@@ -10,6 +10,6 @@ export const isAndroid = /android/gi.test( UA );
 
 // Flags if we should use zoom instead of transform to scale
 // 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 &&
 				( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );