Controlar el atributo rel de forma nativa con Textile
He logrado conseguir algo de tiempo, y quiero compartir algunos cambios que le hice a la libreria Textile que viene en “Textpattern”:http://www.textpattern.com para manejar el atributo _rel_ de los enlaces.
Según el “W3C”:http://www.w3.org/TR/html401/struct/links.html#adef-rel el atributo _rel_ describe la relación del documento enlazado en la propiedad _href_ así entonces se pueden definir “tipos de links”:http://www.w3.org/TR/html401/types.html#type-links separados por espacios.
Existen adicional a lo que especifica la W3C una propuesta de utilizar _rel_ para el manejo de “microformatos”:http://microformats.org/ diseñados con énfasis en los humanos y no en las máquinas para la mejor distribución de datos adoptando patrones y comportamientos ya establecidos.
La modificación de la librería de Textile “mantenida en este sitio web”:http://textile.thresholdstate.com/, se dió inicialmente ante la necesidad de dar soporte a nuevas páginas que se abren al presionar un enlace. Esta propiedad del enlace es conocida como _target=”_blank”_ y que no es soportado por XHTML Transitional o Strict y que falla al tratar de validar su código.
Un enlace normal mediante Textile se ve y se escribe de la siguiente forma:
==”link text (title)”:http://example.com==
Produciendo este código:
El cambio en la librería Textile permite crear enlaces escribiendo de la siguiente forma:
==”link text (title)<more>”:http://example.com==
y que produce el siguiente código:
h3. Modificaciones
Antes de continuar realiza un backup de la libreria, para estos cambios trabajamos con la versión incluída en la distribucion “4.0.4″:http://textpattern.com/weblog/237/textpattern-404-released de Textpattern.
Ir a la línea 718
(?:\(([^)]+)\)(?=”))? # $title
Reemplázala por
(?:\(([^)]+)\))? # $title
\s?
(?:\<([^)]+)\>(?=”))? # $URLrel
Ahora vamos a la línea 732 y reemplazamos
list(, $pre, $atts, $text, $title, $url, $slash, $post) = $m;
por
list(, $pre, $atts, $text, $title, $URLrel, $url, $slash, $post) = $m;
Vamos a la línea 737
$atts .= ($title != ‘’) ? ‘ title=”’ . $this->encode_html($title) . ‘”’ : ‘’;
Debajo de esta línea agregamos
$atts .= ($URLrel != ‘’) ? ‘ rel=”’ . $URLrel . ‘” ‘ : ‘’;
*Nota:* El atributo _rel_ no requiere codificación especial de caracteres así que la dejamos así.
Eso es todo
Ya he modificado la librería en esta instalación de Textpattern, así que “este enlace (Native textile code for manage link “rel” attributes)
Saludos
