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

[PATCHv3 3/4] gitweb: Highlight matched part of project description when searching projects

From
Jakub Narebski <jnareb@gmail.com>
Date
Feb 27, 2012, 01:55 UTC
Message-ID
<1330307722-25351-4-git-send-email-jnareb@gmail.com>
In-Reply-To
<1330307722-25351-1-git-send-email-jnareb@gmail.com>

Use esc_html_match_hl() from earlier commit to mark match in the _whole_ description when searching projects.

Currently, with this commit, when searching projects there is always shown full description of a project, and not a shortened one (like for ordinary projects list view), even if the match is on project name and not project description. Because we always show full description of a project, and not possibly shortened name, there is no need for having full description on mouseover via title attribute.

Showing full description when there is match on it is useful to avoid situation where match is in shortened, invisible part. On the other hand that makes project search different than projects list view; also there can be problems with overly-long project descriptions.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Changes from v2 and v1:
* Code updated to not use -title attribute in project search; we don't
  need to show full project description on mouseover, as we always
  show description in full, not shortened.
* Commit message updated to changes in previous commits.
* Removed notes (in commit message) about trouble with highlighting
  match of full description using shortened one; we add it in next
  commit, and it is not very complicated.
 gitweb/gitweb.perl |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 829526f..03a8dd9 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -5411,8 +5411,12 @@ sub git_project_list_rows {
 		                       esc_html_match_hl($pr->{'path'}, $search_regexp)) .
 		      "</td>\n" .
 		      "<td>" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
-		                        -class => "list", -title => $pr->{'descr_long'}},
-		                        esc_html($pr->{'descr'})) . "</td>\n" .
+		                        -class => "list",
+		                        $search_regexp ? () : -title => $pr->{'descr_long'}},
+		                        $search_regexp
+		                        ? esc_html_match_hl($pr->{'descr_long'}, $search_regexp)
+		                        : esc_html($pr->{'descr'})) .
+		      "</td>\n" .
 		      "<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n";
 		print "<td class=\"". age_class($pr->{'age'}) . "\">" .
 		      (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" .
-- 
1.7.9
Previous: Jakub NarebskiNext: Jakub Narebski
Message 4 of 5 in “[PATCHv3 0/4] gitweb: Match highlighting in project search”
  1. Jakub NarebskiFeb 27, 2012
  2. 1/4 gitweb: Introduce esc_html_match_hl and esc_html_hl_regionsJakub Narebski, Feb 27, 2012
  3. 2/4 gitweb: Highlight matched part of project name when searching projectsJakub Narebski, Feb 27, 2012
  4. 3/4 gitweb: Highlight matched part of project description when searching projectsJakub Narebski, Feb 27, 2012
  5. 4/4 gitweb: Highlight matched part of shortened project descriptionJakub Narebski, Feb 27, 2012

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.