Как использовать prettify с блоггером / blogspot? - PullRequest
56 голосов
/ 05 декабря 2009

Я использую blogger.com для размещения некоторых текстов по программированию, и я хотел бы использовать prettify (такой же как stackoverflow), чтобы красиво раскрасить образцы кода.

Как установить сценарии prettify в домен блога?
Было бы лучше (если это действительно возможно) ссылаться на общую копию где-нибудь?
У меня есть веб-пространство в другом домене. Это поможет?

Большое спасибо.

Ответы [ 10 ]

60 голосов
/ 15 декабря 2009

Когда вы делаете новую запись в блоггере, вы получаете возможность использовать HTML в своей записи и редактировать записи в блоге.

, введите http://blogger.com, затем войдите в систему, затем отправьте сообщения> Редактируйте сообщения> Изменить затем поместите это вверху:

<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js"></script>
<script type="text/javascript">
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(function() {
    prettyPrint();
});
</script>
<style type="text/css">
/* Pretty printing styles. Used with prettify.js. */

.str { color: #080; }
.kwd { color: #008; }
.com { color: #800; }
.typ { color: #606; }
.lit { color: #066; }
.pun { color: #660; }
.pln { color: #000; }
.tag { color: #008; }
.atn { color: #606; }
.atv { color: #080; }
.dec { color: #606; }
pre.prettyprint { padding: 2px; border: 1px solid #888; }

@media print {
  .str { color: #060; }
  .kwd { color: #006; font-weight: bold; }
  .com { color: #600; font-style: italic; }
  .typ { color: #404; font-weight: bold; }
  .lit { color: #044; }
  .pun { color: #440; }
  .pln { color: #000; }
  .tag { color: #006; font-weight: bold; }
  .atn { color: #404; }
  .atv { color: #060; }
}
</style>

Обратите внимание, что вы не должны использовать prettyPrint напрямую в качестве обработчика событий, это его смущает (см. readme для подробной информации). Вот почему мы передаем addLoadEvent функцию, которая затем поворачивается и вызывает prettyPrint.

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

затем добавьте тег <code> или тег с именем класса "prettyprint", вы даже можете указать язык, подобный этому "prettyprint lang-html"

так это может выглядеть вот так

<code><pre class="prettyprint lang-html">
<!-- your code here-->

или как это

<code class="prettyprint lang-html">
<!-- your code here-->
</code>

код, который вы вводите, должен быть очищен от HTML <и> Для этого просто вставьте свой код здесь: http://www.simplebits.com/cgi-bin/simplecode.pl

вы можете поместить верхний код в макет HTML, чтобы он включался по умолчанию для всех страниц, если хотите.

обновление Теперь вы можете связать CSS-файлы в блоггере, так что добавления этого к <head> должно быть достаточно

<link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js"></script>
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded',function() {
        prettyPrint();
    });
</script>

Я решил не заменять событие body onload нарочно, вместо этого я использую новое событие DOMContentLoaded, которое старые браузеры не поддерживают, если вам нужна поддержка старого браузера, вы можете использовать любое другое событие загрузки для запуска prettyPrint например jQuery:

jQuery(function($){
    prettyPrint();
});

или, предположительно, наименьшее количество в истории

и все готово:)

Edit:

, как указано Lim H в комментариях, в случае, если вы используете динамические представления блоггера (шаблоны ajax), вам необходимо использовать описанный здесь метод для привязки пользовательского javascript: prettyPrint ( ) не вызывается при загрузке страницы

Обновление 2017-06-04

Используйте руководство здесь https://github.com/google/code-prettify

В основном просто используйте это:)

<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.min.js"></script>
<pre class="prettyprint"><code class="language-css">...
41 голосов
/ 23 апреля 2010

У меня сразу сработало следующее.

  • Перейти к Blogger> Макет> Изменить HTML
  • Скопируйте следующий фрагмент и вставьте его сразу после <head> в поле «Редактировать шаблон»:

сниппет:

<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/>
<script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'></script>
  • После </head> заменить <body> на <body onload='prettyPrint()'>
  • Нажмите «СОХРАНИТЬ ШАБЛОН»
  • Перейти к Blogger> Опубликовать> Новое сообщение
  • Убедитесь, что вы редактируете HTML, нажав «Редактировать HTML». В пустом поле попробуйте:

<pre class="prettyprint">int foo=0; NSLog(@"%i", foo); </pre>

  • Обратите внимание: если вы нажмете «Предварительный просмотр», вы увидите этот код только черным цветом. Не беспокойся (пока).
  • Нажмите «ОПУБЛИКОВАТЬ», а затем «ПОСМОТРЕТЬ БЛОГ». Ваш код должен быть предварительно подтвержден.
15 голосов
/ 25 мая 2013

В настоящее время в Google-Code-Prettify есть скрипт автозагрузки. Вы можете загрузить JavaScript и CSS для предварительного преобразования через один URL.

Добавьте скрипт в раздел <head> вашего шаблона Blogger, и он будет работать со всеми вашими сообщениями:

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>

Подробнее здесь: http://code.google.com/p/google-code-prettify/wiki/GettingStarted

6 голосов
/ 20 декабря 2014

Очень просто добавить префикс-кодировщик Google в ваш блоггер.

просто включите приведенную ниже библиотеку javascript в свой блоггер непосредственно перед тегом.

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>

как на картинке ниже ...

enter image description here

Теперь вы успешно добавили префтификатор кода Google в своем блоггере.

Теперь, если вы хотите вставить код в ваше сообщение блоггера, добавьте код (html, css, php и т. Д.), А затем вставьте этот код между тегами ....

<code> <pre class="prettyprint">...

или

<code class="prettyprint">...</code>

Демонстрация Google Prettify в Blogger

Также, пожалуйста, обратитесь к этой документации для добавления этого префтификатора Google к блоггеру по следующей ссылке.

как добавить подсветку синтаксиса для Blogger с помощью Google Prettify

3 голосов
/ 06 декабря 2009

Посмотрите на SyntaxHightlighter на http://alexgorbatchev.com/wiki/SyntaxHighlighter На этом сайте вы также можете найти инструкции по его использованию на blogger.com, и сайт предлагает размещенную версию необходимых сценариев, поэтому вам не нужно размещать файлы где-то самостоятельно.

2 голосов
/ 02 января 2010

Другим решением является использование библиотеки сценариев Java syntaxhighlighter 2.0. Я использовал это в своем блоге, и это, кажется, работает довольно хорошо.

Вот пост об этом:

http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html текст ссылки

Приветствие.

1 голос
/ 04 февраля 2017

cdnjs, предоставляющий библиотеку " SyntaxHighlighter "

добрался до blogger >> template >> отредактируйте шаблон добавьте приведенный ниже код перед окончанием тега body и сохраните шаблон.
Я привел пример для Python.
Вы можете связать файлы скриптов на других языках из cdnjs. код подсветки синтаксиса

<code><pre class="brush: py">
    print("hello world")

для других языков перейдите и скопируйте скрипт: https://cdnjs.com/libraries/SyntaxHighlighter

enter image description here

<!-- syntax highlighter-->
<link href='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css' rel='stylesheet'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js'/>
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shAutoloader.min.js'/>
<!-- for python -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPython.min.js'/>
<!-- include other languages like javascript, php -->
<script language='javascript'> 
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all(); 
</script>
1 голос
/ 05 декабря 2009

Не прямой ответ на ваш вопрос, но стоит рассмотреть GitHub . Вы можете получить бесплатную учетную запись и получить синтаксис "gists" , которым вы можете поделиться и разместить на своей веб-странице.

Недостатком является то, что копия размещена на сайте Github, и если она не работает, то она тоже для вас.

0 голосов
/ 20 февраля 2018

Перейдите в раздел темы блоггера и нажмите «Изменить HTML». Затем добавьте Google Prettify CDN в заголовок HTML.

https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js'/>

Затем добавьте тему для фрагмента кода ниже этого сценария. Я включил тему Пустыни.

<!--Desert theme-->
<style type='text/css'>pre .atn,pre .kwd,pre .tag{font-weight:700}pre.prettyprint{display:block;background-color:#333}pre .nocode{background-color:none;color:#000}pre .str{color:#ffa0a0}pre .kwd{color:khaki}pre .com{color:#87ceeb}pre .typ{color:#98fb98}pre .lit{color:#cd5c5c}pre .pln,pre .pun{color:#fff}pre .tag{color:khaki}pre .atn{color:#bdb76b}pre .atv{color:#ffa0a0}pre .dec{color:#98fb98}ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}@media print{pre.prettyprint{background-color:none}code .str,pre .str{color:#060}code .kwd,pre .kwd{color:#006;font-weight:700}code .com,pre .com{color:#600;font-style:italic}code .typ,pre .typ{color:#404;font-weight:700}code .lit,pre .lit{color:#044}code .pun,pre .pun{color:#440}code .pln,pre .pln{color:#000}code .tag,pre .tag{color:#006;font-weight:700}code .atn,pre .atn{color:#404}code .atv,pre .atv{color:#060}}</style>

Для получения дополнительной темы посетите здесь .. Обновление тем

Когда вы создаете сообщение, измените режим редактирования с визуального на HTML и перейдите к месту, где вы собираетесь добавить фрагмент кода. Затем включите код, подобный этому.

<pre class="prettyprint">
  <code class="language-html">
      <!-- your code snippet -->
  

Вы можете изменить стиль кода, выбрав соответствующие языки html, css, php, javascript ... Здесь я использовал html фрагмент кода.

0 голосов
/ 30 января 2014

Здесь - это решение, которое работает для меня. Поместите в <head>...</head> динамический блоггер HTML:

<script>
$(window.blogger.ui()).on('viewitem', function (event, post, element) {
    prettyPrint();
});
</script>
...