A lot :)
Some checks failed
/ Run tests (push) Successful in 8m56s
/ Run system tests (push) Failing after 1h0m48s
/ Build, push and deploy image (push) Successful in 7m47s

This commit is contained in:
david 2024-09-05 22:54:38 +02:00
parent aad67af0d1
commit 63fc206c27
153 changed files with 2043 additions and 646 deletions

View file

@ -1,7 +1,9 @@
# frozen_string_literal: true
namespace :import do
desc 'Import WCAG2.1 in german'
desc "Import WCAG2.1 in german"
task wcag21de: :environment do
URL = 'https://outline-rocks.github.io/wcag/translations/WCAG21-de/'
URL = "https://outline-rocks.github.io/wcag/translations/WCAG21-de/"
doc = Nokogiri::HTML5(URI.open(URL))
@ -10,19 +12,19 @@ namespace :import do
# standard.description = doc.css('#abstract p').map(&:to_s).join
# standard.save!
doc.css('section.principle').each do |principle_node|
_principle_id = principle_node.attributes['id'].value
_principle_title = principle_node.css('h2').first.content
doc.css("section.principle").each do |principle_node|
_principle_id = principle_node.attributes["id"].value
_principle_title = principle_node.css("h2").first.content
# principle = standard.principles.find_or_create_by(code: principle_id)
# principle.name = principle_title.scan(/\d+\. (.*)/).first.last
# principle.number = principle_title.scan(/(\d+)\..*/).first.last
# principle.save!
principle_node.css('section').each do |guideline_node|
next unless guideline_node.css('h3').first
principle_node.css("section").each do |guideline_node|
next unless guideline_node.css("h3").first
guideline_title = guideline_node.css('h3').first.content
guideline_text = guideline_node.css('p').first
guideline_title = guideline_node.css("h3").first.content
guideline_text = guideline_node.css("p").first
_guideline_number = guideline_title.scan(/Richtlinie \d+\.(\d+).*/).first.last
# guideline = principle.guidelines.find_or_create_by(number: guideline_number)
@ -31,9 +33,9 @@ namespace :import do
# guideline.save!
guideline_node.css('section').each do |sc|
sc_title = sc.css('h4').first.content.scan(/Erfolgskriterium \d+\.\d+\.\d+(.*)/).first.last
sc_level = sc.css('p').first.content.scan(/\(Stufe (A+)\)/).first.last
guideline_node.css("section").each do |sc|
sc_title = sc.css("h4").first.content.scan(/Erfolgskriterium \d+\.\d+\.\d+(.*)/).first.last
sc_level = sc.css("p").first.content.scan(/\(Stufe (A+)\)/).first.last
# sc_hints = sc.css('div p').map { ReverseMarkdown.convert(_1.to_s) }
# _sc_number = sc_title.scan(/Erfolgskriterium \d+\.\d+\.(\d+).*/).first.last
@ -41,7 +43,7 @@ namespace :import do
success_criterion = Check.find_or_create_by(name: sc_title)
success_criterion.name = sc_title
text = "<div>#{guideline_text}<br>#{sc.css('p')[1]}"
text += "<p>#{sc.css('dl').first&.to_s}</p>" if sc.css('dl').first
text += "<p>#{sc.css('dl').first&.to_s}</p>" if sc.css("dl").first
success_criterion.success_criterion_html = "#{text}</div>".gsub('href="#', %(href="#{URL}#))
success_criterion.level = sc_level