Microformats: XOXO

As especificações em Microformats ainda é algo novo para todos. Isso não deve isentar toda a comunidade que criamos no Brasil de procurar se posicionar á frente tecnicamente, mesmo que os resultados financeiros sejam nulos. E serão, pode acreditar nisso. A realidade é que enquanto o Technorati está contratando pessoas que saibam XHTML + CSS + Microformats por alguns milhares de dólares, nenhuma empresa aqui daria trezentos reais a mais por isto. Eu vejo que neste país, o estimulo por se investir em tecnologia e conhecimento de ponta deve ter origem moral, porque se procurar origem econômica, basta comparar o valor que este país dá para a educação básica que você vai obter a resposta para o estímulo de que precisa. Por isso, se você tem a oportunidade de sair deste país, saia o mais rápido que puder. E enquanto isso não acontece, vamos aprender o que é a especificação microformat XOXO! E se você ainda não sabe o que é Microformats, recomendo ler este este artigo primeiro!

O que é XOXO?

XOXO é a abreviação de eXtensible Open XHTML Outlines e é uma dentre muitas outras especificações de Microformats. Estas especificações definem um novo tipo de documento XHTML (não se preocupe, é o XHTML que você conhece mesmo, com algumas melhorias) baseado no conceito de modularização do XHTML definido pela W3C. O propósito de um documento com trechos escritos em XOXO (XOXO não é uma linguagem, estou falando da especificação) é servir listagens amigáveis para ser processado por XML engines ao mesmo tempo em que é renderizado pelos browsers. Esta é a definição que você vai encontrar na Wikipedia Microformats.

Modularização

Praticamente em tudo que você for ler sobre Microformats, uma coisa que deve estar bem clara na sua mente é o conceito de modularidade. Pense que uma página escrita em XHTML é feita de diversas partes e de diversos trechos distintos de código. Temos links, parágrafos, listagens, tabelas (sim, por que não?), abreviações, endereços, títulos e subtítulos e por aí vai. Compare isso com várias peças de Lego encaixadas uma nas outras. Imagine que você pode arrancar ou colocar outras peças sem descaracterizar o restante ou ter que fazer tudo do zero. Isso é modularidade. Se um trecho está errado, jogue o trecho fora e coloque outro no lugar. Simples assim. Microformats te fornece várias peças diferentes que podem ser colocadas sem que você precise refazer alguma coisa do início.

A W3C dedicou toda uma documentação chamada de Modularization of XHTML (Modularização do XHTML ), que é o documento base da especificação microformat XOXO. Nesta documentação você vai encontrar vários tópicos terminados com a palavra “module”, que traduzido do inglês significa “módulo” ou “unidade”. Ou seja, são dezenas de unidades (módulos, peças) individuais que podem fazer parte de um documento XHTML, seja ele complexo ou simples. Microformats é puro Web Standards!

Me fale mais sobre XOXO

XOXO é um padrão específico para listagens escrito em XHTML seguindo os web standards, apropriado para encaixar (lembra-se o que significa modularidade?) em um (X)HTML, Atom, RSS ou qualquer documento em XML. Listagens consistem tipicamente de tópicos e subtópicos exibidos de forma hierárquica. Eu já escrevi aqui no Revolução Etc sobre os tipos de listagens que existem em XHTML e espero que você esteja por dentro disto. XOXO é para as listagens o que os americanos gostam de chamar de eXtensible (extensível), que é o que justifica o “X” na frente de XHTML e XML. Ou seja, é uma forma extensível de se escrever listagens da forma como você estava acostumado a conhecê-las.

XOXO é listagem extensível!

Veja alguns exemplso de como escrever listagens seguindo os princípios da especificação XOXO:

Exemplo 1:


<ol class='xoxo'>
	<li>

		<dl>

				<dt>Texto</dt>
				<dd>item 1</dd>

				<dt>description</dt>
			        <dd>Item principal</dd>

				<dt>url</dt>
				<dd>http://example.com/more.xoxo</dd>

				<dt>title</dt>
				<dd>title of item 1</dd>

				<dt>type</dt>
				<dd>text/xml</dd>

				<dt>rel</dt>
				<dd>help</dd>

		</dl>

	</li>
</ol>

Exemplo 2:


<ol class='xoxo'>
	<li>item 1
		<dl>
			<dt>description</dt>
			<dd>This item represents the main point
                        we're trying to make.</dd>
		</dl>
		<ol>
			<li>subpoint a</li>
			<li>subpoint b</li>
		</ol>
	</li>
</ol>

Exemplo 3:


<ol class='xoxo'>
	<li>Subjecti>
		<ol>
	        <li>subpoint a</li>
	         <li>subpoint b</li>
		</ol>
  </li>
  <li>Subject 2
		<ol compact="compact">
	     	<li>subpoint c</li>
	         <li>subpoint d</li>
		</ol>
  </li>
  <li>Subject 3
      <ol>
	        <li>subpoint e</li>
		</ol>
	</li>
</ol>

Você talvez já sabia que podia aninhar listas; talvez já até tenha feito isto e está se perguntando o que tem demais em escrever listagens assim. Para ter a resposta você precisa ler sobre Microformats e saber enriquecer seu código com meta informação, descrevendo dados em XHTML. Usando listagens aninhadas conforme as especificações XOXO (que até ganhou um Blog específico só para tratar sobre a semântica disso), você consegue uma gama maior de SIGNIFICADO para aquilo que você está escrevendo. E semântica é tudo. Como uma especificação Microformats, XOXO é uma solução para enriquecer as informações contidas em uma listagem, permitindo com que cada tópico ou item, possa ganhar uma descrição semântica maior considerando que estes itens podem estar aninhados conforme a necessidade que houver.

O uso da classe “xoxo” é opcional, como você pode conferir neste faq. A utilização disso é em blorolls, listagens complexas, mapa de sites e onde mais sua criatividade de interpretação lhe permitir chegar. Este artigo possui links o suficiente para você seguir em frente e aprender mais sobre XOXO.

Baseado em uma pesquisa que eu fiz no Google sobre o assunto – "xoxo" "microformats" – ninguém ainda dedicou um texto sobre esta especificação, então eu acho que sou o primeiro a escrever sobre isto em português. Por isso você vai ter que pesquisar no material em inglês mesmo. Sobre a aplicação disso nos blogs brasileiros, com exceção do Élcio, também não vi ninguém usando ainda. Mas não desanimem, ajudem a divulgar artigos como este texto em português e coloquem a mão na massa!

Quem já está usando Microformats?

Para você entender ainda melhor como Microformats é implementado, veja este documento chamado “Microformats Implementors and Implementations” (Microformats Implementores e Implementações ) que mostra os sites mais famosos e visitados do mundo e quais foram as implementações que fizeram de Microformats.