Подтвердить что ты не робот

Синтаксис BloggerHighlighter не работает вообще

Я пытаюсь установить SyntaxHighlighter 3.0.83 на Blogger пару часов. Я пробовал много учебников, но он все еще не работает. Я имею в виду, что он выглядит так же, как обычный текст, вставленный в pre tag.

Я создал новый блог и вставил:

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css'     rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js'     type='text/javascript'></script>
<script language="javascript" type="text/javascript">
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>

... перед закрытием заголовка. Код, вставленный выше, был сгенерирован здесь: generator

Странно, что он работает в моем собственном html-документе. В качестве примера:

<html>
<head>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script language="javascript" type="text/javascript">
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all();
</script>
</head>
<body>
<pre class='brush:java;'>import gt.memorize;
public class Test
{
    private static final String test = "test";
}</pre>
</body>

</html>

Но тот же самый pre-тег не работает на blogger.

Я также пробовал вставлять

<script language="javascript" type="text/javascript">
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all();
</script>

в конце тела и вставки стилей в конце тега b: skin. Ничего не работает. И я не вставляю код в составную часть:) Я очень смущен, поэтому любая помощь будет чрезвычайно оценена.

4b9b3361

Ответ 1

У меня была та же проблема. Инструкции по настройке SyntaxHighlighter были достаточно легкими. И все учебники были более или менее сопоставимы, включая комментарий "на моем блоге он работает, если он не работает для вас, тогда вы должны что-то делать неправильно". Ничто не работало для меня, я не выделял.

Решением было перейти на другой шаблон Blogger. Он просто не работал с динамическим шаблоном, который я выбрал. Переход к простому шаблону сделал трюк. Теперь выделяется подсветка.

Кстати: в погоне за ошибками я также попробовал Prettify в качестве альтернативы. Это также не сработало. Похоже, что динамический шаблон сделал что-то, из-за чего оба синтаксиса выходили из строя.

Ответ 2

Для динамических просмотров содержимое после загрузки, кажется, загружается после script, который загружает процесс выделения синтаксиса. Вы можете обойти это:

<pre class="brush: js" title="test" id="sh3-123">
var f = function () {
    return 1;
};
</pre>

<script type="text/javascript">
// code snippet is loaded here, use SH3 API to highlight it
var element = document.getElementById('sh3-123');
SyntaxHighlighter.highlight(undefined, element);
</script>

Ответ 4

Как и у Стефана, я смог заставить его работать в моей учетной записи blogger, которая использует простой шаблон.

Я сделал это вот так:

1.Вставьте теги <link> и <script> для импорта файлов CSS и JS в <head>

2. Затем установите JS script, который инициализирует или вызывает маркер в <body>:

<script language="javascript">     
            SyntaxHighlighter.config.bloggerMode = true;
            SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
            SyntaxHighlighter.all(); 
</script>

Это единственный способ, которым я смог заставить его работать, причем # 2, как упоминалось Стефаном, вероятно, связано с проблемой начальной загрузки, поэтому нужно поместить его в тело. Вот мой пост в блоге, который использует это и успешно отображает Javascript

Ответ 5

Хотя на исходный вопрос ответил, я наткнулся на другую проблему, вызвав провал синтаксиса, и подумал, что может быть полезно, чтобы кто-то упомянул о решении здесь.

Я обнаружил, что предварительный просмотр blogger открывает сообщение с помощью https://по умолчанию, что заставляет все ссылки на страницы https. При использовании таблиц стилей из хоста alexgorbatchev, который вызывает отказ при их загрузке, поэтому подсветка не будет работать. Эти ошибки отображаются в консоли инструментов разработчика.

В настоящий момент эта проблема может появляться только в блогах под blogger domen, так как нет поддержки https с пользовательскими domens. Кроме того, общедоступный доступ с https отключен по умолчанию, поэтому в основном проблема с предварительным просмотром сообщений, с которой можно легко работать. Однако, если включен общедоступный доступ по https, подсветка не будет работать.