[Po4a-devel][patch] Making Html.pm (slightly) better
Yves Rutschle
debian.anti-spam@rutschle.net
Fri, 26 Nov 2004 21:37:45 +0000
On Fri, Nov 26, 2004 at 03:07:11PM +0100, Nicolas François wrote:
> > @@ -97,14 +99,36 @@
> > # $encoded = HTML::Entities::encode($a);
> > # $decoded = HTML::Entities::decode($a);
> > #print STDERR $token->[0];
> > - $self->pushline( " ".$self->translate($text,
> > + $self->pushline( $self->translate($text,
> > "FIXME:0",
> > (scalar @type ? $type[scalar @type-1]: "NOTYPE")
> > - )." " );
> > + ),
> > + 'wrap' => 1
> > + );
>
> I don't know why the string was surrounded by spaces. Do you think it may
> be important? Is it related to the correction of the trim function?
> (in the later case, just forget about the first question)
I think it was an attempt to do so, but either didn't work
well or was better done with the changes I did to the trim
function (I don't remember). However, your comment made me
noticed that the module joins lines without leaving a space,
which is wrong (in HTML a newline is equivalent to a space).
I'll make sure to introduce relevant cases to the test that
I'm about to write (as soon as I work out how).
> > next NEXT;
> > } elsif ($token->[0] eq 'S') {
> > push @type,$token->[1];
> > - $self->pushline( get_tag( $token ) );
> > + my $text = get_tag( $token );
> > + if ( $token->[1] eq 'img' ) {
> > + my %foo = %{$token->[2]};
> > + my $title = (exists $foo{"title"}?$foo{"title"}:"")."\n";
> > + my $alt = (exists $foo{"alt"}?$foo{"alt"}:"")."\n";
> > + for my $attr ($title, $alt) {
> > + if (defined $attr) {
> > + $attr = trim($attr),
> > + my $translated = $self->translate(
> > + $attr,
> > + "FIXME:0",
> > + (scalar @type?
> > + $type[scalar @type-1]:
> > + "NOTYPE")
> > + );
>
> The type could be set to either "title" or "alt".
Indeed, or rather $tag_title (e.g. "img_title", otherwise
it could be confused for the content of <title>). Thanks, I
now what the type is about :-)
> > + $attr = quotemeta $attr;
> > + $text =~ s/$attr/$translated/;
> Is it possible to only change the attribute?
> (change it in the %foo hash, and reconstruct $text afterwards)
> I'm worried about something like:
> <img src="http://nekral.homelinux.net/foo" title="home" alt="nekral">
Indeed. I went for the fastest way, which must be wrong :-)
I'll add that to the test as well.
> (and %foo could be renamed %attributes, or something like that)
Yeah, we don't want to waste such an important symbol to
something as mundane as a temporary variable :-)
Y.