diff --git a/app/views/docs/kata.html.erb b/app/views/docs/kata.html.erb index 8d2b8f62..fab536ca 100644 --- a/app/views/docs/kata.html.erb +++ b/app/views/docs/kata.html.erb @@ -57,7 +57,7 @@

各 Dojo は、チャンピオンやメンターと呼ばれる協力者によって自主的に運営されています。プログラマーやデザイナーだけでなく、学生や教員、アーティストやフリーランス、起業家や投資家などの方々が分野横断的に協力しあって、それぞれの Dojo が継続的に運営されています。もちろん、参加者自身や参加者の親が運営に協力する事例も多いです。

<%= lazy_image_tag('/kata/coderdojo-zero.webp', alt: 'CoderDojo を支える方々の写真', style: 'margin-top: 30px; margin-bottom: 40px;', min: true) %> - +

初めての人へ @@ -87,7 +87,7 @@

CoderDojo の雰囲気は掴めたでしょうか? もっと詳しく知るには実際に参加してみるのが近道です。<%= link_to '日本の道場一覧', root_path(anchor: 'dojos') %>や<%= link_to '近日開催の道場', events_path %>、もしくは<%= link_to '地図情報(DojoMap)', dojomap_url %> から最寄りの道場を探してみましょう!

- <%= link_to '/events', class: 'btn-blue' do %> + <%= link_to events_path, class: 'btn-blue' do %> 📆 近日開催から探す <% end %> @@ -250,7 +250,7 @@ - +

📜 Web記事・プレスリリース @@ -674,7 +674,7 @@

- +

🏅 コンテスト @@ -895,7 +895,7 @@

具体的なイメージが掴めたら、準備・申請の手続きを進めていきましょう!

- +

☯️ Dojo の設立・初回開催までの流れ(制作: CoderDojo Kodaira @@ -1328,7 +1328,7 @@

<%= link_to 'ボランティアのための子ども安全保護チェックリスト', 'https://raspberrypi.my.salesforce.com/sfc/p/#4J000000GeqW/a/8d000000PGbW/TH92cMY9bA.gvpWJx0xXME.cFddNiDAEZ0rG4ciel00' %>(英語)

by <%= link_to 'Raspberry Pi & CoderDojo Foundation', raspi_url %>

- +
  • Start a CoderDojo - What is CoderDojo?(英語)

    by <%= link_to 'Raspberry Pi & CoderDojo Foundation', raspi_url %>

    diff --git a/spec/requests/docs_spec.rb b/spec/requests/docs_spec.rb index 9ae7ddc0..0d68f7ac 100644 --- a/spec/requests/docs_spec.rb +++ b/spec/requests/docs_spec.rb @@ -23,6 +23,26 @@ expect(response.status).to eq 302 end + # /kata page internal links should not be dead links + context 'kata page - internal links check' do + it 'has no dead internal links' do + get '/kata' + doc = Nokogiri::HTML(response.body) + links = doc.css('a[href]').map { |a| a['href'] } + .select { |href| href.start_with?('/') && !href.start_with?('/#') } + .map { |href| href.split('#').first } + .uniq + + dead_links = links.reject do |path| + get path + response.status < 400 + end + + puts "Checked #{links.count} internal links" + expect(dead_links).to be_empty, "Dead links found: #{dead_links.join(', ')}" + end + end + # /signup page has Google Form to be rendered. context 'signup page - Google Form rendering (Critical)' do before { get doc_path('signup') }