html自动识别语言,SyntaxHighlighter自动识别并加载脚本语言

伯茂才
2023-12-01

SyntaxHighlighter是一个使用JavaScript编写的支持多种编程语言语法高亮的JS插件,很多大型网站或博客都在使用。

SyntaxHighlighter插件默认是每种编程语言加载对应JS语言库,那么如何实现SyntaxHighlighter自动加载不同语言的JS语言库

SyntaxHighlighter官方已经给出了解决方案 shAutoloader.js 自动加载库;

在HTML文件中引用SyntaxHighlighter核心运行库

Hello SyntaxHighlighter

shCore.js     SyntaxHighlighter插件的核心运行库

shAutoloader.js   自动加载运行库要实现自动加载必须引入此文件

shCore.css     核心CSS样式

shCoreDefault.css  主题CSS样式

以上四个文件必须引用到文档中

需要高亮显示的代码请入在

代码如下:

Hello SyntaxHighlighter

Hello SyntaxHighlighter

 
 

function helloSyntaxHighlighter()

{

return "hi!";

}

中的 class="brush: js;"是根据显示代码语言而定

下面是实现SyntaxHighlighter自动加载的主要代码

function path(){

var args = arguments,

result = [];

for(var i = 0; i < args.length; i++)

result.push(args[i].replace('@', '/pub/sh/current/scripts/'));//请替换成自己项目中SyntaxHighlighter的具体路径

return result

};

SyntaxHighlighter.autoloader.apply(null, path(

'applescript@shBrushAppleScript.js',

'actionscript3 as3@shBrushAS3.js',

'bash shell@shBrushBash.js',

'coldfusion cf@shBrushColdFusion.js',

'cpp c@shBrushCpp.js',

'c# c-sharp csharp@shBrushCSharp.js',

'css@shBrushCss.js',

'delphi pascal@shBrushDelphi.js',

'diff patch pas@shBrushDiff.js',

'erl erlang@shBrushErlang.js',

'groovy@shBrushGroovy.js',

'java@shBrushJava.js',

'jfx javafx@shBrushJavaFX.js',

'js jscript javascript@shBrushJScript.js',

'perl pl@shBrushPerl.js',

'php@shBrushPhp.js',

'text plain@shBrushPlain.js',

'py python@shBrushPython.js',

'ruby rails ror rb@shBrushRuby.js',

'sass scss@shBrushSass.js',

'scala@shBrushScala.js',

'sql@shBrushSql.js',

'vb vbnet@shBrushVb.js',

'xml xhtml xslt html@shBrushXml.js'

));

SyntaxHighlighter.all();

以上就是实现SyntaxHighlighter自动识别语言并自动载语言库的代码,需要的同学可以测试下;

 类似资料: