git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/1] gitweb: Mark matched 'ctag' / contents tag (?by_tag=foo)

From
Jakub Narebski <jnareb@gmail.com>
Date
Mar 9, 2011, 14:04 UTC
Message-ID
<201103091505.03045.jnareb@gmail.com>
In-Reply-To
<201103071900.16126.jnareb@gmail.com>

It might have been hard to discover that current view is limited to projects with given content tag (ctag), as it was distinquished only in gitweb URL. Mark matched contents tag in the tag cloud using "match" class, for easier discovery.

This commit introduces a bit of further code duplication in git_populate_project_tagcloud().

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
 gitweb/gitweb.perl |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 4d80818..7ba8a72 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2645,6 +2645,7 @@ sub git_populate_project_tagcloud {
 	}
 
 	my $cloud;
+	my $matched = $cgi->param('by_tag');
 	if (eval { require HTML::TagCloud; 1; }) {
 		$cloud = HTML::TagCloud->new;
 		foreach my $ctag (sort keys %ctags_lc) {
@@ -2654,17 +2655,22 @@ sub git_populate_project_tagcloud {
 			$title =~ s/ /&nbsp;/g;
 			$title =~ s/^/&nbsp;/g;
 			$title =~ s/$/&nbsp;/g;
+			if (defined $matched && $matched eq $ctag) {
+				$title = qq(<span class="match">$title</span>);
+			}
 			$cloud->add($title, href(project=>undef, ctag=>$ctag),
 			            $ctags_lc{$ctag}->{count});
 		}
 	} else {
 		$cloud = {};
 		foreach my $ctag (keys %ctags_lc) {
-			my $title = $ctags_lc{$ctag}->{topname};
+			my $title = esc_html($ctags_lc{$ctag}->{topname}, -nbsp=>1);
+			if (defined $matched && $matched eq $ctag) {
+				$title = qq(<span class="match">$title</span>);
+			}
 			$cloud->{$ctag}{count} = $ctags_lc{$ctag}->{count};
 			$cloud->{$ctag}{ctag} =
-				$cgi->a({-href=>href(project=>undef, ctag=>$ctag)},
-			          esc_html($title, -nbsp=>1));
+				$cgi->a({-href=>href(project=>undef, ctag=>$ctag)}, $title);
 		}
 	}
 	return $cloud;
-- 
1.7.3
Previous: Jakub NarebskiNext: Petr Baudis
Message 11 of 16 in “gitweb: cloud tags feature produces malformed XML for errors”
  1. Jonathan NiederMar 1, 2011
  2. Jakub NarebskiMar 2, 2011
  3. Jakub NarebskiMar 2, 2011
  4. Uwe Kleine-KönigMar 2, 2011
  5. J.H.Mar 2, 2011
  6. Jakub NarebskiMar 2, 2011
  7. Uwe Kleine-KönigMar 2, 2011
  8. Jakub NarebskiMar 3, 2011
  9. Uwe Kleine-KönigMar 3, 2011
  10. gitweb: Change the way "content tags" ('ctags') are handledJakub Narebski, Mar 7, 2011
  11. 2/1 gitweb: Mark matched 'ctag' / contents tag (?by_tag=foo)Jakub Narebski, Mar 9, 2011
  12. Petr BaudisMar 9, 2011
  13. gitweb: do misparse nonnumeric content tag files that contain a digitJonathan Nieder, Jun 9, 2011
  14. Jonathan NiederJun 9, 2011
  15. Petr BaudisMar 3, 2011
  16. Jakub NarebskiMar 3, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.