Нужно ли форматировать статус твиттера перед выводом его на веб-страницу? - PullRequest
1 голос
/ 12 июля 2011

Итак, я смотрел, как другие веб-страницы разобрались, и нашел http://www.phppennyauctiondemo.com/ (ниже аукционов есть часть обновлений в твиттере).

Перед тем как вывести его на веб-страницу, они форматируют свои статусы в Твиттере следующим образом:

<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js">
...
var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
  return '<a href="'+url+'">'+url+'</a>';
}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
  return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
});
...
</script>

Мой вопрос: почему? И что это делает?

Кроме того, я должен сделать это так же хорошо? До сих пор я использовал только твиттеры [i] .text. Без какого-либо форматирования.

Ответы [ 2 ]

5 голосов
/ 12 июля 2011
replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
  return '<a href="'+url+'">'+url+'</a>';
})

Это делает URL в твите кликабельными, добавляя тег <a> вокруг них.

replace(/\B@([_a-z0-9]+)/ig, function(reply) {
  return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
})

Это делает клики @names кликабельными, добавляя вокруг них тег <a>, который позволяет людям отвечать на твит.

Вы можете пропустить это форматирование, но отображение неприкасаемых URL-адресов для ваших пользователей не является хорошей практикой юзабилити.Возможность нажимать на имя автора твита тоже очень удобна.

2 голосов
/ 12 июля 2011

Я не уверен насчет api, который вы используете, но с tweetsharp для C# есть опция для TextAsHtml, которая делает именно то, что написано на банке, и устраняет необходимость использования громоздкие регулярные выражения Я был бы удивлен, если бы не было ничего подобного в вашем API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...