openstax_kitchen 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. checksums.yaml +7 -0
  2. data/.devcontainer/devcontainer.json +19 -0
  3. data/.github/workflows/tests.yml +36 -0
  4. data/.gitignore +20 -0
  5. data/.rspec +3 -0
  6. data/.solargraph.yml +15 -0
  7. data/CHANGELOG.md +11 -0
  8. data/CODE_OF_CONDUCT.md +74 -0
  9. data/Dockerfile +19 -0
  10. data/Gemfile +9 -0
  11. data/Gemfile.lock +74 -0
  12. data/LICENSE.txt +21 -0
  13. data/README.md +674 -0
  14. data/Rakefile +6 -0
  15. data/bin/console +14 -0
  16. data/bin/normalize +79 -0
  17. data/bin/setup +8 -0
  18. data/books/chemistry2e/bake.rb +133 -0
  19. data/codecov.yaml +27 -0
  20. data/docker-compose.yml +12 -0
  21. data/docker/bash +1 -0
  22. data/docker/entrypoint +9 -0
  23. data/lib/kitchen.rb +57 -0
  24. data/lib/kitchen/ancestor.rb +30 -0
  25. data/lib/kitchen/book_document.rb +18 -0
  26. data/lib/kitchen/book_element.rb +24 -0
  27. data/lib/kitchen/book_element_enumerator.rb +5 -0
  28. data/lib/kitchen/book_recipe.rb +25 -0
  29. data/lib/kitchen/chapter_element.rb +35 -0
  30. data/lib/kitchen/chapter_element_enumerator.rb +13 -0
  31. data/lib/kitchen/clipboard.rb +37 -0
  32. data/lib/kitchen/composite_chapter_element.rb +23 -0
  33. data/lib/kitchen/composite_page_element.rb +27 -0
  34. data/lib/kitchen/composite_page_element_enumerator.rb +13 -0
  35. data/lib/kitchen/config.rb +20 -0
  36. data/lib/kitchen/counter.rb +34 -0
  37. data/lib/kitchen/debug/print_recipe_error.rb +80 -0
  38. data/lib/kitchen/directions/bake_appendix.rb +26 -0
  39. data/lib/kitchen/directions/bake_chapter_glossary.rb +34 -0
  40. data/lib/kitchen/directions/bake_chapter_introductions.rb +58 -0
  41. data/lib/kitchen/directions/bake_chapter_key_equations.rb +30 -0
  42. data/lib/kitchen/directions/bake_chapter_summary.rb +52 -0
  43. data/lib/kitchen/directions/bake_composite_pages.rb +13 -0
  44. data/lib/kitchen/directions/bake_example.rb +31 -0
  45. data/lib/kitchen/directions/bake_exercises.rb +164 -0
  46. data/lib/kitchen/directions/bake_figure.rb +25 -0
  47. data/lib/kitchen/directions/bake_footnotes/main.rb +11 -0
  48. data/lib/kitchen/directions/bake_footnotes/v1.rb +38 -0
  49. data/lib/kitchen/directions/bake_index/main.rb +11 -0
  50. data/lib/kitchen/directions/bake_index/v1.rb +138 -0
  51. data/lib/kitchen/directions/bake_index/v1.xhtml.erb +28 -0
  52. data/lib/kitchen/directions/bake_math_in_paragraph.rb +13 -0
  53. data/lib/kitchen/directions/bake_notes.rb +58 -0
  54. data/lib/kitchen/directions/bake_numbered_table/main.rb +11 -0
  55. data/lib/kitchen/directions/bake_numbered_table/v1.rb +47 -0
  56. data/lib/kitchen/directions/bake_stepwise.rb +27 -0
  57. data/lib/kitchen/directions/bake_toc.rb +103 -0
  58. data/lib/kitchen/directions/bake_unnumbered_tables.rb +14 -0
  59. data/lib/kitchen/directions/move_title_text_into_span.rb +15 -0
  60. data/lib/kitchen/document.rb +142 -0
  61. data/lib/kitchen/element.rb +15 -0
  62. data/lib/kitchen/element_base.rb +444 -0
  63. data/lib/kitchen/element_enumerator.rb +12 -0
  64. data/lib/kitchen/element_enumerator_base.rb +101 -0
  65. data/lib/kitchen/element_enumerator_factory.rb +111 -0
  66. data/lib/kitchen/element_factory.rb +32 -0
  67. data/lib/kitchen/errors.rb +4 -0
  68. data/lib/kitchen/example_element.rb +20 -0
  69. data/lib/kitchen/example_element_enumerator.rb +13 -0
  70. data/lib/kitchen/figure_element.rb +20 -0
  71. data/lib/kitchen/figure_element_enumerator.rb +13 -0
  72. data/lib/kitchen/mixins/block_error_if.rb +19 -0
  73. data/lib/kitchen/note_element.rb +43 -0
  74. data/lib/kitchen/note_element_enumerator.rb +13 -0
  75. data/lib/kitchen/oven.rb +61 -0
  76. data/lib/kitchen/page_element.rb +51 -0
  77. data/lib/kitchen/page_element_enumerator.rb +13 -0
  78. data/lib/kitchen/pantry.rb +35 -0
  79. data/lib/kitchen/patches/nokogiri.rb +31 -0
  80. data/lib/kitchen/patches/renderable.rb +31 -0
  81. data/lib/kitchen/patches/string.rb +5 -0
  82. data/lib/kitchen/recipe.rb +78 -0
  83. data/lib/kitchen/search_history.rb +33 -0
  84. data/lib/kitchen/selectors/base.rb +8 -0
  85. data/lib/kitchen/selectors/standard_1.rb +12 -0
  86. data/lib/kitchen/table_element.rb +36 -0
  87. data/lib/kitchen/table_element_enumerator.rb +13 -0
  88. data/lib/kitchen/term_element.rb +16 -0
  89. data/lib/kitchen/term_element_enumerator.rb +13 -0
  90. data/lib/kitchen/transliterations.rb +19 -0
  91. data/lib/kitchen/type_casting_element_enumerator.rb +23 -0
  92. data/lib/kitchen/utils.rb +19 -0
  93. data/lib/kitchen/version.rb +3 -0
  94. data/lib/locales/en.yml +21 -0
  95. data/lib/notes.md +9 -0
  96. data/openstax_kitchen.gemspec +39 -0
  97. data/tutorials/00/expected_baked.html +3 -0
  98. data/tutorials/00/raw.html +3 -0
  99. data/tutorials/00/solution_1.rb +7 -0
  100. data/tutorials/00/solution_2.rb +6 -0
  101. data/tutorials/01/expected_baked.html +66 -0
  102. data/tutorials/01/raw.html +62 -0
  103. data/tutorials/01/solution_1.rb +16 -0
  104. data/tutorials/01/solution_2.rb +24 -0
  105. data/tutorials/02/expected_baked.html +207 -0
  106. data/tutorials/02/raw.html +201 -0
  107. data/tutorials/02/solution_1.rb +29 -0
  108. data/tutorials/03/expected_baked.html +33 -0
  109. data/tutorials/03/raw.html +31 -0
  110. data/tutorials/03/solution_1.rb +16 -0
  111. data/tutorials/03/solution_2.rb +15 -0
  112. data/tutorials/04/expected_baked.html +36 -0
  113. data/tutorials/04/raw.html +36 -0
  114. data/tutorials/04/solution_1.rb +20 -0
  115. data/tutorials/04/solution_2.rb +25 -0
  116. data/tutorials/05/expected_baked.html +11 -0
  117. data/tutorials/05/raw.html +11 -0
  118. data/tutorials/05/solution_1.rb +9 -0
  119. data/tutorials/check_it +64 -0
  120. data/tutorials/setup_my_recipes +30 -0
  121. metadata +278 -0
@@ -0,0 +1,3 @@
1
+ module Kitchen
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,21 @@
1
+ en:
2
+ figure: Figure
3
+ table_label: Table
4
+ appendix: Appendix
5
+ example_label: Example
6
+ exercise_label: Exercise
7
+ stepwise_step_label: Step
8
+ eoc_key_terms_title: Key Terms
9
+ eoc_summary_title: Summary
10
+ eoc_exercises_title: Exercises
11
+ eoc_answer_key_title: Answer Key
12
+ eoc_key_equations: Key Equations
13
+ eob_index_title: Index
14
+ eob_index_symbols_group: Symbols
15
+ notes:
16
+ link-to-learning: Link to Learning
17
+ sciences-interconnect: How Sciences Interconnect
18
+ chemistry:
19
+ link-to-learning: Link to Learning
20
+ everyday-life: Chemistry in Everyday Life
21
+ chemist-portrait: Portrait of a Chemist
@@ -0,0 +1,9 @@
1
+ ```ruby
2
+ def first_of
3
+ FirstOfEnumerator(book.units.chapters, book.chapters, book).pages.each do |page|
4
+
5
+ end
6
+ end
7
+ ```
8
+
9
+ When baking moves an important element (e.g. something with a data-type that we latch onto), it should update how to find that element in the future by changing the selector on the doc.
@@ -0,0 +1,39 @@
1
+ require_relative 'lib/kitchen/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "openstax_kitchen"
5
+ spec.version = Kitchen::VERSION
6
+ spec.authors = ["JP Slavinsky"]
7
+ spec.email = ["jpslav@gmail.com"]
8
+
9
+ spec.summary = %q{OpenStax content baking library}
10
+ spec.description = %q{OpenStax content baking library}
11
+ spec.homepage = "https://github.com/openstax/kitchen"
12
+ spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
14
+
15
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/openstax/kitchen"
19
+ spec.metadata["changelog_uri"] = "https://github.com/openstax/kitchen/CHANGELOG.md"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_dependency 'nokogiri'
31
+ spec.add_dependency 'rainbow'
32
+ spec.add_dependency 'activesupport'
33
+ spec.add_dependency 'i18n'
34
+
35
+ spec.add_development_dependency 'byebug'
36
+ spec.add_development_dependency 'yard'
37
+ spec.add_development_dependency 'nokogiri-diff'
38
+ spec.add_development_dependency 'rainbow'
39
+ end
@@ -0,0 +1,3 @@
1
+ <h1 class="hello">
2
+ <span>World!</span>
3
+ </h1>
@@ -0,0 +1,3 @@
1
+ <div class="hello">
2
+ <span>Planet?</span>
3
+ </div>
@@ -0,0 +1,7 @@
1
+ @solution_1 = Kitchen::Recipe.new do |doc|
2
+
3
+ div = doc.search("div").first
4
+ div.name = "h1"
5
+ div.search("span").first.replace_children(with: "World!")
6
+
7
+ end
@@ -0,0 +1,6 @@
1
+ @solution_2 = Kitchen::Recipe.new do |doc|
2
+
3
+ doc.search("div").first.name = "h1"
4
+ doc.search("span").first.replace_children(with: "World!")
5
+
6
+ end
@@ -0,0 +1,66 @@
1
+ <!--
2
+ 1. Move the `will-move` divs to an new container with a class of `eoc` at the end of the chapter
3
+ 2. Add a section title with the class "os-title" and the value "End of Chapter Collations"
4
+ 3. Change `will-move` divs to sections
5
+ -->
6
+ <!DOCTYPE html>
7
+ <html>
8
+ <head>
9
+ <title>Move-to, creating containers</title>
10
+ </head>
11
+ <body>
12
+ <div data-type="chapter">
13
+ <h1 data-type="document-title">Chapter Title</h1>
14
+ <div data-type="page">
15
+ <h2 data-type="document-title">Page Title</h2>
16
+ <div class="will-not-move">
17
+ <h3>I didn't go anywhere</h3>
18
+ <p>
19
+ Content will not move <br /> Lorem ipsum.
20
+ </p>
21
+ </div>
22
+
23
+ <div class="will-not-move">
24
+ <h3> I'm here to stay.</h3>
25
+ <p>
26
+ Content will not move <br /> Lorem ipsum.
27
+ </p>
28
+ <p>
29
+ Content will not move <br /> Lorem ipsum.
30
+ </p>
31
+ </div>
32
+
33
+ <div class="will-not-move">
34
+ <h3>Don't make me move!</h3>
35
+ <p>
36
+ Content will not move <br /> Lorem ipsum.
37
+ </p>
38
+ <p>
39
+ Lorem ipsum.
40
+ </p>
41
+ </div>
42
+ </div>
43
+ <div class="eoc">
44
+ <div class="os-title">End of Chapter Collations</div>
45
+ <section class="will-move">
46
+ <h3>I cannot stand still</h3>
47
+ <p>
48
+ Content will move <br /> Lorem ipsum.
49
+ </p>
50
+ <p>
51
+ Lorem ipsum.
52
+ </p>
53
+ </section>
54
+ <section class="will-move">
55
+ <h3>I have to go!</h3>
56
+ <p>
57
+ Content will move <br /> Lorem ipsum.
58
+ </p>
59
+ <p>
60
+ Lorem ipsum.
61
+ </p>
62
+ </section>
63
+ </div>
64
+ </div>
65
+ </body>
66
+ </html>
@@ -0,0 +1,62 @@
1
+ <!--
2
+ 1. Move the `will-move` divs to an new container with a class of `eoc` at the end of the chapter
3
+ 2. Add a section title with the class "os-title" and the value "End of Chapter Collations"
4
+ 3. Change `will-move` divs to sections
5
+ -->
6
+
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head>
10
+ <title>Move-to, creating containers</title>
11
+ </head>
12
+ <body>
13
+ <div data-type="chapter">
14
+ <h1 data-type="document-title">Chapter Title</h1>
15
+ <div data-type="page">
16
+ <h2 data-type="document-title">Page Title</h2>
17
+ <div class="will-not-move">
18
+ <h3>I didn't go anywhere</h3>
19
+ <p>
20
+ Content will not move <br /> Lorem ipsum.
21
+ </p>
22
+ </div>
23
+ <div class="will-move">
24
+ <h3>I cannot stand still</h3>
25
+ <p>
26
+ Content will move <br /> Lorem ipsum.
27
+ </p>
28
+ <p>
29
+ Lorem ipsum.
30
+ </p>
31
+ </div>
32
+ <div class="will-not-move">
33
+ <h3> I'm here to stay.</h3>
34
+ <p>
35
+ Content will not move <br /> Lorem ipsum.
36
+ </p>
37
+ <p>
38
+ Content will not move <br /> Lorem ipsum.
39
+ </p>
40
+ </div>
41
+ <div class="will-move">
42
+ <h3>I have to go!</h3>
43
+ <p>
44
+ Content will move <br /> Lorem ipsum.
45
+ </p>
46
+ <p>
47
+ Lorem ipsum.
48
+ </p>
49
+ </div>
50
+ <div class="will-not-move">
51
+ <h3>Don't make me move!</h3>
52
+ <p>
53
+ Content will not move <br /> Lorem ipsum.
54
+ </p>
55
+ <p>
56
+ Lorem ipsum.
57
+ </p>
58
+ </div>
59
+ </div>
60
+ </div>
61
+ </body>
62
+ </html>
@@ -0,0 +1,16 @@
1
+ @solution_1 = Kitchen::Recipe.new do |doc|
2
+
3
+ doc.search("[data-type='chapter']").each do |chapter|
4
+ movers = chapter.search(".will-move").cut
5
+ movers.each{|mover| mover.name = "section"}
6
+
7
+ chapter.append(child: <<~HTML
8
+ <div class="eoc">
9
+ <div class="os-title">End of Chapter Collations</div>
10
+ #{movers.paste}
11
+ </div>
12
+ HTML
13
+ )
14
+ end
15
+
16
+ end
@@ -0,0 +1,24 @@
1
+ @solution_2 = Kitchen::BookRecipe.new do |doc|
2
+
3
+ # ^
4
+ # |
5
+ #
6
+ # BookRecipe gives us `doc.book` and `book.chapters` to make the code cleaner
7
+ #
8
+ # | |
9
+ # v v
10
+
11
+ doc.book.chapters.each do |chapter|
12
+ movers = chapter.search(".will-move").cut
13
+ movers.each{|mover| mover.name = "section"}
14
+
15
+ chapter.append(child: <<~HTML
16
+ <div class="eoc">
17
+ <div class="os-title">End of Chapter Collations</div>
18
+ #{movers.paste}
19
+ </div>
20
+ HTML
21
+ )
22
+ end
23
+
24
+ end
@@ -0,0 +1,207 @@
1
+ <!--
2
+ 1. For each chapter, add a new container as its last child with class "eoc"
3
+ 2. Give it a title of "End of Chapter Stuff". Use the proper header
4
+ container based on nesting, and give it a data-type of 'document-title'.
5
+ 3. Inside each "eoc" container, make two new containers, one with class
6
+ "critical-thinking-container" and title "Critical Thinking Questions" and
7
+ another with class "review-questions-container" and title "Review Questions".
8
+ 4. To the "critical-thinking-container" move all of the containers from each
9
+ chapter that have the class "critical-thinking".
10
+ 5. To the "review-questions-container" move all of the containers from each chapter
11
+ that have the class "review-questions".
12
+ 6. Remove the h3 tags from the containers that are moving.
13
+ -->
14
+ <!DOCTYPE html>
15
+ <html>
16
+ <head>
17
+ <title>Move-to, creating containers</title>
18
+ </head>
19
+ <body>
20
+ <div class="book">
21
+ <div data-type="chapter">
22
+ <h1 data-type="document-title">Chapter Title (1)</h1>
23
+ <div data-type="page">
24
+ <h2 data-type="document-title">Page title (1.1)</h2>
25
+ <div class="will-not-move">
26
+ <h3>I didn't go anywhere</h3>
27
+ <p>
28
+ Content will not move <br /> Lorem ipsum dolor ...
29
+ </p>
30
+ </div>
31
+ <div class="will-not-move">
32
+ <h3> I'm here to stay.</h3>
33
+ <p>
34
+ Content will not move <br /> Lorem ipsum dolor ...
35
+ </p>
36
+ </div>
37
+ <div class="will-not-move">
38
+ <h3>Don't make me move!</h3>
39
+ <p>
40
+ Content will not move <br /> Lorem ipsum dolor ...
41
+ </p>
42
+ </div>
43
+ </div>
44
+ <div data-type="page">
45
+ <h2 data-type="document-title">Page title (1.2)</h2>
46
+ <div class="will-not-move">
47
+ <h3>I didn't go anywhere</h3>
48
+ <p>
49
+ Content will not move <br /> Lorem ipsum dolor ...
50
+ </p>
51
+ </div>
52
+ <div class="will-not-move">
53
+ <h3> I'm here to stay.</h3>
54
+ <p>
55
+ Content will not move <br /> Lorem ipsum dolor ...
56
+ </p>
57
+ </div>
58
+ <div class="will-not-move">
59
+ <h3>Don't make me move!</h3>
60
+ <p>
61
+ Content will not move <br /> Lorem ipsum dolor ...
62
+ </p>
63
+ </div>
64
+ </div>
65
+ <div data-type="page">
66
+ <h2 data-type="document-title">Page title (1.3)</h2>
67
+ <div class="will-not-move">
68
+ <h3>I didn't go anywhere</h3>
69
+ <p>
70
+ Content will not move <br /> Lorem ipsum dolor ...
71
+ </p>
72
+ </div>
73
+ <div class="will-not-move">
74
+ <h3> I'm here to stay.</h3>
75
+ <p>
76
+ Content will not move <br /> Lorem ipsum dolor ...
77
+ </p>
78
+ </div>
79
+ <div class="will-not-move">
80
+ <h3>Don't make me move!</h3>
81
+ <p>
82
+ Content will not move <br /> Lorem ipsum dolor ...
83
+ </p>
84
+ </div>
85
+ </div>
86
+ <div class="eoc">
87
+ <h2 data-type="document-title">End of Chapter Stuff</h2>
88
+ <div class="critical-thinking-container">
89
+ <div class="os-title">Critical Thinking Questions</div>
90
+ <div class="critical-thinking" id="03">
91
+ <p>
92
+ Content will move <br /> Lorem ipsum dolor ...
93
+ </p>
94
+ </div>
95
+ <div class="critical-thinking" id="05">
96
+ <p>
97
+ Content will move <br /> Lorem ipsum dolor ...
98
+ </p>
99
+ </div>
100
+ <div class="critical-thinking" id="07">
101
+ <p>
102
+ Content will move <br /> Lorem ipsum dolor ...
103
+ </p>
104
+ </div>
105
+ </div>
106
+ <div class="review-questions-container">
107
+ <div class="os-title">Review Questions</div>
108
+ <div class="review-questions" id="01">
109
+ <p>
110
+ Content will move <br /> Lorem ipsum dolor ...
111
+ </p>
112
+ </div>
113
+ <div class="review-questions" id="02">
114
+ <p>
115
+ Content will move <br /> Lorem ipsum dolor ...
116
+ </p>
117
+ </div>
118
+ <div class="review-questions" id="04">
119
+ <p>
120
+ Content will move <br /> Lorem ipsum dolor ...
121
+ </p>
122
+ </div>
123
+ <div class="review-questions" id="06">
124
+ <p>
125
+ Content will move <br /> Lorem ipsum dolor ...
126
+ </p>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ <div data-type="chapter">
132
+ <h1 data-type="document-title">Chapter Title (2)</h1>
133
+ <div data-type="page">
134
+ <h2 data-type="document-title">Page title (2.1)</h2>
135
+ <div class="will-not-move">
136
+ <h3>I didn't go anywhere</h3>
137
+ <p>
138
+ Content will not move <br /> Lorem ipsum dolor ...
139
+ </p>
140
+ </div>
141
+ <div class="will-not-move">
142
+ <h3> I'm here to stay.</h3>
143
+ <p>
144
+ Content will not move <br /> Lorem ipsum dolor ...
145
+ </p>
146
+ </div>
147
+ <div class="will-not-move">
148
+ <h3>Don't make me move!</h3>
149
+ <p>
150
+ Content will not move <br /> Lorem ipsum dolor ...
151
+ </p>
152
+ </div>
153
+ </div>
154
+ <div data-type="page">
155
+ <h2 data-type="document-title">Page title (2.2)</h2>
156
+ <div class="will-not-move">
157
+ <h3>I didn't go anywhere</h3>
158
+ <p>
159
+ Content will not move <br /> Lorem ipsum dolor ...
160
+ </p>
161
+ </div>
162
+ <div class="will-not-move">
163
+ <h3> I'm here to stay.</h3>
164
+ <p>
165
+ Content will not move <br /> Lorem ipsum dolor ...
166
+ </p>
167
+ </div>
168
+ <div class="will-not-move">
169
+ <h3>Don't make me move!</h3>
170
+ <p>
171
+ Content will not move <br /> Lorem ipsum dolor ...
172
+ </p>
173
+ </div>
174
+ </div>
175
+ <div class="eoc">
176
+ <h2 data-type="document-title">End of Chapter Stuff</h2>
177
+ <div class="critical-thinking-container">
178
+ <div class="os-title">Critical Thinking Questions</div>
179
+ <div class="critical-thinking" id="09">
180
+ <p>
181
+ Content will move <br /> Lorem ipsum dolor ...
182
+ </p>
183
+ </div>
184
+ <div class="critical-thinking" id="11">
185
+ <p>
186
+ Content will move <br /> Lorem ipsum dolor ...
187
+ </p>
188
+ </div>
189
+ </div>
190
+ <div class="review-questions-container">
191
+ <div class="os-title">Review Questions</div>
192
+ <div class="review-questions" id="08">
193
+ <p>
194
+ Content will move <br /> Lorem ipsum dolor ...
195
+ </p>
196
+ </div>
197
+ <div class="review-questions" id="10">
198
+ <p>
199
+ Content will move <br /> Lorem ipsum dolor ...
200
+ </p>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ </body>
207
+ </html>