Мой ответ касается последней версии SyntaxHighlighter на момент написания, которая является версией 3.0.83.
У меня также была эта проблема, а затем я попробовал альтернативный синтаксис для функции autoloader
и это работало для меня даже с относительными путями.Пожалуйста, поместите следующий код внизу вашей страницы ниже все ваши <pre>
теги:
<script type="text/javascript" src="js/shCore.js"></script>
<script type="text/javascript" src="js/shAutoloader.js" ></script>
<script type="text/javascript">
SyntaxHighlighter.autoloader(
['js','jscript','javascript','js/shBrushJScript.js'],
['bash','shell','js/shBrushBash.js'],
['css','js/shBrushCss.js'],
['xml','js/shBrushXml.js'],
['sql','js/shBrushSql.js'],
['php','js/shBrushPhp.js']
);
SyntaxHighlighter.all();
</script>
Обратите внимание, что документация об альтернативном синтаксисе на сайте SyntaxHighlighterздесь в настоящее время неправильно .Он предполагает, что вы помещаете массив в массив, а также что вы должны использовать полные пути.Оба являются вводящими в заблуждение утверждениями, потому что следующее не работает и не выдается никакой ошибки:
SyntaxHighlighter.autoloader([ [ 'alias1', 'alias2', '/full/path/to/brush.js' ] ])
Правда в том, что для использования альтернативного синтаксиса, который вы только что поместили в серию массивов (родительский массив не требуется!), так же, как и может иметь относительные или абсолютные пути:
SyntaxHighlighter.autoloader([ 'alias1', 'alias2', 'path/to/brush.js' ], [ 'alias1', 'alias2', 'path/to/brush2.js' ]),
Кроме того, я должен отметить, что у меня возникла проблема с использованием незавершенной версии SyntaxHighlighter (файл под src
папка в комплекте с SyntaxHighlighter).Он запрашивал библиотеку XRegExp
, которую можно скачать здесь: http://xregexp.com/. Однако, даже после включения этой библиотеки (которая по какой-то причине не должна быть включена в уменьшенную версию -очень странно я знаю!) код все равно выкидывал ошибки.Таким образом, я использовал минимизированную версию (доступную в каталоге scripts
) без проблем.
Чтобы завершить этот ответ, вот мой полностью рабочий код автозагрузчика SyntaxHighlighter:
<code><!DOCTYPE>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Hello SyntaxHighlighter</title>
<link type="text/css" rel="stylesheet" href="styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="styles/shThemeDefault.css"/>
</head>
<body style="background: white; font-family: Helvetica">
<h1>Hello SyntaxHighlighter</h1>
<pre class="brush: js;">
function helloSyntaxHighlighter()
{
return "hi!";
}