فهرست منبع

simplify client side notes plugin

Hakim El Hattab 10 سال پیش
والد
کامیت
03385d7245
2فایلهای تغییر یافته به همراه29 افزوده شده و 59 حذف شده
  1. 4 12
      plugin/notes/notes.html
  2. 25 47
      plugin/notes/notes.js

+ 4 - 12
plugin/notes/notes.html

@@ -173,6 +173,7 @@
 
 					window.addEventListener( 'message', function( event ) {
 						var data = JSON.parse( event.data );
+
 						// No need for updating the notes in case of fragment changes
 						if ( data.notes !== undefined) {
 							if( data.markdown ) {
@@ -183,18 +184,9 @@
 							}
 						}
 
-						// Showing and hiding fragments
-						if( data.fragment === 'next' ) {
-							currentSlide.contentWindow.Reveal.nextFragment();
-						}
-						else if( data.fragment === 'prev' ) {
-							currentSlide.contentWindow.Reveal.prevFragment();
-						}
-						else {
-							// Update the note slides
-							currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
-							nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
-						}
+						// Update the note slides
+						currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf );
+						nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
 
 					}, false );
 

+ 25 - 47
plugin/notes/notes.js

@@ -10,72 +10,50 @@ var RevealNotes = (function() {
 		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
 
 		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-			post('slidechanged');
-		} );
+		Reveal.addEventListener( 'slidechanged', post );
 
 		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', function( event ) {
-			post('fragmentshown');
-		} );
+		Reveal.addEventListener( 'fragmentshown', post );
 
 		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', function( event ) {
-			post('fragmenthidden');
-		} );
+		Reveal.addEventListener( 'fragmenthidden', post );
 
 		/**
 		 * Posts the current slide data to the notes window
-		 *
-		 * @param {String} eventType Expecting 'slidechanged', 'fragmentshown' 
-		 * or 'fragmenthidden' set in the events above to define the needed 
-		 * slideDate.
 		 */
-		function post( eventType ) {
+		function post() {
 			var slideElement = Reveal.getCurrentSlide(),
+				slideIndices = Reveal.getIndices(),
 				messageData;
 
-			if( eventType === 'slidechanged' ) {
-				var notes = slideElement.querySelector( 'aside.notes' ),
-					indexh = Reveal.getIndices().h,
-					indexv = Reveal.getIndices().v,
-					nextindexh,
-					nextindexv;
+			var notes = slideElement.querySelector( 'aside.notes' ),
+				nextindexh,
+				nextindexv;
 
-				if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-					nextindexh = indexh;
-					nextindexv = indexv + 1;
-				} else {
-					nextindexh = indexh + 1;
-					nextindexv = 0;
-				}
-
-				messageData = {
-					notes : notes ? notes.innerHTML : '',
-					indexh : indexh,
-					indexv : indexv,
-					nextindexh : nextindexh,
-					nextindexv : nextindexv,
-					markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-				};
-			}
-			else if( eventType === 'fragmentshown' ) {
-				messageData = {
-					fragment : 'next'
-				};
-			}
-			else if( eventType === 'fragmenthidden' ) {
-				messageData = {
-					fragment : 'prev'
-				};
+			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
+				nextindexh = slideIndices.h;
+				nextindexv = slideIndices.v + 1;
+			} else {
+				nextindexh = slideIndices.h + 1;
+				nextindexv = 0;
 			}
 
+			messageData = {
+				notes : notes ? notes.innerHTML : '',
+				indexh : slideIndices.h,
+				indexv : slideIndices.v,
+				indexf : slideIndices.f,
+				nextindexh : nextindexh,
+				nextindexv : nextindexv,
+				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
+			};
+
 			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
 		}
 
 		// Navigate to the current slide when the notes are loaded
 		notesPopup.addEventListener( 'load', function( event ) {
-			post('slidechanged');
+			post();
 		}, false );
 	}