SyntaxHighlighter自动识别并加载脚本语言 原创
SyntaxHighlighter是一个使用JavaScript编写的支持多种编程语言语法高亮的JS插件,很多大型网站或博客都在使用。
SyntaxHighlighter插件默认是每种编程语言加载对应JS语言库,那么如何实现SyntaxHighlighter自动加载不同语言的JS语言库
SyntaxHighlighter官方已经给出了解决方案shAutoloader.js自动加载库;
在HTML文件中引用SyntaxHighlighter核心运行库
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/> <title>HelloSyntaxHighlighter</title> <scripttype="text/javascript"src="scripts/shCore.js"></script> <scripttype="text/javascript"src="scripts/shAutoloader.js"></script> <linktype="text/css"rel="stylesheet"href="styles/shCore.css"rel="externalnofollow"rel="externalnofollow"/> <linktype="text/css"rel="stylesheet"href="styles/shCoreDefault.css"rel="externalnofollow"rel="externalnofollow"/> </head>
shCore.jsSyntaxHighlighter插件的核心运行库
shAutoloader.js自动加载运行库要实现自动加载必须引入此文件
shCore.css核心CSS样式
shCoreDefault.css主题CSS样式
以上四个文件必须引用到文档中
需要高亮显示的代码请入在<preclass="brush:js;"></pre>里
代码如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/>
<title>HelloSyntaxHighlighter</title>
<scripttype="text/javascript"src="scripts/shCore.js"></script>
<scripttype="text/javascript"src="scripts/shAutoloader.js"></script>
<linktype="text/css"rel="stylesheet"href="styles/shCore.css"rel="externalnofollow"rel="externalnofollow"/>
<linktype="text/css"rel="stylesheet"href="styles/shCoreDefault.css"rel="externalnofollow"rel="externalnofollow"/>
</head>
<body>
<h1>HelloSyntaxHighlighter</h1>
<preclass="brush:js;">
functionhelloSyntaxHighlighter()
{
return"hi!";
}
</pre>
<preclass="brush:js;">中的class="brush:js;"是根据显示代码语言而定
下面是实现SyntaxHighlighter自动加载的主要代码
<scriptlanguage="javascript">
functionpath(){
varargs=arguments,
result=[];
for(vari=0;i<args.length;i++)
result.push(args[i].replace('@','/pub/sh/current/scripts/'));//请替换成自己项目中SyntaxHighlighter的具体路径
returnresult
};
SyntaxHighlighter.autoloader.apply(null,path(
'applescript @shBrushAppleScript.js',
'actionscript3as3 @shBrushAS3.js',
'bashshell @shBrushBash.js',
'coldfusioncf @shBrushColdFusion.js',
'cppc @shBrushCpp.js',
'c#c-sharpcsharp @shBrushCSharp.js',
'css @shBrushCss.js',
'delphipascal @shBrushDelphi.js',
'diffpatchpas @shBrushDiff.js',
'erlerlang @shBrushErlang.js',
'groovy @shBrushGroovy.js',
'java @shBrushJava.js',
'jfxjavafx @shBrushJavaFX.js',
'jsjscriptjavascript @shBrushJScript.js',
'perlpl @shBrushPerl.js',
'php @shBrushPhp.js',
'textplain @shBrushPlain.js',
'pypython @shBrushPython.js',
'rubyrailsrorrb @shBrushRuby.js',
'sassscss @shBrushSass.js',
'scala @shBrushScala.js',
'sql @shBrushSql.js',
'vbvbnet @shBrushVb.js',
'xmlxhtmlxslthtml @shBrushXml.js'
));
SyntaxHighlighter.all();
</script>
以上就是实现SyntaxHighlighter自动识别语言并自动载语言库的代码,需要的同学可以测试下;
本文实例下载:SyntaxHighlighter自动识别并加载