[uf-discuss] include pattern proxy
    Scott Reynen 
    scott at randomchaos.com
       
    Wed Jun  7 18:54:40 PDT 2006
    
    
  
On Jun 7, 2006, at 9:43 AM, Tantek Çelik wrote:
> Those of you who have written parsers out there (Scott Reynen,  
> Assaf Arkin,
> Tails/Flocktails folks, Reevoo, etc.), if you could please take a  
> look at
> modifying your code to implement object-include support for the  
> microformats
> you parse (e.g. hCard, hCalendar, hReview), it would be good to  
> know if the
> adding support for the include-pattern is:
>
> 1. easy
> 2. possible, but a bit of work
> 3. possible, but challenging/hard
> 4. impossible
1. easy
I haven't yet included this in either of my parsers, but here's a  
proxy you can use to do inclusion for you:
http://microformat.makedatamakesense.com/object_includer/
Here is the relevant portion of code in PHP 5:
----
$objects = $dom->getElementsByTagName( 'object' );
		
for ( $i = 0; $i < $objects->length; $i++ )
{
	$object = $objects->item( $i );
	$classes = explode( ' ' , $object->getAttribute( 'class' ) );
	if ( in_array( 'include' , $classes ) )
	{
		$data = $object->getAttribute( 'data' );
		if ( $data[0] == '#' )
		{
		
			$data_node = $dom->getElementById( substr( $data , 1 ) );
			
			if ( $data_node )
			{
			
				$object->parentNode->replaceChild(
					$data_node->cloneNode( true ) , $object
				);
			} // if
		
		} // if
	
	} // if
} // for
----
On Jun 7, 2006, at 11:57 AM, Michael Leikam wrote:
> Since the X2V parser is not producing
> what I'd hoped, I'd like some feedback on how the markup
> could be improved.
I don't think you should be changing your code to suit a parser's  
divergence from the current spec.  Here's a ridiculous URL of your  
data in vCard, after piping the document through two proxies:
<http://suda.co.uk/projects/X2V/get-vcard.php?uri=http%3A%2F% 
2Fmicroformat.makedatamakesense.com%2Fobject_includer%2F%3Furl%3Dhttp% 
253A%252F%252Fdaf.csulb.edu%252Forganization%252Ftelecom_hcard- 
test.html>
It turns out the emails aren't being parsed even after the inclusion  
is done with the root referenced node.  I believe this is because  
you're putting them in <area> tags, and the hcard spec only allows  
them to be put in <a> tags:
'Similarly, EMAIL in vCard becomes <a class="email"  
href="mailto:...">...</a>'
http://microformats.org/wiki/hcard#More_Semantic_Equivalents
Peace,
Scott
    
    
More information about the microformats-discuss
mailing list