30 января 2011 г.

27 января 2011 г.

как изменить скрипт удаления тегов

Есть скрипт для Blogger. Он берёт текст статьи, выкидывает все HTML теги и добавляет картинку изменённого размера из первой картинки сообщения.
Потом текст обрезается и получается анонс статьи.
Использую в блоге для вывода анонса статьи на главной странице http://ivsnow.blogspot.ru
Нужно переделать его так, чтобы остались теги со ссылками <a href...></a> и переноса строк <br>. А то какие то пустые анонсы статей получаются.
Похоже нужно модифицировать функцию  removeHtmlTag
Как это сделать?

Вот текст скрипта:
<script type='text/javascript'>var thumbnail_mode = &quot;no-float&quot; ; summary_noimg = 430; summary_img = 340; img_thumb_height = 100; img_thumb_width = 120; </script> <script type='text/javascript'> //<![CDATA[ function removeHtmlTag(strx,chop){ if(strx.indexOf("<")!=-1) { var s = strx.split("<"); for(var i=0;i<s.length;i++){ if(s[i].indexOf(">")!=-1){ s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length); } } strx = s.join(""); } chop = (chop < strx.length-1) ? chop : strx.length-2; while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; strx = strx.substring(0,chop-1); return strx+'...'; } function createSummaryAndThumb(pID){ var div = document.getElementById(pID); var imgtag = ""; var img = div.getElementsByTagName("img"); var summ = summary_noimg; if(img.length>=1) { imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>'; summ = summary_img; } var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>'; div.innerHTML = summary; }Syhi-подсветка кода
Благодаря @Alex_Belov решение найдено. Найден сайт с аналогами PHP-шных функций на JScript - http://phpjs.org/functions/strip_tags:535. Используем функцию strip_tags(), которая удаляет все теги кроме указанных в качестве второго параметра.
В нашем случае это выглядит так:

<script type='text/javascript'>var thumbnail_mode = &quot;no-float&quot; ; summary_noimg = 430; summary_img = 340; img_thumb_height = 100; img_thumb_width = 120; </script> <script type='text/javascript'> //<![CDATA[ function createSummaryAndThumb(pID){ var div = document.getElementById(pID); var imgtag = ""; var img = div.getElementsByTagName("img"); var summ = summary_noimg; if(img.length>=1) { imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>'; summ = summary_img; } function strip_tags (input, allowed) {     // http://kevin.vanzonneveld.net     // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +   improved by: Luke Godfrey     // +      input by: Pul     // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +   bugfixed by: Onno Marsman     // +      input by: Alex     // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +      input by: Marc Palau     // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +      input by: Brett Zamir (http://brett-zamir.me)     // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +   bugfixed by: Eric Nagel     // +      input by: Bobby Drake     // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)     // +   bugfixed by: Tomasz Wesolowski     // +      input by: Evertjan Garretsen     // +    revised by: Rafal Kukawski (http://blog.kukawski.pl/)     // *     example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>');     // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'     // *     example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>');     // *     returns 2: '<p>Kevin van Zonneveld</p>'     // *     example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>");     // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'     // *     example 4: strip_tags('1 < 5 5 > 1');     // *     returns 4: '1 < 5 5 > 1'     // *     example 5: strip_tags('1 <br/> 1');     // *     returns 5: '1  1'     // *     example 6: strip_tags('1 <br/> 1', '<br>');     // *     returns 6: '1  1'     // *     example 7: strip_tags('1 <br/> 1', '<br><br/>');     // *     returns 7: '1 <br/> 1'            allowed = (((allowed || "") + "")               .toLowerCase()               .match(/<[a-z][a-z0-9]*>/g) || [])               .join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)            var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,                commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;            return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1){               return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';            });         } function removeHtmlTag2(strx,chop){ if(strx.indexOf("<")!=-1) { var strx = strip_tags (strx, '<br><a></a><br />'); } chop = (chop < strx.length-1) ? chop : strx.length-2; while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++; strx = strx.substring(0,chop-1); return strx+'...'; } var summary = imgtag + '<div>' + removeHtmlTag2(div.innerHTML,summ) + '</div>'; div.innerHTML = summary; }Syhi-подсветка кода

24 января 2011 г.

Информер на безе Yahoo Pipes


В связи с участием нашей твитерянки @pargina в конкурсе "Мисс Пресс-служба" http://miss.press-service.ru/members/top10/ потребовалось оперативно сделать для сайта http://twivanovo.ru информер, который брал бы со страницы с результатами текущее значение проголосовавших за Елену Паргину и её основную конкурентку Туяру Мамаеву.
Пришло в голову воспользоваться возможностями Yahoo Pipes по созданию из фрагмента сайта потока. Использовался инструмент Fetch Page
Быстренько был создан вот такой pipe - http://pipes.yahoo.com/pipes/pipe.info?_id=225a33ade66a86342d6d15c742180cd4
Собственно можно его посмотреть.

Для вывода на страницу сайта использовался такой скрипт:

<script src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js">
    {
        "pipe_id" : "225a33ade66a86342d6d15c742180cd4",
         "height" : "380px",
                "width" : "600px",
                "border" : "1px solid #999",
                "containerPadding" : "10px"
    }
</script>Syhi-подсветка кода

22 января 2011 г.

интернет журнал сделанный на картах Google

http://zkimmer.com/Space/LA/2007/December/

интересно реализованный через использование API Google Maps способ публикации журнала.

21 января 2011 г.

Как выделить исходный код программы при вставке его в Blogger

http://mlawire.blogspot.com/2009/07/blogger-syntax-highlighting.html
http://alexgorbatchev.com/SyntaxHighlighter/
http://geektalkin.blogspot.com/2009/11/embed-code-syntax-highlighting-in-blog.html
http://cfrogprog.blogspot.com/2010/07/blog-post_30.html

Вот неплохой вариант:
http://dremlin.blogspot.com/2009/09/syntax-highlighter.html

Но самый простой вариант, с установкой виджета в шаблон Blogger:
http://dremlin.blogspot.com/2009/09/syntax-highlighter-widget-blogger.html

Щелкнуть по ссылке –> Добавить на страницу виджет –> Установить виджет –> Использовать.
Наука по использованию возможностей виджета - очень простая. Любой текст, помещенный в теги:

<pre class="тип_хайлайтера" name="code">
... Какой-то код, соответствующий типу хайлайтера ...
</pre>
или
<textarea name="code" class="тип_хайлайтера" cols="60" rows="10">
... Какой-то код, соответствующий типу хайлайтера ...
</textarea>



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


Подробности использования здесь, типы хайлайтеров здесь.

Редактор блогов Windows Live 2011

Тестирую новый Ужасный редактор от Microsoft

Редактор блогов Windows Live 2011

http://explore.live.com/windows-live-writer?os=other
по их словам:

Редактор блогов стал эффективнее

Редактор блогов Windows Live предоставляет каждому пользователю возможность составлять рассказы, как профессиональный блогер. Можно создавать прекрасные записи блога и смотреть, как они выглядят, прежде чем публиковать их. Кроме того, блог можно опубликовать в избранной службе ведения блогов, такой как WordPress, Blogger, LiveJournal и многие другие.
Посмотрим…
Вставка карты
По умолчанию умеет вставлять карты ТОЛЬКО от их Bing .
Это и понятно. Это продукт «Microsoft».
Изображение карты

Куча вариантов смайликов 


Собака Схожу с ума от злости Черный баран Пришелец Шучу

Вот так работает дополнительный модуль вставки программного кода:



<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'/>
<!-- add brushes here -->
<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>




<div style="float:left;padding:4px;">
<a href='http://twitter.com/share' rel='nofollow' class='twitter-share-button' expr:data-url='data:post.url' expr:data-text='data:post.title' data-related='ebloggertricks:Tips and Tricks for Blogger' data-count='vertical' data-via='' data-lang='en'>Tweet</a>

<b:if cond='data:post.isFirstPost'>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js">
</script>
</b:if>
</div>


Вставка скриншота сайта:




Вложение файла.


Куда он его запузырил я сразу и не понял. Оказывается куда то на http://lh3.ggpht.com. Сколько он там пролежит мне неизвестно.


Как вставить кнопку Twetter Share в блог на Blogger

Захотел в свой блог на Blogger добавить в начало каждого поста официальную кнопку от Твиттера, чтобы можно было оперативно отправить в Твиттер ссылку на статью.

Для этого:

1. Входим в Панель инструментов Blogger  идём в меню Дизайн -> Изменить HTML
2. Включаем  чекбокс с надписью „Расширить шаблоны виджета”
3. Ищем в коде шаблона (Ctrl + F) строку 
<data:post.body/>

и сразу после неё вставляем следующий код



<div style="float: left; padding: 4px;">
<a class="twitter-share-button" data-count="vertical" data-lang="en"  
data-related="related text" data-via="имя_в_Твиттере" expr:data-text="data:post.title" 
expr:data-url="data:post.url" href="http://twitter.com/share" rel="nofollow">Tweet</a>
<br /> <b:if cond="data:post.isFirstPost"><br /> 
<script src="http://platform.twitter.com/widgets.js" type="text/javascript"> </script>
<br /> </b:if><br />
</div>

Жмём кнопку Сохранить шаблон
Не забудьте в параметре data-via="имя в Твиттере'' вписать свой аккаунт в твиттере

Дополнительные параметры:

1. Выравнивание кнопки. Если в строке
<div style="float:left;padding:4px;">


float:right заменить на float:left то кнопка будет выравниваться не по правому краю сообшения, а по левому. В некоторых шаблонах это бывает удобнее.


2. Тип кнопки: data-count='vertical' -  можно заменить на  data-count='horizontal' или data-count='none'

Ссылки по теме: