суббота, 22 сентября 2007 г.

Несколько примочек для Blogger

1. Вставка кода
Наверное, все современные форумы поддерживают тег [code][/code], позволяющий размещать в своих сообщениях блоки кода. В Blogger такой возможности нет. Я реализовал ее следующим образом:
В шаблоне, где описываются все стили (между тегами <b:skin><![CDATA[ и ]]></b:skin>) вставляем
pre.my_code_box {
border: 1px solid #aaaaaa;
overflow: auto;
padding: 10px;
font-family: courier new;
}
Теперь, чтобы выделить какой-нибудь текст как код, окружите его тегами <pre class="my_code_box"></pre> (естественно, в режиме "Изменить Html").

Update 07.12.2008:
Относительно вопроса подсветки синтаксиса: могу порекомендовать статью Highlighting thoughts, в которой автор рассмотрел различные подходы к решению данной проблемы.



2. Читать полностью...
Если хотите использовать "свертывание" статьи в ссылку "Читать полностью...", пропишите за тегом ]]></b:skin>, но в пределах <head> строки
<b:if cond='data:blog.pageType == "item"'>
<style>span.fullpost {display:inline;}</style>
<b:else/>
<style>span.fullpost {display:none;}</style>
</b:if>
Теперь перейдите в "расширенный" режим редактирования шаблона и найдите в нем тег <data:post.body/>. Сразу после него ставим
<b:if cond='data:blog.pageType != "item"'>
<br/><a expr:href='data:post.url'>Читать полностью...</a>
</b:if>
Свертываемую часть сообщения надо заключить в тэг <span class=fullpost></span>.


3. Облако тегов
То, как его сделать, описано тут.


4. Вставка в текст сообщения специальных символов
Если в тексте вашего сообщения содержатся специальные символы (к примеру, при вставке кода), то для того, чтобы они отображались так, как вы хотите, их нужно экранировать. Для этого замените следующие символы указанными последовательностями:
& - &#38;
< - &#60;
> - &#62;
" - &#34;

Вставлять их нужно в режиме "Изменить Html" и после этого не переключать режимы, иначе Blogger "забудет" о том, что вы их экранировали.

16 комментариев:

f1ufx комментирует...

использовал пункт 2.
ты до этого сам дошёл, или где то нашёл?
странно, что блогспот не предоставил этой стольнужной функции в нормальной форме.
спасибо за эту информацию. наверное надо былобы добавить в справку блогспота... )

щас пробую вести свой блог на блогспот.
пока что очень многое не нравится... =\

Конищев Дмитрий комментирует...

Нет, дошел не сам. Где-то наткнулся.
В справке это есть - http://help.blogger.com/bin/answer.py?hl=en&answer=42215

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

Dr.AKULAvich комментирует...

Дельная статья. Накомбинировал в свой блог с миру по нитке :)

oddmin комментирует...

А как быть с короткими заметками?

Получается, то "читать полностью" появляется после каждого поста, даже если он маленький и смысла его сворачивать нет.
И это раздражает читателей, они нажимают читать полностью, а там ничего нет :)
Как-то можно принудительно убрать это для нескольких постов?

Конищев Дмитрий комментирует...

oddmin, не знаю. Наверное, можно, если разобраться, как писать подобные "расширения" для блоггера. Мне, честно говоря, тратить время на его изучение жалко, поэтому пользуюсь тем, что нашел.

P.S.: кроме того, что "Читать далее" отображается в маленьких постах, она еще плюс ко всему только скрывает содержимое поста под катом, т. е. загружаемая страница блога хоть и показывает только часть сообщений, но "весит" столько, как будто сообщения отображаются полностью.

sensor комментирует...

Спасибо за заметку "Вставка кода", использовал ее до того момента пока не нашел Syntax Highligter Widget на базе SyntaxHighlighter 1.5.1 , за что огоромное спасибо Carl Mason'у aka FaziBear.
По ссылке можно установить: http://fazibear.googlepages.com/blogger.html.
Как пользоваться по ссылке: http://code.google.com/p/syntaxhighlighter/wiki/Usage
Попробуйте думаю понравиться.

Конищев Дмитрий комментирует...

sensor, спасибо за ссылку. Правда пока что мне этот виджет не подходит, т. к. он не подсвечивает Bash скрипты, которые я тут в основном выкладываю. Буду надеяться, что в будущем авторы расширят список поддерживаемых языков.

Камков Вячеслав комментирует...

Взгляните на вторую версию SyntaxHighlighter, теперь и Bash скрипты подсвечиваются. Вот список поддерживаемых форматов http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes

Конищев Дмитрий комментирует...

Камков Вячеслав, спасибо за наводку. Буду вставлять код в блог - обязательно присмотрюсь к этой штуке.

Sergei комментирует...

Добрый день.
Сделал Вашу "Читать полностью", но почемето не получилось,не подскажете...:http://sergei-globus-ks.blogspot.com/

С уважением Сергей
sergeikobinskijj@yandex.ru

Конищев Дмитрий комментирует...

Sergei, а вот это вы сделали?
> Свертываемую часть сообщения надо заключить в тэг <span class=fullpost></span>.

Хотя, на самом деле, с недавнего времени оно уже не актуально - You Might As Well Jump!.

Sergei комментирует...

Все разобрался...Спасибо..

Сергей

Sergei комментирует...

Добрый день Константин.
Мой блог:http://globus-ks.blogspot.com/-я недавно веду и плохо разбираюсь.Подскажи пожалуйста почему когда я публикую новый пост у меня левая часть тоесть реклама и т.д. все становиться по центру и потом долго путем тыка устраняю свою неисправность то колличество материалов убавлю то прибавлю...
Спасибо

С уважением Сергей.

Sergey комментирует...

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

С уважением Сергей.
Сайт:http://globus-ks.blogspot.com/
sergeikobinskijj@yandex.ru

Конищев Дмитрий комментирует...

Ну что я могу сказать - значит вы что-то не так сделали (или просто не залогинились). Попробуйте по-внимательней.

Конищев Дмитрий комментирует...

А вообще лучше все-таки использовать вот этот метод. Т. к. это более правильное решение.