[uf-new] Re: Calendar-wide scope for properties in hCalendar

Toby A Inkster mail at tobyinkster.co.uk
Sun Mar 16 03:46:20 PST 2008

Ben Ward wrote:

> Plausible Solution #1: Include-Pattern
> We could extend hCalendar to permit use of the include pattern. This
> would parse. {<object class="include" data="#channel"></object>} to  
> reference a five character string. It's clumsy at best, definitely  
> ugly and I really feel that it's publisher unfriendly.

Yes, the present include pattern is very verbose. Whatsmore, use of  
the <object> element can trigger excessive memory usage in some  
browsers, and if you switch to <a>, then you might start interfering  
with the tab cycle. :-(

For these reasons, I proposed a replacement for the current include  
pattern, by which you'd just be able to use <li class="vevent  
#channel">...</li> to include the element with ID "channel" as part  
of the event.


This is currently implemented in Cognition (http://buzzword.org.uk/ 

If you were publishing the events as a table rather than a list, you  
could use the table header pattern described on the hcalendar- 
brainstorming page. This is supported by Cognition and IIRC X2V.

> Allow the LOCATION property to be a direct child of the VCALENDAR
> object, and apply that LOCATION to all VEVENT objects by default.

It seems to me that improving the include pattern to make it more  
usable is a better solution. Sure, this adjustment may seem fruitful  
in the short term, but then what happens when you have the same  
problem with organisations for multiple hCards, or items for multiple  
hReviews. An improvement to the include pattern would be usable for  
all properties in all compound microformats -- not just locations in  

> In that regard, I'd like to ask those who build parsers to a more
> complex degree than I do to contribute here and answer whether such
> an optimisation would be unreasonably expensive to parse.

Although I've only been working on it for a month or so, I think  
Cognition is possibly the most complex parser around, in that it  
supports several different microformats, RDF (including RDFa and  
eRDF) and more. Such an extension wouldn't make hCalendars  
unreasonably difficult to parse. In the case of Cognition, it would  
basically be copying and pasting a chunk of code from the hEvent  
module to the hCalendar module.

But I really think that the include pattern is the way to go. If it's  
too verbose, then we should improve the include pattern for the  
benefit of all, rather than complicating hCalendar for the benefit of  
the few.

Toby A Inkster
<mailto:mail at tobyinkster.co.uk>

More information about the microformats-new mailing list