среда, 27 мая 2009 г.

Подсветка синтаксиса в блоге на Blogspot.com

Здесь мы будем использовать SyntaxHighlighter http://code.google.com/p/syntaxhighlighter/.

Для того, чтобы в своём блоге сделать подсветку синтаксиса HTML, CSS, C++, Delphi, C#, Java, SQL и прочего кода, делаем следующее:

Открываем свой блог Заходим в Настройки -> Макет -> Изменить Html и вставляем между закрывающими тэгами </body> и </html> следующий код:


</body>

<link href='http://8296241635750553491-a-1802744773732722657-s-sites.googlegroups.com/site/syntaxhighlightersite/Home/SyntaxHighlighter.css' rel='stylesheet' type='text/css'/>

<-- подключаем модули для языков, которые собираемся подсвечивать -->
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushXml.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushDelphi.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPhp.js'/>
<script language='javascript' src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushSql.js'/>

<script language='javascript'>
dp.SyntaxHighlighter.ClipboardSwf = 'http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/clipboard.swf';
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</script>

</html>


Сохраняем макет. Переходим в тело сообщения и оформляем наш код (который нужно подсветить) следующим образом:

<pre name="code" class="!Название языка программирования!">
</pre>

Где !Название языка программирования! - один из следующих вариантов:

Язык Названия
C++ cpp, c, c++
C# c#, c-sharp, csharp
CSS css
Delphi delphi, pascal
Java java
Java Script js, jscript, javascript
PHP php
Python py, python
Ruby rb, ruby, rails, ror
Sql sql
VB vb, vb.net
XML/HTML xml, html, xhtml, xslt


Поддержка каждого языка реализована в отдельном js-файле. Его необходимо подключить в шаблоне (как показано выше), если вы планируете подсвечивать синтаксис этого языка.
Полный список языковых модулей здесь:
http://code.google.com/p/syntaxhighlighter/source/browse/trunk/#trunk/Scripts.

Пример оформления JavaScript-кода:

<pre name="code" class="js">
function AllEmptyValidator(source, clientside_arguments)
{
var tbl = document.getElementById("tbl_" + source.id);
var elements = tbl.getElementsByTagName("input");
for(var i = 0; i > elements.length; i++)
{
if(elements[i].value.length > 0)
{
clientside_arguments.IsValid = true;
return;
}
}

//default - all are empty, it is not valid
clientside_arguments.IsValid = false;
}
</pre>

Результат:


function AllEmptyValidator(source, clientside_arguments)
{
var tbl = document.getElementById("tbl_" + source.id);
var elements = tbl.getElementsByTagName("input");
for(var i = 0; i > elements.length; i++)
{
if(elements[i].value.length > 0)
{
clientside_arguments.IsValid = true;
return;
}
}

//default - all are empty, it is not valid
clientside_arguments.IsValid = false;
}

Комментариев нет: