xoxo-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
(moving stuff about OPML to xoxo-opml-issues)
 
(36 intermediate revisions by 12 users not shown)
Line 4: Line 4:


* [http://tantek.com/log Tantek Çelik]
* [http://tantek.com/log Tantek Çelik]
* [[DimitriGlazkov]]


== Example Uses ==
== Example Uses ==
Line 28: Line 29:
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.
Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.


* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a XOXO list w/ expand/collapse folders
* An [http://www.opmlmanager.com/outliner/neuraxon77 example] of OPML to a unordered list w/ expand/collapse folders


===== Possible XOXO blogs+feeds markup =====
===== Possible XOXO blogs+feeds markup =====
Line 50: Line 51:
CSS styling could make this as pretty or not as desired.
CSS styling could make this as pretty or not as desired.


See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://blogxoxo.blogspot.com/2006/01/xoxo-blogroll-format.html XOXO Blogroll Format]
See also [[blog-info-examples]], [[blog-info-formats]], [[blog-info-brainstorming]], [http://singpolyma.net/2006/01/xoxo-blogroll-format/ XOXO Blogroll Format]


=== Wishlists ===
=== Wishlists ===
Line 69: Line 70:
Alternatively we could also use the class name "linkroll".
Alternatively we could also use the class name "linkroll".


But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue workng?
But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?


=== Applying "compact", Presentation Caveats ===


Currently, setting DOM property <code>compact</code> to <var>true</var> in Gecko produces an empty-value <code>compact=""</code> attribute, rather than the valid <code>compact="compact"</code>. In order to account for this quirk/bug, the CSS2 selector should be:


<pre>


ol[compact] { display: none; }


</pre>


If the XOXO item (represented by <code>li</code> element) contains properties, the application of <code>compact</code> may require more work to provide desired presentation. Since <code>compact</code> applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by <code>dl</code> element). For example, consider this XOXO fragment:


<pre><nowiki>
<ul>
<li>select
<dl>
<dt>show-title</dt>
<dd>false</dd>
</dl>
<ol compact>
<li>title</li>
<li>abstract</li>
</ol>
</li>
</ul>
</nowiki></pre>


If the desired presentation effect is to only show <var>select</var> when the nested list is collapsed, additional information (like a class name, assigned to <code>li</code> element) is necessary to hide <code>dl</code> element. In [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/ CSS3], there is a way to somewhat address it using [http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#general-sibling-combinators general sibling selectors]:


<pre>


ol[compact],
ol[compact] ~ dl {
  display: none;
}
</pre>
=== Parsing Properties ===
* From HTML spec, the content of both [http://www.w3.org/TR/html4/struct/lists.html#h-10.3 dl], and [http://www.w3.org/TR/html4/struct/lists.html#h-10.2 li] can contain block or inline elements.
** this implies that special properties can include markup.
** naturally, <var>url</var>, <var>type</var>, and <var>rel</var> properties don't fit into this rule logically, but that's a reasonable exception.
* First <code>a</code> element specifies <var>text</var>, <var>url</var>, <var>title</var>, <var>type</var> and <var>rel</var> properties
** If these properties are also defined using <code>dl</code>, they:
*** a. override values, specified in hyperlink
*** b. are ignored -- I ([[DimitriGlazkov]]) am leaning toward this choice
* First <code>dl</code> is treated as a special property set
** how to escape in case <code>dl</code> is content, not property set?
*** possibly like this:
<pre><nowiki>
<ul class="xoxo">
<li>
<dl>
<dt>text</dt>
<dd>
<!-- escaped -->
<dl class="dictionary">
<dt>term</dt>
<dd>definition</dd>
</dl>
</dd>
</dl>
</li>
</ul>
</nowiki></pre>
Based on preliminary research, all parsers mentioned in [[xoxo-sample-code]] use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:
<pre><nowiki>
<ul class="xoxo">
<li>
<a href="http://microformats.org">Microformats</a>
<dl>
<dt>text</dt>
<dd>XOXO</dd>
</dl>
</li>
</ul>
</nowiki></pre>


Will parse the value of <var>text</var> property as <code>XOXO</code>, not <code>Microformats</code>. Not sure yet whether this this the right thing.


<div  style="display:none">
=== Representing data structures in HTML ===
[We are delicate. We do not delete your content.]
[l_sp1]


[http://ringtonemaker.blogs.eurosport.com/ ringtone maker]
A mapping could be made between XOXO and the standard data structures of most programming languages - JSON, YAML, XML-RPC etc. --[[User:TomMorris|TomMorris]] 10:02, 10 Aug 2007 (PDT)
[http://verizonringtone.forumco.com/ verizon ringtone]
[http://uscellularringtone.forumco.com US Cellular Ringtone]
[http://blog.investing.com/bcbgshoes/ bcbg shoes]
[http://www.buddyprofile.com/viewprofile.php?username=waterfordcrystal waterford crystal]
[http://www.buddyprofile.com/viewprofile.php?username=swarovskicrystal swarovski crystal bead]
[http://www.buddyprofile.com/viewprofile.php?username=mesotheliomalawsuits mesothelioma lawsuits]
[http://www.buddyprofile.com/viewprofile.php?username=mesotheliomasymptoms mesothelioma symptoms]
[http://www.buddyprofile.com/viewprofile.php?username=mesotheliomadiag mesothelioma diagnosis]
[http://www.missoula.com/blog/sexypromdresses/ Sexy Prom Dresses]
[http://www.justachat.com/blog/?w=naturalizershoes Naturalizer Shoes]
[http://www.toutelapoesie.com/blog/aerobed/ Aero Bed]
[http://www.totalvideogames.com/blog/freesprintringtones/ Free Sprint Ringtones]
[http://www.totalvideogames.com/blog/freeverizonringtones/ Free Verizon Ringtones]
[http://www.totalvideogames.com/blog/freenextelringtones/ free nextel ringtones]
[http://www.totalvideogames.com/blog/sexypromdresses/ sexy prom dress]
[http://www.totalvideogames.com/blog/formalpromdresses/ Formal Prom Dresses]
[http://www.totalvideogames.com/blog/cheappromdresses/ cheap prom dresses]
[http://www.totalvideogames.com/blog/plussizepromdress/ Plus Size Prom Dresses]
[http://www.totalvideogames.com/blog/tiffanypromdresses/ tiffany prom dresses]
[http://www.totalvideogames.com/blog/strippoker/ erotic games strip poker]
[http://www.totalvideogames.com/blog/pokemoncardgame/ pokemon trading card game rom]
[http://www.totalvideogames.com/blog/hoylecardgames/ hoyle card games]
[http://www.totalvideogames.com/blog/teenbra/ teen bra]
[http://www.totalvideogames.com/blog/brateencleavage/ Bra Teen Cleavage]
[http://www.totalvideogames.com/blog/microbiniki/ Micro Bikini]
[http://www.totalvideogames.com/blog/teensbra/ Teens Bra]
[http://www.totalvideogames.com/blog/sexybras/ sexy bras]
[http://www.totalvideogames.com/blog/bulmabra/ bulma bra]
[http://www.totalvideogames.com/blog/sheerbra/ sheer bra]
[http://www.totalvideogames.com/blog/autoloancalculator/ auto loan calculator]
[http://www.totalvideogames.com/blog/loanconsolidation/ Federal Student Loan Consolidation]
[http://www.totalvideogames.com/blog/privatestudentloan/ private student loan consolidation]
[http://www.totalvideogames.com/blog/acsstudentloans/ acs student loans]
[http://www.totalvideogames.com/blog/countrywidehomeloans/ countrywide home loans]
[http://www.totalvideogames.com/blog/refinancehomeloan/ refinance home loan st louis]
[http://www.buddyprofile.com/viewprofile.php?username=wacoalbras wacoal bras]
[http://www.buddyprofile.com/viewprofile.php?username=teenbra teen bra]
[http://www.buddyprofile.com/viewprofile.php?username=unsecuredloan unsecured signature loan]
[http://www.buddyprofile.com/viewprofile.php?username=homeloans Countrywide Home Loans]
[http://blog.moddingplanet.it/?w=formalpromdresses Formal Prom Dresses]
[http://blog.moddingplanet.it/?w=sexypromdress Sexy Prom Dress]
[http://blog.moddingplanet.it/?w=cocktaildresses cocktail dresses]
[http://www.buddyprofile.com/viewprofile.php?username=telmobile TMobile]
[http://www.buddyprofile.com/viewprofile.php?username=watersoftener water softener]
[http://www.buddyprofile.com/viewprofile.php?username=tanklesswaterheater tankless water heater]
[http://www.totalvideogames.com/blog/oscardresses/ oscar dresses]
[http://www.totalvideogames.com/blog/motherbridedress/ mother of the bride dresses]
[http://www.totalvideogames.com/blog/bridesmaiddresses/ bridesmaid dresses]
[http://www.totalvideogames.com/blog/cocktaildresses/ cocktail dresses]
[http://www.totalvideogames.com/blog/formaldresses/ formal dresses]
[http://www.totalvideogames.com/blog/easterdresses/ easter dresses]
[http://www.totalvideogames.com/blog/eveningdresses/ evening dresses]
[http://www.totalvideogames.com/blog/eveninggowns/ evening gowns]
[http://www.totalvideogames.com/blog/ballgowns/ ball gowns]
[http://www.totalvideogames.com/blog/formalgowns/ formal gowns]
[http://www.totalvideogames.com/blog/plussizewedding/ plus size wedding gowns]
[http://www.buddyprofile.com/viewprofile.php?username=rockportshoes rockport shoes]
[http://www.buddyprofile.com/viewprofile.php?username=osmosiswaterfilter reverse osmosis water filter]
[http://www.buddyprofile.com/viewprofile.php?username=merrellshoes merrell shoes]
[http://www.totalvideogames.com/blog/casinoroyale/ casino royale]
[http://www.totalvideogames.com/blog/throatpokers/ throat pokers]
[http://www.totalvideogames.com/blog/freestrippoker/ free strip poker]
[http://www.totalvideogames.com/blog/crazygameofpoker/ crazy game of poker]
[http://www.totalvideogames.com/blog/pokerchips/ poker chips]
[http://www.totalvideogames.com/blog/texasholdempoker/ texas holdem poker game]
[http://www.totalvideogames.com/blog/onlinepokeraide/ online poker aide]
[http://www.totalvideogames.com/blog/onlinepokerassistant/ online poker assistant]
[http://www.totalvideogames.com/blog/casinodirectory/ casino directory gambling online]
[http://www.totalvideogames.com/blog/onlinepaigowpoker/ online pai gow poker]
[http://www.totalvideogames.com/blog/hooterscasino/ hooters casino]
[http://www.totalvideogames.com/blog/atlanticcitycasino/ atlantic city casinos]
[http://www.totalvideogames.com/blog/buyativanonline/ buy ativan online]
[http://www.totalvideogames.com/blog/buyoxycontinonline/ buy oxycontin online]
[http://www.totalvideogames.com/blog/buyalprazolamonline/ buy alprazolam online]
[http://www.totalvideogames.com/blog/buyalprazolam/ buy alprazolam]
[http://www.totalvideogames.com/blog/cialisnoprescription/ cialis no prescription]
[http://www.totalvideogames.com/blog/xanaxxr/ xanax xr]
[http://www.totalvideogames.com/blog/ultramer/ ultram er]
[http://www.totalvideogames.com/blog/buyultramonline/ buy ultram online]
[http://www.totalvideogames.com/blog/genericfioricet/ generic fioricet]
[http://www.totalvideogames.com/blog/buyfioricetonline/ buy fioricet online]
[http://www.totalvideogames.com/blog/phentermine375mg/ phentermine 37 5mg]
[http://www.totalvideogames.com/blog/bontrilsr/ bontril sr]
[http://www.totalvideogames.com/blog/cheapbontril/ cheap bontril]
[http://www.totalvideogames.com/blog/ambiencr/ ambien cr]
[http://www.totalvideogames.com/blog/buydidrexonline/ buy didrex online]
[http://www.totalvideogames.com/blog/adipex/ adipex without a prescription]
[http://www.totalvideogames.com/blog/buytamiflu/ buy tamiflu]
[http://www.totalvideogames.com/blog/buyclonazepam/ buy clonazepam]
[http://www.totalvideogames.com/blog/purchasetramadol/ purchase tramadol without a prescription]
[http://www.totalvideogames.com/blog/buyacyclovir/ buy acyclovir]
[http://www.totalvideogames.com/blog/buycodeine/ buy codeine]
[http://www.totalvideogames.com/blog/privatepoker/ private poker tournament]
[http://www.totalvideogames.com/blog/freerollpoker/ freeroll poker tournament]
[http://www.totalvideogames.com/blog/caribbeanstudpoker/ caribbean stud poker]
[http://www.totalvideogames.com/blog/paradisepoker/ paradise poker]
[http://www.totalvideogames.com/blog/playfreestrippoker/ play free strip poker]
[http://www.totalvideogames.com/blog/eroticgames/ erotic games strip poker]
[http://www.totalvideogames.com/blog/onlinepoker/ online poker calculator]
[http://www.totalvideogames.com/blog/onlinepokertracker/ online poker tracker]
[http://www.totalvideogames.com/blog/buydiazepam/ buy diazepam]
[http://www.totalvideogames.com/blog/didrex/ didrex]
[http://www.totalvideogames.com/blog/buydidrex/ buy didrex]
[http://www.totalvideogames.com/blog/adipexpr/ adipex without prescription]
[http://www.totalvideogames.com/blog/adipexp/ adipex p]
[http://www.totalvideogames.com/blog/clonazepam/ clonazepam]
[http://www.totalvideogames.com/blog/bclonazepam/ buy clonazepam]
[http://www.totalvideogames.com/blog/diethylpropion/ diethylpropion]
[http://www.totalvideogames.com/blog/celexa/ celexa]
[http://www.totalvideogames.com/blog/paxilcr/ paxil cr]
[http://www.totalvideogames.com/blog/lorazepam/ lorazepam]
[http://www.totalvideogames.com/blog/hydrocodoneapap/ hydrocodone apap]
[http://www.totalvideogames.com/blog/lortab/ lortab]
[http://www.totalvideogames.com/blog/klonopin/ klonopin]
[http://www.totalvideogames.com/blog/norco/ norco]
[http://www.totalvideogames.com/blog/buypropecia/ buy propecia]
[http://www.totalvideogames.com/blog/orderpropecia/ order propecia]
[http://www.totalvideogames.com/blog/phendimetrazine/ phendimetrazine]
[http://www.totalvideogames.com/blog/Butalbital/ Butalbital]
[http://www.totalvideogames.com/blog/cheapxenical/ cheap xenical]
[http://www.totalvideogames.com/blog/wellbutrinxl/ wellbutrin xl]
[http://www.totalvideogames.com/blog/valtrex/ valtrex]
[http://www.totalvideogames.com/blog/vicodin/ vicodin without prescription]
[http://www.totalvideogames.com/blog/lasvegascasino/ las vegas casino coupons]
[http://www.totalvideogames.com/blog/lasvegaspalms/ las vegas palms casino]
[http://www.totalvideogames.com/blog/hooterscasinolas/ hooters casino las vegas]
[http://www.totalvideogames.com/blog/microgamingcasino/ microgaming casino bonus]
[http://www.totalvideogames.com/blog/playtechcasinobonu/ playtech casino bonus]
[http://www.totalvideogames.com/blog/rtgcasinobonus/ rtg casino bonus]
[http://www.totalvideogames.com/blog/grandcasinotunica/ grand casino tunica]
[http://www.totalvideogames.com/blog/grandcasinomille/ grand casino mille lacs]
[http://www.totalvideogames.com/blog/grandcasinocoushat/ grand casino coushatta]
[http://www.totalvideogames.com/blog/grandcasinohinckle/ grand casino hinckley]
[http://www.totalvideogames.com/blog/grandcasinohinkley/ grand casino hinkley]


[http://www.totalvideogames.com/blog/grandvictoriacasino/ grand victoria casino]
== OPML/XOXO conversion ==
[http://www.totalvideogames.com/blog/californiaindian/ california indian casinos]
[http://www.totalvideogames.com/blog/isleofcapricasino/ isle of capri casino]
[http://www.totalvideogames.com/blog/mohegansuncasino/ mohegan sun casino]
[http://www.totalvideogames.com/blog/casinowindsor/ casino windsor]
[http://www.totalvideogames.com/blog/tropicanacasino/ tropicana casino]
[http://www.totalvideogames.com/blog/harrahscasino/ harrahs casino]
[http://www.totalvideogames.com/blog/palacasino/ pala casino]
[http://www.totalvideogames.com/blog/pechangacasino/ pechanga casino]
[http://www.totalvideogames.com/blog/soaringeaglecasino/ soaring eagle casino]
[http://www.totalvideogames.com/blog/winstarcasino/ winstar casino]
[http://www.totalvideogames.com/blog/progressiveslots/ progressive slots]
[http://www.totalvideogames.com/blog/roulettewheels/ roulette wheels]
[http://www.totalvideogames.com/blog/roulettewheel/ roulette wheel]
[http://www.totalvideogames.com/blog/nflgamblingpicks/ nfl gambling picks]
[http://www.totalvideogames.com/blog/gamblingcruise/ gambling cruise]


</div>
This has been moved to [[xoxo-opml-issues]]. –[[User:TomMorris|TomMorris]] 18:44, 3 December 2009 (UTC)

Latest revision as of 18:44, 3 December 2009

XOXO brainstorming

Authors

Example Uses

XOXO Lists and outlines are used for numerous special purposes across the web. This section is here to document both best practices and recommendations.

Blogrolls

Background: See L.M. Orchard's post "Subscriptions Are Attention But What About Blogrolls".

Nearly all blogrolls are already published as XOXO on blog, but there is no obvious way to distinguish the XOXO blogroll from other lists in the content/header/footer of the blog.

XOXO standardizes (see xoxo-profile) the class name "blogroll" for blogroll lists. E.g.

<ul class="xoxo blogroll">
 <li><a href="...">...</a></li>
 <li><a href="...">...</a></li>
</ul>

Note that a blogroll is a superset of a subscription list.

Subscription information

Some blogrolls contain feed information -- it would be nice if XOXO blogrolls could capture this information also. This, in and of itself, would be a nice step up from OPML.

  • An example of OPML to a unordered list w/ expand/collapse folders
Possible XOXO blogs+feeds markup

Here is one example of how you could publish blogs+feeds in XOXO. Note that since a XOXO parser will only treat the first hyperlink as the info for the list item, the blog names and URLs will be parsed, and the feeds will be ignored. In reality, the blogs themselves should contain the necessary auto-discovery links to their own feeds, which is more reliable anyway.

<ul class="xoxo blogroll">
 <li>
  <a href="blogURL1">Blog Name 1</a>
  <a href=".../index.xml" rel="alternate" type="application/atom+xml">RSS</a>
 </li>
 <li>
  <a href="blogURL2">Blog Name 2</a>
  <a href=".../index.xml" rel="alternate" type="application/rss+xml">RSS</</a>
  <a href=".../index.atom" rel="alternate" type="application/atom+xml">Atom</a>
 </li>
</ul>

CSS styling could make this as pretty or not as desired.

See also blog-info-examples, blog-info-formats, blog-info-brainstorming, XOXO Blogroll Format

Wishlists

Background: See L.M. Orchard's post: "I wish it were in XOXO"

Similar to blogrolls, what if we used the class name "wishlist"?

What are the distinguishing features of wishlists?

Is a wishlist item the same as a listing that is looking for an item? See: listing-examples, listing-formats, listing-brainstorming

Tagged Links

This one seems easier, because you could simply use a list of xFolk items, which is recognizable.

Alternatively we could also use the class name "linkroll".

But how far can we successfully take that method (of adding a new class name for each specific use of XOXO) scale and continue working?

Applying "compact", Presentation Caveats

Currently, setting DOM property compact to true in Gecko produces an empty-value compact="" attribute, rather than the valid compact="compact". In order to account for this quirk/bug, the CSS2 selector should be:


ol[compact] { display: none; }

If the XOXO item (represented by li element) contains properties, the application of compact may require more work to provide desired presentation. Since compact applies to the list, not the item, the properties of the item remain unaffected by changing the value of the attribute on the list (which is a peer of the property bag, represented by dl element). For example, consider this XOXO fragment:


<ul>
	<li>select
		<dl>
			<dt>show-title</dt>
			<dd>false</dd>
		</dl>
		<ol compact>
			<li>title</li>
			<li>abstract</li>
		</ol>
	</li>
</ul>

If the desired presentation effect is to only show select when the nested list is collapsed, additional information (like a class name, assigned to li element) is necessary to hide dl element. In CSS3, there is a way to somewhat address it using general sibling selectors:


ol[compact],
ol[compact] ~ dl { 
   display: none;
}

Parsing Properties

  • From HTML spec, the content of both dl, and li can contain block or inline elements.
    • this implies that special properties can include markup.
    • naturally, url, type, and rel properties don't fit into this rule logically, but that's a reasonable exception.
  • First a element specifies text, url, title, type and rel properties
    • If these properties are also defined using dl, they:
      • a. override values, specified in hyperlink
      • b. are ignored -- I (DimitriGlazkov) am leaning toward this choice
  • First dl is treated as a special property set
    • how to escape in case dl is content, not property set?
      • possibly like this:

<ul class="xoxo">
	<li>
		<dl>
			<dt>text</dt>
			<dd>
				<!-- escaped -->
				<dl class="dictionary">
					<dt>term</dt>
					<dd>definition</dd>
				</dl>
			</dd>
		</dl>
	</li>
</ul>

Based on preliminary research, all parsers mentioned in xoxo-sample-code use property bag or dictionary to collect properties, which means that last value specified wins (overrides previously specified). This means that this bit of markup:


<ul class="xoxo">
	<li>
		<a href="http://microformats.org">Microformats</a>
		<dl>
			<dt>text</dt>
			<dd>XOXO</dd>
		</dl>
	</li>
</ul>

Will parse the value of text property as XOXO, not Microformats. Not sure yet whether this this the right thing.

Representing data structures in HTML

A mapping could be made between XOXO and the standard data structures of most programming languages - JSON, YAML, XML-RPC etc. --TomMorris 10:02, 10 Aug 2007 (PDT)

OPML/XOXO conversion

This has been moved to xoxo-opml-issues. –TomMorris 18:44, 3 December 2009 (UTC)