On Tue, Nov 29, 2011 at 20:28, Jakub Narebski <jnareb@xxxxxxxxx> wrote: > Jürgen Kreileder <jk@xxxxxxxxxxxx> writes: [...] > Thanks for this, but I think a better solution would be to explicitly > mark the few external links we have e.g. with 'class="external"', and > use that to avoid adding ';js=(0|1)' to them. This won't work because there are more than a few external links. Think of links added in the header or footer or via a project specific README.html. You would have to do it the other way round: Mark all internal links. > This has the advantage that we can use different style to mark > outgoing external links. > > I even have such patch somewhere in the StGit stack... > -- >8 -- > Subject: [PATCH] gitweb: Mark external links > > ...and do not add 'js=1' to them with JavaScript. > > Both $logo_url and $home_link links are now marked with "external" > class, and fixLink does not add 'js=1' to them on click. We add > 'js=1' to internal link to make server-side of gitweb know that it can > use JavaScript-only actions; we shouldn't do this for extrenal links, > as 'js=1' might mean something else to them. > > Note that only links using A element matter: images (linked using > IMG), stylesheets (linked using STYLE) and JavaScript files (linked > using SCRIPT) were never affected. > > Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> > --- > gitweb/gitweb.perl | 5 ++++- > gitweb/static/js/javascript-detection.js | 5 +++++ > 2 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl > index 7456a4b..f1c1caa 100755 > --- a/gitweb/gitweb.perl > +++ b/gitweb/gitweb.perl > @@ -3626,13 +3626,16 @@ EOF > print "<div class=\"page_header\">\n"; > if (defined $logo) { > print $cgi->a({-href => esc_url($logo_url), > + -class => "external", > -title => $logo_label}, > $cgi->img({-src => esc_url($logo), > -width => 72, -height => 27, > -alt => "git", > -class => "logo"})); > } > - print $cgi->a({-href => esc_url($home_link)}, $home_link_str) . " / "; > + print $cgi->a({-href => esc_url($home_link) > + -class => "external"}, > + $home_link_str) . " / "; > if (defined $project) { > print $cgi->a({-href => href(action=>"summary")}, esc_html($project)); > if (defined $action) { > diff --git a/gitweb/static/js/javascript-detection.js b/gitweb/static/js/javascript-detection.js > index 2b51e55..fc59e42 100644 > --- a/gitweb/static/js/javascript-detection.js > +++ b/gitweb/static/js/javascript-detection.js > @@ -60,6 +60,11 @@ function fixLink(link) { > */ > var jsExceptionsRe = /[;?]js=[01]$/; > > + // don't change links marked as external ($logo_url, $home_link) > + if (link.className === 'external') { > + return; > + } > + > if (!jsExceptionsRe.test(link)) { // =~ /[;?]js=[01]$/; > link.href += > (link.href.indexOf('?') === -1 ? '?' : ';') + 'js=1'; > > > -- http://blog.blackdown.de/ http://www.flickr.com/photos/jkreileder/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html