aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2019-03-11 16:12:25 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2019-03-11 16:12:33 +0100
commitda53b3a637ff0e680469ad18ac20ef50cfb4334a (patch)
treed60674ae17e0fb52c0b002958c3cb45f905ad8d9
parent8690858b6f314fe56942dc2cdd9cc6984f43b830 (diff)
downloadfreenode-live-2017-presentation-da53b3a637ff0e680469ad18ac20ef50cfb4334a.tar
freenode-live-2017-presentation-da53b3a637ff0e680469ad18ac20ef50cfb4334a.tar.gz
validate code line numbers to highlight
-rw-r--r--plugin/highlight/highlight.js19
1 files changed, 12 insertions, 7 deletions
diff --git a/plugin/highlight/highlight.js b/plugin/highlight/highlight.js
index 49ef64b..30fe947 100644
--- a/plugin/highlight/highlight.js
+++ b/plugin/highlight/highlight.js
@@ -115,18 +115,23 @@ var RevealHighlight = (function() {
linesToHighlight = linesToHighlight || block.getAttribute( 'data-line-numbers' );
- if( typeof linesToHighlight === 'string' ) {
+ if( typeof linesToHighlight === 'string' && linesToHighlight !== '' ) {
linesToHighlight.split( ',' ).forEach( function( lineNumbers ) {
- lineNumbers = lineNumbers.split( '-' )
+ // Ensure that we looking at a valid slide number (1 or 1-2)
+ if( /^[\d-]+$/.test( lineNumbers ) ) {
- var lineStart = lineNumbers[0];
- var lineEnd = lineNumbers[1] || lineStart;
+ lineNumbers = lineNumbers.split( '-' )
- [].slice.call( block.querySelectorAll( 'table tr:nth-child(n+'+lineStart+'):nth-child(-n+'+lineEnd+')' ) ).forEach( function( lineElement ) {
- lineElement.classList.add( 'highlight-line' );
- } );
+ var lineStart = lineNumbers[0];
+ var lineEnd = lineNumbers[1] || lineStart;
+
+ [].slice.call( block.querySelectorAll( 'table tr:nth-child(n+'+lineStart+'):nth-child(-n+'+lineEnd+')' ) ).forEach( function( lineElement ) {
+ lineElement.classList.add( 'highlight-line' );
+ } );
+
+ }
} );