Observações pessoais, Música, Tecnologia, Web e algo mais.

terça-feira, setembro 26, 2006

Sem Blogroll não há Blog'n'Roll, uma solução eficiente com a ajuda do del.icio.us

Uma das características mais legais presentes nessa nova web (Web 2.0) e que deve avançar muito nos próximos anos é a interoperabilidade entre os sistemas online. As API´s públicas caíram no gosto dos desenvolvedores e grande parte das aplicações que seguem o conceito Web 2.0 já as disponibilizam, tanto para facilitar a integração entre sistemas quanto para fornecer os chamados e aclamados Web Services.

As possibilidades realmente são enormes e eu rapidamente tenho me tornado um fã de API´s, em especial as que trabalham com JavaScript e que colocam na minha mão o uso "fácil" de objetos AJAX e diversos efeitos DHTML.

Mas o que me motivou a escrever esse post foi uma descoberta recente que fiz através do Bardo.Cyaneus.Net e que implementa uma coleção de links para outros blogs(blogroll) fazendo uso de um script escrito em JavaScript. Esse script manipula informações diretamente do meu del.icio.us e as exibe aqui em meu blog, à sua esquerda, com o título "Meu Blogroll". Sacou?! Inclusive já incluí na lista todos os camaradas que passam por aqui e participam desse blog.

O barato é que esse script captura e apresenta alguns links aleatoriamente, junto com seu respectivo favicon. Dessa forma mesmo que você possua dezenas de blogs na tag blogroll do seu del.icio.us você poderá escolher a quantidade de links a serem exibidos no seu blog e o próprio script irá se encarregar de sortear esses links e colocá-los onde você desejar. Legal né? E pensar que antes eu ficava que nem um "mané" incluindo links diretamente no código fonte do meu blog. Agora é só "taguear" os blogs que eu desejo para a categoria blogroll do meu del.icio.us e pronto, ele já estará no meu blog também. Que beleza!

O código? Lá vai:

<div id="myblogroll"></div>
<script type="text/javascript" src="http://del.icio.us/feeds/json/andre.valongueiro/blogroll?count=100"></script>
<script type="text/javascript">
qtShow =13
function showImage(img){
return (function(){
img.style.display='inline'
})
}
function randOrd(a,b){
return (Math.round(Math.random()) -0.5)
}
ul =document.createElement('ul')
ul.style.listStyle ="none"
allp =new Array()
for (i in Delicious.posts){
allp.push(Delicious.posts[i])
}
allp.sort(randOrd)
last =(allp.length >qtShow) ?qtShow :allp.length -1
for(i =0; i <=last; i++){
post =allp[i]
li =document.createElement('li')
a =document.createElement('a')
a.style.marginLeft ='20px'
img =document.createElement('img')
img.style.position ='absolute'
img.style.display ='none'
img.height =img.width =16
img.src =post.u.split('/').splice(0,3).join('/')+ '/favicon.ico'
img.onload =showImage(img)
a.setAttribute('href',post.u)
a.appendChild(document.createTextNode(post.d))
li.appendChild(img)
li.appendChild(a)
ul.appendChild(li)
}
document.getElementById('myblogroll').appendChild(ul)
</script>


Em negrito destaquei os principais pontos para uma alteração rápida no script. Antes de mais nada criei a div que irá comportar os links e dei a ela o id "myblogroll". Logo abaixo, no source(src="") você deve substituir andre.valongueiro por seu login no del.icio.us e blogroll pela tag do seu del.icio.us que irá armazenar os links a serem capturados. A variável qtShow define quantos links serão exibidos na sua lista. No final do código, onde destaquei 'myblogroll', você deve colocar o id do elemento(sugiro que seja um elemento nível de bloco, como um div) que irá receber e comportar a lista de links.

Sem mistério, espero que todos consigam usar. Alguns favicons não aparecem na minha lista, mas já percebi que o problema não acontece apenas comigo. De toda forma esse detalhe não deve nos impedir de tirar proveito da excelente funcionalidade e praticidade que esse script nos fornece.

Grande abraço!

Um comentário:

Anônimo disse...

É oneroso para encontrar pessoas educadas sobre este tema, no entanto, você parece que você percebe que você está falando! Graças

Quem sou eu

Músico, Desenvolvedor Web, Jornalista, Fã absoluto de seres humanos fantásticos, perfeccionista e observador nato!