diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a62f44186..c9edf8ce8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -32,7 +32,7 @@ "customizations": { "codespaces": { "openFiles": [ - "app/views/home/show.html.haml" + "app/views/home/show.html.erb" ] }, "vscode": { diff --git a/Gemfile b/Gemfile index 234bca064..6e3c72806 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,6 @@ gem 'jquery-rails' gem 'bootstrap-sass' gem 'font-awesome-rails' -gem 'haml-rails' gem 'rails-html-sanitizer', '~> 1.4.4' gem 'sass-rails', '>= 5' gem 'simple_grid_rails' diff --git a/Gemfile.lock b/Gemfile.lock index a4de8d1d1..2415b5684 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -205,15 +205,6 @@ GEM multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (~> 0.15) - haml (6.3.0) - temple (>= 0.8.2) - thor - tilt - haml-rails (2.1.0) - actionpack (>= 5.1) - activesupport (>= 5.1) - haml (>= 4.0.6) - railties (>= 5.1) hash-deep-merge (0.1.1) httpclient (2.9.0) mutex_m @@ -482,7 +473,6 @@ GEM activesupport (>= 6.1) sprockets (>= 3.0.0) stackprof (0.2.27) - temple (0.10.3) thor (1.3.2) tilt (2.6.0) timeout (0.4.3) @@ -531,7 +521,6 @@ DEPENDENCIES flamegraph font-awesome-rails google_drive - haml-rails jbuilder jquery-rails koala diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 78d8edd62..8ad2b2343 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -77,34 +77,21 @@ def lazy_image_tag(source, options={}) end end - def welcome_path(options={anchor: 'welcome'}) - root_path(options) - end - - def news_path(options={anchor: 'news'}) - root_path(options) - end - - def news_url(path='/') - 'https://news.coderdojo.jp' + path - end + def welcome_path(options={anchor: 'welcome'}); root_path(options); end + def news_path (options={anchor: 'news'}); root_path(options); end - def decadojo_url; 'https://decadojo.coderdojo.jp'; end - def dojocon_url; 'https://dojocon.coderdojo.jp'; end + def news_url (path='/'); 'https://news.coderdojo.jp' + path; end + def dojomap_url(path='/'); 'https://map.coderdojo.jp' + path; end + def zen_url(path='/find'); 'https://zen.coderdojo.com' + path; end - def dojoletter_url() - 'https://news.coderdojo.jp/category/DojoLetterバックナンバー' - end + def decadojo_url; 'https://decadojo.coderdojo.jp'; end + def dojocon_url; 'https://dojocon.coderdojo.jp'; end + def dojoletter_url; 'https://news.coderdojo.jp/category/DojoLetterバックナンバー'; end + def foundation_url; 'https://speakerdeck.com/helloworldfoundation'; end - def dojomap_url(path='/') - 'https://map.coderdojo.jp' + path - end + def facebook_group_url; 'https://www.facebook.com/groups/coderdojo.jp'; end + def facebook_page_url; 'https://www.facebook.com/coderdojo.jp'; end + def twitter_url; 'https://twitter.com/CoderDojoJapan'; end + def youtube_url; 'https://youtube.com/CoderDojoJapan'; end - def foundation_url - 'https://speakerdeck.com/helloworldfoundation' - end - - def zen_url(path='/find') - 'https://zen.coderdojo.com' + path - end end diff --git a/app/views/home/show.html.erb b/app/views/home/show.html.erb index 51aa21565..6b381e9d3 100644 --- a/app/views/home/show.html.erb +++ b/app/views/home/show.html.erb @@ -105,7 +105,8 @@ - + \ No newline at end of file diff --git a/app/views/shared/_dojos.html+smartphone.haml b/app/views/shared/_dojos.html+smartphone.haml deleted file mode 100644 index 04d32ba93..000000000 --- a/app/views/shared/_dojos.html+smartphone.haml +++ /dev/null @@ -1,24 +0,0 @@ -#accordion.panel-group{"aria-multiselectable" => "true", role: "tablist"} - - regions_and_dojos.each_with_index do |(region, dojos), index| - .panel.panel-default - .panel-heading{id: "heading#{index}", role: "tab"} - %h4.panel-title - %a{"data-toggle" => "collapse", - href: "##{"collapse#{index}"}", role: "button"} - %i.fa.fa-chevron-right{"aria-hidden" => "true"} - = region - \- #{dojos.pluck(:counter).sum} Dojos - .panel-collapse.collapse{id: "collapse#{index}", role: "tabpanel"} - .panel-body.grayscale-bg.dojo-flex - = render partial: 'shared/dojo', collection: dojos - -:javascript - $(document).ready(function() { - $('.collapse').on('shown.bs.collapse', function() { - $(this).parent().find(".fa-chevron-right").removeClass("fa-chevron-right").addClass("fa-chevron-down"); - }); - - $('.collapse').on('hidden.bs.collapse', function() { - $(this).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-right"); - }); - }); diff --git a/app/views/shared/_dojos.html.erb b/app/views/shared/_dojos.html.erb new file mode 100644 index 000000000..4fa82c1b0 --- /dev/null +++ b/app/views/shared/_dojos.html.erb @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/app/views/shared/_dojos.html.haml b/app/views/shared/_dojos.html.haml deleted file mode 100644 index 621d32b82..000000000 --- a/app/views/shared/_dojos.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -%ul.loaded.dojo-flex - = render partial: 'shared/dojo', collection: regions_and_dojos.values.flatten diff --git a/app/views/shared/_dojos_stats.html.erb b/app/views/shared/_dojos_stats.html.erb new file mode 120000 index 000000000..e033c6b7c --- /dev/null +++ b/app/views/shared/_dojos_stats.html.erb @@ -0,0 +1 @@ +_dojos.html+smartphone.erb \ No newline at end of file diff --git a/app/views/shared/_dojos_stats.html.haml b/app/views/shared/_dojos_stats.html.haml deleted file mode 120000 index 11471ff0d..000000000 --- a/app/views/shared/_dojos_stats.html.haml +++ /dev/null @@ -1 +0,0 @@ -_dojos.html+smartphone.haml \ No newline at end of file diff --git a/app/views/shared/_footer.html.erb b/app/views/shared/_footer.html.erb new file mode 100644 index 000000000..7a041c027 --- /dev/null +++ b/app/views/shared/_footer.html.erb @@ -0,0 +1,55 @@ + diff --git a/app/views/shared/_footer.html.haml b/app/views/shared/_footer.html.haml deleted file mode 100644 index a924d6dc8..000000000 --- a/app/views/shared/_footer.html.haml +++ /dev/null @@ -1,55 +0,0 @@ -%footer#footer.footer-bottom.text-center - %h2{style: "line-height: 30px;"} - %a.footer-link{href: '/', title: 'トップページに戻ります'} Top - | - %a.footer-link{href: '/kata', title: '道場情報まとめ「Kata」を見る'} Kata - | - %a.footer-link{href: '/#news', title: '最近のニュース「DojoLetter」を見る'} News - | - %a.footer-link{href: '/docs', title: '公式資料まとめ「Docs」を見る'} 資料 - | - %a.footer-link{href: '/charter', title: 'CoderDojo 憲章を見る'} 憲章 - | - %a.footer-link{href: '/stats', title: 'CoderDojo の統計データを見る'} 統計 - | - %a.footer-link{href: '/sotechsha2', title: 'CoderDojo Japan 公式ブックを見る'} 書籍 - | - %a.footer-link{href: dojomap_url, title: '地図から探せる「DojoMap」を見る'} 地図 - | - %a.footer-link{href: '/privacy', title: 'プライバシーポリシーを見る'} Privacy - | - %a.footer-link{href: '/podcasts', title: 'ポッドキャスト番組「DojoCast」を見る'} Podcast - | - %a.footer-link{href: decadojo_url, title: 'CoderDojo の地域カンファレンス「DecaDojo」を見る'} DecaDojo - | - %a.footer-link{href: dojocon_url, title: 'CoderDojo の全国カンファレンス「DojoCon Japan」を見る'} DojoCon - | - %a.footer-link{href: '/english', hreflang: 'en', title: "Read CoderDojo Japan's website in English"} English - %h2 - %a{href: "http://news.coderdojo.jp/", target: "_blank", rel: "external noopener"} - %i.fa.fa-newspaper-o.fa-3x.fa-fw{"aria-hidden" => "true", title: "News"} - /%a{href: "https://github.com/coderdojo-japan"} / GitHub は直後の文章でリンクがあるので省略 - / %i.fa.fa-github.fa-3x.fa-fw{"aria-hidden" => "true", :title => "GitHub"} - %a{href: "https://www.facebook.com/coderdojo.jp/"} - %i.fa.fa-facebook.fa-3x.fa-fw{"aria-hidden" => "true", title: "Facebook"} - %a{href: "https://twitter.com/CoderDojoJapan"} - %i.fa.fa-twitter.fa-3x.fa-fw{"aria-hidden" => "true", title: "Twitter"} - %a{href: "https://www.youtube.com/CoderDojoJapan"} - %i.fa.fa-youtube.fa-3x.fa-fw{"aria-hidden" => "true", title: "YouTube"} - %a{href: "/podcasts" } - %i.fa.fa-podcast.fa-3x.fa-fw{"aria-hidden" => "true", title: "Podcast"} - %a{href: "/english" } - %i.fa.fa-globe.fa-3x.fa-fw{"aria-hidden" => "true", title: "English"} - %p{style: "margin-bottom: 30px;"} - 本サイトのソースコードは - %br.ignore-pc - %a.footer-link{href: "https://github.com/coderdojo-japan/coderdojo.jp"} GitHub - 上で公開されています。 - %p{style: "font-size: 90%; color: \#DDDDDD;"} - Copyright © - %a{href: "/about-coderdojo-japan", style: "color: \#DDDDDD; text-decoration: none;"} - 一般社団法人 CoderDojo Japan - %br/ - 新宿区高田馬場1-28-10 三慶ビル4F - %a{href: "https://case-shinjuku.com/", style: "color: \#DDDDDD; text-decoration: none;"} - ケイス新宿 diff --git a/app/views/shared/_header.html.erb b/app/views/shared/_header.html.erb new file mode 100644 index 000000000..968687784 --- /dev/null +++ b/app/views/shared/_header.html.erb @@ -0,0 +1,100 @@ + + +<% content_for :javascript do %> + +<% end %> diff --git a/app/views/shared/_header.html.haml b/app/views/shared/_header.html.haml deleted file mode 100644 index 96c1d2fc3..000000000 --- a/app/views/shared/_header.html.haml +++ /dev/null @@ -1,82 +0,0 @@ -%nav.navbar.navbar-default.navbar-fixed-top#header - .container-fluid - .navbar-header - %button.navbar-toggle.collapsed{ "type" => "button", "data-toggle" => "collapse", - "data-target" => "#header-nav-toggle", "aria-expanded" => "false" } - %span.sr-only Toggle navigation - %span.icon-bar - %span.icon-bar - %span.icon-bar - .navbar-header-logos - = link_to lazy_image_tag('/img/header-logo.png', alt: 'CoderDojo logo', min: true), '/', id: "header-logo" - = link_to lazy_image_tag('/img/header-brand.png', alt: 'CoderDojo brand', min: true), '/', id: "header-brand" - #bs-example-navbar-collapse-1.collapse#header-nav-toggle.navbar-collapse - %ul.nav.navbar-nav.navbar-right - %li= link_to '全国の道場', '/#dojos' - %li= link_to 'パートナー法人', '/#partners' - %li.navbar-dd-p - = link_to '最近の活動', '/#news' - %span.navbar-dd-l - %ul.navbar-dd - /%li= link_to '☯️ SNS', '/#timeline' - %li= link_to '📰 News', '/#news' - %li= link_to '📻 Podcast', '/podcasts' - %li= link_to '📺 YouTube', '/youtube' - %li= link_to '📚 その他', '/#kata' - %li.navbar-dd-p - = link_to '道場を探す', '/#dojos' - %span.navbar-dd-l - %ul.navbar-dd - / %li= link_to '☯️ 一覧から', '/#dojos' - %li - = link_to '/#dojos' do - ☯️ 一覧から - %span.ignore-pc<> 探す - %li - = link_to '/events' do - 📅 日付から - %span.ignore-pc<> 探す - %li - = link_to dojomap_url do - 🗾 地図から - %span.ignore-pc<> 探す - %li.navbar-dd-p - = link_to '資料を探す', '/kata' - %span.navbar-dd-l - %ul.navbar-dd - %li= link_to '🔰 はじめに', '/kata#README' - %li= link_to '📰 メディア', '/kata#media' - %li= link_to '🎓 学ぶ', '/kata#learn' - %li= link_to '🏆 腕試し', '/kata#challenge' - %li= link_to '☯️ 立ち上げ', '/kata#startup' - %li= link_to '🎁 運営支援', '/kata#support' - %li= link_to '✅ FAQ', '/kata#faq' - %li= link_to '🤝 法人向け', '/partnership' - %li= link_to '📊 統計情報', '/stats' - %li= link_to '📚 資料集', '/docs' - %li= link_to '📩 連絡する', '/#contact' - %li= link_to '🌏 English', '/english', hreflang: 'en' - - / DocSearch: https://github.com/algolia/docsearch-configs/blob/master/configs/coderdojo.json - %li.search-li - %label.search-label{for: 'search'} - %img.search-icon{alt: '検索アイコン', src: '/img/search.svg'} - 検索で探す - = check_box_tag :search, "検索アイコン", false, class: 'search-checkbox', onclick: 'focusSearchBox()' - %div.search - %input#searchbox{placeholder: "例: コンテスト、教材", type: "text"} - #hits - #pagination - - -:javascript - function focusSearchBox() { - document.getElementById("searchbox").focus(); - }; - - document.addEventListener('click', (e) => { - if(e.target.closest('#header-nav-toggle') || !e.target.closest('#header-nav-toggle')) { - const element = document.getElementById('header-nav-toggle') - element.classList.remove('in'); - } - }) diff --git a/app/views/shared/_newsletter.html.haml b/app/views/shared/_newsletter.html.haml deleted file mode 100644 index 4f1bd460a..000000000 --- a/app/views/shared/_newsletter.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -%div#mc_embed_signup - %form#mc-embedded-subscribe-form{class: "validate", action: "https://coderdojo.us17.list-manage.com/subscribe/post?u=39a5824e42ab56ec44bb4e84e&id=097dfa6a14", method: "post", name: "mc-embedded-subscribe-form", novalidate: "", target: "_blank"} - #mc_embed_signup_scroll - %input#mce-EMAIL{type: "email", name: "EMAIL", class: "email", placeholder: "your@example.com"} - %div{style: "position: absolute; left: -5000px;", 'aria-hidden' => 'true'} - %input{tabindex: "-1", name: "b_39a5824e42ab56ec44bb4e84e_097dfa6a14", type: "text", value: ""} - %input{id: "mc-embedded-subscribe", class: "button", name: "subscribe", type: "submit", value: "購読する"} - diff --git a/app/views/shared/_partners.haml b/app/views/shared/_partners.haml deleted file mode 100644 index c19196fd2..000000000 --- a/app/views/shared/_partners.haml +++ /dev/null @@ -1,59 +0,0 @@ -:javascript - $(function () { - $('[data-toggle="tooltip"]').tooltip(); - }); - -%ul - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/case-shinjuku.png', alt: 'CASE Shinjuku', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'オフィスの提供'), '/podcasts/8', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/yasslab.webp', alt: 'YassLab 株式会社', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Webサイトの運営および開発支援'), 'https://github.com/coderdojo-japan/coderdojo.jp#history', target: "_blank", rel: "external noopener" - - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/osscafe.png', alt: "下北沢オープンソースCafe", data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ドメイン代の支援'), 'https://medium.com/opensource-cafe', target: "_blank", rel: "external noopener" - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/mitoujr.webp', alt: '未踏ジュニア', data: { toggle: 'tooltip', placement: 'bottom' }, title: '活動資金の継続的な支援'), '/podcasts/11', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/ht79.png', alt: 'NPO法人のためのIT支援事務所 ht', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Newsサーバー代の支援'), 'https://ht79.info/', target: "_blank", rel: "external noopener" - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/esa.webp', alt: 'esa LLC', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ドキュメント共有サービスの提供'), 'https://docs.esa.io/posts/239', target: "_blank", rel: "external noopener" - - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/sakura-internet.png', alt: 'さくらインターネット', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'サーバー環境(クラウド)の提供'), 'https://www.sakura.ad.jp/information/pressreleases/2017/07/20/90191/', target: "_blank", rel: "external noopener" - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/hay-kaikei.png', alt: 'Hay未来の税理士法人', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'CoderDojo Japan の会計支援'), 'http://www.hay-kaikei.com/', target: "_blank", rel: "external noopener" - - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/techsoup-japan.png', alt: 'TechSoup Japan', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'G Suite などの寄贈申請の支援'), 'https://news.coderdojo.jp/2019/03/03/google-for-nonprofits-via-techsoup-japan/', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/progate.png', alt: 'Progate', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'プログラミング学習環境の支援'), 'https://news.coderdojo.jp/2018/10/29/プログラミング学習のprogate、全国のcoderdojoへ法人プラン/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/algolia.png', alt: 'Algolia', data: { toggle: 'tooltip', placement: 'bottom' }, title: '検索エンジン DocSearch の提供'), 'https://community.algolia.com/docsearch/', target: "_blank", rel: "external noopener" - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/github.png', alt: 'GitHub', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'GitHub for Nonprofit の提供'), 'https://news.coderdojo.jp/2019/08/29/github-for-nonprofit/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/hackforplay.webp', alt: 'HackforPlay', data: { toggle: 'tooltip', placement: 'bottom' }, title: '法人向け HackforPlay の提供'), 'https://news.coderdojo.jp/2020/04/06/hackforplay-for-team/', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/google.png', alt: 'Google', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Benevity を通した活動資金の支援'), 'https://news.coderdojo.jp/2019/11/13/google-and-coderdojo-join-forces-in-japan/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/tfabworks.png', alt: 'TFabWorks', data: { toggle: 'tooltip', placement: 'bottom' }, title: '無償レンタルプログラムの提供'), 'https://news.coderdojo.jp/2020/11/26/tfabworks-microbit-rental-program/', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto;'}= link_to lazy_image_tag('/partners/grips.png', alt: 'GRIPS', data: { toggle: 'tooltip', placement: 'bottom' }, title: '教育用ロボットアームの提供'), 'https://news.coderdojo.jp/2021/04/28/dobot-rental-program/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 35px auto 25px;'}= link_to lazy_image_tag('/partners/pokemon-foundation.png', alt: 'プログラミングでポケモンをうごかしてみよう', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ワークショッププログラムの提供'), 'https://news.coderdojo.jp/2021/04/23/programming-with-pokemon/', target: "_blank", rel: "noopener" - %li{style: 'margin: 35px auto 25px;'}= link_to lazy_image_tag('/partners/dpro.png', alt: 'DPro (ディープロ)', data: { toggle: 'tooltip', placement: 'bottom' }, title: '学習コンテンツの提供'), 'https://news.coderdojo.jp/2021/12/27/diver-learnings-for-coderdojo/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/toio.webp', alt: 'toio(トイオ)', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ロボットトイ「toio」の提供'), 'https://news.coderdojo.jp/2022/03/17/toio-sony-interactive-entertainment/', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/microbit.png', alt: 'micro:bit(マイクロビット)', data: { toggle: 'tooltip', placement: 'bottom' }, title: '教育用マイコンボードの提供'), 'https://news.coderdojo.jp/2022/05/16/1500-microbits-to-coderdojo/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 30px auto 20px;'}= link_to lazy_image_tag('/partners/minecraftcup.png', alt: 'Minecraftカップ全国大会', data: { toggle: 'tooltip', placement: 'bottom' }, title: '教育版マイクラのライセンス貸出'), 'https://news.coderdojo.jp/2022/05/31/partnership-with-minecraftcup/', target: "_blank", rel: "noopener" - %li{style: 'margin: 30px auto 20px;'}= link_to lazy_image_tag('/partners/geolonia.png', alt: 'Geolonia', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'DojoMap への地図データ提供'), 'https://news.coderdojo.jp/2022/12/01/dojomap-and-geolonia/', target: "_blank", rel: "noopener" - - // %li{style: 'margin: 30px auto 25px;'}= link_to lazy_image_tag('/partners/docker.png', alt: 'Docker Inc.', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Docker によるチーム開発の支援'), 'https://news.coderdojo.jp/2022/12/03/docker-sponsored-open-source-program/', target: "_blank", rel: "noopener" - // %li{style: 'margin: 30px auto 25px;'}= link_to lazy_image_tag('/partners/mitsue-links.png', alt: 'ミツエーリンクス', data: { toggle: 'tooltip', placement: 'bottom' }, title: '活動資金に対する支援'), 'https://news.coderdojo.jp/2023/01/01/partnership-with-mitsue-links/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 30px auto 30px;'}= link_to lazy_image_tag('/partners/prtimes.png', alt: 'PR TIMES', data: { toggle: 'tooltip', placement: 'bottom' }, title: '非営利活動の情報発信の支援'), 'https://news.coderdojo.jp/2023/04/06/sponsored-by-prtimes/', target: "_blank", rel: "noopener" - %li{style: 'margin: 30px auto 30px;'}= link_to lazy_image_tag('/partners/box.webp', alt: 'Box Japan', data: { toggle: 'tooltip', placement: 'bottom' }, title: '128台のノート PC 寄贈'), 'https://news.coderdojo.jp/2024/12/25/box-japan-to-coderdojo/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 10px auto 30px;'}= link_to lazy_image_tag('/partners/aqoocan.webp', alt: 'アクウカン - 所沢市のコワーキングスペース&工作室', data: { toggle: 'tooltip', placement: 'bottom' }, title: '75台の『ニャイス!コード』寄贈'), 'https://news.coderdojo.jp/2025/02/14/coderdojo-de-nyaicecode/', target: "_blank", rel: "noopener" - %li{style: 'margin: 10px auto 30px;'}= link_to lazy_image_tag('/partners/jcdpgstadium.webp', alt: 'プログラミングスタジアム', data: { toggle: 'tooltip', placement: 'bottom' }, title: '地域の Dojo の周知支援'), 'https://jcdpgstadium.jp/', target: "_blank", rel: "noopener" - - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/backlog.svg', alt: 'Backlog|チームで使うプロジェクト管理・タスク管理ツール', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Backlog によるタスク管理支援'), 'https://backlog.com/ja/', target: "_blank", rel: "noopener" - %li{style: 'margin: 20px auto 30px;'}= link_to lazy_image_tag('/partners/ngrok.svg', alt: 'ngrok | API Gateway, Kubernetes Ingress, Webhook Gateway', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ngrok によるWeb開発支援'), 'https://ngrok.com/', target: "_blank", rel: "noopener" - - /%li= link_to lazy_image_tag('/partners/scrivito.png', alt: 'Scrivito', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Cloud-Based CMS の提供'), 'https://scrivito.com/', target: "_blank", rel: "external noopener" - /%li= link_to lazy_image_tag('/partners/cygames.webp', alt: 'Cygames', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'PC寄贈に関する支援'), 'https://news.coderdojo.jp/2018/11/28/from-cygames-to-all-dojos-in-japan/', target: "_blank", rel: "noopener" - - /%li= link_to lazy_image_tag('/partners/facebook.png', alt: 'Facebook Japan', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'Facebookページの運用支援'), 'http://news.coderdojo.jp/2018/10/12/press-support-facebook-coupon/', target: "_blank", rel: "noopener" - /%li= link_to lazy_image_tag('/partners/wro.png', alt: 'WRO Japan', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'ロボットキットの提供'), 'https://news.coderdojo.jp/2019/12/21/wro-japan-and-coderdojo-japan/', target: "_blank", rel: "noopener" - - /%li= link_to lazy_image_tag('/partners/topsic.png', alt: 'TOPSIC', data: { toggle: 'tooltip', placement: 'bottom' }, title: 'プログラミング学習環境の支援'), 'https://news.coderdojo.jp/2019/07/30/play-and-learn-with-programming-contest/', target: "_blank", rel: "noopener" - /%li= link_to lazy_image_tag('/partners/code-for-everyone.webp', alt: 'みんなのコード', data: { toggle: 'tooltip', placement: 'bottom' }, title: '学校との連携支援'), 'https://news.coderdojo.jp/2019/02/04/from-minnnanocode-to-coderdojo-japan/', target: "_blank", rel: "noopener" diff --git a/app/views/shared/_partners.html.erb b/app/views/shared/_partners.html.erb new file mode 100644 index 000000000..fc91b5db8 --- /dev/null +++ b/app/views/shared/_partners.html.erb @@ -0,0 +1,63 @@ +<% content_for :javascript do %> + +<% end %> + + diff --git a/app/views/shared/_sitemap_sotechsha.html.erb b/app/views/shared/_sitemap_sotechsha.html.erb new file mode 100644 index 000000000..fca68d511 --- /dev/null +++ b/app/views/shared/_sitemap_sotechsha.html.erb @@ -0,0 +1,47 @@ + + +
+
\ No newline at end of file diff --git a/app/views/shared/_sitemap_sotechsha.html.haml b/app/views/shared/_sitemap_sotechsha.html.haml deleted file mode 100644 index 56949abff..000000000 --- a/app/views/shared/_sitemap_sotechsha.html.haml +++ /dev/null @@ -1,29 +0,0 @@ -%nav.navbar - %ul.nav.navbar-nav - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/gazou"} スプライト素材のダウンロード - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/0"} 序章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/1"} 1章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/2"} 2章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/3"} 3章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/4"} 4章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/5"} 5章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha/6"} 6章課題 - -%hr/ -%br/ diff --git a/app/views/shared/_sitemap_sotechsha2.html.erb b/app/views/shared/_sitemap_sotechsha2.html.erb new file mode 100644 index 000000000..530003d0c --- /dev/null +++ b/app/views/shared/_sitemap_sotechsha2.html.erb @@ -0,0 +1,47 @@ + + +
+
\ No newline at end of file diff --git a/app/views/shared/_sitemap_sotechsha2.html.haml b/app/views/shared/_sitemap_sotechsha2.html.haml deleted file mode 100644 index 632278c75..000000000 --- a/app/views/shared/_sitemap_sotechsha2.html.haml +++ /dev/null @@ -1,29 +0,0 @@ -%nav.navbar - %ul.nav.navbar-nav - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/gazou"} スプライト素材のダウンロード - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/0"} 序章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/1"} 1章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/2"} 2章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/3"} 3章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/4"} 4章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/5"} 5章課題 - %li - %span.list-group - %a.list-group-item.list-group-item-success.text-center{:href => "/sotechsha2/6"} 6章課題 - -%hr/ -%br/ diff --git a/app/views/shared/_social_buttons.html.erb b/app/views/shared/_social_buttons.html.erb new file mode 100644 index 000000000..fc68cb4a1 --- /dev/null +++ b/app/views/shared/_social_buttons.html.erb @@ -0,0 +1,15 @@ +<% content_for :javascript do %> + +<% end %> + + \ No newline at end of file diff --git a/app/views/shared/_social_buttons.html.haml b/app/views/shared/_social_buttons.html.haml deleted file mode 100644 index 2f7579bc8..000000000 --- a/app/views/shared/_social_buttons.html.haml +++ /dev/null @@ -1,15 +0,0 @@ -%ul.social_buttons - %li - %div.fb-like{"data-action" => "like", "data-href" => "#{full_url(yield(:url))}", "data-layout" => "button_count", "data-share" => "true", "data-show-faces" => "true"} - %li - %a.twitter-share-button{"data-hashtags" => "CoderDojo", "data-lang" => "ja", "data-text" => "#{full_title(yield(:title))}", "data-url" => "#{full_url(yield(:url))}", "data-via" => "CoderDojoJapan", href: "https://twitter.com/share", width: "100"} Tweet - :javascript - !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs'); - - /%li - / %a.hatena-bookmark-button{"data-hatena-bookmark-lang" => "ja", "data-hatena-bookmark-layout" => "basic-counter", "data-hatena-bookmark-title" => "#{full_title(yield(:title))}", href: "#{full_url(yield(:url))}", title: "このエントリーをはてなブックマークに追加"} - / %img{alt: "このエントリーをはてなブックマークに追加", height: "20", src: "https://b.st-hatena.com/images/v4/public/entry-button/button-only@2x.png", style: "border: none;", width: "20"}/ - / %script{async: "async", charset: "utf-8", src: "https://b.st-hatena.com/js/bookmark_button.js", type: "text/javascript"} - /%li{:style => "display: inline-block;"} - / %div.line-it-button{"data-lang" => "ja", "data-type" => "like", "data-url" => "#{full_url(yield(:url))}", style: "display: none;"} - / %script{async: "async", defer: "defer", src: "https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js"} diff --git a/app/views/shared/_social_buttons_raw.html.erb b/app/views/shared/_social_buttons_raw.html.erb new file mode 100644 index 000000000..f15dcd440 --- /dev/null +++ b/app/views/shared/_social_buttons_raw.html.erb @@ -0,0 +1,21 @@ +<% content_for :javascript do %> + + +<% end %> + +
    +
  1. +
    +
  2. +
  3. + +
  4. +
  5. + + このエントリーをはてなブックマークに追加 + +
  6. + <%# コメントアウトされたLINEのボタンは省略 %> +
\ No newline at end of file diff --git a/app/views/shared/_social_buttons_raw.html.haml b/app/views/shared/_social_buttons_raw.html.haml deleted file mode 100644 index 53ef6584c..000000000 --- a/app/views/shared/_social_buttons_raw.html.haml +++ /dev/null @@ -1,14 +0,0 @@ -%ol.text-center{:style => "list-style: none; margin-top: 30px; margin-left: 0px; padding-left: 0px; text-align: center;"} - %li{:style => "display: inline-block; line-height: 28px;"} - %div.fb-like{"data-action" => "like", "data-href" => "#{full_url(yield(:url))}", "data-layout" => "button_count", "data-share" => "true", "data-show-faces" => "true"} - %li{:style => "display: inline-block;"} - %a.twitter-share-button{"data-hashtags" => "CoderDojo", "data-lang" => "ja", "data-text" => "#{full_title(yield(:title))}", "data-url" => "#{full_url(yield(:url))}", "data-via" => "CoderDojoJapan", href: "https://twitter.com/share", width: "100"} Tweet - :javascript - !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs'); - %li{:style => "display: inline-block;"} - %a.hatena-bookmark-button{"data-hatena-bookmark-lang" => "ja", "data-hatena-bookmark-layout" => "basic-counter", "data-hatena-bookmark-title" => "#{full_title(yield(:title))}", href: "#{full_url(yield(:url))}", title: "このエントリーをはてなブックマークに追加"} - %img{alt: "このエントリーをはてなブックマークに追加", height: "20", src: "https://b.st-hatena.com/images/v4/public/entry-button/button-only@2x.png", style: "border: none;", width: "20"}/ - %script{async: "async", charset: "utf-8", src: "https://b.st-hatena.com/js/bookmark_button.js", type: "text/javascript"} - /%li{:style => "display: inline-block;"} - / %div.line-it-button{"data-lang" => "ja", "data-type" => "like", "data-url" => "#{full_url(yield(:url))}", style: "display: none;"} - / %script{async: "async", defer: "defer", src: "https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js"}