Синтаксис 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. Ничего не работает.
И я не вставляю код в составную часть:)
Я очень смущен, поэтому любая помощь будет чрезвычайно оценена.
Ответы
Ответ 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>
Ответ 3
Опубликуйте свои фрагменты в gisthub и вставьте, как youtube video (скопируйте код вложения HTML
![enter image description here]()
и вставьте в свой пост). Вуаля! (любезность изображения http://www.restlessprogrammer.com/2013/02/adding-code-snippets-to-your-blog.html)
Ответ 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, подсветка не будет работать.