]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
po: inject custom isselflink to fix selflink detection on translation pages
[git.ikiwiki.info.git] / IkiWiki.pm
index 611ba6f6540c6ae6b789bd49d477876b500b9eaf..5d5c7f0d00af7aaab7a294c19bd3e56075f5c0f2 100644 (file)
@@ -881,7 +881,7 @@ sub bestlink ($$) {
                $l.="/" if length $l;
                $l.=$link;
 
                $l.="/" if length $l;
                $l.=$link;
 
-               if (exists $links{$l}) {
+               if (exists $pagesources{$l}) {
                        return $l;
                }
                elsif (exists $pagecase{lc $l}) {
                        return $l;
                }
                elsif (exists $pagecase{lc $l}) {
@@ -891,7 +891,7 @@ sub bestlink ($$) {
 
        if (length $config{userdir}) {
                my $l = "$config{userdir}/".lc($link);
 
        if (length $config{userdir}) {
                my $l = "$config{userdir}/".lc($link);
-               if (exists $links{$l}) {
+               if (exists $pagesources{$l}) {
                        return $l;
                }
                elsif (exists $pagecase{lc $l}) {
                        return $l;
                }
                elsif (exists $pagecase{lc $l}) {
@@ -1026,6 +1026,13 @@ sub urlto ($$;$) {
        return beautify_urlpath($link);
 }
 
        return beautify_urlpath($link);
 }
 
+sub isselflink ($$) {
+       my $page=shift;
+       my $link=shift;
+
+        return $page eq $link;
+}
+
 sub htmllink ($$$;@) {
        my $lpage=shift; # the page doing the linking
        my $page=shift; # the page that will contain the link (different for inline)
 sub htmllink ($$$;@) {
        my $lpage=shift; # the page doing the linking
        my $page=shift; # the page that will contain the link (different for inline)
@@ -1051,7 +1058,7 @@ sub htmllink ($$$;@) {
        }
        
        return "<span class=\"selflink\">$linktext</span>"
        }
        
        return "<span class=\"selflink\">$linktext</span>"
-               if length $bestlink && $page eq $bestlink &&
+               if length $bestlink && isselflink($page, $bestlink) &&
                   ! defined $opts{anchor};
        
        if (! $destsources{$bestlink}) {
                   ! defined $opts{anchor};
        
        if (! $destsources{$bestlink}) {
@@ -1083,7 +1090,7 @@ sub htmllink ($$$;@) {
        my @attrs;
        foreach my $attr (qw{rel class title}) {
                if (defined $opts{$attr}) {
        my @attrs;
        foreach my $attr (qw{rel class title}) {
                if (defined $opts{$attr}) {
-                       push @attrs, " $attr=\"".$opts{attr}.'"';
+                       push @attrs, " $attr=\"$opts{$attr}\"";
                }
        }
 
                }
        }
 
@@ -1407,7 +1414,7 @@ sub check_content (@) {
                my %old=map { $_ => 1 }
                        split("\n", readfile(srcfile($pagesources{$params{page}})));
                foreach my $line (split("\n", $params{content})) {
                my %old=map { $_ => 1 }
                        split("\n", readfile(srcfile($pagesources{$params{page}})));
                foreach my $line (split("\n", $params{content})) {
-                       push @diff, $line if ! exists $old{$_};
+                       push @diff, $line if ! exists $old{$line};
                }
                $params{diff}=join("\n", @diff);
        }
                }
                $params{diff}=join("\n", @diff);
        }