openstax_kitchen 12.2.0 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +4 -4
  5. data/codecov.yaml +4 -0
  6. data/lib/kitchen/directions/bake_all_chapter_solutions_types.rb +30 -0
  7. data/lib/kitchen/directions/bake_all_numbered_exercise_types.rb +26 -0
  8. data/lib/kitchen/directions/bake_annotation_classes/main.rb +2 -2
  9. data/lib/kitchen/directions/bake_annotation_classes/v1.rb +3 -3
  10. data/lib/kitchen/directions/bake_appendix.rb +1 -0
  11. data/lib/kitchen/directions/bake_autotitled_exercise/main.rb +8 -0
  12. data/lib/kitchen/directions/bake_autotitled_exercise/v2.rb +33 -0
  13. data/lib/kitchen/directions/bake_autotitled_exercise/v3.rb +35 -0
  14. data/lib/kitchen/directions/bake_chapter_glossary/v1.rb +3 -1
  15. data/lib/kitchen/directions/bake_chapter_references/v1.rb +1 -1
  16. data/lib/kitchen/directions/bake_chapter_solutions/v1.rb +1 -1
  17. data/lib/kitchen/directions/bake_chapter_summary.rb +1 -1
  18. data/lib/kitchen/directions/bake_example.rb +1 -1
  19. data/lib/kitchen/directions/bake_figure.rb +1 -15
  20. data/lib/kitchen/directions/bake_footnotes/v1.rb +1 -1
  21. data/lib/kitchen/directions/bake_iframes/v1.rb +2 -0
  22. data/lib/kitchen/directions/bake_index/v1.rb +1 -1
  23. data/lib/kitchen/directions/bake_index/v1.xhtml.erb +5 -9
  24. data/lib/kitchen/directions/{bake_injected_exercise.rb → bake_injected_exercise/bake_injected_exercise.rb} +10 -1
  25. data/lib/kitchen/directions/bake_injected_exercise/bake_injected_exercise_question.rb +4 -0
  26. data/lib/kitchen/directions/bake_learning_objectives.rb +13 -0
  27. data/lib/kitchen/directions/bake_lo_link_labels.rb +19 -0
  28. data/lib/kitchen/directions/bake_non_introduction_pages.rb +3 -1
  29. data/lib/kitchen/directions/bake_notes/bake_autotitled_notes.rb +1 -26
  30. data/lib/kitchen/directions/bake_notes/bake_note_exercise.rb +54 -0
  31. data/lib/kitchen/directions/bake_notes/bake_note_injected_question.rb +15 -0
  32. data/lib/kitchen/directions/bake_notes/bake_numbered_notes/main.rb +0 -31
  33. data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v1.rb +2 -2
  34. data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v2.rb +2 -2
  35. data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v3.rb +2 -2
  36. data/lib/kitchen/directions/bake_notes/bake_unclassified_notes.rb +5 -3
  37. data/lib/kitchen/directions/bake_numbered_exercise/main.rb +8 -3
  38. data/lib/kitchen/directions/bake_numbered_exercise/v1.rb +48 -7
  39. data/lib/kitchen/directions/bake_numbered_table/bake_table_body.rb +3 -0
  40. data/lib/kitchen/directions/bake_numbered_table/v2.rb +2 -1
  41. data/lib/kitchen/directions/bake_references/main.rb +6 -9
  42. data/lib/kitchen/directions/bake_references/v1.rb +22 -8
  43. data/lib/kitchen/directions/bake_references/v2.rb +9 -10
  44. data/lib/kitchen/directions/bake_references/v3.rb +32 -0
  45. data/lib/kitchen/directions/bake_screenreader_spans.rb +22 -0
  46. data/lib/kitchen/directions/bake_unnumbered_exercise.rb +16 -0
  47. data/lib/kitchen/directions/bake_unnumbered_figure.rb +26 -0
  48. data/lib/kitchen/directions/book_answer_key_container/eob_answer_key_container.xhtml.erb +9 -0
  49. data/lib/kitchen/directions/book_answer_key_container/v1.rb +6 -2
  50. data/lib/kitchen/directions/{eoc_composite_page_container → composite_page_container}/main.rb +1 -1
  51. data/lib/kitchen/directions/composite_page_container/v1.rb +28 -0
  52. data/lib/kitchen/directions/default_strategy_for_answer_key_solutions.rb +35 -0
  53. data/lib/kitchen/directions/move_custom_section_to_eoc_container/v1.rb +1 -1
  54. data/lib/kitchen/directions/move_solutions_to_answer_key/answer_key_inner_container.rb +29 -0
  55. data/lib/kitchen/element_base.rb +8 -4
  56. data/lib/kitchen/element_enumerator_base.rb +36 -0
  57. data/lib/kitchen/figure_element.rb +12 -4
  58. data/lib/kitchen/injected_exercise_element.rb +41 -0
  59. data/lib/kitchen/injected_exercise_element_enumerator.rb +21 -0
  60. data/lib/kitchen/injected_question_element.rb +7 -0
  61. data/lib/kitchen/patches/i18n.rb +4 -0
  62. data/lib/kitchen/patches/nokogiri.rb +8 -0
  63. data/lib/kitchen/patches/renderable.rb +1 -1
  64. data/lib/kitchen/section_element.rb +27 -0
  65. data/lib/kitchen/section_element_enumerator.rb +20 -0
  66. data/lib/kitchen/selectors/base.rb +6 -0
  67. data/lib/kitchen/selectors/standard_1.rb +2 -0
  68. data/lib/kitchen/templates/composite_page_template.xhtml.erb +10 -0
  69. data/lib/kitchen/version.rb +1 -1
  70. data/lib/locales/en.yml +4 -0
  71. data/lib/locales/es.yml +9 -1
  72. data/lib/locales/pl.yml +3 -0
  73. metadata +24 -14
  74. data/lib/kitchen/directions/book_answer_key_container/eob_answer_key_outer_container.xhtml.erb +0 -9
  75. data/lib/kitchen/directions/eoc_composite_page_container/v1.rb +0 -19
  76. data/lib/kitchen/directions/move_solutions_to_answer_key/main.rb +0 -18
  77. data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/calculus.rb +0 -41
  78. data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/contemporary_math.rb +0 -40
  79. data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/default.rb +0 -27
  80. data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/precalculus.rb +0 -63
  81. data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/uphysics.rb +0 -21
  82. data/lib/kitchen/directions/move_solutions_to_answer_key/v1.rb +0 -47
  83. data/lib/kitchen/templates/eoc_section_template.xhtml.erb +0 -11
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Kitchen::Directions::MoveSolutionsToAnswerKey
4
- module Strategies
5
- class Precalculus
6
- def bake(chapter:, append_to:)
7
- try_note_solutions(chapter: chapter, append_to: append_to)
8
-
9
- # Bake section exercises
10
- chapter.non_introduction_pages.each do |page|
11
- number = "#{chapter.count_in(:book)}.#{page.count_in(:chapter)}"
12
- Kitchen::Directions::MoveSolutionsFromExerciseSection.v1(
13
- chapter: page, append_to: append_to, section_class: 'section-exercises',
14
- title_number: number
15
- )
16
- end
17
-
18
- # Bake other types of exercises
19
- classes = %w[review-exercises practice-test]
20
- classes.each do |klass|
21
- Kitchen::Directions::MoveSolutionsFromExerciseSection.v1(
22
- chapter: chapter, append_to: append_to, section_class: klass
23
- )
24
- end
25
- end
26
-
27
- protected
28
-
29
- def try_note_solutions(chapter:, append_to:)
30
- append_to.append(child:
31
- <<~HTML
32
- <div class="os-module-reset-solution-area os-try-solution-area">
33
- <h3 data-type="title">
34
- <span class="os-title-label">#{I18n.t(:"notes.try")}</span>
35
- </h3>
36
- </div>
37
- HTML
38
- )
39
- chapter.pages.each do |page|
40
- solutions = Kitchen::Clipboard.new
41
- page.notes('$.try').each do |note|
42
- note.exercises.each do |exercise|
43
- solution = exercise.solution
44
- solution&.cut(to: solutions)
45
- end
46
- end
47
- next if solutions.items.empty?
48
-
49
- title_snippet = Kitchen::Directions::EocSectionTitleLinkSnippet.v1(
50
- page: page,
51
- wrapper: 'div'
52
- )
53
-
54
- append_to.first('div.os-try-solution-area').append(child:
55
- Kitchen::Directions::SolutionAreaSnippet.v1(
56
- title: title_snippet, solutions_clipboard: solutions
57
- )
58
- )
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Kitchen::Directions::MoveSolutionsToAnswerKey
4
- module Strategies
5
- class UPhysics
6
- def bake(chapter:, append_to:)
7
- Kitchen::Directions::MoveSolutionsFromNumberedNote.v1(
8
- chapter: chapter, append_to: append_to, note_class: 'check-understanding'
9
- )
10
-
11
- classes = %w[review-conceptual-questions review-problems review-additional-problems
12
- review-challenge]
13
- classes.each do |klass|
14
- Kitchen::Directions::MoveSolutionsFromExerciseSection.v1(
15
- chapter: chapter, append_to: append_to, section_class: klass
16
- )
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Kitchen::Directions::MoveSolutionsToAnswerKey
4
- class V1
5
- # rubocop:disable Metrics/ParameterLists
6
- # This direction may need refactoring to simplify parameters
7
- def bake(chapter:, metadata_source:, strategy:, append_to:, strategy_options: {},
8
- solutions_plural: true)
9
- strategy =
10
- case strategy
11
- when :calculus
12
- Strategies::Calculus.new
13
- when :contemporary_math
14
- Strategies::ContemporaryMath.new
15
- when :uphysics
16
- Strategies::UPhysics.new
17
- when :precalculus
18
- Strategies::Precalculus.new
19
- when :default
20
- Strategies::Default.new(strategy_options)
21
- else
22
- raise 'No such strategy'
23
- end
24
-
25
- solutions_or_solution = solutions_plural ? 'solutions' : 'solution'
26
- uuid_key = ".#{solutions_or_solution}#{chapter.count_in(:book)}"
27
- append_to.append(child:
28
- <<~HTML
29
- <div class="os-eob os-#{solutions_or_solution}-container" data-type="composite-page" \
30
- data-uuid-key="#{uuid_key}">
31
- <h2 data-type="document-title">
32
- <span class="os-text">#{I18n.t(:chapter)} #{chapter.count_in(:book)}</span>
33
- </h2>
34
- <div data-type="metadata" style="display: none;">
35
- <h1 data-type="document-title" itemprop="name">#{I18n.t(:chapter)} #{chapter.count_in(:book)}</h1>
36
- #{metadata_source.children_to_keep.copy.paste}
37
- </div>
38
- </div>
39
- HTML
40
- )
41
- strategy.bake(
42
- chapter: chapter, append_to: append_to.first("div[data-uuid-key='#{uuid_key}']")
43
- )
44
- end
45
- # rubocop:enable Metrics/ParameterLists
46
- end
47
- end
@@ -1,11 +0,0 @@
1
- <% main_title_tag = @in_composite_chapter ? 'h3' : 'h2' %>
2
- <div class="os-eoc os-<%=@container_class_type%>-container" data-type="composite-page" data-uuid-key="<%= @uuid_key %>">
3
- <<%= main_title_tag %> data-type="<%= @in_composite_chapter ? 'title' : 'document-title' %>">
4
- <span class="os-text"><%= @title %></span>
5
- </<%= main_title_tag %>>
6
- <div data-type="metadata" style="display: none;">
7
- <h1 data-type="document-title" itemprop="name"><%= @title %></h1>
8
- <%= @metadata.paste %>
9
- </div>
10
- <%= @content %>
11
- </div>