@@ -210,6 +210,16 @@ function postProcess(code) {
210210 } ) ;
211211 //link should open in new window or tab
212212 result . find ( 'a:not([target])' ) . attr ( 'target' , '_blank' ) ;
213+ //update continue line numbers
214+ var linenumberdivs = result . find ( '.gutter.linenumber' ) . toArray ( ) ;
215+ for ( var i = 0 ; i < linenumberdivs . length ; i ++ ) {
216+ if ( $ ( linenumberdivs [ i ] ) . hasClass ( 'continue' ) ) {
217+ var startnumber = linenumberdivs [ i - 1 ] ? parseInt ( $ ( linenumberdivs [ i - 1 ] ) . find ( '> span' ) . last ( ) . attr ( 'data-linenumber' ) ) : 0 ;
218+ $ ( linenumberdivs [ i ] ) . find ( '> span' ) . each ( function ( key , value ) {
219+ $ ( value ) . attr ( 'data-linenumber' , startnumber + key + 1 ) ;
220+ } ) ;
221+ }
222+ }
213223 return result ;
214224}
215225
@@ -464,14 +474,14 @@ function highlightRender(code, lang) {
464474 } else if ( lang == 'flow' ) {
465475 return '<div class="flow-chart raw">' + code + '</div>' ;
466476 }
467- var reallang = lang . replace ( '=' , '' ) ;
477+ var reallang = lang . replace ( / \= $ | \= \d + $ | \= \+ $ / , '' ) ;
468478 var languages = hljs . listLanguages ( ) ;
469479 if ( languages . indexOf ( reallang ) == - 1 ) {
470480 var result = hljs . highlightAuto ( code ) ;
471481 } else {
472482 var result = hljs . highlight ( reallang , code ) ;
473483 }
474- var showlinenumbers = / \= $ | ( \d + ) $ / . test ( lang ) ;
484+ var showlinenumbers = / \= $ | \= \d + $ | \= \+ $ / . test ( lang ) ;
475485 if ( showlinenumbers ) {
476486 var startnumber = 1 ;
477487 var matches = lang . match ( / \= ( \d + ) $ / ) ;
@@ -482,7 +492,8 @@ function highlightRender(code, lang) {
482492 for ( var i = 0 ; i < lines . length - 1 ; i ++ ) {
483493 linenumbers [ i ] = "<span data-linenumber='" + ( startnumber + i ) + "'></span>" ;
484494 }
485- var linegutter = "<div class='gutter linenumber'>" + linenumbers . join ( '\n' ) + "</div>" ;
495+ var continuelinenumber = / \= \+ $ / . test ( lang ) ;
496+ var linegutter = "<div class='gutter linenumber" + ( continuelinenumber ? " continue" : "" ) + "'>" + linenumbers . join ( '\n' ) + "</div>" ;
486497 result . value = "<div class='wrapper'>" + linegutter + "<div class='code'>" + result . value + "</div></div>" ;
487498 }
488499 return result . value ;
@@ -541,7 +552,7 @@ md.renderer.rules.fence = function (tokens, idx, options, env, self) {
541552 }
542553
543554 langName = Remarkable . utils . escapeHtml ( Remarkable . utils . replaceEntities ( Remarkable . utils . unescapeMd ( fenceName ) ) ) ;
544- langClass = ' class="' + langPrefix + langName . replace ( '=' , '' ) + ' hljs"' ;
555+ langClass = ' class="' + langPrefix + langName . replace ( / \= $ | \= \d + $ | \= \+ $ / , '' ) + ' hljs"' ;
545556 }
546557
547558 if ( options . highlight ) {
0 commit comments