hcalendar-authoring

From Microformats Wiki
Revision as of 00:28, 30 August 2007 by QqqF4f (talk | contribs)
Jump to navigation Jump to search

[katsumi] [nightmare before christmas tim burton] [olimpus e1] [giardino arredamento] [km 0 rm] [fase laserdisc] [traduzione della canzone dragostea din t] [chatear] [jeti sport 1] [massimo di cataldo] [mercedes e 280] [traxdata kit di pulizia] [militari decapitati] [gallerie fotografiche porno gratis] [regolamento condominio] [supermen merlin joksimovic] [impianto luci] [discariche compattazione] [televisori plasma 32] [pentium 3 2] [cavo dati siemens s55] [frigoriferi combinati a] [nike duro] [video scandalo vip] [la grande rivolta] [san jose intrattenimento] [frocetto] [madeas family reunion] [portatili athlon 64] [chicken little] [promo studio mae] [freelander sicilia] [baltag cezar] [quadro fx 4400] [ragazzo parigi] [suono monitor] [fujifilm s3 pro] [dfi nf4slidr] [foto pazze] [telefono erotico 899] [roy orbison live at austin city limits augusts 1982] [hdtv ready] [looney tunes] [liquid edition 6] [circle jerks live at the house of blues] [produzione sauna] [ventilatori soffitto argento] [pastiglia dimagrire] [da qualche parte] [le coode de canal fr] [matematica per la gestione finanziaria] [liza minnelli] [audiokey 512] [dvbt pci ci] [aladdin trilogy] [landa] [istituto s pio x] [reclame champions league] [mp3 cro] [xbox pc pc] [scheda video in out pci] [hosseini libri] [piumino pelo] [muzica romania] [ingegnere decapitato] [ariete espresso] [pistas de reggeton gratis] [sex orale] [club prive in abruzzo] [discografia gianni celeste] [chiarine] [mauro caputo] [gioventu fascista] [everybody s got to learn sometime beck] [kill bill dvd] [adattatore usb firewire] [troie pompini chiavare sborrate gratis] [un medico in famiglia prima serie vol 14] [computer palmare] [backstage calendario carolina marconi] [samanta de grenet] [farry boat] [wili] [valentino occhiali donna da sole] [il trenino thomas] [manuela do bbb 4] [brescia e provincia] [ombre sul cuore] [km 0 seat ibiza] [plagi musicali] [every body got to learn sometime] [ospedali di roma] [www trepuzzi it] [erosramazotti] [royal canin boxer] [marchio ce] [adattatore di corrente usb] [giochi europei 2004] [furia gialla] [powter daniel] [intolleranza] [mercedes c 270 cdi sw] [parafrasi andreuccio da perugia] [so dimm 100] [hotel albergo lido jesolo] [bell imedia] [tablature basso rasmus] [note cuf 1] [nike felpe] [paludan jakob] [philips nike] [hotel capital iesolo] [ducati monster 600 dark] [fritz lang] [morbo di evans] [bob2006] [scegliere conto corrente] [thuthuca] [lavastoviglie incasso 45] [friends stagione 7] [sexso de colegialas] [musiche viennesi] [coppia romana consolidata] [ronald colman] [monitor lcd 17 dvi 8ms] [princess dianan] [rana golia] [idraulica como] [polti eco 3000] [ford c max] [pijane foto] [motocros] [spartiti de crescenzo] [comune poggio sanita] [cercasi casa a manhattan] [olimpiadi ginnastica ritmica] [d2x nikon] [comune di montecatini] [ma se ghe pensu] [jojo leave mp3] [aira] [all the rooms] [grossisti calze e collant] [wil 146 sp (it) (co)] [telecamere mini dvd] [carra maracaibo testo] [hard nonne con voglia di scopare] [sviluppo fotografia digitali] [ragazze scollate] [concessionari toyota milano] [bel vita] [morte di berg] [ragazzo sestri levante] [cosmetologia] [il mondo fontana] [dowson creeck] [hot whells] [occhiali da sole versace] [www xxltv net] [twain mark] [pantalone] [romanzo criminale libri] [coppia con singolo] [painted on my heart] [foto tagli di capelli] [soldier fortune] [il vangelo secondo precario] [lc power 480w] [camper usato lombardia] [moguai] [scanner epson perfection 4990] [prodotti tipico gastronomia] [re 100] [circolari lavoro] [modem router 3com] [power injector] [ritmo 2] [ricevitore gps tom tom 5] [monitor lcd 40] [cera per marmo] [offerta 2] [dibujos de dragon ball z] [kenwood km 005] [black e decker] [video alcazar] [escort accompagnatrici modena] [sesso oggetto] [marc ribot] [tv hdtv] [le formiche black power] [audi a3 2003] [registratore digitale 2300] [thailandia] [sfondi per xp 2] [camion da gara] [scugnizzi] [pussy cum] [velden] [airone it] [transessuali foto]

hCalendar authoring

This page contains useful tips and guidelines for how to author hCalendar events, either from scratch, or by adding markup to existing content.

Goal: The goal of this document is to provide some good intuitive guidelines that should make it as easy and as quick as possible for any web author to create hCalendar events or add hCalendar markup to existing content.

Audience: Web authors and designers. This document is written for easy consumption and understanding by any web designer who knows at least enough (X)HTML and CSS to use HTML class names on elements and write CSS selectors that apply styles to those class names. Please help with clarifying/simplifying this document accordingly.

Author(s): Tantek Çelik

Creating new hCalendar events

Start with the hCalendar creator, and for additional fields and properties (e.g. contact, attendees, etc.), see the hCalendar examples page as well as the rest of this page.

Adding hCalendar markup to existing content

Minimal Markup Changes

The important thing to keep in mind when adding microformats to existing content, is the fact that microformats are designed so that they can be added with minimal (almost always no) changes to the existing presentation of the page. Thus keep this in mind: change as little markup as possible. If you want to fix various pages to be valid XHTML as well, that's fine goal and highly encouraged.

Find Events

Start with looking for all mentions of events on a page, such as an "Upcoming Events" or "Recent Events" listing. Those are all potential hCalendar events. Even more so if they are linked to their respective URLs (e.g. per event pages with more details).

If an event is mentioned several times on a page, consider marking up the mention which is the most persistent, detailed, definitive, or otherwise thorough as an hCalendar event. Ideally you might want to mark up all instances of a events with hCalendar, but for now, just keep it simple and markup the most representative instance. (Perhaps the most "definitive" instance, which could also then be marked up with a <dfn> element around the summary/title of the event for additional semantic XHTML goodness.)

Determine The Surrounding Element for Each

For each event that you want to add hCalendar, find the smallest element that contains all the info about that event, without overlapping with any other event on the page.

Add the class name "vevent" to that element.

If there is no such element (perhaps the nearest enclosing element contains more than one event), then add a <span class="vevent">...</span> or <div class="vevent">...</div> that wraps the info about about that event and just that event.

The rest of the markup for this hCalendar event MUST go inside that element with the class name "vevent".

In all cases, where it says to add an element with class name of "xyz", if you can find an existing element that precisely surrounds the necessary content, then re-use that element and simply add the class name "xyz" to it (by adding it to the class attribute on the existing element, or by adding a new class attribute class="xyz" to elements without a class attribute).

For instance, assuming you have the following markup:

    <div class="someFoo">
       <p> This is my wonderful markup, it contains some event information inside of it</p>
       <h6>Some Wonderful Event</h6>
       <p> From the people who brought you Great Times and Fun Lovin, 
           comes the Some Wonderful Event at the Local Sports Stadium.  
           Come at <b>A Specified Time</b>, and enjoy yourself! </p>
    </div>

If you need to add an element with the class of "vevent" around your event content, you could re-use the existing div element, and add the class "vevent" to it like so:

    <div class="someFoo vevent">

Similarly, if you decide not to re-purpose an existing container, you can just wrap the content around a new block:

    <div class="someFoo">
      <div class="vevent">
         <p> This is my wond...
         ...
         ... and enjoy yourself! </p>
      </div>
    </div>

The Importance of Time and Topic

Several properties are required in hCalendar. At a minimum, an event needs a "summary" (AKA title) and "dtstart" (starting date time), as well as either a "dtend" (ending date time) or "duration". Thus be sure to mark up the name/summary/title of the event with the class name "summary". E.g.

<div class="vevent">
 <span class="summary">An Event Apart, New York City, NY</span>,
 <abbr class="dtstart" title="20060710">July 10</abbr>-<abbr class="dtend" title="20060712">11th, 2006</abbr>
</div>

This event might be presented like:

An Event Apart, New York City, NY, July 10-11th, 2006

Note: the use of the abbr element's title attribute to markup a machine readable absolute datetime in addition to the human readable text. Note also that the machine readable ending date is the day *after* the date specified in the human readable content. The reason for this is that hCalendar still interprets an ending date without a time as an instant in time, that is midnight, the absolute beginning of that day, thus ending the event the day before. See hCalendar and hcalendar-example1-steps for more details on the use of the abbr element in this fashion.

Eliminating Default Dotted Underline

Some browsers (Camino, Firefox, Mozilla) put a dotted underline or border on each abbr. This is typically an ugly effect and distracting in most clean modern web designs. Thus be sure to use the following rule in your style sheet to eliminate this default presentation.

abbr{border:0}

In the above example, this would have the following effect (which may not look any different for some readers):

An Event Apart, New York City, NY, July 10-11th, 2006

Representative URLs

One of the most common patterns for events in web content is to link them to their definitive/preferred web site.

"Event Rolls" are a good example of this (see also XOXO for proper semantic list and outline markup).

Since the class attribute takes a space separated set of class names, one can often markup the URL on the same element as the name, e.g. by replacing the first <span> in the above example with an <a href> hyperlink:

<div class="vevent">
 <a href="http://aneventapart.com/events/2006/nyc/" class="summary url">An Event Apart, New York City, NY</a>,
 <abbr class="dtstart" title="20060710">July 10</abbr>-<abbr class="dtend" title="20060712">11th, 2006</abbr>
</div>

This event might be presented like:

An Event Apart, New York City, NY, July 10-11th, 2006

Location Location Location

As with real estate, the location of an event is quite relevant, and important to markup properly. At a minimum, identify the location related information in the event and mark it up with the class name of "location", e.g. continuing with the above example:

<div class="vevent">
 <a href="http://aneventapart.com/events/2006/nyc/" class="summary url">An Event Apart, 
  <span class="location">New York City, NY</span></a>, 
 <abbr class="dtstart" title="20060710">July 10</abbr>-<abbr class="dtend" title="20060712">11th, 2006</abbr>
</div>

This is good, but can be made even better with the addition of the adr microformat to explicitly identify the city and state:

<div class="vevent">
 <a href="http://aneventapart.com/events/2006/nyc/" class="summary url">An Event Apart, 
  <span class="location adr"><span class="locality">New York City</span>, <span class="region">NY</span></span></a>, 
 <abbr class="dtstart" title="20060710">July 10</abbr>-<abbr class="dtend" title="20060712">11th, 2006</abbr>
</div>

Even better, if the location has a name, such as a business or organization, make the location into complete hCard rather than just an adr:

<div class="vevent">
 <a href="http://aneventapart.com/events/2006/nyc/" class="summary url">An Event Apart, 
  <span class="location vcard">
   <span class="fn org">Scandinavia House</span>,
   <span class="adr"><span class="locality">New York City</span>, <span class="region">NY</span></span>
  </span></a>,
 <abbr class="dtstart" title="20060710">July 10</abbr>-<abbr class="dtend" title="20060712">11th, 2006</abbr>
</div>

More tips and guidelines

Feel free to add more tips that experience has taught you while marking up events with hCalendar, even if all you add is a brief catch phrase that reminds you.

  • How to mark up the contact and organizer
  • How to mark up attendees (including speakers)
  • ...

Related Pages

This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.