Skip to content

Commit daff28c

Browse files
authored
Merge pull request #1382 from coderdojo-japan/implement-and-replace-with-lazy-image-tag
Kataページの画像をlazy_image_tagで遅延読込に対応
2 parents d106992 + 4c9ed70 commit daff28c

29 files changed

+70
-50
lines changed
22.5 KB
Loading

app/assets/images/events_cover.png

-140 KB
Binary file not shown.

app/helpers/application_helper.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,18 @@ def using_scrivito?
5050
def is_kata?
5151
request.path.starts_with? "/kata"
5252
end
53+
54+
# 画像を aFarkas/lazysizes 経由で遅延読み込みする
55+
# cf. https://github.com/aFarkas/lazysizes
56+
def lazy_image_tag(source, options={})
57+
options['data-src'] = asset_path(source)
58+
options['loading'] = 'lazy' # Optimize if available
59+
options[:class].blank? ?
60+
options[:class] = "lazyload" :
61+
options[:class] = "lazyload #{options[:class]}"
62+
63+
options[:min].blank? ?
64+
image_tag(asset_path('/spinner.svg'), options) :
65+
image_tag(asset_path(options[:min]), options)
66+
end
5367
end

app/views/docs/kata.html.erb

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<p>CoderDojo は、7〜17歳を対象とした非営利のプログラミング道場です。2011年にアイルランドから始まり、世界では110カ国・2,200以上の道場、日本では<a href="https://coderdojo.jp/#dojos">全国に222以上</a>の道場があります。CoderDojo は全国各地で定期的に開催されており、<a style="background-color: #ffffff;" href="https://coderdojo.jp/stats">延べ10,000人以上</a>の子ども達が毎年楽しみながら様々な作品を創っています。</p>
3333
<br>
3434
<p>各 Dojo は、チャンピオンやメンターと呼ばれる協力者によって自主的に運営されています。プログラマーやデザイナーだけでなく、学生や教員、アーティストやフリーランス、起業家や投資家などの方々が分野横断的に協力しあって、それぞれの Dojo が継続的に運営されています。もちろん、参加者自身や参加者の親が運営に協力する事例も多いです。</p>
35-
<img class="img-responsive lazyload" style="margin-bottom: 100px;" src="/kata/coderdojo-zero.png" alt="CoderDojo を支える方々の写真" />
35+
<%= lazy_image_tag('/kata/coderdojo-zero.png', alt: 'CoderDojo を支える方々の写真', style: 'margin-top: 30px; margin-bottom: 100px;') %>
3636

3737
<h3><strong>まず何を読むといい?</strong> 🤔</h3>
3838
<p>初めての方向けには次の資料をオススメしています。スライドや動画、インタビュー記事を見ると CoderDojo の雰囲気が掴めます。</p>
@@ -175,7 +175,8 @@
175175

176176
<div id="learn" class="headline-anchor"></div>
177177
<h2 class="headline">📚 学ぶ</h2>
178-
<img class="img-responsive lazyload" style="margin-bottom: 30px;" src="/kata/learn.png" alt="CoderDojo 梅田の様子" />
178+
<%= lazy_image_tag('/kata/learn.png', alt: 'CoderDojo 梅田の様子', style: 'margin-bottom: 30px;') %>
179+
179180
<div>
180181
<div>
181182
<p><a href="https://coderdojo.jp/stats">毎年 1,500 回以上</a>の Dojo が日本各地で開催されているため、CoderDojo で得られた知見を元に教材が作られることも多いです。</p>
@@ -304,7 +305,8 @@
304305

305306
<div id="challenge" class="headline-anchor"></div>
306307
<h2 class="headline">腕試し</h2>
307-
<img class="img-responsive lazyload" src="/kata/challenge.png" alt="DojoCon Japan の様子" />
308+
<%= lazy_image_tag('/kata/challenge.png', alt: 'DojoCon Japan の様子') %>
309+
308310
<div>
309311
<div>
310312
<p><br>プログラミングはやればやるほど日に日に力がついていきます。「プログラミングに少し慣れたかな」と感じたら、腕試しのつもりでキャンプやコンテストに挑戦してみてはいかがでしょうか?</p>
@@ -408,7 +410,8 @@
408410

409411
<div id="startup" class="headline-anchor"></div>
410412
<h2 class="headline">立ち上げる</h2>
411-
<img class="img-responsive lazyload" src="/kata/startup.png" alt="CoderDojo 調布の様子" />
413+
<%= lazy_image_tag('/kata/startup.png', alt: 'CoderDojo 調布の様子') %>
414+
<br>
412415
<br>
413416
<div>
414417
<div>
@@ -437,7 +440,7 @@
437440
<h2><strong>Dojo の設立・初回開催までの流れ</strong><span style="font-size: 20px;">(制作: <a href="https://coderdojo-kodaira.github.io/">CoderDojo Kodaira</a></span></h2>
438441
</div>
439442
</div>
440-
<img class="img-responsive lazyload" style="margin-bottom: 100px;" src="/kata/startup-flowchart.png" alt="CoderDojo の立ち上げから開催までのフローチャート" />
443+
<%= lazy_image_tag('/kata/startup-flowchart.png', alt: 'CoderDojo の立ち上げから開催までのフローチャート', style: "margin-bottom: 100px;") %>
441444
<div>
442445
<div>
443446
<h2><strong>アカウント登録から、申請までの流れ</strong></h2>
@@ -504,11 +507,13 @@
504507
<p><strong>お疲れ様でした!</strong> 👏✨ 以上で一連の手続きは終わりになります。Dojo として承認されたら、次の項目「<strong><a href="/kata#support">支援</a></strong>」でまとめている各種プログラムに申請することができます。皆さんの CoderDojo 運営の一助になれば嬉しいです! 😸</p>
505508
</div>
506509
</div>
510+
507511
<div>
508512
<div id="support" class="headline-anchor"></div>
509513
<h2 class="headline">🤝 支援・資料</h2>
510514
</div>
511-
<img class="img-responsive lazyload" src="/kata/support.png" alt="CoderDojo in Minecraft" />
515+
<%= lazy_image_tag('/kata/support.png', alt: 'CoderDojo in Minecraft') %>
516+
512517
<div>
513518
<div>
514519
<p><br>CoderDojo は国内外のパートナー企業から様々な支援を得ております。承認された Dojo では、必要に応じて次の支援を得ることができます。<a href="/kata#startup">CoderDojo を立ち上げて</a>、承認されたら、ぜひご活用ください 😆</p>
@@ -716,7 +721,8 @@
716721
<div id="faq" class="headline-anchor"></div>
717722
<h2 class="headline">📑 FAQ</h2>
718723
</div>
719-
<img class="img-responsive lazyload" src="/kata/faq.png" alt="統計情報:参加者数の推移" />
724+
<%= lazy_image_tag('/kata/faq.png', alt: '統計情報:参加者数の推移') %>
725+
720726
<div>
721727
<div>
722728
<br>

app/views/events/index.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
- provide(:meta_image, "/img/ogp-events.jpeg")
55

66
%section.cover
7-
= image_tag "events_cover.jpg"
7+
= lazy_image_tag 'events_cover.jpg', min: 'events_cover.min.jpg', alt: 'Cover Photo on Upcoming Events'
88

99
%section#events.text-center
1010
%br

app/views/home/show.html.haml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
%br
66

77
%section.cover
8-
= image_tag "/coderdojo-japan_cover.min.jpg", alt: 'CoderDojo Japan カバー画像', class: 'lazyload',
9-
"data-src" => "/coderdojo-japan_cover.jpg", loading: 'lazy'
8+
= lazy_image_tag '/coderdojo-japan_cover.jpg', min: '/coderdojo-japan_cover.min.jpg', alt: 'CoderDojo Japan カバー画像'
109

1110
%section.introduction.text-center.list
1211
%p
@@ -40,7 +39,7 @@
4039
次の動画や記事をぜひ!😆
4140
4241
%div.home-point-thumbnail{style: "margin-top: 30px; margin-bottom: 30px;"}
43-
= link_to image_tag("/video-thumbnail.min.jpg", alt: 'Promotion Video by CoderDojo Kashiwa', class: 'lazyload', loading: 'lazy', 'data-src' => '/video-thumbnail.jpg'), 'https://www.youtube.com/watch?v=gLDue2xb1j8', target: "_blank", rel: "external noopener"
42+
= link_to lazy_image_tag('/video-thumbnail.jpg', min: '/video-thumbnail.min.jpg', alt: 'Promotion Video by CoderDojo Kashiwa'), 'https://www.youtube.com/watch?v=gLDue2xb1j8', target: "_blank", rel: "external noopener"
4443
/%div.home-point-video
4544
/ %iframe{allowfullscreen: "", frameborder: "0", height: "315", width: "560",
4645
/ src: "https://www.youtube.com/embed/gLDue2xb1j8?rel=0"}
@@ -73,7 +72,7 @@
7372
/
7473
%ol.bxslider{style: "list-style: none; margin-left: -40px; margin-top: 30px;"}
7574
%li
76-
= link_to image_tag("dojocon_japan_2020.png", alt: "DojoCon Japan 2020", style: "margin-bottom: 15px;", class: 'lazyload', loading: 'lazy'), "https://dojocon2020.coderdojo.jp/", target: "_blank", rel: "external noopener"
75+
= link_to lazy_image_tag('dojocon_japan_2020.png', alt: "DojoCon Japan 2020", style: "margin-bottom: 15px;"), "https://dojocon2020.coderdojo.jp/", target: "_blank", rel: "external noopener"
7776
7877
%p
7978
12月27日に
@@ -169,9 +168,7 @@
169168
%a{href: "/kata#support"}<> 『支援』
170169
をお読みください。
171170
%div.kata
172-
= link_to image_tag("/kata_cover.min.jpg", alt: 'Kata カバー画像', class: 'lazyload',
173-
'data-src' => '/kata_cover.jpg', loading: 'lazy',
174-
style: 'margin-bottom: 15px;'), '/kata'
171+
= link_to lazy_image_tag('/kata_cover.jpg', min: '/kata_cover.min.jpg', alt: 'Kata カバー画像', style: 'margin-bottom: 15px;'), '/kata'
175172
%a.button-to-details{href: '/kata'} Kata を読む
176173

177174
%section.detail-introduction.partners_logo.text-center#partners{style: "padding-top: 50px;"}

app/views/login_page/index.html.haml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
%body
66
%section
7-
= image_tag "/cover.png", alt: 'CoderDojo Japan カバー画像', class: 'lazyload', loading: 'lazy', "data-src" => "/cover.png", style: 'border-radius: 0; '
8-
7+
= lazy_image_tag "/cover.png", alt: 'CoderDojo Japan カバー画像', style: 'border-radius: 0;'
98

109
%h1.text-center.intro-header{style: "margin-top: 40px; padding-bottom: 20px;"} ログイン
1110
%div{style: 'margin: 0 60px 100px'}

app/views/podcasts/index.html.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
<% provide(:url, @url ) %>
44
<% provide(:meta_image, "/img/ogp-dojocast.jpeg") %>
55

6-
<img class="dojocast-cover lazyload" alt="DojoCast Cover Photo" src="/spinner.svg" data-src="/img/dojocast-cover.jpg" loading='lazy' />
6+
<%= lazy_image_tag('/podcasts/dojocast-cover.jpg', alt: 'DojoCast Cover Photo', class: 'dojocast-cover') %>
77

88
<div class="container" style="line-height: 2.2em;">
99
<section class="doc" style="padding: 50px 0px 0px 0px;">
1010
<h1 style="text-align: center;"><%= @title %></h1>
1111
<p style="text-align: center; padding-bottom: 10px;">CoderDojo コミュニティに関わる人々を<br class="ignore-pc">ハイライトするポッドキャスト番組です 📻✨</p>
12-
<img class="lazyload" src="/podcasts/cover-sub.jpg" alt="インタビューの様子"/>
12+
<%= lazy_image_tag('/podcasts/cover-sub.jpg', alt: 'DojoCast の収録の様子') %>
1313

1414
<div class='text-center' style="margin-top: 30px;">
1515
<div class="g-ytsubscribe" data-channelid="UCal5GuoCDCMDQe07w69TuJA" data-layout="full" data-count="default"></div>

app/views/podcasts/show.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<% provide(:url, @url) %>
44
<% provide(:meta_image, @episode.cover) %>
55

6-
<img class="dojocast-cover" alt="DojoCast Cover Photo" src="/img/dojocast-cover.jpg" />
6+
<%= lazy_image_tag('/podcasts/dojocast-cover.jpg', alt: 'DojoCast Cover Photo', class: 'dojocast-cover') %>
77

88
<style type="text/css">
99
.prev { display: table-cell; font-color: white; text-align: left; }

app/views/shared/_header.html.haml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
%span.icon-bar
99
%span.icon-bar
1010
.navbar-header-logos
11-
= link_to image_tag('/img/header-logo.png', alt: 'CoderDojo logo'), '/', id: "header-logo"
12-
= link_to image_tag('/img/header-brand.png', alt: 'CoderDojo brand'), '/', id: "header-brand"
11+
= link_to lazy_image_tag('/img/header-logo.png', min: '/img/header-logo.min.png',
12+
alt: 'CoderDojo logo'), '/', id: "header-logo"
13+
= link_to lazy_image_tag('/img/header-brand.png', min: '/img/header-brand.min.png',
14+
alt: 'CoderDojo brand'), '/', id: "header-brand"
1315
#bs-example-navbar-collapse-1.collapse#header-nav-toggle.navbar-collapse
1416
%ul.nav.navbar-nav.navbar-right
1517
%li= link_to '全国の道場', '/#dojos'
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<section id="app" class="text-center grayscale-bg" style="padding-top: 50px; padding-bottom: 100px;">
22
<h3 id="subscribe" style="text-align: center; padding-top: 50px; padding-bottom: 10px;">🎧 アプリで聴く</h3>
3-
<a href="https://podcasts.apple.com/us/podcast/dojocast/id1458122473?itsct=podcast_box&amp;itscg=30200" style="display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;"><img src="https://tools.applemediaservices.com/api/badges/listen-on-apple-podcasts/badge/ja-JP?size=250x83&amp;releaseDate=1596412800&h=47ef418d9788a856fa78aa97c154cfe5" alt="Listen on Apple Podcasts" style="border-radius: 13px; width: 250px; height: 83px;"></a>
3+
<a href="https://podcasts.apple.com/us/podcast/dojocast/id1458122473?itsct=podcast_box&amp;itscg=30200" style="display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;">
4+
<%= lazy_image_tag('https://tools.applemediaservices.com/api/badges/listen-on-apple-podcasts/badge/ja-JP?size=250x83&amp;releaseDate=1596412800&h=47ef418d9788a856fa78aa97c154cfe5', alt: 'Listen on Apple Podcasts', style: 'border-radius: 13px; width: 250px; height: 83px;') %>
5+
</a>
46
</section>

0 commit comments

Comments
 (0)