implement responsive image sizing for mr-worldwide posts (and all others going forward)

This commit is contained in:
Brian Picciano 2018-09-29 15:52:27 -04:00
parent b3e56a081c
commit 5cfce76ac1
89 changed files with 87 additions and 22 deletions

View File

@ -16,3 +16,11 @@ plugins:
- jekyll-paginate - jekyll-paginate
date_format: "%b %-d, %Y" date_format: "%b %-d, %Y"
img_widths:
- 500
- 1000
- 1500
- 2000
- 2500
- 3000

View File

@ -114,7 +114,7 @@ down to the center of the city, and she showed me around the sights, like
Marienplatz and the Frauenkirche (one of many famous churches in Munich). Marienplatz and the Frauenkirche (one of many famous churches in Munich).
{% include image.html {% include image.html
src="mr-worldwide/munich-victory-gate-2018.jpg" dir="mr-worldwide" file="munich-victory-gate-2018.jpg" width=4048
descr="Siegestor (Victory Gate), Munich, 2018" descr="Siegestor (Victory Gate), Munich, 2018"
%} %}
@ -127,7 +127,7 @@ all; like how even in a large city like Munich everything can still be closed on
a Sunday. a Sunday.
{% include image.html {% include image.html
src="mr-worldwide/munich-moosach-2018.jpg" dir="mr-worldwide" file="munich-moosach-2018.jpg" width=3036
descr="Moosach neighborhood, Munich, 2018" descr="Moosach neighborhood, Munich, 2018"
float="right" float="right"
%} %}
@ -405,12 +405,12 @@ constructed using private funds and donations since then.
<div style="text-align: center;"> <div style="text-align: center;">
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-outside-2018-0.jpg" dir="mr-worldwide" file="sagrada-familia-outside-2018-0.jpg" width=1080
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-outside-2018-1.jpg" dir="mr-worldwide" file="sagrada-familia-outside-2018-1.jpg" width=1080
inline=true inline=true
%} %}
<p><em>Outside faces of La Sagrada Familia, Barcelona, 2018</em></p> <p><em>Outside faces of La Sagrada Familia, Barcelona, 2018</em></p>
@ -423,19 +423,19 @@ be like.
<div style="text-align: center;"> <div style="text-align: center;">
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-inside-2018-0.jpg" dir="mr-worldwide" file="sagrada-familia-inside-2018-0.jpg" width=1080
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-inside-2018-1.jpg" dir="mr-worldwide" file="sagrada-familia-inside-2018-1.jpg" width=1080
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-inside-2018-2.jpg" dir="mr-worldwide" file="sagrada-familia-inside-2018-2.jpg" width=1080
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/sagrada-familia-inside-2018-3.jpg" dir="mr-worldwide" file="sagrada-familia-inside-2018-3.jpg" width=1080
inline=true inline=true
%} %}
<p><em>The incredible interior of La Sagrada Familia, Barcelona, 2018</em></p> <p><em>The incredible interior of La Sagrada Familia, Barcelona, 2018</em></p>
@ -481,7 +481,7 @@ completely different. We saw some of the things a tourist is supposed to see,
like the opera house, the palace, and whatever this building is: like the opera house, the palace, and whatever this building is:
{% include image.html {% include image.html
src="mr-worldwide/madrid-2018.jpg" dir="mr-worldwide" file="madrid-2018.jpg" width=3036
descr="This Schweppes building is called the Edificio Carrión, and is famous for reasons. Madrid, 2018" descr="This Schweppes building is called the Edificio Carrión, and is famous for reasons. Madrid, 2018"
%} %}
@ -569,7 +569,7 @@ the people had dug out caves in the side of the mountain, and made them into
homes. My hostel was in one of these caves. homes. My hostel was in one of these caves.
{% include image.html {% include image.html
src="mr-worldwide/granada-2018-0.jpg" dir="mr-worldwide" file="granada-2018-0.jpg" width=1329
descr="The view from my hostel, Alhambra on the left. Granada, 2018" descr="The view from my hostel, Alhambra on the left. Granada, 2018"
%} %}
@ -601,7 +601,7 @@ number of tickets per day to get inside the castle, so I missed a lot of it. So
I went back to the peace and quiet of Sacromonte. I went back to the peace and quiet of Sacromonte.
{% include image.html {% include image.html
src="mr-worldwide/granada-2018-1.jpg" dir="mr-worldwide" file="granada-2018-1.jpg" width=1329
descr="Sacromonte and the valley below. Granada, 2018" descr="Sacromonte and the valley below. Granada, 2018"
%} %}
@ -637,7 +637,7 @@ in the country, and 9th most visited city in Southern Europe, it still feels
quiet and cozy. quiet and cozy.
{% include image.html {% include image.html
src="mr-worldwide/lisbon-2018.jpg" dir="mr-worldwide" file="lisbon-2018.jpg" width=1772
descr="The facade of a museum I was too poor to go in. Lisbon, 2018" descr="The facade of a museum I was too poor to go in. Lisbon, 2018"
%} %}
@ -669,11 +669,11 @@ spun his wheels on the same problems for most of his life.
<div style="text-align: center;"> <div style="text-align: center;">
{% include image.html {% include image.html
src="mr-worldwide/lisbon-escher-2018-0.jpg" dir="mr-worldwide" file="lisbon-escher-2018-0.jpg" width=513
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/lisbon-escher-2018-1.jpg" dir="mr-worldwide" file="lisbon-escher-2018-1.jpg" width=341
inline=true inline=true
%} %}
<p><em>Tesselations, paradoxes, and tricks of perspective, Lisbon, 2018</em></p> <p><em>Tesselations, paradoxes, and tricks of perspective, Lisbon, 2018</em></p>

View File

@ -14,8 +14,26 @@
display: inline-block; display: inline-block;
{% endif -%} {% endif -%}
"> ">
<a href="/img/{{ include.src }}" target="_blank"> <a href="/img/{{ include.dir }}/{{ include.file }}" target="_blank">
<img style="max-height: 60vh;" <picture>
src="/img/{{ include.src }}" alt="{{ include.descr }}" /></a> {%- if include.width %}
{%- for targetWidth in site.img_widths reversed -%}
{% if include.width <= targetWidth %}{% continue %}{% endif %}
{%- if targetWidth > 1000 %}
<source media="(min-width: 1000px) and (min-resolution: {{ targetWidth | divided_by: 1000.0 }}dppx)"
{%- elsif targetWidth > 500 %}
<source media="(min-width: 500px), (min-resolution: 1.1dppx)"
{%- else %}
<source
{% endif %}
srcset="/img/{{ include.dir }}/{{ targetWidth }}px/{{ include.file }}"
>
{%- endfor %}
{%- endif %}
<img style="max-height: 60vh;"
src="/img/{{ include.dir }}/{{ include.file }}"
alt="{{ include.descr }}" />
</picture>
</a>
{%- if include.descr %}<br/><em>{{ include.descr }}</em>{%- endif %} {%- if include.descr %}<br/><em>{{ include.descr }}</em>{%- endif %}
</div> </div>

View File

@ -13,7 +13,7 @@ for my entire life, up until that point, and it felt like a change was needed.
Denver was certainly a change, and ultimately I think it was one in the right Denver was certainly a change, and ultimately I think it was one in the right
direction, but it turned out to not be enough. direction, but it turned out to not be enough.
{% include image.html src="mr-worldwide/denver-2017.jpg" %} {% include image.html dir="mr-worldwide" file="denver-2017.jpg" width=1696 %}
While in Denver I'd rented a tiny studio apartment, which over the While in Denver I'd rented a tiny studio apartment, which over the
course of two years I'd learned to live in. Living large is pretty easy; for course of two years I'd learned to live in. Living large is pretty easy; for
@ -51,7 +51,7 @@ because of how much time I was able to spend exploring (rather than being cooped
up working). up working).
{% include image.html {% include image.html
src="mr-worldwide/kyoto-2017.jpg" dir="mr-worldwide" file="kyoto-2017.jpg" width=5257
descr="Kyoto at sunset, 2017" %} descr="Kyoto at sunset, 2017" %}
By the end of 2016 I knew I wanted to travel and see as much as possible, while By the end of 2016 I knew I wanted to travel and see as much as possible, while
@ -78,7 +78,7 @@ gave me a small notebook to take notes in as I traveled, with some helpful
phrases that might aid me along the way phrases that might aid me along the way
{% include image.html {% include image.html
src="mr-worldwide/notebook.jpg" dir="mr-worldwide" file="notebook.jpg" width=3036
descr="Ibrahim made sure I was covered if I ever found myself in a tight spot" descr="Ibrahim made sure I was covered if I ever found myself in a tight spot"
%} %}
@ -104,13 +104,13 @@ some things with you. The big bag/day bag combo is a classic amongst ~~the
homeless~~ backpackers. homeless~~ backpackers.
{% include image.html {% include image.html
src="mr-worldwide/loadout-packed.jpg" dir="mr-worldwide" file="loadout-packed.jpg" width=4048
descr="All packed up, one for overhead and the other for under the seat" descr="All packed up, one for overhead and the other for under the seat"
inline=true inline=true
%} %}
{% include image.html {% include image.html
src="mr-worldwide/loadout-unpacked.jpg" dir="mr-worldwide" file="loadout-unpacked.jpg" width=4048
descr="(Almost) everything, unpacked" descr="(Almost) everything, unpacked"
inline=true inline=true
%} %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 943 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 KiB

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 MiB

After

Width:  |  Height:  |  Size: 5.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 KiB

After

Width:  |  Height:  |  Size: 497 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 487 KiB

After

Width:  |  Height:  |  Size: 487 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 KiB

After

Width:  |  Height:  |  Size: 474 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 KiB

After

Width:  |  Height:  |  Size: 532 KiB

39
pic-resize.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
# requires imagemagick and perl-image-exiftool
set -e
widths="500 1000 1500 2000 2500 3000"
for img in $@; do
echo $img
# make target directories
dir=$(dirname "$img") # gets directory
for targetWidth in $widths; do
mkdir -p $dir/${targetWidth}px
done
# get width
width=$(identify "$img" | awk '{print $3}' | cut -dx -f1)
echo -e "\toriginal width: $width"
echo -e "\tremoving metadata"
exiftool -all= "$img"
rm -f "${img}_original" # exiftool makes a copy of the original, delete it
for targetWidth in $widths; do
targetFile=$dir/${targetWidth}px/$(basename "$img")
echo -en "\tresizing into $targetFile... "
if [ "$targetWidth" -ge "$width" ]; then
echo "skipping, original image too small"
continue
elif [ -e "$targetFile" ]; then
echo "skipping, target file exists"
continue
fi
convert "$img" -resize $targetWidth "$targetFile"
echo "done"
done
done