@@ -435,6 +435,33 @@ function finishView(view) {
435435 height : '400px'
436436 } ) ;
437437 } ) ;
438+ //syntax highlighting
439+ view . find ( "pre.raw" ) . removeClass ( "raw" )
440+ . each ( function ( key , value ) {
441+ var langDiv = $ ( value ) . find ( 'code.hljs' ) ;
442+ if ( langDiv . length > 0 ) {
443+ var reallang = langDiv [ 0 ] . className . replace ( 'hljs' , '' ) . trim ( ) ;
444+ var codeDiv = $ ( value ) . find ( '.code' ) ;
445+ var code = "" ;
446+ if ( codeDiv . length > 0 ) code = codeDiv . html ( ) ;
447+ else code = langDiv . html ( ) ;
448+ code = md . utils . unescapeAll ( code ) ;
449+ if ( reallang == "tiddlywiki" || reallang == "mediawiki" ) {
450+ var result = {
451+ value : Prism . highlight ( code , Prism . languages . wiki )
452+ } ;
453+ } else {
454+ var languages = hljs . listLanguages ( ) ;
455+ if ( languages . indexOf ( reallang ) == - 1 ) {
456+ var result = hljs . highlightAuto ( code ) ;
457+ } else {
458+ var result = hljs . highlight ( reallang , code ) ;
459+ }
460+ }
461+ if ( codeDiv . length > 0 ) codeDiv . html ( result . value ) ;
462+ else langDiv . html ( result . value ) ;
463+ }
464+ } ) ;
438465 //render title
439466 document . title = renderTitle ( view ) ;
440467}
@@ -772,19 +799,9 @@ function highlightRender(code, lang) {
772799 } else if ( lang == 'mermaid' ) {
773800 return '<div class="mermaid raw">' + code + '</div>' ;
774801 }
775- var reallang = lang . replace ( / \= $ | \= \d + $ | \= \+ $ / , '' ) ;
776- if ( reallang == "tiddlywiki" || reallang == "mediawiki" ) {
777- var result = {
778- value : Prism . highlight ( code , Prism . languages . wiki )
779- } ;
780- } else {
781- var languages = hljs . listLanguages ( ) ;
782- if ( languages . indexOf ( reallang ) == - 1 ) {
783- var result = hljs . highlightAuto ( code ) ;
784- } else {
785- var result = hljs . highlight ( reallang , code ) ;
786- }
787- }
802+ var result = {
803+ value : code
804+ } ;
788805 var showlinenumbers = / \= $ | \= \d + $ | \= \+ $ / . test ( lang ) ;
789806 if ( showlinenumbers ) {
790807 var startnumber = 1 ;
@@ -878,7 +895,7 @@ md.renderer.rules.fence = function (tokens, idx, options, env, self) {
878895 return highlighted + '\n' ;
879896 }
880897
881- return '<pre><code' + self . renderAttrs ( token ) + '>'
898+ return '<pre class="raw" ><code' + self . renderAttrs ( token ) + '>'
882899 + highlighted
883900 + '</code></pre>\n' ;
884901} ;
0 commit comments