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

Re: [PATCH] gitweb: Avoid overflowing page body frame with large images

From
Andrew Keller <andrew@kellerfarm.com>
Date
Feb 7, 2014, 12:23 UTC
Message-ID
<A4E05D52-1CED-46FC-B137-BCDFAD638E1D@kellerfarm.com>
In-Reply-To
<2452A253-A926-4A40-9F08-6E28EFF229F3@kellerfarm.com>
On Feb 6, 2014, at 10:31 PM, Andrew Keller wrote:
Show 45 quoted lines
> When displaying a blob in gitweb, if it's an image, specify constraints for
> maximum display width and height to prevent the image from overflowing the
> frame of the enclosing page_body div.
> 
> This change assumes that it is more desirable to see the whole image without
> scrolling (new behavior) than it is to see every pixel without zooming
> (previous behavior).
> 
> Signed-off-by: Andrew B Keller <andrew@kellerfarm.com>
> ---
> 
> I recently used Git to archive a set of scanned photos, and I used gitweb to provide access to them.  Overall, everything worked well, but I found it undesirable that I had to zoom out in my browser on every photo to see the whole photo.  In the spirit of making the default behavior the most likely correct behavior, this patch seems to be a good idea.
> 
> However, I'm not an expert on the use cases of gitweb.  In order for the maximum size constraints to take effect, the image would have to be at least the size of the web browser window (minus a handful of pixels), so the affected images are usually going to be pretty big.  Are there any common use cases for displaying a large image without scaling (and hence, with scrolling)?
> 
> Thanks,
> Andrew
> 
> 
> gitweb/gitweb.perl       |    2 +-
> gitweb/static/gitweb.css |    5 +++++
> 2 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 3bc0f0b..2c6a77f 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -7094,7 +7094,7 @@ sub git_blob {
> 	git_print_page_path($file_name, "blob", $hash_base);
> 	print "<div class=\"page_body\">\n";
> 	if ($mimetype =~ m!^image/!) {
> -		print qq!<img type="!.esc_attr($mimetype).qq!"!;
> +		print qq!<img class="image_blob" type="!.esc_attr($mimetype).qq!"!;
> 		if ($file_name) {
> 			print qq! alt="!.esc_attr($file_name).qq!" title="!.esc_attr($file_name).qq!"!;
> 		}
> diff --git a/gitweb/static/gitweb.css b/gitweb/static/gitweb.css
> index 3b4d833..cd57c2f 100644
> --- a/gitweb/static/gitweb.css
> +++ b/gitweb/static/gitweb.css
> @@ -32,6 +32,11 @@ img.avatar {
> 	vertical-align: middle;
> }
> 
> +img.image_blob {
I wonder if simply "blob" is a better style name here.  "image_blob" stands out a bit amongst the existing code, and "blob" appears to be specific enough for the needs.
Show 9 quoted lines
> +	max-height: 100%;
> +	max-width: 100%;
> +}
> +
> a.list img.avatar {
> 	border-style: none;
> }
> -- 
> 1.7.7.1
 - Andrew
Previous: Andrew KellerNext: Andrew Keller
Message 2 of 7 in “gitweb: Avoid overflowing page body frame with large images”
  1. gitweb: Avoid overflowing page body frame with large imagesAndrew Keller, Feb 7, 2014
  2. Andrew KellerFeb 7, 2014
  3. gitweb: Avoid overflowing page body frame with large imagesAndrew Keller, Feb 17, 2014
  4. Junio C HamanoFeb 19, 2014
  5. Vincent van RavesteijnFeb 7, 2014
  6. Andrew KellerFeb 7, 2014
  7. Tony FinchFeb 7, 2014

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.