xoxo-pt-br
XOXO 1.0: Extensible Open XHTML Outlines
XOXO é um formato de esboço simples, aberto escrito em padrão XHTML e adequado para ser embutido em (X)HTML, Atom, RSS, e XML arbitrário. XOXO é um dos muitos microformatos de padrões aberto.
Draft Specification 2004-10-01
Editor
Autores
- Kevin Marks, Technorati, Inc
- Tantek Çelik, Technorati, Inc (formerly of Microsoft Corporation)
- Mark Pilgrim, IBM
- Morten W. Petersen
Copyright
This specification is (C) 2003-2024 by the authors. However, the authors intend to submit (or already have submitted, see details in the spec) this specification to a standards body with a liberal copyright/licensing policy such as the GMPG, IETF, and/or W3C. Anyone wishing to contribute should read their copyright principles, policies and licenses (e.g. the GMPG Principles) and agree to them, including licensing of all contributions under all required licenses (e.g. CC-by 1.0 and later), before contributing.
Patentes
This specification is subject to a royalty free patent policy, e.g. per the W3C Patent Policy, and IETF RFC3667 & RFC3668.
Prefácio
Quando estávamos discutindo Attention.xml, Tantek apontou que XHTML tem tudo de necessário para expressar semanticamente esboços e subscrição em blogroll-derivados em um formato XML que são ambos renderizável interativamente por navegadores e analisável por motores XML rígidas (strict). Esta página está aqui para discutir essa idéia.
Nome
XOXO significa eXtensible Open XHTML Outlines, e é pronunciado variadamente como 'ecks oh ecks oh', 'zho-zho' ou 'sho-sho'.
Sumário
Essa especificação define um novo tipo de documento XHTML que é baseada sob o módulo de estrutura e módulos definido em Modularização de XHTML
XOXO é um dos muitos microformatos. Essa especificação define um novo tipo de documento XHTML que é baseada sob o módulo de estrutura e módulos definido em Modularização de XHTML (XHTMLMOD). O propósito do tipo de documento XOXO é para servir como base para esboço de XHTML amigável para processamento por motores XML e para fácil renderização interativa por browsers.
O Tipo de Documento XOXO
O tipo de documento XOXO é composto dos seguintes módulos XHTML. Os elementos, atributos e modelos de conteúdo mínimos associado com estes módulos são definidos pela "Modularização de XHTML" (XHTMLMOD). Os elementos que estão listados aqui são para propósitos de informação, mas as definições de "Modularização de XHTML" devem ser consideradas definitivas. Na versão online desse documento, os módulos online na lista abaixo fazem ligação para definição dos módulos dentro da atual versão de "Modularização de XHTML"
body, head, html, title
a
dl, dt, dd, ol, ul, li
meta
style element
style attribute
link
Attribute compact on ol and ul
O Perfil XOXO
Veja xoxo-profile para o perfil XMDP de XOXO que define os valores XOXO para o atributo class.
Simples Fragmento XOXO
Marcação
<ol class='xoxo'> <li>Assunto 1 <ol> <li>subponto a</li> <li>subponto b</li> </ol> </li> <li>Assunto 2 <ol compact="compact"> <li>subponto c</li> <li>subponto d</li> </ol> </li> <li>Assunto 3 <ol> <li>subponto e</li> </ol> </li> </ol>
Exemplo de Renderização
1. Assunto 1 a. subponto a b. subponto b 2. Assunto 2 3. Assunto 3 a. subponto e
Uso do atributo 'compact'
Note que o uso do atributo 'compact' indica que os subpontos de título de "Assunto 2" não estão em um estágio expandido. A ausência do atributo 'compact' indica que outros títulos estão em um estágio expandido.
Regras de Estilo Padrão para o Exemplo da Renderização
ol.xoxo { list-style:decimal; } ol.xoxo ol { list-style:lower-latin; } ol[compact="compact"] { display:none; }
Mais Exemplos Simples
MarkP fez um conjunto de exemplos que demostra ambos a simplicidade de marcação e a riquesa de apresentação que é possível:
- simple arquivo XO que pode ser embutido diretamente em uma página XHTML
- XO with nested groups, also directly embeddedable in XHTML
- XO as a standalone XHTML page (valid XHTML)
- XO as a standalone XHTML page, styled with CSS (also valid XHTML)
- Chris Holland Outline Helper: tweaked one of above samples, yanked CSS for simplicity, added reference to outlines.css and outlines.js, pasted a few different combinations of ul/ol/li with the compact attribute.
- na tentativa de cumprir com príncipios semanticos o atributo "compact" para os elementos ol e ul é o que conduzem o estágio de exibição. Por scripting, estou definindo classes pertercentes ao elemento li para adicionar flexibilidade de estilização, através do CSS Gurus devee estar apto a substitur "li.expanded" no outlines.css com algum outro seletor CSS que diz "selecione um nó li que contém um nó ol com um atributo 'compact'"
Propriedades de Itens Esboço
Esboços tipicamente consiste de uma hiearquia de pontos e subpontos. Cada um desses pontos (item do esboço) si próprio pode ter algumas propriedades (como atributos ou metadata) que são necessários para ser representado. Talvez a mais comum propriedade adicional em itens de esboço na prática é a URL como demostrado nos exemplos de Mark Pilgrim acima
Até mesmo o texto label/title de um item de esboço pode ser considerado uma propriedade comum. Algumas tais propriedades comum:
- text /texto
- description /descrição
- url (frequentemente chamado de xmlurl ou htmlurl; as veses de permalink)
- title /título
- type /tipo (hint of the MIME type of the resource indicated by the URL)
Em geral, propriedades em um item de esboço <li>
são representado por um lista de definição alojado. A rigor, é o primeiro <dl>
dentro do <li>
e antes de qualquer seguinte <ol>
, <ul>
, ou <li>
, exemplo. aqui é um item "item 1" com uma propriedades descrição (os subpontos existem puramente como um ponto de referencia para um exemplo recente).
<ol class='xoxo'> <li>item 1 <dl> <dt>description</dt> <dd>This item represents the main point we're trying to make.</dd> </dl> <ol> <li>subpoint a</li> <li>subpoint b</li> </ol> </li>
Propriedades Especiais
Há um punhado de propriedades especial que estamos apto a representar mais diretamente e convenientemente com o XHTML semântico construíndo blocos que temos incluíndo, em vez de termos de uma lista de definição. Predominantemente levada da lista abaoxp de propriedades comum, são esses:
- text, url, title, type, e rel (abreviação de relationship/relação)
Se fossemos representá-los de forma simples como termos de definição (incluindo a propriedade "description" do exemplo anterior), eles poderiam se parecer com algo como isso:
Exemplo de causa de discussão apenas / não um exemplo XOXO canônico:
<ol class='xoxo'> <li> <dl> <dt>texto</dt> <dd>item 1</dd> <dt>description</dt> <dd> Esse item representa o ponto principal que tentamos fazer.</dd> <dt>url</dt> <dd>http://example.com/more.xoxo</dd> <dt>title</dt> <dd>title of item 1</dd> <dt>type</dt> <dd>text/xml</dd> <dt>rel</dt> <dd>help</dd> </dl> </li>
Embora, levando vantagem na semântica o elemento <a href>
, estamos apto a simplificar dramaticamente os casos comum que utilizamos nessas propriedades. Da perspectiva de analisadores, isto aplica-se primeiro ao elemento <a href>
diretamente dentro do <li>
.
Exemplo XOXO Atual:
<ol class='xoxo'> <li><a href="http://example.com/more.xoxo" title="titulo do item 1" type="text/xml" rel="help">item 1</a> <!-- veja como a propriedade "text" simplifica o conteúdo do elemento <a> --> <dl> <dt>descrição</dt> <dd>Esse item representa o ponto principal do que estamos fazendo.</dd> </dl> </li>
Qualquer outras propriedades são simplesmente adicionadas para a lista de definição na mesma forma como a propriedades "description"
Publicação XOXO
XOXO pode ser publicado de duas formas, XHTML válido, e simples XML bem-formado.
XHTML Válido XOXO
Uma página XHTML válido XOXO é um documento XHTML completo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Página XOXO</title> </head> <body> <ol class="xoxo"> <li><a href="URL-one">TEXTO-um</a></li> <li><a href="URL-two">TEXTO-dois</a></li> ... </ol> </body> </html>
Content-Type
XHTML Válido XOXO DEVE ser servidor com esse cabeçalho Content-Type para a máxima compatibilidade de navegação.
Content-Type: text/html; charset=utf-8
Isso DEVE ser servidor com um desses cabeçalhos Content-Type
Content-Type: text/html; charset=utf-8 Content-Type: application/xhtml+xml
XML bem-formado XOXO
O elemento raiz da uma simples página XML bem-formado XOXO é ou um ol
ou ul
com nome de classes de "xoxo". Essa variante é ideal para distribuição e transclusion em páginas (X)HTML com AHAH.
<ol class="xoxo"> <li><a href="URL-one">TEXTO-um</a</li> <li><a href="URL-two">TEXTO-dois</a></li> ... </ol>
Content-Type
Simples XML bem-formado XOXO DEVE ser servidor com este cabeçalho Content-Type:
Content-Type: text/xml; charset=utf-8
Ele deve ser servido com um desses cabeçalhos Content-Type:
Content-Type: text/xml; charset=utf-8 Content-Type: application/xml Content-Type: application/xml; charset=utf-8
Exemplos
Esta seção é informativa.
Grande múmeros para documentar completamente. Quase cada blogroll na Web pode ser analisável como XOXO, desde que eles são tipicamente uma lista não ordenada de lista de items de hyperlinks, que estão dentro do perfil XOXO.
Implementações
Esta seção é informativa.
- Christian Neukirchen foi escrito um xoxo.rb, um analisador XOXO e gerado por Ruby
- Odeo publishes users' subscription lists in XOXO. See Ryan King's list here.
- Les Orchard has written a nice XOXO outline editor in javascript.
- http://homepage.mac.com/ctholland/thelab/outlines/ is a great demonstration of dynamic interactive XOXO with use of "compact" and DHTML to collapse/expand.
- http://tool-man.org/examples/sorting.html é uma ótima demostração de arrastar e soltar de apresentação de listas XOXO com javascript e CSS.
- http://www.opendarwin.org/~drernie/xoxo-datatypes.html Mapping XOXO to Mac OS X property lists
- single line of rails to convert XOXO to HTML
Exemplo de Código
- Veja a página xoxo-sample-code por exemplos de código aberto para ler e escrever arquivos XOXO.
- Veja também a página xoxo-compact-sample com fontes de CSS e JS que modificam a aparencia e sensação de algumas muitos XOXO planos ter virado triângulos para alojar lista que respeitam o atributo compact como dito.
Esquemas XOXO
Esta seção é informativa.
Nota: estes podem estar desatualizados e requerer atualização para refletir o uso do <dl> para explicar itens XOXO com propriedades arbitrárias.
Referencias
Normative References
Referencias Informativa
This section is informative.
- Attention.xml
- VoteLinks
- XHTML 1.1
- OPML 1.0
- Contributed from http://developers.technorati.com/wiki/XOXO
Trabalho Similar
- XHTML Outlines - DannyAyers independently came up with idea in 2003 October (just a month or two before Kevin and Tantek independently came up with XOXO) to use a simple profile of XHTML to semantically represent outlines using existing building blocks from XHTML.
- XOW - making them editable, producing RDF and bookmark lists from them (DannyAyers)
Leitura Vinculado
- Patrick Logan on why OPML and a Microsoft Lists extension are both unnecessary.
- Dr. Tao Chen on why it is better to use XOXO than OPML going forward
Leitura Desvinculado
- Questionable Content comic #493 - apparently the Faye character is a fan of XOXO.
Materiais Promocionais
- Há uma completa linha de roupas e acessórios XOXO em. Compre materiais XOXO online.
Discussões
Essa especificação é um trabalho em progresso. Como aspectos adicionais estão discutidos, compreendidos e escritos, eles serão adicionados. Há um documento separado que estamos mantendo nossas idéias eoutras relações exploratórias em XOXO:
- Veja xoxo-brainstorming para pensamentos adicionais de como usar XOXO para usos especificos.
- Veja também os blogs de discussão nessa página.
Perguntas&Respostas
- Se você tem qualquer dúvida sobre XOXO, verifique nosso xoxo-faq, e se você não encontrar respostas, adicione-a.!
Assuntos
- Por favor, adicione qualquer assunto com a especificação no documento separado xoxo-issues (em inglês).