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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -4
- data/codecov.yaml +4 -0
- data/lib/kitchen/directions/bake_all_chapter_solutions_types.rb +30 -0
- data/lib/kitchen/directions/bake_all_numbered_exercise_types.rb +26 -0
- data/lib/kitchen/directions/bake_annotation_classes/main.rb +2 -2
- data/lib/kitchen/directions/bake_annotation_classes/v1.rb +3 -3
- data/lib/kitchen/directions/bake_appendix.rb +1 -0
- data/lib/kitchen/directions/bake_autotitled_exercise/main.rb +8 -0
- data/lib/kitchen/directions/bake_autotitled_exercise/v2.rb +33 -0
- data/lib/kitchen/directions/bake_autotitled_exercise/v3.rb +35 -0
- data/lib/kitchen/directions/bake_chapter_glossary/v1.rb +3 -1
- data/lib/kitchen/directions/bake_chapter_references/v1.rb +1 -1
- data/lib/kitchen/directions/bake_chapter_solutions/v1.rb +1 -1
- data/lib/kitchen/directions/bake_chapter_summary.rb +1 -1
- data/lib/kitchen/directions/bake_example.rb +1 -1
- data/lib/kitchen/directions/bake_figure.rb +1 -15
- data/lib/kitchen/directions/bake_footnotes/v1.rb +1 -1
- data/lib/kitchen/directions/bake_iframes/v1.rb +2 -0
- data/lib/kitchen/directions/bake_index/v1.rb +1 -1
- data/lib/kitchen/directions/bake_index/v1.xhtml.erb +5 -9
- data/lib/kitchen/directions/{bake_injected_exercise.rb → bake_injected_exercise/bake_injected_exercise.rb} +10 -1
- data/lib/kitchen/directions/bake_injected_exercise/bake_injected_exercise_question.rb +4 -0
- data/lib/kitchen/directions/bake_learning_objectives.rb +13 -0
- data/lib/kitchen/directions/bake_lo_link_labels.rb +19 -0
- data/lib/kitchen/directions/bake_non_introduction_pages.rb +3 -1
- data/lib/kitchen/directions/bake_notes/bake_autotitled_notes.rb +1 -26
- data/lib/kitchen/directions/bake_notes/bake_note_exercise.rb +54 -0
- data/lib/kitchen/directions/bake_notes/bake_note_injected_question.rb +15 -0
- data/lib/kitchen/directions/bake_notes/bake_numbered_notes/main.rb +0 -31
- data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v1.rb +2 -2
- data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v2.rb +2 -2
- data/lib/kitchen/directions/bake_notes/bake_numbered_notes/v3.rb +2 -2
- data/lib/kitchen/directions/bake_notes/bake_unclassified_notes.rb +5 -3
- data/lib/kitchen/directions/bake_numbered_exercise/main.rb +8 -3
- data/lib/kitchen/directions/bake_numbered_exercise/v1.rb +48 -7
- data/lib/kitchen/directions/bake_numbered_table/bake_table_body.rb +3 -0
- data/lib/kitchen/directions/bake_numbered_table/v2.rb +2 -1
- data/lib/kitchen/directions/bake_references/main.rb +6 -9
- data/lib/kitchen/directions/bake_references/v1.rb +22 -8
- data/lib/kitchen/directions/bake_references/v2.rb +9 -10
- data/lib/kitchen/directions/bake_references/v3.rb +32 -0
- data/lib/kitchen/directions/bake_screenreader_spans.rb +22 -0
- data/lib/kitchen/directions/bake_unnumbered_exercise.rb +16 -0
- data/lib/kitchen/directions/bake_unnumbered_figure.rb +26 -0
- data/lib/kitchen/directions/book_answer_key_container/eob_answer_key_container.xhtml.erb +9 -0
- data/lib/kitchen/directions/book_answer_key_container/v1.rb +6 -2
- data/lib/kitchen/directions/{eoc_composite_page_container → composite_page_container}/main.rb +1 -1
- data/lib/kitchen/directions/composite_page_container/v1.rb +28 -0
- data/lib/kitchen/directions/default_strategy_for_answer_key_solutions.rb +35 -0
- data/lib/kitchen/directions/move_custom_section_to_eoc_container/v1.rb +1 -1
- data/lib/kitchen/directions/move_solutions_to_answer_key/answer_key_inner_container.rb +29 -0
- data/lib/kitchen/element_base.rb +8 -4
- data/lib/kitchen/element_enumerator_base.rb +36 -0
- data/lib/kitchen/figure_element.rb +12 -4
- data/lib/kitchen/injected_exercise_element.rb +41 -0
- data/lib/kitchen/injected_exercise_element_enumerator.rb +21 -0
- data/lib/kitchen/injected_question_element.rb +7 -0
- data/lib/kitchen/patches/i18n.rb +4 -0
- data/lib/kitchen/patches/nokogiri.rb +8 -0
- data/lib/kitchen/patches/renderable.rb +1 -1
- data/lib/kitchen/section_element.rb +27 -0
- data/lib/kitchen/section_element_enumerator.rb +20 -0
- data/lib/kitchen/selectors/base.rb +6 -0
- data/lib/kitchen/selectors/standard_1.rb +2 -0
- data/lib/kitchen/templates/composite_page_template.xhtml.erb +10 -0
- data/lib/kitchen/version.rb +1 -1
- data/lib/locales/en.yml +4 -0
- data/lib/locales/es.yml +9 -1
- data/lib/locales/pl.yml +3 -0
- metadata +24 -14
- data/lib/kitchen/directions/book_answer_key_container/eob_answer_key_outer_container.xhtml.erb +0 -9
- data/lib/kitchen/directions/eoc_composite_page_container/v1.rb +0 -19
- data/lib/kitchen/directions/move_solutions_to_answer_key/main.rb +0 -18
- data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/calculus.rb +0 -41
- data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/contemporary_math.rb +0 -40
- data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/default.rb +0 -27
- data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/precalculus.rb +0 -63
- data/lib/kitchen/directions/move_solutions_to_answer_key/strategies/uphysics.rb +0 -21
- data/lib/kitchen/directions/move_solutions_to_answer_key/v1.rb +0 -47
- 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>
|