Преглед на файлове

Merge branch 'sort_fragments' of https://github.com/jaberg/reveal.js into dev

Hakim El Hattab преди 13 години
родител
ревизия
25f26bdc15
променени са 1 файла, в които са добавени 31 реда и са изтрити 1 реда
  1. 31 1
      js/reveal.js

+ 31 - 1
js/reveal.js

@@ -142,6 +142,31 @@ var Reveal = (function(){
 			threshold: 80
 		};
 
+    /**
+     * Return a sorted fragments list, ordered by an increasing "fragment-pos" attribute.
+     *
+     * Fragments will be revealed in the order that they are returned by
+     * this function, so you can use "fragment-pos" attributes to control
+     * the order of fragment appearance.
+     *
+     * To maintain a sensible default fragment order, fragments are presumed
+     * to be passed in document order. This function adds a "fragment-pos"
+     * attribute to each node if such an attribute is not already present,
+     * and sets that attribute to an integer value which is the position of
+     * the fragment within the fragments list.
+     *
+     */
+    function sort_fragments( fragments ) {
+        var a = toArray(fragments)
+        a.forEach( function (el, idx) {
+                if (!el.hasAttribute('fragment-pos')) {
+                    el.setAttribute('fragment-pos', idx) }})
+        a.sort(function(l, r) {
+                return l.getAttribute( 'fragment-pos' )
+                       - r.getAttribute( 'fragment-pos') })
+        return a
+    }
+
 	/**
 	 * Starts up the presentation if the client is capable.
 	 */
@@ -1022,6 +1047,7 @@ var Reveal = (function(){
 		// Show fragment, if specified
 		if( typeof f !== 'undefined' ) {
 			var fragments = currentSlide.querySelectorAll( '.fragment' );
+                        fragments = sort_fragments(fragments)
 
 			toArray( fragments ).forEach( function( fragment, indexf ) {
 				if( indexf < f ) {
@@ -1393,6 +1419,7 @@ var Reveal = (function(){
 		// Vertical slides:
 		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
 			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
+                        verticalFragments = sort_fragments(verticalFragments)
 			if( verticalFragments.length ) {
 				verticalFragments[0].classList.add( 'visible' );
 
@@ -1404,6 +1431,7 @@ var Reveal = (function(){
 		// Horizontal slides:
 		else {
 			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
+                        horizontalFragments = sort_fragments(horizontalFragments)
 			if( horizontalFragments.length ) {
 				horizontalFragments[0].classList.add( 'visible' );
 
@@ -1428,6 +1456,7 @@ var Reveal = (function(){
 		// Vertical slides:
 		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
 			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
+                        verticalFragments = sort_fragments(verticalFragments)
 			if( verticalFragments.length ) {
 				verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
 
@@ -1439,6 +1468,7 @@ var Reveal = (function(){
 		// Horizontal slides:
 		else {
 			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
+                        horizontalFragments = sort_fragments(horizontalFragments)
 			if( horizontalFragments.length ) {
 				horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
 
@@ -1949,4 +1979,4 @@ var Reveal = (function(){
 		}
 	};
 
-})();
+})();

PANIC: session(release): write data/sessions/9/e/9eee219223a1d750: no space left on device

PANIC

session(release): write data/sessions/9/e/9eee219223a1d750: no space left on device
/my/cache/.heroku/go/go-path/pkg/mod/github.com/go-macaron/session@v1.0.3/session.go:204 (0xb13e07)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/context.go:80 (0x967b75)
/my/cache/.heroku/go/go-path/pkg/mod/github.com/go-macaron/inject@v0.0.0-20200308113650-138e5925c53b/inject.go:157 (0x9512ee)
/my/cache/.heroku/go/go-path/pkg/mod/github.com/go-macaron/inject@v0.0.0-20200308113650-138e5925c53b/inject.go:135 (0x951205)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/context.go:124 (0x967cc4)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/context.go:114 (0x967bf6)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/recovery.go:161 (0x15baec4)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/logger.go:40 (0x96b257)
/my/cache/.heroku/go/go-path/pkg/mod/github.com/go-macaron/inject@v0.0.0-20200308113650-138e5925c53b/inject.go:157 (0x9512ee)
/my/cache/.heroku/go/go-path/pkg/mod/github.com/go-macaron/inject@v0.0.0-20200308113650-138e5925c53b/inject.go:135 (0x951205)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/context.go:124 (0x967cc4)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/router.go:187 (0x972959)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/router.go:304 (0x973a01)
/my/cache/.heroku/go/go-path/pkg/mod/gopkg.in/macaron.v1@v1.5.1/macaron.go:218 (0x96c572)
/my/cache/.heroku/go/go1.26.3/go/src/net/http/server.go:3311 (0x85a5cd)
/my/cache/.heroku/go/go1.26.3/go/src/net/http/server.go:2073 (0x837f6f)
/my/cache/.heroku/go/go1.26.3/go/src/runtime/asm_amd64.s:1771 (0x493380)