'text-align:left;',
'right' => 'text-align:right;',
'top' => 'caption-side:top;',
'bottom' => 'caption-side:bottom;'
) // not supported by IE
);
// @align for img -------------------------------------------------
$r ['img@align'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'align', array (
'left' => 'float:left;',
'right' => 'float:right;',
'top' => 'vertical-align:top;',
'middle' => 'vertical-align:middle;',
'bottom' => 'vertical-align:baseline;'
) );
// @align for table -----------------------------------------------
$r ['table@align'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'align', array (
'left' => 'float:left;',
'center' => 'margin-left:auto;margin-right:auto;',
'right' => 'float:right;'
) );
// @align for hr -----------------------------------------------
$r ['hr@align'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'align', array (
// we use both text-align and margin because these work
// for different browsers (IE and Firefox, respectively)
// and the melange makes for a pretty cross-compatible
// solution
'left' => 'margin-left:0;margin-right:auto;text-align:left;',
'center' => 'margin-left:auto;margin-right:auto;text-align:center;',
'right' => 'margin-left:auto;margin-right:0;text-align:right;'
) );
// @align for h1, h2, h3, h4, h5, h6, p, div ----------------------
// {{{
$align_lookup = array ();
$align_values = array (
'left',
'right',
'center',
'justify'
);
foreach ( $align_values as $v ) {
$align_lookup [$v] = "text-align:$v;";
}
// }}}
$r ['h1@align'] = $r ['h2@align'] = $r ['h3@align'] = $r ['h4@align'] = $r ['h5@align'] = $r ['h6@align'] = $r ['p@align'] = $r ['div@align'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'align', $align_lookup );
// @bgcolor for table, tr, td, th ---------------------------------
$r ['table@bgcolor'] = $r ['td@bgcolor'] = $r ['th@bgcolor'] = new HTMLPurifier_AttrTransform_BgColor ();
// @border for img ------------------------------------------------
$r ['img@border'] = new HTMLPurifier_AttrTransform_Border ();
// @clear for br --------------------------------------------------
$r ['br@clear'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'clear', array (
'left' => 'clear:left;',
'right' => 'clear:right;',
'all' => 'clear:both;',
'none' => 'clear:none;'
) );
// @height for td, th ---------------------------------------------
$r ['td@height'] = $r ['th@height'] = new HTMLPurifier_AttrTransform_Length ( 'height' );
// @hspace for img ------------------------------------------------
$r ['img@hspace'] = new HTMLPurifier_AttrTransform_ImgSpace ( 'hspace' );
// @noshade for hr ------------------------------------------------
// this transformation is not precise but often good enough.
// different browsers use different styles to designate noshade
$r ['hr@noshade'] = new HTMLPurifier_AttrTransform_BoolToCSS ( 'noshade', 'color:#808080;background-color:#808080;border:0;' );
// @nowrap for td, th ---------------------------------------------
$r ['td@nowrap'] = $r ['th@nowrap'] = new HTMLPurifier_AttrTransform_BoolToCSS ( 'nowrap', 'white-space:nowrap;' );
// @size for hr --------------------------------------------------
$r ['hr@size'] = new HTMLPurifier_AttrTransform_Length ( 'size', 'height' );
// @type for li, ol, ul -------------------------------------------
// {{{
$ul_types = array (
'disc' => 'list-style-type:disc;',
'square' => 'list-style-type:square;',
'circle' => 'list-style-type:circle;'
);
$ol_types = array (
'1' => 'list-style-type:decimal;',
'i' => 'list-style-type:lower-roman;',
'I' => 'list-style-type:upper-roman;',
'a' => 'list-style-type:lower-alpha;',
'A' => 'list-style-type:upper-alpha;'
);
$li_types = $ul_types + $ol_types;
// }}}
$r ['ul@type'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'type', $ul_types );
$r ['ol@type'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'type', $ol_types, true );
$r ['li@type'] = new HTMLPurifier_AttrTransform_EnumToCSS ( 'type', $li_types, true );
// @vspace for img ------------------------------------------------
$r ['img@vspace'] = new HTMLPurifier_AttrTransform_ImgSpace ( 'vspace' );
// @width for hr, td, th ------------------------------------------
$r ['td@width'] = $r ['th@width'] = $r ['hr@width'] = new HTMLPurifier_AttrTransform_Length ( 'width' );
return $r;
}
}
// vim: et sw=4 sts=4