<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tableless &#187; xml</title>
	<atom:link href="http://tableless.com.br/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://tableless.com.br</link>
	<description>Tableless - Desenvolvimento inteligente com padrões web</description>
	<lastBuildDate>Fri, 18 May 2012 12:22:56 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Documentos poliglotas com XHTML5</title>
		<link>http://tableless.com.br/documentos-poliglotas-com-xhtml5/</link>
		<comments>http://tableless.com.br/documentos-poliglotas-com-xhtml5/#comments</comments>
		<pubDate>Wed, 16 May 2012 13:35:51 +0000</pubDate>
		<dc:creator>Talita Pagani</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[marcação poliglota]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[xhtml5]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=6057</guid>
		<description><![CDATA[O XHTML5 permite utilizar a sintaxe do XML/XHTML em documentos HTML5]]></description>
			<content:encoded><![CDATA[<p>Quando se começou a falar massivamente a respeito do HTML5, em 2009, muitos desenvolvedores (inclusive eu) torceram o nariz para o fato de poder voltar a utilizar a sintaxe tolerante do HTML, ou seja, tags em uppercase ou sem fechamento, valores de atributos sem aspas, fechar tags em ordem incorreta, entre outros. Inclusive, <a href="http://tableless.com.br/o-dilema-da-sintaxe-no-html5/">comentei especificamente sobre isso em um outro artigo</a>.</p>
<p>Grande parte dos desenvolvedores aprenderam  e se habituaram a utilizar a sintaxe do XHTML, que segue as diretrizes do XML para documentos bem formados e que apresentariam erros de renderização caso essas diretrizes são fossem seguidas. Isto nos permitia códigos mais limpos e bem estruturados. Porém, no HTML5, a escolha é sua e você não será punido por não fechar tags.</p>
<p>Com toda essa preocupação, no mesmo ano começou a ideia do XHTML5, uma tentativa de contornar o problema, adicionando as restrições de marcação do XML a documentos escritos em HTML5. Podemos dizer que seria uma tentativa de unir o melhor de cada especificação. O <a href="http://html5doctor.com/html-5-xml-xhtml-5/">artigo escrito por Bruce Lawson para o HTML5 Doctor</a> (com <a href="http://www.pinceladasdaweb.com.br/blog/2009/12/10/html-5-xml-xhtml-5/">versão traduzida no Pinceladas da Web</a>) foi um dos primeiros a comentar sobre o tema.</p>
<p>Durante cerca de 1 ano isto era uma forma, digamos, marginalizada de tratar essa questão, por não ser algo reconhecido pelo  <a title="Web Hypertext Application Technology Working Group" href="http://www.whatwg.org/" target="_blank">WHATWG</a> / <a title="W3C HTML Working Group" href="http://www.w3.org/html/wg/" target="_blank">HTML WG</a>. Mas em 2010 surgiu o primeiro draft com a proposta de nortear o uso do HTML5 com a sintaxe do XML/XHTML. O W3C denominou essa metodologia de <a href="http://dev.w3.org/html5/html-xhtml-author-guide/">marcação poliglota</a>.</p>
<h3>O que é um documento com marcação poliglota?</h3>
<p>Um documento com marcação poliglota é um documento escrito em HTML5 que pode ser processado tanto como HTML quanto como XML dentro de um conjunto de restrições definidas, porém, ainda seguindo a especificação do HTML5. Eles são compatíveis com o HTML e XHTML.</p>
<p>Significa que você pode utilizar todo o poder do HTML5 dentro do padrão de marcação bem formada do XML. É importante ressaltar que isto não afeta as tags que você pode utilizar. Por exemplo, elementos que são considerados <em>deprecated</em> em XHTML mas válidos no HTML5 continuam a ser válidos. Uma exceção é com relação a algumas tags que são excluídas de documentos poliglotas por não serem possível de serem replicadas em um <em>parser</em> XML (como é o caso da tag<em> &lt;noscript&gt;</em>).</p>
<p>Mas em linhas gerais, esta “fusão” não altera a especificação, mas sim as regras de sintaxe para processamento e há influência no DOM também (ex.: <em>document.write</em> não é permitido, mas sim<em> innerHTML</em>).</p>
<p>Segundo o W3C, um documento poliglota resulta em:</p>
<ul>
<li>Um documento HTML5 válido;</li>
<li>Um documento XML bem formado (mas não significa um documento XML válido);</li>
<li>DOM idêntico quando processado tanto como HTML quanto como XML, isto porque os parsers geram diferentes DOMs para determinados atributos relativos ao XML.</li>
</ul>
<h3>Como escrever um documento poliglota</h3>
<p>Um dos principais requisitos para escrever um documento em XHTML5 é o MIME-type utilizado. Isto vai definir se o navegador irá interpretar o documento como HTML ou XHTML. Segundo o WHATWG, um documento HTML5 se torna um documento poliglota se for provido o MIME-type application/xhtml+xml.</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;application/xhtml+xml; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Até algum tempo atrás, o IE não suportava este MIME-type. Para isso, você pode indicar que o MIME-type é o usual <em>text/html</em>. Ele pode ser utilizado junto com o primeiro (separando por vírgula), ou pode ser feita uma validação do navegador para decidir qual o MIME-type a ser utilizado.</p>
<p>O doctype passa a ser opcional, mas ainda é recomendável utilizar para prevenir o <a href="http://en.wikipedia.org/wiki/Quirks_mode">quirks mode</a> dos navegadores. Se utilizado, a palavra doctype deve ser escrito adequadamente em uppercase, ex.: <em>&lt;!DOCTYPE html&gt;</em>. A meta-tag que especifica o charset e a declaração <em>&lt;?xml version=”1.0” encoding=”UTF-8”?&gt;</em> (herdada do XHTML 1.1) também passam a ser opcionais se o charset desejado para o documento é UTF-8 (padrão do XML).</p>
<p>Além disso é preciso definir também o namespace do XHTML na tag <em>&lt;html&gt;</em>:</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a> xmlns<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Ao utilizar recursos como SVG e MathML, é preciso especificar também o atributo xml para a tag raiz correspondente de cada um.</p>
<p>Outras recomendações são:</p>
<ul>
<li>Usar tanto o atributo lang quanto xml:lang na tag <em>&lt;html&gt;</em>;</li>
<li>Usar <em>tbody</em> / <em>thead</em> / <em>tfoot</em> em <em>&lt;table&gt;</em>s;</li>
<li>Quando o elemento <em>&lt;col&gt;</em> é utilizado em tabelas, utilizar também o elemento <em>&lt;colgroup&gt;</em>;</li>
<li>Não utilizar o elemento <em>&lt;noscript&gt;</em>;</li>
<li>Não iniciar as tags <em>&lt;pre&gt;</em> e <em>&lt;textarea&gt;</em> com linha em branco;</li>
<li>Utilizar <em>innerHTML</em> ao invés de <em>documento.write</em>;</li>
<li>Para scripts embutidos na página, escreva o código entre uma seção CDATA com os delimitadores comentados. É uma forma de fazer com que o parser do XML (que analisa apenas a marcação) não acuse erros ao utilizar &lt; ou &amp; no script;</li>
<li>Os atributos<em> xml:space</em> e <em>xml:base</em> são permitidos apenas nos elementos relativos a SVG e MathML;</li>
<li>Elementos que podem ter conteúdo mas estão vazios não devem ser minimizados para o formato de tag órfã. Ex.: <em>&lt;p /&gt;</em> não deve ser utilizado, mas sim <em>&lt;p&gt;&lt;/p&gt;</em>.</li>
</ul>
<p>Ao escrever documentos poliglotas, é possível utilizar todas as funcionalidades do HTML5 com uma garantia de código bem formado de acordo com as restrições do XHTML. Com isso, é possível ter um código mais organizado e consistente que seja mais fácil de produzir, manter e reutilizar a longo prazo, principalmente quando este trabalho é realizado em equipe.</p>
<h3>Referências</h3>
<p><a href="http://dev.w3.org/html5/html-xhtml-author-guide/">Polyglot Markup: HTML-Compatible XHTML Documents</a><br />
<a href="http://blog.whatwg.org/xhtml5-in-a-nutshell">XHTML5 in a nutshell</a><br />
<a href="http://www.xmlplease.com/xhtml/xhtml5polyglot/">Benefits of polyglot XHTML5</a><br />
<a href="http://html5doctor.com/html-5-xml-xhtml-5/">HTML 5 + XML = XHTML 5</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/entendendo-quais-apis-realmente-fazem-parte-do-html5/" title="Entendendo quais APIs (realmente) fazem parte do HTML5">Entendendo quais APIs (realmente) fazem parte do HTML5</a></li><li><a href="http://tableless.com.br/html-5-novos-elementos-e-atributos/" title="HTML 5, novos elementos e atributos.">HTML 5, novos elementos e atributos.</a></li><li><a href="http://tableless.com.br/section-elemento-article/" title="Sections: elemento article – Parte 4">Sections: elemento article – Parte 4</a></li><li><a href="http://tableless.com.br/sections-elemento-aside/" title="Sections: elemento aside – Parte 3">Sections: elemento aside – Parte 3</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/documentos-poliglotas-com-xhtml5/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Ah, o maravilhoso mundo real</title>
		<link>http://tableless.com.br/ah-o-maravilhoso-mundo-real/</link>
		<comments>http://tableless.com.br/ah-o-maravilhoso-mundo-real/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 21:03:31 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tableless.com.br]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=1601</guid>
		<description><![CDATA[O que é mais importante, RDF ou bordas arredondadas? O novo formato de especificações modulares do W3C vai ajudar os desenvolvedores, agilizando os releases de navegador, ou vai tornar nossa vida uma bagunça?]]></description>
			<content:encoded><![CDATA[<p>O Diego publicou, há mais de uma semana, um <a href="http://tableless.com.br/se-prepare-para-a-revolucao">artigo sobre o impacto da mudança de estratégia do W3C</a> em relação ao ciclo de vida de seus padrões. O artigo gerou algumas opiniões contrárias nos comentários, em relação ao fato de ele ter dito que bordas arredondadas são mais importantes que a web semântica e em relação à estratégia de especificações modulares do W3C. Vou compartilhar minha opinião sobre os dois pontos.</p>
<p>Em primeiro lugar, é importante distinguir o ideal daquilo que é possível fazer. Li um bocado sobre RDF e ontologias há uns dez anos. Li &#8220;A Revolução Inacabada&#8221;, vi o RSS nascer e se tornar popular, vi as primeiras aplicações entenderem o formato. RDF falhou. Dez anos se passaram e continuamos escrevendo HTML para ser lido por navegadores e só. Há poucos exemplos de aplicações semânticas na vida real, e a maioria seria desenvolvida de uma forma ou de outra.</p>
<p>Há muita gente, por exemplo, definindo seu próprio padrão de XML para trocar dados com sistemas parceiros. Quantos desses estão usando RDF, com uma ontologia interpretada automaticamente por sistemas que &#8220;descobrem&#8221; os serviços um do outro? Ou seja, não há novidades nisso nos últimos dez anos.</p>
<p>Escrever HTML bom é importante, porque vai ajudar o Google a indexar seu site e vai facilitar a vida de quem tentar HTML parsing nele. Mas, seja sincero, você tem mesmo esperanças de que alguém vá lê-lo como XML? Vê alguma vantagem real em validar seu código como XHTML, além de provar a si próprio que fez tudo direito? E onde está a promessa dos microformats? Microformats só fazem diferença se forem usados por muita gente. Ninguém vai fazer um parser de um formato usado em apenas um site. Você consegue citar, de cabeça, cinco sites que usem microformats e não foram feitos por você? Ah, claro, não vale incluir na lista o microformats.org.</p>
<p>Nem RSS é um bom exemplo de aplicação de semântica XML. Existem pelo menos dois formatos populares do padrão, além do padrão Atom, que serve para a mesma coisa. E não sei de nenhum leitor de RSS de sucesso que faça parsing dos feeds como XML. O que todos fazem é ler e interpretar a string. É isso mesmo que você entendeu, quase tão bom quanto um CSV! Outro exemplo digno de nota é o SOAP, que foi criado para fornecer aos webservices a capacidade de &#8220;autodescoberta&#8221;. Você conhece alguém que use isso de verdade? Já viu algum robô que varre a web em busca de serviços e entende sozinho como usá-los? SOAP só tem a vantagem de oferecer tooltips para ajudar os programadores .Net que usam Visual Studio. Enquanto isso, lá fora, XMLRPC e REST (com JSON) estão mudando o mundo.</p>
<p>Por que essas tecnologias falharam, embora pareçam todas boas idéias? Meu palpite é que elas exigiam um raciocínio de longo prazo, um tipo de aposta, que é muito difícil de conseguir. Embora XHTML, Microformats ou SOAP sejam idéias muito boas, aplicá-las em seu site só vai ter valor se muito mais gente o fizer. Se você aplicar o formato sozinho vai perder seu tempo.</p>
<p>O que é muito diferente de, por exemplo, deixar de usar tabelas para layout, escrever bom HTML ou usar jQuery. Essas coisas lhe devolvem um benefício imediato. Se deixar de usar tabelas para layout vai ter um site mais leve e vai perder muito menos tempo quando tiver que mudar o layout, se escrever HTML bom vai ter menos trabalho para escrever CSS, para fazer o CSS mobile e o de impressão, e se usar jQuery vai escrever javascript em um terço do tempo.</p>
<p>Note que esses três exemplos também tiram benefícios do fato de muita gente estar usando. Há muitos bons lugares para se aprender HTML e CSS, há muitos sistemas Open Source que já trabalham gerando código bom e os buscadores entendem a semântica do bom HTML. Mas você não depende desses benefícios para tomar a decisão de uso. Quando começamos, há dez anos, a fazer layouts tableless, não aparecíamos melhor no Google e praticamente não havia sistemas gerando HTML direito. Mas o fizemos assim mesmo porque os benefícios imediatos compensavam o esforço.</p>
<p>É por isso que eu temo que nunca teremos uma web semântica de verdade, e estamos condenados a fazer HTML parsing para sempre.</p>
<p>Há exceções. RSS, por exemplo. RSS é uma sombra do que poderia, mas é um padrão de sucesso, amplamente adotado. E não pode ser explicado com minha teoria do benefício individual imediato. Se você estiver usando RSS sozinho no mundo, não terá nenhum benefício. Talvez o sucesso do RSS se deva ao fato de precisar de uma pequena rede de usuários para oferecer um grande benefício.</p>
<p>Você já se perguntou como foram vendidos os primeiros aparelhos de FAX? Ter um FAX só faz sentido se mais gente tiver. Foram vendidos aos pares. As empresas o compravam para trocar documentos entre a matriz e as filiais. O fato de poder trocar documentos com o resto do mundo era, no início, um &#8220;benefício adicional&#8221;. Se você precisa trocar conteúdo com um site parceiro e vocês forem os únicos usuários de RSS no mundo, terá valido a pena. Conforme a comunidade de usuários aumentava, o valor de ter RSS crescia. Muita gente começou a usar Bloglines e todo mundo queria entrar na festa.</p>
<p>Há alguns anos eu percorri o país com o pessoal da Locaweb comparando o modelo de adoção do RSS com o que eu imaginava que seriam os microformats. Eu estava errado. Pense um segundo no formato de reviews dos microformats. Qual o real benefício de usá-lo? Há alguma aplicação indispensável, onde você realmente quer estar, baseada em hReview? Para que você vai perder seu tempo?</p>
<p>Será que não estamos resolvendo o problema errado? Quando o Diego diz que bordas arredondadas são mais importantes que RDF, será que ele não tem razão? Para meus clientes, hoje, bordas arredondadas com CSS significam um site mais rápido, mais barato (menos tempo gasto recortando imagens) e, para os sites muito visitados, economia de banda. É uma diferença pequena, mas é uma vantagem. E RDF? Além de oferecer RSS, que nem vai ser lido como XML, o que eu posso fazer de real hoje com RDF para meus clientes?</p>
<p>Desculpe se meu raciocínio parece mesquinho. Ele é. Estou tentando ser realista. Uma das principais influências sobre as decisões humanas é a inércia, e não acredito que o mundo vá, num futuro próximo, adotar de maneira revolucionária o RDF ou mesmo o XHTML. Ainda acho essas idéias fantásticas, só não sei se são possíveis.</p>
<p>O realismo também me faz crer que a nova estratégia de especificações modulares do W3C é uma coisa boa. Sofremos décadas com implementações parciais do HTML 4 e do CSS 2. Agora vamos assumir a realidade inevitável. Os desenvolvedores de navegador se sentirão mais à vontade para dizer a você o que funciona ou não. E não precisamos esperar anos para a definição de um padrão. Podemos usar os recursos com os quais o consórcio já concordou hoje. Leva mesmo alguns anos para o W3C bater o martelo sobre determinado padrão, e as especificações modulares representam um ciclo de releases muito mais dinâmico.</p>
<p>Já temos um acordo sobre CSS Transform, bordas arredondadas, múltiplos backgrounds, repetição no DOM, validadores de formulários, SVG, DOM Storage, querySelectors e uma série de outros recursos legais. Por que esperar até a próxima Olimpíada para dizer aos desenvolvedores de browsers: &#8220;Ok, pessoal, fechamos tudo, HTML 5 e CSS 3 já são padrões, podem implementar&#8221;? De qualquer maneira, a adoção modular das especificações do W3C é inevitável. Embora a especificação tenha saído inteira, a adoção foi modular no HTML 3, no HTML 4, no CSS 2. Sabendo que não vai ser diferente mesmo, não é melhor que tenhamos bonitas tabelas de compatibilidade entre o que existe e o que cada navegador suporta?</p>
<p>Dá uma olhada na <a href="http://www.w3.org/Style/CSS/current-work">lista de módulos do CSS3</a>. Você não quer esperar isso tudo ficar pronto para ter bordas arredondadas.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/o-que-etableless/" title="O que é Tableless?">O que é Tableless?</a></li><li><a href="http://tableless.com.br/sobre-internet-explorer-para-mobile-breve-impressao/" title="Sobre Internet Explorer para Mobile &#8211; Breve impressão">Sobre Internet Explorer para Mobile &#8211; Breve impressão</a></li><li><a href="http://tableless.com.br/nao-otimize-seu-codigo/" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li><li><a href="http://tableless.com.br/o-que-sao-media-types/" title="O que são Media Types do CSS?">O que são Media Types do CSS?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/ah-o-maravilhoso-mundo-real/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>SEO &#8211; Sitemaps</title>
		<link>http://tableless.com.br/seo-sitemaps/</link>
		<comments>http://tableless.com.br/seo-sitemaps/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 15:47:23 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=996</guid>
		<description><![CDATA[Saiba como funciona o sitemap.xml]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.sitemaps.org/pt_BR/index.php">Sitemaps é um formato simples de XML</a> que serve para informar aos sistemas de buscas sobre seus endereços disponíveis para indexação. Esse XML relaciona as URLs existentes do seu site, com algumas informações como data da última atualização, prioridade da página em relação às outras páginas e freqüencia de atualização.</p>
<p>O sitemap.xml é um arquivo que pode ser <a href="http://code.google.com/sm_thirdparty.html">gerado automaticamente por um plugin</a> ou até mesmo escrito à mão pelo desenvolvedor.<br />
<span id="more-996"></span><br />
O código básico do Sitemap:</p>
<div class="codecolorer-container xml mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;urlset</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.sitemaps.org/schemas/sitemap/0.9&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.example.com/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;em<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> &nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lastmod<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2005-01-01<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lastmod<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/em<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;em<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;changefreq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>monthly<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/changefreq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;priority<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0.8<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/priority<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/em<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/urlset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>As tags que podem ser inseridas no sitemap.xml são essas:</p>
<p><strong>&lt;urlset&gt;</strong><br />
Executa o encapsulamento do arquivo e faz referência ao padrão de protocolo atual.</p>
<p><strong>&lt;url&gt;</strong><br />
Tag pai de cada entrada de URL. O restante das tags são as tags filhas dessa tag.</p>
<p><strong>&lt;loc&gt;</strong><br />
URL da página. Esse URL deve começar com um protocolo (como http) e terminar com<br />
uma barra final, caso seja exigido pelo seu servidor. Esse valor deve conter menos<br />
de 2.048 caracteres.</p>
<p><strong>&lt;lastmod&gt;</strong><br />
A data da última modificação do arquivo. Essa data deve estar no formato de <a href="http://www.w3.org/TR/NOTE-datetime"><br />
data e hora do W3C</a>. Esse formato permite omitir o horário, se desejar, e<br />
usar AAAA-MM-DD.</p>
<p>Lembre-se de que esta tag é separada do cabeçalho If-Modified-Since (304) que o servidor pode retornar, e os mecanismos de pesquisa podem usar as informações de ambas as fontes de forma diferente.</p>
<p><strong>&lt;changefreq&gt;</strong><br />
A freqüência com que a página é alterada. Esse valor fornece informações gerais para os  mecanismos de pesquisa e pode ser que ele não corresponda exatamente à freqüência de indexação da página. Os valores válidos são:</p>
<ul>
<li>always</li>
<li>hourly</li>
<li>daily</li>
<li>weekly</li>
<li>monthly</li>
<li>anual</li>
<li>never</li>
</ul>
<p>O valor &#8220;always&#8221; deve ser usado para descrever os documentos que sempre são alterados quando acessados. O valor &#8220;never&#8221; deve ser usado para descrever os URLs arquivados. Observe que o valor dessa tag é considerado uma <em>dica</em> e não um comando. Mesmo que os indexadores de mecanismo de pesquisa possam considerar essas informações ao tomar decisões, pode ser que indexem as páginas marcadas como &#8220;horárias&#8221; com menos freqüência do que isso e talvez façam a indexação de páginas marcadas como &#8220;anualmente&#8221; com mais freqüência do que isso. Os indexadores podem indexar páginas marcadas como &#8220;nunca&#8221; periodicamente, para que possam lidar com alterações inesperadas<br />
nessas páginas.</p>
<p><strong>&lt;priority&gt;</strong><br />
A prioridade desse URL em relação a outros URLs do mesmo site. Os valores válidos vão de 0.0 a 1.0. Esse valor não afeta o modo como as páginas são comparadas às páginas em outros sites — apenas permite que os mecanismos de pesquisa saibam quais páginas você considera mais importantes para os indexadores.</p>
<p>A prioridade padrão de uma página é 0,5.<br />
Observe que não é provável que a prioridade atribuída a uma página influencie a posição dos URLs nas páginas de resultados de um mecanismo de pesquisa. Os mecanismos de pesquisa podem usar essas informações quando selecionam entre URLs no mesmo site. Use essa tag para aumentar a probabilidade de a maioria das páginas importantes estarem presentes em um índice de pesquisa.</p>
<p>Além disso, observe que a atribuição de uma prioridade alta a todos os URLs no site provavelmente não o ajudará. Como a prioridade é relativa, ela só é usada para priorizar os URLs do seu site.</p>
<p><a href="http://www.sitemaps.org/pt_BR/protocol.php">Tabela retirada do sitemaps.org</a></p>
<h3>Local dos arquivos sitemaps.xml</h3>
<p>É importante saber que o local que o sitemap.xml é colocado determina o quais urls podem ser  colocadas no arquivo. Exemplo: fiz um <a href="http://visie.com.br/treinamento/sitemap.xml">sitemap.xml</a> para o <a href="http://visie.com.br/treinamento/">site de treinamentos da Visie</a> cuja URL é visie.com.br/treinamento. No meu sitemap.xml apenas poderá haver URLs que comecem com visie.com.br/treinamento e não apenas visie.com.br.</p>
<p>Todas as URLs que estão no Sitemap precisam utilizar o mesmo protocolo &#8211; no exemplo da Visie estou  utilizando o HTTP &#8211; e precisam estar no mesmo host que o Sitemap. Por exmeplo, se o Sitemap estiver localizado em: visie.com.br/treinamento/sitemap.xml, ele não pode incluir URLs de um subdominio.visie.com.br.</p>
<h3>Informando os buscadores que seu sitemap.xml existe</h3>
<p>Há duas maneiras fáceis para avisar aos sistemas de busca que seu sitemap.xml está disponível:</p>
<ul>
<li>Enviando o seu Sitemap por meio da interface de envio do mecanismo de pesquisa</li>
<li>Especificando a localização do Sitemap no seu arquivo robots.txt</li>
</ul>
<p><strong>Enviando o seu Sitemap por meio da interface de envio do mecanismo de pesquisa.</strong> O Google tem um local muito interessante onde além de informar o endereço do seu sitemap.xml você pode ter uma série de outras informações importantes para seu site, é o <a href="https://www.google.com/webmasters/tools/">Google Webmaster Tools</a>.</p>
<p><strong>Especificando a localização do Sitemap no seu arquivo robots.txt.</strong> Para indicar o sitemap.xml pelo robots.txt basta acrescentar essa linha: Sitemap: <local_do_Sitemap></p>
<p>Se você quiser, você pode colocar vários endereços de Sitemaps, bastando inserir várias linhas como as de cima indicando os endereços dos respectivos sitemaps.</p>
<p>Ter um sitemap.xml não garante que você uma URL seja ou não mais indexada que as outras. Mesmo assim, é um adendo para que os buscadores fiquem mais informados com os endereços do seu site. Se você não utiliza nenhum plugin para que o sitemap.xml seja gerado automaticamente, fique atento às atualizações das URLs. Você pode estar informando aos buscadores URLs antigas e isso pode afetar nos resultados organicos com o do Google. Se você quiser testar alguns plugins ou programas para gerar seu sitemap.xml automaticamente, <a href="http://code.google.com/sm_thirdparty.html">visite este link</a>.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/estruturacao-de-client-side-preprocessadores-framewoks-e-bibliotecas-parte-1/" title="Estruturação de Client-side &#8211; Parte 1: Préprocessadores, Framewoks e Bibliotecas">Estruturação de Client-side &#8211; Parte 1: Préprocessadores, Framewoks e Bibliotecas</a></li><li><a href="http://tableless.com.br/qualidade-de-imagens-e-densidade-de-pixels/" title="Qualidade de Imagens e densidade de pixels">Qualidade de Imagens e densidade de pixels</a></li><li><a href="http://tableless.com.br/gomo-teste-seu-site-mobile/" title="GoMo &#8211; Teste seu site mobile">GoMo &#8211; Teste seu site mobile</a></li><li><a href="http://tableless.com.br/agora-e-a-vez-dos-desenvolvedores/" title="Agora é a vez dos desenvolvedores">Agora é a vez dos desenvolvedores</a></li><li><a href="http://tableless.com.br/epub-aprenda-a-criar-um-livro-digital/" title="ePub: Aprenda a criar um livro digital">ePub: Aprenda a criar um livro digital</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/seo-sitemaps/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Charsets e Encodes &#8211; Tabelas de caracteres</title>
		<link>http://tableless.com.br/charsets-e-encodes-tabelas-de-caracteres/</link>
		<comments>http://tableless.com.br/charsets-e-encodes-tabelas-de-caracteres/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 10:00:18 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[charsets]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[encodes]]></category>
		<category><![CDATA[metatags]]></category>
		<category><![CDATA[utf]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/?p=965</guid>
		<description><![CDATA[Entenda como funciona a tabela de caracteres e encodes no HTML.]]></description>
			<content:encoded><![CDATA[<p>Quando você escreve um documento HTML (ou qualquer outra linguagem baseada em SGML) é necessário que especifiquemos o Charset utilizado. O <strong>Charset é o conjunto de caracteres utilizados para escrever o documento</strong>. Um jogo de caracteres consiste em ter 1) repertório com caracteres e 2) uma posição de referência para cada um dos caracteres no repertório. Cada caractere é identificado e localizado por este código de posição. Por exemplo, na tabela ASCII, as posições 65, 66 e 67 se referem às letras A, B e C respectivamente.<span id="more-965"></span> Abaixo, veja a tabela de caracteres ASCII:</p>
<table summary="tabela ASCII" width="100%">
<tbody>
<tr>
<td>
<ul>
<li>00 &#8211; (NUL)</li>
<li>01 &#8211; (SOH)</li>
<li>02 &#8211; (STX)</li>
<li>03 &#8211; (ETX)</li>
<li>04 &#8211; (EOT)</li>
<li>05 &#8211; (ENQ)</li>
<li>06 &#8211; (ACK)</li>
<li>07 &#8211; (BEL)</li>
<li>08 &#8211; (BS)</li>
<li>09 &#8211; (HT)</li>
<li>10 &#8211; (LF)</li>
<li>11 &#8211; (VT)</li>
<li>12 &#8211; (FF)</li>
<li>13 &#8211; (CR)</li>
<li>14 &#8211; (SO)</li>
<li>15 &#8211; (SI)</li>
<li>16 &#8211; (DLE)</li>
<li>17 &#8211; (D1)</li>
<li>18 &#8211; (D2)</li>
<li>19 &#8211; (D3)</li>
<li>20 &#8211; (D4)</li>
<li>21 &#8211; (NAK)</li>
<li>22 &#8211; (SYN)</li>
<li>23 &#8211; (ETB)</li>
<li>24 &#8211; (CAN)</li>
<li>25 &#8211; (EM)</li>
</ul>
</td>
<td>
<ul>
<li>26 &#8211; (SUB)</li>
<li>27 &#8211; (ESC)</li>
<li>28 &#8211; (FS)</li>
<li>29 &#8211; (GS)</li>
<li>30 &#8211; (RS)</li>
<li>31 &#8211; (US)</li>
<li>32 &#8211; (Espaço)</li>
<li>33 &#8211; !</li>
<li>34 &#8211; &#8220;</li>
<li>35 &#8211; #</li>
<li>36 &#8211; $</li>
<li>37 &#8211; %</li>
<li>38 &#8211; &amp;</li>
<li>39 &#8211; &#8216;</li>
<li>40 &#8211; (</li>
<li>41 &#8211; )</li>
<li>42 &#8211; *</li>
<li>43 &#8211; +</li>
<li>44 &#8211; ,</li>
<li>45 &#8211;  &#8211; </li>
<li>46 &#8211; .</li>
<li>47 &#8211; /</li>
<li>48 &#8211; 0</li>
<li>49 &#8211; 1</li>
</ul>
</td>
<td>
<ul>
<li>50 &#8211; 2</li>
<li>51 &#8211; 3</li>
<li>52 &#8211; 4</li>
<li>53 &#8211; 5</li>
<li>54 &#8211; 6</li>
<li>55 &#8211; 7</li>
<li>56 &#8211; 8</li>
<li>57 &#8211; 9</li>
<li>58 &#8211; :</li>
<li>59 &#8211; ;</li>
<li>60 &#8211; &lt;</li>
<li>61 &#8211; =</li>
<li>62 &#8211; &amp;gt/</li>
<li>63 &#8211; ?</li>
<li>64 &#8211; @</li>
<li>65 &#8211; A</li>
<li>66 &#8211; B</li>
<li>67 &#8211; C</li>
<li>68 &#8211; D</li>
<li>69 &#8211; E</li>
<li>70 &#8211; F</li>
<li>71 &#8211; G</li>
<li>72 &#8211; H</li>
<li>73 &#8211; I</li>
<li>74 &#8211; J</li>
<li>75 &#8211; K</li>
</ul>
</td>
<td>
<ul>
<li>76 &#8211; L</li>
<li>77 &#8211; M</li>
<li>78 &#8211; N</li>
<li>79 &#8211; O</li>
<li>80 &#8211; P</li>
<li>81 &#8211; Q</li>
<li>82 &#8211; R</li>
<li>83 &#8211; S</li>
<li>84 &#8211; T</li>
<li>85 &#8211; U</li>
<li>86 &#8211; V</li>
<li>87 &#8211; W</li>
<li>88 &#8211; X</li>
<li>89 &#8211; Y</li>
<li>90 &#8211; Z</li>
<li>91 &#8211; [</li>
<li>92 - \</li>
<li>93 - ]</li>
<li>94 &#8211; ^</li>
<li>95 &#8211; _</li>
<li>96 &#8211; `</li>
<li>97 &#8211; a</li>
<li>98 &#8211; b</li>
<li>99 &#8211; c</li>
</ul>
</td>
<td>
<ul>
<li>100 &#8211; d</li>
<li>101 &#8211; e</li>
<li>102 &#8211; f</li>
<li>103 &#8211; g</li>
<li>104 &#8211; h</li>
<li>105 &#8211; i</li>
<li>106 &#8211; j</li>
<li>107 &#8211; k</li>
<li>108 &#8211; l</li>
<li>109 &#8211; m</li>
<li>110 &#8211; n</li>
<li>111 &#8211; o</li>
<li>112 &#8211; p</li>
<li>113 &#8211; q</li>
<li>114 &#8211; r</li>
<li>115 &#8211; s</li>
<li>116 &#8211; t</li>
<li>117 &#8211; u</li>
<li>118 &#8211; v</li>
<li>119 &#8211; w</li>
<li>120 &#8211; x</li>
<li>121 &#8211; y</li>
<li>122 &#8211; z</li>
<li>123 &#8211; {</li>
<li>124 &#8211; |</li>
<li>125 &#8211; }</li>
<li>126 &#8211; ~</li>
<li>127 &#8211; (DELETE)</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>A tabela de caracteres ASCII (Código Padrão Americano para Intercâmbio de Informações) foi a primeira tabela utilizada em larga escala. O computador foi desenvolvido nos Estados Unidos. No vocabulário americano, não existem acentos, além disso, era um código de 7 bits, e não 8. Ou seja, ao invés de 256 posições, a tabela ASCII tinha apenas 128 posições &#8211; como você sabe, tudo  nos computadores são um grupo de zeros (0) e uns (1) chamados de bits. Esses zeros e uns formam grupos de oito em oito que chamados de bytes e representam um número entre 0 e 255. Como as imagens, áudio, vídeos, programas e tudo o que temos nos sistemas de hoje, os caracteres que aparecem na sua tela são grupos de zeros e uns.<br />
O computador se popularizou e a necessidade de utilizar acentos e outros tipos de caracteres (Chineses, por exemplo) tornou-se um problema.<br />
Hoje, a maioria das tabelas utilizadas foram criadas suprindo as necessidades de um idioma específico, por este motivo elas se tornaram muito limitadas.<br />
Por exemplo, se você estiver escrevendo um documento utilizando a tabela de caracteres chinesa, você não poderá escrever algo em hebraico neste documento.<br />
Por conta disso muitos problemas podem surgir, por exemplo, seria impossível criar um curso online de hebraico para chineses. Será também um problema se você tiver que fazer um site ou sistema com suporte a diversos idiomas. Por exemplo, um sistema de blog projetado para uso internacional. Isso por que a posição dos caracteres varia de tabela para tabela. Dois codificadores podem usar o mesmo número para dois caracteres diferentes ou usar números diferentes para o mesmo caractere.</p>
<h3>A tabela de caractéres Unicode &#8211; UTF-8</h3>
<p>A Web é acessada por pessoas do mundo inteiro. Ter um sistema ou um site que limite o acesso e pessoas de outros países é algo que vai contra a tradição e os ideais da internet. Por isso, foi criado uma tabela que suprisse essas necessidades, essa tabela se chama Unicode. A tabela Unicode suporta algo em torno de um milhão de caracteres. Ao invés de cada região ter sua tabela de caracteres, é muito mais sensato haver uma tabela padrão com o maior número de caracteres possível. Atualmente a maioria dos sistemas e browsers utilizados por usuários suportam plenamente Unicode. Por isso, fazendo seu sistema Unicode você garante que ele será bem visualizado aqui, na China ou em qualquer outro lugar do mundo.<br />
O que o Unicode faz é fornecer um único número para cada caractere, não importa a plataforma, nem o programa, nem a língua.</p>
<h3>Antes de começar, você precisa saber</h3>
<p>Há algumas recomendações que você precisa saber antes de começar a mudar seu site para Unicode.<br />
Existem três principais maneiras para você indicar a seu site qual tabela de caractere você está utilizando:</p>
<ol>
<li><strong>Cabeçalho HTTP Content-type</strong> &#8211; Desta forma é necessário configurar o servidor web, algo que não é fácil nem para qualquer um. Dependendo de onde você trabalha, se for em um lugar grande, com vários sites neste mesmo servidor, pode ser a melhor maneira porque você terá que fazer isso uma vez. Caso for vários projetos com servidores diferentes isso pode ser uma dor de cabeça.</li>
<li><strong>Metatag Content-type</strong> &#8211; Colocando este código no HEAD de seu documento, ele avisará para o browser localmente e na hora da renderização do site qual Charset ele deve utilizar para exibir os caracteres. Esta é uma ótima escolha caso você não tenha acesso aos servidores. Certamente é a maneira mais simples de ser utilizada.
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&amp;gt;</div></td></tr></tbody></table></div>
</li>
<li><strong>Através do prolog xml</strong> &#8211; O prolog XML é utilizado em documentos XML ou XHTML para indicar a versão e a tabela de caracteres daquele documento.
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;? xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;</div></td></tr></tbody></table></div>
<p>Não é uma boa utilizar este prolog por conta do chaveamento do Internet Explorer 6 para Quirks Mode. Quando o prolog é utilizado, o Internet Explorer 6 renderiza os sites como o Internet Explorer 5, trazendo muitos problemas de compatibilidade. Não recomendo.</li>
</ol>
<p>Outro ponto importante é não esquecer de salvar seu documento no formato da tabela que você indicou. Não adianta nada indicar que código que está utilizando a tabela de caracteres UTF-8 e seu editor salvar seus documentos com a tabela ISO-8859-1. Isso fará com que os caracteres de seu documento apareçam corrompidos. Por isso, ao definir qual será a tabela utilizada no projeto (recomendo sempre UTF-8), defina como seu editor irá salvar seus documentos. Todos os editores de código hoje em dia tem essa opção, basta procurar. Não adianta também você salvar seus arquivos em UTF-8 e o resto da equipe continuar utilizando ISO-8859-1. Os arquivos irão corromper da mesma maneira. É uma decisão que a equipe inteira deve tomar para não haver retrabalho e dor de cabeça.</p>
<p>Se um projeto já está no ar, é bom fazer uma análise para ter certeza se vale a pena ou não mudar a tabela de um projeto que já está no ar e funcionando. Recomendo que esse novo padrão sempre comece a ser utilizado em novos projetos. Mesmo assim, um bom programador pode fazer um script que converta a tabela de caracteres de um diretório inteiro.</p>
<p>O importante é garantir que seu site aqui seja visto da maneira correta em outros lugares do mundo. Isso é importante para você e seu cliente.</p>
<p><!--object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/SX5bCCtHYXo&#038;hl=en"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/SX5bCCtHYXo&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object--></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/wordpress-uma-pequena-introducao/" title="Wordpress &#8211; Uma pequena introdução">Wordpress &#8211; Uma pequena introdução</a></li><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/web-standards-project-wasp/" title="Web Standards Project – WaSP">Web Standards Project – WaSP</a></li><li><a href="http://tableless.com.br/pdf-sobre-produtividade/" title="PDF sobre Produtividade">PDF sobre Produtividade</a></li><li><a href="http://tableless.com.br/ie8-targeting-version/" title="Browser Targeting Version">Browser Targeting Version</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/charsets-e-encodes-tabelas-de-caracteres/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>WordPress &#8211; Uma pequena introdução</title>
		<link>http://tableless.com.br/wordpress-uma-pequena-introducao/</link>
		<comments>http://tableless.com.br/wordpress-uma-pequena-introducao/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 02:00:07 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Convertidos]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tableless.com.br]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[Template Tags]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://tableless.com.br/wordpress-uma-pequena-introducao</guid>
		<description><![CDATA[O WordPress não foi feito para ser um CMS. Ele foi criado primeiramente para suprir necessidades de criação de blogs. Por acaso, talvez como se fosse um acidente, começamos a utilizá-lo para criar websites, desde os mais simples até os &#8230;]]></description>
			<content:encoded><![CDATA[<p>O WordPress não foi feito para ser um CMS. Ele foi criado primeiramente para suprir necessidades de criação de blogs. Por acaso, talvez como se fosse um acidente, começamos a utilizá-lo para criar websites, desde os mais simples até os mais complicados. O pessoal do WordPress curtiu a ideia e agora está melhorando cada vez mais o sistema para que ele se torne um CMS de verdade, mesmo assim mantendo toda a simplicidade do WordPress original. E o melhor, é tudo de graça.</p>
<p>Quero mostrar aqui o caminho das pedras. O que você precisa aprender para não ficar batendo cabeça no começo. É coisa simples.</p>
<h3>Criando o index.php e o style.css</h3>
<p>Para fazer um tema de WordPress, você precisa apenas de dois arquivos: <strong>index.php</strong> e o <strong>style.css</strong>.</p>
<p>O <strong>style.css</strong> tem uma pequena sintaxe no começo do arquivo com informações do autor do Template. Essas informações serão utilizadas pelo WordPress na tela de Templates.</p>
<p>A sintaxe que está escrita no meu <strong>style.css</strong> é este:</p>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Você pode utilizar esse código e modificar para ficar com suas informações. Não precisa decorar<span style="color: #00AA00;">,</span> isso é coisa de maluco. <span style="color: #00AA00;">;</span>-<span style="color: #00AA00;">&#41;</span><br />
<br />
Crie um &lt;strong<span style="color: #00AA00;">&gt;</span>style.css&lt;/strong<span style="color: #00AA00;">&gt;</span> com este código dentro. Não iremos utilizar o CSS neste artigo.<br />
<br />
Crie também um &lt;strong<span style="color: #00AA00;">&gt;</span>index.php&lt;/strong<span style="color: #00AA00;">&gt;</span> com a estrutura básica de HTML. Eu utilizo sempre assim<span style="color: #00AA00;">:</span><br />
<br />
<span style="color: #00AA00;">&#91;</span>cc lang<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;html&quot;</span><span style="color: #00AA00;">&gt;</span><br />
&lt;!DOCTYPE html PUBLIC <span style="color: #ff0000;">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span> <br />
&nbsp; &nbsp; <span style="color: #ff0000;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span style="color: #00AA00;">&gt;</span><br />
<br />
&lt;html<span style="color: #00AA00;">&gt;</span><br />
&lt;head<span style="color: #00AA00;">&gt;</span><br />
&nbsp; &nbsp; &lt;meta http-equiv<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> /<span style="color: #00AA00;">&gt;</span><br />
&nbsp; &nbsp; &lt;title<span style="color: #00AA00;">&gt;</span>&lt;/title<span style="color: #00AA00;">&gt;</span><br />
&lt;/head<span style="color: #00AA00;">&gt;</span><br />
&lt;body<span style="color: #00AA00;">&gt;</span><br />
<br />
&lt;/body<span style="color: #00AA00;">&gt;</span><br />
&lt;/html<span style="color: #00AA00;">&gt;</span></div></td></tr></tbody></table></div>
<p>Daqui para frente, irei colocar apenas o código que irá dentro do BODY do documento. Portanto, tudo que iremos ver agora, insira dentro do BODY do seu documento.</p>
<h3>As Template Tags</h3>
<p>O segredo do WordPress são as Template Tags. Você pode conferir todas aqui: <a href="http://codex.wordpress.org/Template_Tags">http://codex.wordpress.org/Template_Tags</a></p>
<p>Os templates do wordpress são escritos em PHP. Isso torna pro designer um pouco complicado, mas não muito. Se você souber um pouco de PHP, fazer um template é muito fácil, porque PHP é uma linguagem que todo mundo usa. Para facilitar, o WordPress chama as funções do PHP que são utilizadas pelo seu sistema de Template Tags. As Template Tags não passam de funções PHP que recuperam do banco, informações que você precisará para compor o conteúdo do site. Para o programador isso não muda nada. Mas para o pessoal que não é tão íntimo assim com a linguagem PHP, a forma que usamos essas &#8220;funções&#8221; (Template Tags) facilita demais.</p>
<h3>O Loop &#8211; Listando os posts na página</h3>
<p>O Loop é o responsável pelo trecho de código que será repetido para cada post impresso na tela.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Pra você chamar os posts do blog é muito simples. Você começará utilizando duas Template Tags dentro deste código de Loop.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;h2&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/h2&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>A primeira Template Tag que coloquei foi a the_title(). Ela chama os títulos dos posts do site.<br />
A segunda, the_content() chama o conteúdo dos posts. O Conteúdo vem escrito da forma que você criou no WordPress.</p>
<p>Apenas com esse código acima, você não faz um blog completo. Um blog tem outras características importantes. E são elas que iremos ver agora. </p>
<h3>Características de um Blog</h3>
<p>Há algumas características que compõem um blog. Essas características são encontradas geralmente em blogs, isso não quer dizer que em sites de notícias não podem contem essas características:</p>
<ul>
<li>Comentários</li>
<li>Categorias</li>
<li>Data, autor</li>
<li>Feed</li>
<li>Arquivo (histórico)</li>
<li>Busca</li>
<li>Permalink</li>
</ul>
<p>Não iremos mostrar em nosso código como se faz Comentários nem Categorias. O Artigo iria ficar muito mais complicado. Portanto, se estiver interessado, faça a <a href="http://visie.com.br/wordpress/" title="Oficina de WordPress da Visie">Oficina de WordPress da Visie</a>. </p>
<p>Vamos agora melhorar um bocado esse código para que o site se pareça mais com um blog.</p>
<p>Primeiro, vamos colocar Permalinks nos títulos dos posts.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
&lt;h2&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/h2&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>Autor e Data</h3>
<p>A Template Tag que iremos utilizar é a the_author_posts_link() para Autor, que colocará a o nome do Autor com o link para seus posts. E a the_time() para colocar a data.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
&lt;p&gt;por <span style="color: #000000; font-weight: bold;">&lt;?</span> the_author_posts_link<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> em <span style="color: #000000; font-weight: bold;">&lt;?</span> the_time<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
<br />
&lt;h2&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/h2&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Você pode deixar a Template Tag the_time do jeito que você quiser. Ela usa aquela tabela de formatação padrão de data do PHP, você pode encontrar essa tabela aqui: http://php.net/date/<br />
Iremos formatar nossa data aqui:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
&lt;p&gt;por <span style="color: #000000; font-weight: bold;">&lt;?</span> the_author_posts_link<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> em <span style="color: #000000; font-weight: bold;">&lt;?</span> the_time<span style="color: #009900;">&#40;</span>d<span style="color: #339933;">/</span>m<span style="color: #339933;">/</span>Y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
<br />
&lt;h2&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/h2&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>BUSCA</h3>
<p>Para colocar um formulário de busca é muito simples. O código do formulário será:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'home'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<br />
&lt;input name=&quot;s&quot; type=&quot;text&quot; id=&quot;busca&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #339933;">=</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'s'</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;<br />
&lt;input type=&quot;submit&quot; value=&quot;Procurar&quot; /&gt;<br />
&lt;/form&gt;</div></td></tr></tbody></table></div>
<p>A Template Tag bloginfo() tráz do banco informações sobre o site. Neste caso, ele vai trazer a URL da home do site.<br />
Os inputs do formulário de busca do WordPress já vem com nomes pré-definidos, o input de busca, por exemplo, chama-se <strong>s</strong>.</p>
<p>Nosso código está assim agora.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'home'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<br />
&lt;input name=&quot;s&quot; type=&quot;text&quot; id=&quot;busca&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #339933;">=</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'s'</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;<br />
&lt;input type=&quot;submit&quot; value=&quot;Procurar&quot; /&gt;<br />
&lt;/form&gt;<br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
&lt;p&gt;por <span style="color: #000000; font-weight: bold;">&lt;?</span> the_author_posts_link<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> em <span style="color: #000000; font-weight: bold;">&lt;?</span> the_time<span style="color: #009900;">&#40;</span>d<span style="color: #339933;">/</span>m<span style="color: #339933;">/</span>Y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/p&gt;<br />
<br />
&lt;h2&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/h2&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<h3>Arquivo e Histórico</h3>
<p>Para criar os arquivos, ou histórico, iremos utilizar a Template Tag: wp_get_archives().</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?</span> wp_get_archives<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Por padrão, essa Template Tag irá gerar uma lista de links dos meses que há posts. Preste bem atenção no código HTML que ele retorna. Ele cria uma lista de LI sem UL ou OL envolta.</p>
<p>Por tanto, temos que escrever dessa forma:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;ul&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?</span> wp_get_archives<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;/ul&gt;</div></td></tr></tbody></table></div>
<p>Ele faz deste modo caso você queira colocar uma CLASS ou ID para nomear a lista.</p>
<h3>Linkando o FEED o arquivo CSS</h3>
<p>O WordPress já cria os Feeds automaticamente. O trabalho que temos é colocar um link para o que o visitante consiga copiar o endereço do RSS e cadastrar no leitor de Feeds preferido dele. Podemos oferecer em RSS, RSS 2 ou ATOM. Existem pessoas que oferecem os três formatos. Vamos oferecer apenas um formato: o RSS2.</p>
<p>A tag link tem um atributo &#8216;rel&#8217;. O atributo rel é mandatório, ele vai dizer qual será o resto da tag. Se você por exemplo colocar o valor rel=&#8221;stylesheet&#8221;, você está dizendo ao navegador que essa tag link é relativo a uma folha de estilo.</p>
<p>O valor &#8216;alternate&#8217; diz ao navegador que estamos diponibilizando o conteúdo de nosso site em um meio alternativo:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span><a href="http://www.php.net/link"><span style="color: #990000;">link</span></a> rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;alternate&quot;</span> <span style="color: #339933;">...</span><br />
<span style="color: #339933;">&lt;</span><a href="http://www.php.net/link"><span style="color: #990000;">link</span></a> rel<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;stylesheet&quot;</span> <span style="color: #339933;">...</span></div></td></tr></tbody></table></div>
<p>A tag type serve para indicar o tipo de arquivo que será carregada. No caso da folha de estillo, existem dois tipos que são utilizados hoje: o XSLT, que é utilizado para formatar código XML. E o tipo CSS, que é para formatar código HTML.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;link rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'rss_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;<br />
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'stylesheet_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;</div></td></tr></tbody></table></div>
<p>Novamente iremos utilizar a tag boginfo(). Agora ela irá buscar o endereço do RSS e do CSS.</p>
<p>Perceba que utilizamos neste exemplo apenas um arquivo, o <strong>index.php</strong> para listar o conteúdo. O WordPress tem uma maneira eficaz de hierarquia de arquivos. Por exemplo: nós precisamos de um arquivo chamado archives.php para criar a lista de histórico. Na falta deste arquivo, o WordPress utiliza o <strong>index.php</strong> para criar a lista. Se tivéssemos feito o archives.php e colocado o código que utlizamos acima que cria a lista de histórico, o WordPress não utilizará o <strong>index.php</strong>.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/charsets-e-encodes-tabelas-de-caracteres/" title="Charsets e Encodes &#8211; Tabelas de caracteres">Charsets e Encodes &#8211; Tabelas de caracteres</a></li><li><a href="http://tableless.com.br/pdf-sobre-produtividade/" title="PDF sobre Produtividade">PDF sobre Produtividade</a></li><li><a href="http://tableless.com.br/o-que-etableless/" title="O que é Tableless?">O que é Tableless?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/wordpress-uma-pequena-introducao/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>PDF grátis sobre XSLT</title>
		<link>http://tableless.com.br/pdf-gratis-sobre-xslt/</link>
		<comments>http://tableless.com.br/pdf-gratis-sobre-xslt/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 22:55:58 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[txt]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://tableless.com.br/pdf-gratis-sobre-xslt</guid>
		<description><![CDATA[A Visie está disponibilizando um PDF grátis sobre XSLT. A linguagem XSLT é utilizada para transformar dados de um formato XML em vários outros formatos. Há implementações de XSLT para praticamente qualquer linguagem de programação disponível hoje, incluindo PHP, JSP, &#8230;]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://visie.com.br/">Visie</a> está disponibilizando um <a href="http://visie.com.br/treinamento/cursosrapidos/">PDF grátis sobre XSLT</a>.</p>
<p>A linguagem XSLT é utilizada para transformar dados de um formato XML em vários outros formatos. Há implementações de XSLT para praticamente qualquer linguagem de programação disponível hoje, incluindo PHP, JSP, ASP, ColdFusion, Python, Visual Basic, .NET e Delphi. No PDF estudamos os fundamentos e principais comandos da linguagem, permitindo a transformação de conteúdo baseado em XML em formatos como TXT, CSV, HTML e o próprio XML.<span id="more-958"></span> Entre os exemplos realizados estão a transformação em HTML de um arquivo XML com dados de previsão do tempo atualizados em tempo real, e a criação de um sistema de clipping de notícias baseado em RSS ou ATOM.</p>
<p>O conteúdo do PDF era usado para ministrar cursos aqui na Visie sobre XSLT. Se quiser sugerir alguma alteração, por favor, me diga. E claro, divulgue para outros desenvolvedores.</p>
<p>Aproveite!</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/wordpress-uma-pequena-introducao/" title="Wordpress &#8211; Uma pequena introdução">Wordpress &#8211; Uma pequena introdução</a></li><li><a href="http://tableless.com.br/metatags/" title="Metatags &#8211; Breve introdução de uso e teoria">Metatags &#8211; Breve introdução de uso e teoria</a></li><li><a href="http://tableless.com.br/o-que-etableless/" title="O que é Tableless?">O que é Tableless?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/pdf-gratis-sobre-xslt/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>HTML simples com XML e CSS</title>
		<link>http://tableless.com.br/html-simples-com-xml-e-css/</link>
		<comments>http://tableless.com.br/html-simples-com-xml-e-css/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:15:08 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[elementos html]]></category>
		<category><![CDATA[frames]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/html-simples-com-xml-e-css</guid>
		<description><![CDATA[Qualquer um que codifique HTML, ou mesmo use um editor WYSIWYG, já esbarrou no problema. Se você trabalha com internet, já deve ter tido também esse problema. O código se tornou complexo, com várias tabelas, uma dentro da outra. Vários &#8230;]]></description>
			<content:encoded><![CDATA[<p>Qualquer um que codifique HTML, ou mesmo use um editor WYSIWYG, já esbarrou no problema. Se você trabalha com internet, já deve ter tido também esse problema. O código se tornou complexo, com várias tabelas, uma dentro da outra. Vários frames, com uma porção de scripts para manter o<br />
conteúdo atualizado entre eles. Uma parte da aplicação rodando em um pop-up, com um script<br />
que atualiza o conteúdo principal.</p>
<p>Então, cumprindo a lei de Murphy, um dos seguintes fatos indesejáveis acontece:</p>
<ol>
<li> Um cliente liga reclamando que o site está dando um tal de &#8220;erro de script&#8221; quando clica num link, você<br />
tenta, mas não consegue reproduzir o erro em nenhum navegador.</li>
<li> Alguém da diretoria resolve que os títulos devem ser azuis, não vermelhos. E você se<br />
põe a localizar &lt;font face=&#8221;verdana&#8221; size=&#8221;5&#8243; color=&#8221;red&#8221;&gt; para poder mudar a cor.</li>
<li> Alguma tabela não fechada corretamente estádando problemas no Netscape, mas o código tem cincotabelas aninhadas e você perde um dia tentando acharo defeito.</li>
<li>Você percebe uma certa demora para carregar algumaspáginas, vai conferir o código e descobrealgumas coisas assim: &lt;font face=&#8221;Verdana&#8221;&gt;&lt;b&gt;&lt;/b&gt;&lt;i&gt;&lt;/i&gt;&lt;fontsize=&#8221;1&#8243;&gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;fontface=&#8221;Arial&#8221;&gt;Texto&lt;/font&gt;&lt;/font&gt;</li>
</ol>
<p>Que fazer? É claro que com muito cuidado e talentoesse tipo de problema pode ser evitado, mas isso envolve umaquantidade de trabalho insana. Já vi muitos projetosonde se gastou mais tempo preso nas entranhas de umcódigo complexo do que em qualquer outra fase doprojeto.</p>
<p>Tem um pessoal na web que propõe umasolução bastante interessante para isso.É a turma do WaSP (www.webstandards.org.) Assoluções não são apenas uma listade novas tecnologias, mas também uma filosofia dedesenvolvimento baseada na simplicidade.</p>
<p>Baseado nessa filosofia da simplicidade, que tem me rendidoresultados surpreendentes, gostaria de fazer algumassugestões interessantes:</p>
<h3> XHTML</h3>
<p>Quem já trabalha com XML certamente percebeu o poderda flexibilidade e da simplicidade. Éimpossível escrever um XML com erros de sintaxe,porque os interpretadores reclamam imediatamente. Émuito simples escrever documentos XML, sendo fácilextrair dados de qualquer banco de dados etransformá-los em XML (a maioria dos SGBDs incorporaou tem planos de incorporar o suporte nativo a XML.)Através da poderosa linguagem XSL e da farta oferta deparsers gratuitos, XML pode ser transformado em praticamentequalquer formato de arquivo.</p>
<p>XHTML nada mais é do que uma forma de escrever umdocumento HTML de modo que ele também seja umdocumento XML válido. Ou seja, seu documento HTMLganha a coerência e flexibilidade de um documento XML,podendo ser facilmente lido por ferramentasautomáticas e convertido em outros formatos dearquivos. Com XHTML torna-se muito fácil oferecer osdados do seu site através de WAP ou de um RSS(<a href="http://rssficado.pilger.inf.br">http://rssficado.pilger.inf.br</a>)por exemplo. Torna-se fácil também transformaro resultado de uma consulta a banco de dados ou um documentoXML numa página web.</p>
<p>A boa notícia é que é muito fácilescrever XHTML. Qualquer um que escreva HTML pode aprender afazê-lo sem muita dificuldade. Existem inclusive umasérie de ferramentas interessantes para tornar esseprocesso mais produtivo, como o excelente HTML Tidy(<a href="http://tidy.sourceforge.net">http://tidy.sourceforge.net</a>)que tem uma eficiência impressionante para umaferramenta automática.</p>
<h3> CSS e a Abordagem Semântica</h3>
<p>Como você cria um título num documento HTML?</p>
<p>O meio comum hoje em dia para fazê-lo é:&lt;font face=&#8221;Arial&#8221; size=&#8221;4&#8243; color=&#8221;blue&#8221;&gt;Texto doTítulo&lt;/font&gt;.</p>
<p>Quando eu estudei HTML, em 1996, aprendi que existia uma tagespecífica para criação detítulos. É a tag h1. Assim, a maneira de secriar um título em HTML seria: &lt;h1&gt;Texto doTítulo&lt;/h1&gt;.</p>
<p>Extremamente mais simples, não é verdade? Etorna o código também mais significativo. Assimum interpretador pode saber, por exemplo, onde estãoos títulos no meio do texto. Ou seja, esta abordagemdá significado semântico ao código.Aquele tag passa a significar alguma coisa, mesmo quenão seja vista num browser que renderize a fonte maiore azul que você tinha planejado.</p>
<p>Aliás, por falar no texto azul, se você usar asegunda abordagem seu título será exibido comos estilos padrão do navegador, e seu azul vai para obeleléu. Como você não quer perder abonita formatação que havia planejado, aquientra uma segunda linguagem, o CSS. Com CSS você podecolocar toda essa informação sobreformatação num arquivo externo. Assimvocê fica com um arquivo HTML apenas cominformação (que fica muito mais simples,organizado e rápido de se escrever) e mantémtoda a formatação num arquivo externo. Se umdia seu chefe resolver que todos os títulos do sitetem que ser vermelhos ao invés de azuis (acredite,isso é muito comum) você sóprecisará alterar uma palavra em um únicoarquivo e todos os títulos do site estarãoautomaticamente ajustados.</p>
<h3>No Tables</h3>
<p>Tabelas são um recurso muito útil do HTML. Semtabelas como exibiríamos informaçõescomo uma lista de produtos, um extrato bancário ou umcalendário? O problema é que tabelas tem sidousadas para muito mais do que isso. É preciso colocaro menu ao lado do texto? Cria-se uma tabela. É precisoque o texto tenha uma largura delimitada? Cria-se uma tabela.Imagem junto ao texto? Menu no cabeçalho? Duas colunasde texto? Tabela neles!</p>
<p>E como fica, nessa situação, a semânticado documento? Como você deve imaginar, nãohá aqui aquela prática separaçãoentre informação e formatação.Além disso, temos um outro sério problema: embrowsers antigos, ou mesmo em browsers modernos maldesenvolvidos, como o Internet Explorer, as tabelas sósão exibidas depois que a última tag&lt;/table&gt; chega ao navegador.</p>
<p>É por isso que, quando você estáconectado via dial-up, em alguns sites a tela fica em brancodurante longos segundos (às vezes minutos) atéque é exibido de uma vez só.</p>
<p>Abrir mão de tabelas para montar layouts vai tornarseu código muito menor, mais simples e organizado. Vaitambém centralizar a formatação,colocando tudo que se refere a layout em um únicoarquivo. Imagine a facilidade de manutenção.Melhora também a experiência do usuário,pois a informação é exibida instantaneamente, assim que chega ao browser.</p>
<p>Dá-se a esta abordagem o nome de tableless. Apesar donome, não é a ausência total de tabelas,mas o seu uso apenas onde é semanticamentejustificável. De lambuja, um documento tableless bempensado vai funcionar em qualquer navegador, em qualquer sistema operacional, mesmo em PDAs.</p>
<h3>No Frames, No Pop-ups, No DHTML</h3>
<p>Pense muito antes de aplicar uma solução<br />
baseada em frames, DHTML, scripts absurdos, pop-ups, plugins,<br />
ActiveX, Applets ou qualquer outra tecnologia que quebre<br />
essas duas premissas da internet:</p>
<p>- A web é um ambiente multiplataforma.</p>
<p>- Cada documento na web tem um endereço associado a<br />
ele.</p>
<p>Não vou me alongar nesse tópico, mas gostaria que você tomasse um tempo para ler:</p>
<ul>
<li> <a href="http://www.wired.com/news/culture/0,1284,55675,00.html">http://www.wired.com/news/culture/0,1284,55675,00.html</a></li>
<li> <a href="http://www.digital-web.com/features/feature_2001-6.shtml">http://www.digital-web.com/features/feature_2001-6.shtml</a></li>
<li> <a href="http://www.digital-web.com/features/feature_2002-09.shtml">http://www.digital-web.com/features/feature_2002-09.shtml</a></li>
<li> <a href="http://www.useit.com/alertbox/990530.html">http://www.useit.com/alertbox/990530.html</a></li>
<li> <a href="http://www.useit.com/alertbox/9612.html">http://www.useit.com/alertbox/9612.html</a></li>
</ul>
<h3> Vamos com calma</h3>
<p>O interessante dessa abordagem baseada na simplicidadeé que você não precisa fazer tudo de umavez. Se está inseguro para começar, pode apenaseliminar as tags &lt;font&gt; e criar um arquivo CSSúnico. Ou pode começar usando os recursos deXML do seu banco de dados para gerar XHTML, ou criando umRSS. O importante é começar a simplificar antes que você fique maluco!</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/nao-otimize-seu-codigo/" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li><li><a href="http://tableless.com.br/wordpress-uma-pequena-introducao/" title="Wordpress &#8211; Uma pequena introdução">Wordpress &#8211; Uma pequena introdução</a></li><li><a href="http://tableless.com.br/image-replacement-x-imagens/" title="Image-Replacement x Imagens">Image-Replacement x Imagens</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/html-simples-com-xml-e-css/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>O Caminho Suave para o Tableless</title>
		<link>http://tableless.com.br/o-caminho-suave-para-o-tableless/</link>
		<comments>http://tableless.com.br/o-caminho-suave-para-o-tableless/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:11:11 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tableless.com.br]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://tableless.com.br/o-caminho-suave-para-o-tableless</guid>
		<description><![CDATA[A maior parte dos desenvolvedores web, designers ou programadores, começaram antes do surgimento dos movimentos em prol dos padrões web, usando tabelas para montar layouts em editores WYSIWYG, e ainda hoje este método é usado na maioria dos projetos de &#8230;]]></description>
			<content:encoded><![CDATA[<p>A maior parte dos desenvolvedores web, designers ou programadores, começaram antes do surgimento dos movimentos em prol dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>, usando tabelas para montar layouts em editores <acronym title="What You See Is What You Get, Editores Visuais">WYSIWYG</acronym>, e ainda hoje este método é usado na maioria dos projetos de internet. Logo, é natural que muita gente, ao começar a entender o valor dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões</a>, se pergunte como migrar do desenvolvimento &#8220;tradicional&#8221; para o desenvolvimento de código semanticamente coerente.</p>
<p>É um caminho muito duro o que separa o desenvolvedor acostumado a editores visuais do desenvolvimento de código coerente. E é muito comum que o designer desista após uma primeira tentativa frustrada de desenvolver um website tableless, com layout <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> e <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> <a href="http://validator.w3.org/" title="W3C MarkUp Validation Service">validado</a>.</p>
<p>Por isso gostaria de propor um caminho gradual, mais suave, para aqueles que querem se aventurar pela primeira vez pelos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>. O princípio desse método é da recompensa. Você pode obter um grande benefício aproximando seu código dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>, mesmo que não faça tudo de uma vez. Quero mostrar como você pode começar, e obter benefícios imediatos.</p>
<h3>Limpe seu HTML</h3>
<p>A minha primeira recomendação é que você estude <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>. Comece pela formatação básica de fonte, cor e tamanho. Isso vai te garantir código menor e produtividade maior com pouquíssimo esforço.</p>
<p>Assim, ao criar um item de menu, você vai evitar códigos como este:</p>
<pre>
&lt;a href="parceiros.asp"&gt;&lt;font
face="Arial, Helvetica, Sans-serif" size="2"
color="#FF3300"&gt;&lt;b&gt;Parceiros&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;</pre>
<p>Colocando no lugar:</p>
<pre>&lt;a href="parceiros.asp" class="menu"&gt;Parceiros&lt;/a&gt;</pre>
<p>Tendo no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>:</p>
<pre>
.menu{
<a href="http://www.w3.org/TR/REC-CSS1#font-family">font-family</a>: Arial, Helvetica, Sans-serif;
<a href="http://www.w3.org/TR/REC-CSS1#font-size">font-size</a>: 80%;
<a href="http://www.w3.org/TR/REC-CSS1#font-weight">font-weight</a>: bold;
<a href="http://www.w3.org/TR/REC-CSS1#color">color</a>:#FF3300;
}</pre>
<p>Como você pode ver, o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> é extremamente simples. Aprender esses quatro atributos, mais o &#8220;<a href="http://www.w3.org/TR/REC-CSS1#font-style">font-style</a>&#8221; (para fazer itálico), é a primeira coisa que eu recomendo. É claro, isso apenas faz cócegas nas possibilidades do <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, ainda há muito o que aprender, mas recomendo começar por aí porque é algo que você pode aprender em alguns minutos e vai te salvar muito, muito tempo. E você vai começar a ter o controle da formatação, tendo todas as definições de fonte em um único arquivo, podendo alterar, por exemplo, a qualquer momento, a fonte de todo o conteúdo ou de todos os menus do site.</p>
<p>O passo seguinte para limpar seu HTML é se livrar do spacer.gif, aquele gif transparente de 1 pixel que se usa para dar espaços em tabelas, e das dezenas de tabelas aninhadas. Para isso vamos começar a estudar o &#8220;box-model&#8221;.</p>
<p>O pulo-do-gato aqui é um atributo <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> chamado <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>. O <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a> é a distância entre as bordas de um elemento e o texto dentro dele. Assim, se é preciso que o conteúdo de uma célula esteja a 10 pixels da borda esquerda, ao invés de inserir uma célula extra como espaçador, ou inserir mais uma tabela, basta definir uma classe para essa célula. Uma vez que você já está colocando a formatação no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, provavelmente esta célula já tem uma classe. Então basta:</p>
<pre>
.conteudo{
<a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>-left:10px;
}</pre>
<p>Isso vai fazer com que o texto esteja a 10 pixels da borda esquerda do documento. Ah, claro, o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> também pode livrar você de definir no HTML as bordas e o background das células de sua tabela. Lembre-se, quanto mais layout e formatação você colocar no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, mais controle terá sobre seu site, principalmente em mudanças de layout durante o processo de produção e em futuras manutenções. O site também será mais leve para carregar.</p>
<p>Concluímos então que, após aprender os atributos de formatação de fonte, o passo seguinte é aprender os atributos <a href="http://www.w3.org/TR/REC-CSS1#background">background</a>, <a href="http://www.w3.org/TR/REC-CSS1#border">border</a> e <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>. Indo até aqui você com certeza será um desenvolvedor muito mais feliz! Depois de limpar seu HTML, ganhar controle sobre a formatação de seu site e se tornar muito mais produtivo, você está pronto para passar à segunda etapa, correndo atrás da semântica.</p>
<h3>Começando o Trabalho de Gente Grande</h3>
<p>Muito bem, agora você já pode limpar seu código. Vamos estudar um exemplo prático. No começo de cada uma de suas páginas você tem um título, cujo código hoje é assim:</p>
<pre>
&lt;font face="Arial, Helvetica, Sans-serif" size="4"
color="#FFFF00"&gt;&lt;b&gt;Novidades&lt;/b&gt;&lt;/font&gt;</pre>
<p>Ao limpar esse código, você vai substituir esse monte de tags por uma só. Que tag você vai usar? Como o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> te permite formatar qualquer elemento, muita gente que começa a estudar o assunto acha que é indiferente que tag usar, e coloca algo como:</p>
<pre>&lt;p class="titulo"&gt;Novidades&lt;/p&gt;</pre>
<p>Agora, veja bem, outro desenvolvedor poderia resolver o mesmo problema com:</p>
<pre>&lt;div class="titulo"&gt;Novidades&lt;/div&gt;</pre>
<p>E o resultado visual poderia ser o mesmo. Acontece que há algo na natureza do HTML que nos diz que tag usar. Chamamos esse algo de &#8220;semântica&#8221;: as tags do HTML tem significado. A tag P é para parágrafos, a tag DIV para divisões no conteúdo, e há uma série de tags para título, h1, h2, h3, h4, h5 e h6. Assim, se você pode usar qualquer tag, pode fazer assim:</p>
<pre>&lt;h1&gt;Novidades&lt;/h1&gt;</pre>
<p>O que você ganha com essa preocupação? Os buscadores inteligentes podem ler semanticamente o conteúdo de um documento, entendendo que trecho de código é um título, por exemplo. Assim, escrever HTML semanticamente correto pode melhorar muito sua visibilidade em buscadores. O segundo bom motivo é que você vai saber para que serve cada tag se tiver que mexer nesse mesmo documento daqui a alguns meses. E vai ser mais fácil também se outra pessoa tiver que dar manutenção no seu código.</p>
<p>Logo, use as tags do HTML para aquilo para o que foram criadas:</p>
<ul>
<li>dd, dl e dt para listas de definições (um glossário, por exemplo)</li>
<li>h1 a h6 para títulos</li>
<li>p para parágrafos</li>
<li>abbr para abreviaturas e acronym para acrônimos</li>
<li>blockquote e q para citações longas e curtas</li>
<li>address para endereços (sabe aquele rodapé onde vai o endereço e o telefone da empresa?)</li>
<li>ul e ol para listas e li para os itens da lista</li>
</ul>
<p>Você pode obter uma lista mais abrangente em:<br />
<a href="http://www.w3schools.com/xhtml/xhtml_reference.asp" title="XHTML Reference">http://www.w3schools.com/xhtml/xhtml_reference.asp</a></p>
<p>E formate tudo ao seu gosto com <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>.</p>
<h3>Finalmente, Livrando-se das Tabelas</h3>
<p>Não há bons motivos para você eliminar a qualquer custo todas as tabelas de seu primeiro trabalho. Conheço alguns excelentes profissionais, muito talentosos, que fizeram um ótimo trabalho em sua primeira tentativa de tableless. Mas a maioria dos que eu vi tentarem demoraram muito para conseguir da primeira vez, e alguns não obtiveram os resultados que esperavam. Isso tudo serve para que você possa produzir mais rápido e melhor, não o contrário. Então vá com calma. Faça alguns estudos em tableless, comece eliminando parte das tabelas em seus primeiros trabalhos. Por exemplo, remover as células de tabela que formam o menu, trocando por uma lista (com as tags ul e li), é um ótimo desafio para o primeiro projeto.</p>
<p>Ah, e não se esqueça que para dados como uma tabela periódica ou um calendário a solução semanticamente correta é a tabela mesmo. Ou seja, tableless não é ausência de tabelas, é o seu uso apenas onde é semanticamente justificável.</p>
<p>Não vou entrar em detalhes aqui, porque já escrevi bastante sobre como construir um layout no <a href="http://tableless.com.br/tutorial/">Tutorial Tableless Básico</a>, mas o conselho é ir com calma, sem estresse. Você logo vai estar produzindo tableless mais fácil do que produz sites com tabelas.</p>
<h3>XHTML</h3>
<p>Há uma coisa que muita gente que está começando me pergunta: o que é e para que serve esse tal de <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a>? É muito mais simples do que parece. Um arquivo <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é um arquivo HTML, que pode ser lido por qualquer browser. Não estamos falando de um novo HTML, com novas tags ou coisa assim. Pelo contrário, o <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> 1 foi feito para funcionar mesmo em navegadores antigos. Mas, ao mesmo tempo, Um arquivo <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é também um arquivo <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> <a href="http://validator.w3.org/" title="W3C MarkUp Validation Service">válido</a>, que pode ser lido por qualquer interpretador de <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>.</p>
<p>Meu primeiro conselho, nesse caso, é que você, se não trabalha com <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>, deixe preocupação com o <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> para depois de dominar bem o código semântico e o layout tableless. Não porque seja complicado, pelo contrário, transformar bom HTML em <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é bem simples, mas simplesmente porque você pode obter benefícios muito significativos, e muito mais rapidamente, aprendendo <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> do que <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a>.</p>
<p>O segundo conselho é que você comece a estudar o assunto. Depois de dominar bem layouts <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, mergulhe no <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>. A maioria dos bancos de dados hoje permite extrair dados diretamente em <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> e todas as plataformas de aplicações web trabalham bem com <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>. E com a poderosa linguagem <a href="http://www.w3.org/Style/XSL/" title="Extensible Stylesheet Language">XSLT</a> você pode muito facilmente oferecer seus os dados em <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> para o navegador. </p>
<h3>Voando Alto</h3>
<p>Estamos falando de muito mais do que criar sites estilosos. Há duas semanas esteve aqui um amigo com um Palm novo, um <a href="http://www.palmone.com/us/products/handhelds/zire71/">Zire 71</a>, e um celular com acesso à internet. Isso está se tornando cada vez mais barato e comum. Conheço também uma porção de empresas e instituições, entre elas uma série significativa de TeleCentros e órgãos públicos, que estão adotando <a href="http://www.google.com.br/search?q=Linux&amp;btnI=1&amp;lr=lang_pt">Linux</a> como sistema operacional para desktops. O <a href="http://www.google.com.br" title="O Oráculo">Google</a> hoje é responsável por 90% do tráfego que meu site consegue de buscadores. É o primeiro colocado absoluto entre os buscadores. E conseguiu isso indexando semanticamente o conteúdo real dos sites. Praticamente todas as plataformas web estão oferendo suporte a <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> e apostando na idéia de <a href="http://www.google.com.br/search?q=webservices+xml&amp;btnI=1&amp;lr=lang_pt">webservices</a>.</p>
<p>Quem segue os <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a> não precisa ter medo do futuro. Não importa que browser vai ser o mais usado daqui a dois anos, que tecnologia vai estar na moda ou de onde as pessoas vão estar usando a internet. Seu site estará lá, leve, acessível, atual e útil.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/sobre-internet-explorer-para-mobile-breve-impressao/" title="Sobre Internet Explorer para Mobile &#8211; Breve impressão">Sobre Internet Explorer para Mobile &#8211; Breve impressão</a></li><li><a href="http://tableless.com.br/sites-para-dispositivos-moveis-mediatype/" title="Sites para Dispositivos Móveis &#8211; MediaType">Sites para Dispositivos Móveis &#8211; MediaType</a></li><li><a href="http://tableless.com.br/o-que-etableless/" title="O que é Tableless?">O que é Tableless?</a></li><li><a href="http://tableless.com.br/nao-otimize-seu-codigo/" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/o-caminho-suave-para-o-tableless/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Escrevendo um XHTML válido</title>
		<link>http://tableless.com.br/escrevendo-um-xhtml-valido/</link>
		<comments>http://tableless.com.br/escrevendo-um-xhtml-valido/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:07:58 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[doctype]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.com.br/escrevendo-um-xhtml-valido</guid>
		<description><![CDATA[Acho que todos já ouviram falar de Web Semântica, para quem não ouviu, em poucas palavras é: Um projeto para organizar e estruturar a informação da WEB. Ter uma Web com as suas informações todas &#8220;organizadas&#8221; é extremamente importante, isso &#8230;]]></description>
			<content:encoded><![CDATA[<p>Acho que todos já ouviram falar de Web Semântica, para quem não ouviu, em poucas palavras é: Um projeto para organizar e estruturar a informação da WEB.</p>
<p>Ter uma Web com as suas informações todas &#8220;organizadas&#8221; é extremamente importante, isso facilita uma busca pela Web por informações mais precisas.<br />
Para que seu arquivo possa ser lido por máquinas além de humanos é muito importante que você escreva um XHTML válido, com isso você está fazendo com que as informações do seu site fique mais acessível para as buscas, contribuindo para o projeto e principalmente melhorando as visitas do seu site.</p>
<h3>DOC o que?!</h3>
<p>O Doctype (Document Type Definition, vulgo DTD) é a primeira coisa que se deve escrever em um arquivo XHTML, ele vai na PRIMEIRA LINHA do seu documento, se você quiser ter um XML Válido, não devemos esquecê-lo, ele serve para informar ao browser que tipo de documento será visualizado, ok?</p>
<p>Existem 3 tipos:</p>
<ul>
<li><strong>Strict</strong>: Este tipo é usado quando você fez um código 100% XHTML, sem erros, deve ser escrito assim:<br />
&lt;!DOCTYPE html<br />
PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;</li>
<li><strong>Transitional</strong>: Este é o modo mais usado, você o usa quando está começando a migrar do nosso amigo HTML para o poderoso XHTML, sua sintaxe é:<br />
&lt;!DOCTYPE html<br />
PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</li>
<li><strong>Frameset</strong>: É usado quando você está utilizando FRAMES em seu site, se escreve assim:<br />
&lt;!DOCTYPE html<br />
PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Frameset//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&#8221;&gt;</li>
</ul>
<p>Exemplo:<br />
&lt;!DOCTYPE html<br />
PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221;<br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&#8230;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<h3>Feche TODAS as tags</h3>
<p>Quem já escreveu algum XML sabe que ele não funciona até que TODAS as tags estiverem bem fechadas, no HTML era diferente, muitas vezes deixávamos tags abertas, e ele funcionava que era uma beleza.</p>
<p>Para se fazer um XHTML válido, devemos fechar TODAS as tags:</p>
<ol>
<li>Não devemos esquecer de fechar as tags que estamos carecas de conhecer: &lt;p&gt;&lt;/p&gt;, &lt;b&gt;&lt;/b&gt;, etc&#8230;</li>
<li>E não devemos esquecer de forma alguma de fechar as tags &#8220;solitárias&#8221;, assim, ao invés de &lt;br&gt; escrevemos &lt;br&gt;&lt;/br&gt;, ou na forma simplificada: &lt;br /&gt;.</li>
</ol>
<p>Descobriram que fechando tags desta forma &lt;br/&gt;, não se sabe porque estava causando um problema no Netscape, mas apenas colocando um espaço antes da / o problema é solucionado.</p>
<h3>Use letras minúsculas</h3>
<p>Quem nunca viu um código fonte de um documento HTML escrito assim:<br />
&lt;A href=&#8221;http://tags.com.letras.minúsculas/&#8221; TARGET=&#8221;_BLANK&#8221;&gt; &lt;/A&gt;<br />
Um documento XHTML deve ter TODAS as tags e seus respectivos atributos escritos com letra minúscula!</p>
<h3>Não esqueça das &#8220;ASPAS&#8221;</h3>
<p>Esta regra é bem simples. Todos os atributos XHTML devem conter as benditas &#8220;ASPAS&#8221;.</p>
<h3>Atributo NAME</h3>
<p>O antigo atributo NAME foi substituído pelo atributo ID. Se seus usuários, clientes, etc, utilizam ainda antigos browsers, você pode sem problema nenhum utilizar as duas formas juntas durante neste período em que estamos migrando:<br />
&lt;img src=&#8221;imagem.gif&#8221; id=&#8221;imagem&#8221; name=&#8221;imagem&#8221; /&gt;</p>
<h3>Atributos sem valor</h3>
<p>Não devemos esquecer também os atributos que escrevemos sem valor, por exemplo:</p>
<p>ERRADO:<br />
&lt;option selected&gt;<br />
&lt;frame noresize&gt;<br />
&lt;input checked&gt;<br />
&lt;input readonly&gt;</p>
<p>CERTO:<br />
&lt;option selected=&#8221;selected&#8221;&gt;<br />
&lt;frame noresize=&#8221;noresize&#8221;&gt;<br />
&lt;input checked=&#8221;checked&#8221;&gt;<br />
&lt;input readonly=&#8221;readonly&#8221;&gt;</p>
<p>E assim por diante.</p>
<h3>Quer uma ajudinha?</h3>
<p>Se você está migrando do HTML para o XHTML, o TIDY pode te dar uma forcinha.<br />
O TIDY é uma ferramenta para validar e consertar códigos HTML, ele tem opções que você pode escolher qual a versão do HTML você quer validar, uma dessas opções é a XHTML. Se você já está escrevendo um XHTML e quer que seu código fique livre de todos os erros, o TIDY arruma para você.<br />
Ele foi originalmente desenvolvido por Dave Raggett e hoje é mantido por um projeto de código aberto: SourceForge, por um grupo de voluntários.</p>
<h3>Últimas palavras</h3>
<p>Fazendo todas essas pequenas porém importantes regras, quer dizer, regras não, LEIS, você terá um belo de um documento XHTML válido, e acima de tudo, estará contribuindo para uma WEB melhor.</p>
<p>Como eu passei apenas o miolo, navegando nestes links poderão ser achados mais informações a respeito:</p>
<ul>
<li><a href="http://www.w3schools.com/xhtml/xhtml_reference.asp" target="_blank">Referência de XHTML 1.0</a></li>
<li><a href="http://www.w3schools.com/w3c/" target="_blank">Tutorial da W3C</a></li>
<li><a href="http://www.w3schools.com/default.asp" target="_blank">W3Schools:</a></li>
<li><a href="http://www.comciencia.br/reportagens/internet/net08.htm" target="_blank">WebSemântica</a></li>
</ul>
<h3>Notas:</h3>
<p>Para saber se seu documento XHTML é válido:<br />
<a href="http://validator.w3.org" target="_blank">http://validator.w3.org</a></p>
<p>Tidy:<br />
<a title="Source Forge" href="http://tidy.sourceforge.net/" target="_blank">http://tidy.sourceforge.net/</a><br />
<a title="Dave Raggett's Original" href="http://www.w3.org/People/Raggett/tidy/" target="_blank">http://www.w3.org/People/Raggett/tidy/</a></p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/documentos_w3c_portugues/" title="Documentos do W3C em Português">Documentos do W3C em Português</a></li><li><a href="http://tableless.com.br/nao-otimize-seu-codigo/" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li><li><a href="http://tableless.com.br/o-que-etableless/" title="O que é Tableless?">O que é Tableless?</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/escrevendo-um-xhtml-valido/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novo Tableless, agora WordPress</title>
		<link>http://tableless.com.br/mudancas-repentinas/</link>
		<comments>http://tableless.com.br/mudancas-repentinas/#comments</comments>
		<pubDate>Tue, 13 Dec 2005 23:01:14 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[cotidiano]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[novo]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wp]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://tableless.dreamhosters.com/?p=554</guid>
		<description><![CDATA[Como podem ver, o Tableless passou por uma reformulação. Tradicionalmente, costumo fazer essas mudanças no dia 1º de Janeiro, mas desta vez será diferente. Mudamos não só layout (gostou?) mas também nosso sistema de publicação. Nos anos passados, sofríamos um &#8230;]]></description>
			<content:encoded><![CDATA[<p>Como podem ver, o Tableless passou por uma reformulação. Tradicionalmente, costumo fazer essas mudanças no dia 1º de Janeiro, mas desta vez será diferente.</p>
<p>Mudamos não só layout (gostou?) mas também nosso sistema de publicação. Nos anos passados, sofríamos um bocado para postar no site. Por isso, nessa reformulação, migramos para WordPress. Estamos gostando muito dessa ferramenta. Eu era um pouco avesso a aplicações prontas de publicação de blog. Por isso, ou fazíamos o nosso próprio ou editávamos direto o XML. Agora com WP nossos problemas acabaram.</p>
<p>Mudamos o layout também, como de costume. Feito meio às pressas, mas acho que ele agüenta até a próxima etapa.</p>
<p>Reformulei todo o Código XHTML e CSS. Se alguém abrisse o source do Tableless antigo, iria se deparar com técnicas ultrapassadas: image-replacement com SPAN, e outras coisas do tipo.<br />
Agora, se você conferir nosso source, vai encontrar tudo comentado (para aqueles que gostam de estudar) bem como um CSS bem feito.</p>
<p>Mas o ponto forte, é que fomos para outro &#8220;hospedeiro&#8221;. Migramos para a <a href="http://www.dreamhost.com/r.cgi?diegoeis/shared/">DreamHost</a>.<br />
O pessoal que conheço (<a href="http://brunotorres.net/">Bruno Torres</a>, <a href="http://www.digitalminds.com.br">Danilo Medeiros</a>, <a href="http://www.mobilelife.com.br/">Thiago Rigonatti</a> e outros) indica muito esse host. Com apenas US$7,95 você já consegue colocar seu site lá. Mais barato que os hosts brasileiros, e o serviço é impecável. E dizem que o suporte é fascinante.<br />
Agora, estamos lá. <img src='http://tableless.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Espero que as alterações sejam apreciadas por vocês, caros leitores.<br />
Outras modificações virão com certeza.</p>
<p>OBS.: Gostaria de agradecer o <a href="http://brunotorres.net/">Bruno Torres</a> por ter ajudado a fazer essa migração. O cara simplesmente fez tudo. Desde instalação do WP até importação do XML enorme do site antigo.<br />
Valeu cara.</p>
<p>A respeito do <a href="http://tableless.com.br/forum/">fórum</a>, migramos para phpBB. Logo, logo, vamos dar um jeito também no layout. Infelizmente, não é possível importar as senhas do Snitz, que são codificadas num formato próprio. Então, para acessar, você vai precisar criar uma senha nova. Acesse por <a href="http://tableless.dreamhosters.com/forum/profile.php?mode=sendpassword">aqui</a> e coloque seu nome de usuário e seu e-mail. Uma nova senha será gerada e enviada para você por e-mail. Se você não sabe seu nome de usuário, basta procurar algum post seu no fórum. É o seu nome, do jeito que estiver aparecendo lá.</p>
<h3  class="related_post_title">Posts Relacionados</h3><ul class="related_post"><li><a href="http://tableless.com.br/ah-o-maravilhoso-mundo-real/" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li><li><a href="http://tableless.com.br/wordpress-uma-pequena-introducao/" title="Wordpress &#8211; Uma pequena introdução">Wordpress &#8211; Uma pequena introdução</a></li><li><a href="http://tableless.com.br/o-caminho-suave-para-o-tableless/" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li><li><a href="http://tableless.com.br/escrevendo-um-xhtml-valido/" title="Escrevendo um XHTML válido">Escrevendo um XHTML válido</a></li><li><a href="http://tableless.com.br/curso-tableless/" title="Curso de Tableless">Curso de Tableless</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tableless.com.br/mudancas-repentinas/feed/</wfw:commentRss>
		<slash:comments>88</slash:comments>
		</item>
	</channel>
</rss>

