radiant 0.9.0.rc2 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of radiant might be problematic. Click here for more details.

Files changed (946) hide show
  1. data/CHANGELOG +18 -6
  2. data/CONTRIBUTORS +7 -1
  3. data/INSTALL +0 -5
  4. data/README +21 -0
  5. data/app/controllers/admin/layouts_controller.rb +1 -0
  6. data/app/controllers/admin/preferences_controller.rb +4 -3
  7. data/app/controllers/admin/resource_controller.rb +62 -8
  8. data/app/controllers/admin/snippets_controller.rb +1 -0
  9. data/app/controllers/admin/users_controller.rb +1 -0
  10. data/app/controllers/application_controller.rb +0 -17
  11. data/app/controllers/site_controller.rb +6 -4
  12. data/app/helpers/application_helper.rb +19 -0
  13. data/app/models/standard_tags.rb +212 -18
  14. data/app/models/status.rb +1 -1
  15. data/app/models/user.rb +2 -2
  16. data/app/views/admin/extensions/index.html.haml +1 -1
  17. data/app/views/admin/layouts/_form.html.haml +4 -4
  18. data/app/views/admin/layouts/index.html.haml +2 -2
  19. data/app/views/admin/page_parts/_page_part.html.haml +2 -2
  20. data/app/views/admin/pages/_fields.html.haml +5 -5
  21. data/app/views/admin/preferences/edit.html.haml +3 -3
  22. data/app/views/admin/snippets/_form.html.haml +5 -5
  23. data/app/views/admin/snippets/index.html.haml +3 -3
  24. data/app/views/admin/users/_form.html.haml +3 -4
  25. data/app/views/admin/users/index.html.haml +2 -1
  26. data/app/views/layouts/application.html.haml +1 -1
  27. data/config/environment.rb +2 -2
  28. data/config/environments/cucumber.rb +3 -3
  29. data/config/locales/en.yml +10 -10
  30. data/config/locales/en_available_tags.yml +80 -1
  31. data/db/migrate/20081203140407_add_indexes.rb +10 -10
  32. data/db/schema.rb +1 -1
  33. data/features/admin/resource_pagination.feature +27 -0
  34. data/features/admin/user_preferences.feature +17 -0
  35. data/features/step_definitions/admin/pagination_steps.rb +46 -0
  36. data/features/step_definitions/web_steps.rb +13 -3
  37. data/features/support/env.rb +7 -3
  38. data/features/support/paths.rb +1 -1
  39. data/lib/generators/instance/templates/instance_environment.rb +2 -2
  40. data/lib/generators/language_extension/templates/lang.yml +6 -6
  41. data/lib/plugins/active_record_extensions/lib/active_record_extensions.rb +0 -29
  42. data/lib/radiant.rb +3 -3
  43. data/lib/radiant/admin_ui.rb +1 -1
  44. data/lib/radiant/extension/script.rb +20 -5
  45. data/lib/radiant/extension_loader.rb +1 -1
  46. data/lib/radiant/initializer.rb +9 -3
  47. data/lib/radiant/pagination/controller.rb +34 -0
  48. data/lib/radiant/pagination/link_renderer.rb +7 -4
  49. data/lib/task_support.rb +6 -1
  50. data/lib/tasks/cucumber.rake +1 -1
  51. data/lib/tasks/framework.rake +1 -2
  52. data/lib/tasks/release.rake +11 -3
  53. data/lib/tasks/rspec.rake +1 -1
  54. data/public/images/admin/shadow.png +0 -0
  55. data/public/images/admin/shadow_grey.png +0 -0
  56. data/public/javascripts/admin/application.js +4 -1
  57. data/public/javascripts/admin/cookie.js +2 -2
  58. data/public/javascripts/admin/validationerror.js +18 -0
  59. data/public/stylesheets/admin/main.css +110 -37
  60. data/public/stylesheets/sass/admin/main.sass +3 -2
  61. data/public/stylesheets/sass/admin/modules/_grid.sass +56 -0
  62. data/public/stylesheets/sass/admin/partials/_actions.sass +74 -34
  63. data/public/stylesheets/sass/admin/partials/{_depreciated.sass → _deprecated.sass} +1 -1
  64. data/public/stylesheets/sass/admin/partials/_popup.sass +1 -1
  65. data/public/stylesheets/sass/admin/partials/_validations.sass +21 -0
  66. data/spec/controllers/admin/paginated_controller_spec.rb +26 -0
  67. data/spec/controllers/admin/preferences_controller_spec.rb +14 -0
  68. data/spec/controllers/application_controller_spec.rb +1 -11
  69. data/spec/controllers/site_controller_spec.rb +9 -0
  70. data/spec/datasets/users_dataset.rb +1 -1
  71. data/spec/generators/instance_generator_spec.rb +1 -1
  72. data/spec/helpers/application_helper_spec.rb +38 -0
  73. data/spec/lib/radiant/extension/script_spec.rb +5 -1
  74. data/spec/lib/radiant/initializer_spec.rb +7 -0
  75. data/spec/lib/radiant_spec.rb +1 -1
  76. data/spec/lib/task_support_spec.rb +14 -0
  77. data/spec/matchers/render_matcher.rb +14 -1
  78. data/spec/models/layout_spec.rb +3 -3
  79. data/spec/models/page_part_spec.rb +3 -3
  80. data/spec/models/page_spec.rb +8 -9
  81. data/spec/models/snippet_spec.rb +3 -3
  82. data/spec/models/standard_tags_spec.rb +99 -5
  83. data/spec/models/user_spec.rb +11 -11
  84. data/vendor/extensions/archive/app/models/archive_finder.rb +5 -0
  85. data/vendor/extensions/french_language_pack/config/locales/fr.yml +31 -25
  86. data/vendor/extensions/german_language_pack/README +2 -1
  87. data/vendor/extensions/german_language_pack/config/locales/de.yml +47 -45
  88. data/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml +375 -304
  89. data/vendor/extensions/german_language_pack/german_language_pack_extension.rb +2 -2
  90. data/vendor/extensions/markdown_filter/README +1 -1
  91. data/vendor/extensions/markdown_filter/lib/markdown_filter.rb +4 -4
  92. data/vendor/extensions/markdown_filter/lib/markdown_tags.rb +0 -15
  93. data/vendor/extensions/markdown_filter/markdown_filter_extension.rb +1 -10
  94. data/vendor/extensions/markdown_filter/spec/models/markdown_filter_spec.rb +1 -1
  95. data/vendor/extensions/markdown_filter/vendor/kramdown/CONTRIBUTERS +4 -0
  96. data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +1332 -0
  97. data/vendor/extensions/markdown_filter/vendor/kramdown/README +10 -0
  98. data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +97 -38
  99. data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -1
  100. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/generate_data.rb +6 -4
  101. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-jruby-1.4.0.dat +7 -7
  102. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.6.dat +7 -7
  103. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.7.dat +7 -7
  104. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.1p243.dat +7 -7
  105. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.2dev.dat +7 -7
  106. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/testing.sh +1 -1
  107. data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +11 -4
  108. data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.html +9 -0
  109. data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.latex +43 -0
  110. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.less.css +510 -0
  111. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +26 -33
  112. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/documentation.page +72 -0
  113. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +21 -49
  114. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/installation.page +6 -6
  115. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/links.markdown +6 -0
  116. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.page +3 -2
  117. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +140 -127
  118. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +501 -431
  119. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/tests.page +3 -3
  120. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown.rb +1 -1
  121. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/compatibility.rb +1 -1
  122. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +8 -3
  123. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/base.rb +40 -4
  124. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +99 -27
  125. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +57 -18
  126. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +32 -13
  127. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/error.rb +1 -1
  128. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +34 -14
  129. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser.rb +9 -3
  130. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/base.rb +95 -0
  131. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/html.rb +387 -0
  132. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +74 -65
  133. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/abbreviation.rb +65 -0
  134. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +3 -2
  135. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +8 -3
  136. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blank_line.rb +2 -2
  137. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +2 -2
  138. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +3 -3
  139. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codespan.rb +1 -1
  140. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/emphasis.rb +4 -3
  141. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/eob.rb +2 -2
  142. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +2 -2
  143. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +47 -55
  144. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +1 -1
  145. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +3 -18
  146. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/horizontal_rule.rb +2 -2
  147. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +69 -149
  148. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +4 -4
  149. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/line_break.rb +1 -1
  150. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +2 -2
  151. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +12 -9
  152. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/math.rb +53 -0
  153. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +2 -2
  154. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/smart_quotes.rb +5 -4
  155. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +4 -3
  156. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +7 -3
  157. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +2 -2
  158. data/vendor/extensions/markdown_filter/vendor/kramdown/man/man1/kramdown.1 +222 -0
  159. data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +1 -0
  160. data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +68 -7
  161. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.html +3 -0
  162. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.options +2 -0
  163. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.text +3 -0
  164. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.html +9 -0
  165. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.text +5 -0
  166. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.html +9 -3
  167. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +49 -0
  168. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +29 -0
  169. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +5 -0
  170. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.text +3 -0
  171. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.html +2 -2
  172. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.html +10 -0
  173. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.text +9 -0
  174. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.html +7 -0
  175. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.text +8 -0
  176. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.html +1 -0
  177. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.text +1 -0
  178. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.html +1 -0
  179. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.text +1 -0
  180. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.html +6 -0
  181. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.options +2 -0
  182. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.text +6 -0
  183. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.html +8 -0
  184. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.text +8 -0
  185. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.html +15 -0
  186. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.text +17 -0
  187. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.html +19 -0
  188. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.text +22 -0
  189. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/options +1 -0
  190. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.html +3 -0
  191. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.text +4 -0
  192. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.html +13 -0
  193. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.text +12 -0
  194. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.html +10 -0
  195. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.text +14 -0
  196. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.html +1 -0
  197. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.text +1 -0
  198. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +3 -5
  199. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.text +0 -1
  200. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -1
  201. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.text +1 -1
  202. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +5 -0
  203. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.text +7 -0
  204. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +5 -5
  205. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +0 -2
  206. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +3 -6
  207. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +4 -4
  208. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +1 -1
  209. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +5 -6
  210. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.text +1 -1
  211. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.text +1 -1
  212. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.html +19 -0
  213. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.text +18 -0
  214. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.html +1 -1
  215. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.html +4 -0
  216. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.text +3 -0
  217. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.latex +18 -0
  218. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.latex +6 -0
  219. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.latex +32 -0
  220. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.html +1 -0
  221. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.text +1 -0
  222. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.html +8 -0
  223. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.text +15 -0
  224. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.html +2 -0
  225. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.text +5 -0
  226. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.html +3 -0
  227. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.text +3 -0
  228. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.html +6 -0
  229. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.text +6 -0
  230. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.html +1 -0
  231. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.text +1 -0
  232. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.html +1 -0
  233. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.text +1 -0
  234. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.html +1 -0
  235. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.text +1 -0
  236. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.html +2 -1
  237. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.text +1 -0
  238. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.html +5 -0
  239. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.text +5 -0
  240. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +3 -0
  241. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +3 -0
  242. data/vendor/extensions/smarty_pants_filter/README +1 -0
  243. data/vendor/extensions/smarty_pants_filter/Rakefile +136 -0
  244. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/lib/smarty_pants_filter.rb +0 -0
  245. data/vendor/extensions/smarty_pants_filter/lib/smarty_pants_tags.rb +18 -0
  246. data/vendor/extensions/smarty_pants_filter/lib/tasks/smarty_pants_filter_extension_tasks.rake +28 -0
  247. data/vendor/extensions/smarty_pants_filter/smarty_pants_filter_extension.rb +18 -0
  248. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/smartypants.html +0 -0
  249. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/spec/models/smarty_pants_filter_spec.rb +0 -0
  250. data/vendor/extensions/smarty_pants_filter/spec/spec.opts +6 -0
  251. data/vendor/extensions/smarty_pants_filter/spec/spec_helper.rb +36 -0
  252. data/vendor/extensions/smarty_pants_filter/test/test_helper.rb +19 -0
  253. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/test/unit/smarty_pants_filter_test.rb +0 -0
  254. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/README +0 -0
  255. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/Rakefile +0 -0
  256. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/install.rb +0 -0
  257. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/rubypants.rb +0 -0
  258. data/vendor/extensions/{markdown_filter → smarty_pants_filter}/vendor/rubypants/test_rubypants.rb +0 -0
  259. data/vendor/plugins/haml/Rakefile +84 -52
  260. data/vendor/plugins/haml/VERSION +1 -1
  261. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +77 -0
  262. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +60 -0
  263. data/vendor/plugins/haml/extra/haml-mode.el +15 -12
  264. data/vendor/plugins/haml/extra/sass-mode.el +2 -2
  265. data/vendor/plugins/haml/haml.gemspec +16 -7
  266. data/vendor/plugins/haml/init.rb +3 -1
  267. data/vendor/plugins/haml/lib/haml.rb +1 -0
  268. data/vendor/plugins/haml/lib/haml/filters.rb +14 -2
  269. data/vendor/plugins/haml/lib/haml/helpers.rb +34 -14
  270. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +6 -4
  271. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +74 -34
  272. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +37 -8
  273. data/vendor/plugins/haml/lib/haml/html.rb +1 -1
  274. data/vendor/plugins/haml/lib/haml/precompiler.rb +3 -2
  275. data/vendor/plugins/haml/lib/haml/railtie.rb +18 -0
  276. data/vendor/plugins/haml/lib/haml/template.rb +15 -4
  277. data/vendor/plugins/haml/lib/haml/template/plugin.rb +37 -2
  278. data/vendor/plugins/haml/lib/haml/util.rb +56 -2
  279. data/vendor/plugins/haml/lib/haml/version.rb +29 -14
  280. data/vendor/plugins/haml/lib/sass/files.rb +10 -2
  281. data/vendor/plugins/haml/lib/sass/plugin.rb +7 -2
  282. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +2 -2
  283. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +2 -1
  284. data/vendor/plugins/haml/lib/sass/script/number.rb +2 -2
  285. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +1 -0
  286. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +9 -1
  287. data/vendor/plugins/haml/test/haml/engine_test.rb +24 -2
  288. data/vendor/plugins/haml/test/haml/helper_test.rb +60 -9
  289. data/vendor/plugins/haml/test/haml/template_test.rb +80 -3
  290. data/vendor/plugins/haml/test/haml/templates/helpers.haml +26 -0
  291. data/vendor/plugins/haml/test/haml/templates/partial_layout.haml +6 -2
  292. data/vendor/plugins/haml/test/sass/engine_test.rb +6 -1
  293. data/vendor/plugins/haml/test/test_helper.rb +16 -1
  294. data/vendor/radius/LICENSE +19 -0
  295. data/vendor/radius/QUICKSTART.rdoc +7 -7
  296. data/vendor/radius/README.rdoc +9 -25
  297. data/vendor/radius/Rakefile +4 -27
  298. data/vendor/radius/VERSION +1 -0
  299. data/vendor/radius/lib/radius/parser.rb +4 -4
  300. data/vendor/radius/lib/radius/parser/scan.rb +371 -940
  301. data/vendor/radius/lib/radius/parser/scan.rl +2 -1
  302. data/vendor/radius/lib/radius/version.rb +5 -11
  303. data/vendor/radius/radius.gemspec +55 -22
  304. data/vendor/radius/tasks/jeweler.rake +21 -0
  305. data/vendor/radius/tasks/rdoc.rake +13 -0
  306. data/vendor/radius/tasks/test.rake +7 -0
  307. data/vendor/radius/test/parser_test.rb +5 -0
  308. data/vendor/radius/test/test_helper.rb +1 -0
  309. data/vendor/rails/actionmailer/CHANGELOG +18 -0
  310. data/vendor/rails/actionmailer/MIT-LICENSE +1 -1
  311. data/vendor/rails/actionmailer/Rakefile +1 -1
  312. data/vendor/rails/actionmailer/lib/action_mailer.rb +1 -1
  313. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +2 -2
  314. data/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +1 -0
  315. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail.rb +1 -0
  316. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/Makefile +18 -0
  317. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/address.rb +4 -38
  318. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/attachments.rb +65 -0
  319. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/base64.rb +0 -0
  320. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/compat.rb +0 -0
  321. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/config.rb +0 -0
  322. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/core_extensions.rb +0 -0
  323. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/encode.rb +9 -0
  324. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/header.rb +4 -2
  325. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/index.rb +0 -0
  326. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/interface.rb +33 -1
  327. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/loader.rb +0 -0
  328. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mail.rb +1 -1
  329. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mailbox.rb +3 -2
  330. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/main.rb +0 -0
  331. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/mbox.rb +0 -0
  332. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/net.rb +3 -1
  333. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/obsolete.rb +0 -0
  334. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.rb +1060 -0
  335. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.y +416 -0
  336. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/port.rb +0 -0
  337. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/quoting.rb +47 -1
  338. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/require_arch.rb +0 -0
  339. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/scanner.rb +0 -0
  340. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/scanner_r.rb +2 -1
  341. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/stringio.rb +0 -0
  342. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/utils.rb +50 -25
  343. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/COPYING +504 -0
  344. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/README +12 -0
  345. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
  346. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
  347. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
  348. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +238 -0
  349. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
  350. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
  351. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
  352. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
  353. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +89 -0
  354. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
  355. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
  356. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
  357. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
  358. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
  359. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
  360. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
  361. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
  362. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
  363. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
  364. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
  365. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
  366. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
  367. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
  368. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
  369. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
  370. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
  371. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
  372. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
  373. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +45 -0
  374. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
  375. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
  376. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +56 -0
  377. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
  378. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +168 -0
  379. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
  380. data/vendor/rails/actionmailer/lib/action_mailer/vendor/{tmail-1.2.3 → tmail-1.2.7}/tmail/version.rb +1 -1
  381. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +2 -2
  382. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  383. data/vendor/rails/actionmailer/test/abstract_unit.rb +4 -4
  384. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +1 -1
  385. data/vendor/rails/actionmailer/test/mail_service_test.rb +66 -2
  386. data/vendor/rails/actionmailer/test/quoting_test.rb +10 -4
  387. data/vendor/rails/actionpack/CHANGELOG +55 -0
  388. data/vendor/rails/actionpack/MIT-LICENSE +1 -1
  389. data/vendor/rails/actionpack/README +7 -7
  390. data/vendor/rails/actionpack/Rakefile +2 -2
  391. data/vendor/rails/actionpack/lib/action_controller.rb +2 -2
  392. data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +18 -9
  393. data/vendor/rails/actionpack/lib/action_controller/base.rb +14 -14
  394. data/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +6 -6
  395. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +96 -0
  396. data/vendor/rails/actionpack/lib/action_controller/failsafe.rb +1 -0
  397. data/vendor/rails/actionpack/lib/action_controller/flash.rb +42 -0
  398. data/vendor/rails/actionpack/lib/action_controller/integration.rb +5 -1
  399. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +1 -1
  400. data/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +1 -1
  401. data/vendor/rails/actionpack/lib/action_controller/rescue.rb +2 -2
  402. data/vendor/rails/actionpack/lib/action_controller/response.rb +4 -7
  403. data/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +1 -0
  404. data/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +6 -0
  405. data/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +6 -0
  406. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +2 -2
  407. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +4 -1
  408. data/vendor/rails/actionpack/lib/action_pack.rb +1 -1
  409. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  410. data/vendor/rails/actionpack/lib/action_view.rb +3 -3
  411. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +11 -11
  412. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +2 -2
  413. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +2 -2
  414. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +12 -11
  415. data/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +2 -2
  416. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +49 -12
  417. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +3 -4
  418. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +7 -4
  419. data/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +1 -1
  420. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +1 -1
  421. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +2 -2
  422. data/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +2 -2
  423. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +2 -10
  424. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +6 -5
  425. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +5 -5
  426. data/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +37 -9
  427. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +9 -11
  428. data/vendor/rails/actionpack/lib/action_view/partials.rb +2 -1
  429. data/vendor/rails/actionpack/lib/action_view/paths.rb +8 -0
  430. data/vendor/rails/actionpack/lib/action_view/renderable.rb +16 -2
  431. data/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +7 -4
  432. data/vendor/rails/actionpack/lib/action_view/test_case.rb +1 -1
  433. data/vendor/rails/actionpack/test/abstract_unit.rb +8 -8
  434. data/vendor/rails/actionpack/test/active_record_unit.rb +1 -1
  435. data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +3 -1
  436. data/vendor/rails/actionpack/test/controller/assert_select_test.rb +6 -5
  437. data/vendor/rails/actionpack/test/controller/caching_test.rb +16 -2
  438. data/vendor/rails/actionpack/test/controller/capture_test.rb +1 -1
  439. data/vendor/rails/actionpack/test/controller/cookie_test.rb +37 -1
  440. data/vendor/rails/actionpack/test/controller/flash_test.rb +28 -1
  441. data/vendor/rails/actionpack/test/controller/helper_test.rb +1 -1
  442. data/vendor/rails/actionpack/test/controller/integration_test.rb +0 -1
  443. data/vendor/rails/actionpack/test/controller/localized_templates_test.rb +24 -0
  444. data/vendor/rails/actionpack/test/controller/output_escaping_test.rb +19 -0
  445. data/vendor/rails/actionpack/test/controller/rack_test.rb +1 -4
  446. data/vendor/rails/actionpack/test/controller/render_test.rb +11 -2
  447. data/vendor/rails/actionpack/test/controller/rescue_test.rb +8 -2
  448. data/vendor/rails/actionpack/test/controller/routing_test.rb +1 -0
  449. data/vendor/rails/actionpack/test/controller/send_file_test.rb +1 -1
  450. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +2 -2
  451. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +10 -6
  452. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.de.html +1 -0
  453. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.en.html +1 -0
  454. data/vendor/rails/actionpack/test/fixtures/test/_customer_counter_with_as.erb +1 -0
  455. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial.html.erb +1 -0
  456. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial_magic.html.erb +2 -0
  457. data/vendor/rails/actionpack/test/fixtures/test/array_translation.erb +1 -0
  458. data/vendor/rails/actionpack/test/fixtures/test/capturing.erb +2 -2
  459. data/vendor/rails/actionpack/test/fixtures/test/scoped_array_translation.erb +1 -0
  460. data/vendor/rails/actionpack/test/fixtures/test/translation.erb +1 -0
  461. data/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +4 -2
  462. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic.html.erb +5 -0
  463. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +5 -0
  464. data/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +9 -2
  465. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +0 -1
  466. data/vendor/rails/actionpack/test/template/date_helper_test.rb +118 -0
  467. data/vendor/rails/actionpack/test/template/erb_util_test.rb +12 -0
  468. data/vendor/rails/actionpack/test/template/form_helper_test.rb +57 -3
  469. data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +21 -9
  470. data/vendor/rails/actionpack/test/template/render_test.rb +47 -8
  471. data/vendor/rails/actionpack/test/template/text_helper_test.rb +26 -1
  472. data/vendor/rails/actionpack/test/template/translation_helper_test.rb +72 -9
  473. data/vendor/rails/actionpack/test/template/url_helper_test.rb +20 -1
  474. data/vendor/rails/actionpack/test/view/test_case_test.rb +2 -2
  475. data/vendor/rails/activerecord/CHANGELOG +43 -0
  476. data/vendor/rails/activerecord/Rakefile +1 -1
  477. data/vendor/rails/activerecord/examples/performance.sql +85 -0
  478. data/vendor/rails/activerecord/lib/active_record.rb +1 -2
  479. data/vendor/rails/activerecord/lib/active_record/association_preload.rb +9 -2
  480. data/vendor/rails/activerecord/lib/active_record/associations.rb +48 -38
  481. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +15 -11
  482. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +16 -6
  483. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +11 -1
  484. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +34 -10
  485. data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +5 -0
  486. data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +5 -5
  487. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +10 -1
  488. data/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +5 -1
  489. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +66 -35
  490. data/vendor/rails/activerecord/lib/active_record/base.rb +77 -36
  491. data/vendor/rails/activerecord/lib/active_record/batches.rb +13 -9
  492. data/vendor/rails/activerecord/lib/active_record/calculations.rb +6 -3
  493. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +3 -3
  494. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_limits.rb +57 -0
  495. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +1 -1
  496. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +3 -7
  497. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +1 -1
  498. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +64 -10
  499. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +2 -0
  500. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +31 -1
  501. data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +31 -66
  502. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +5 -5
  503. data/vendor/rails/activerecord/lib/active_record/dirty.rb +2 -2
  504. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +1 -0
  505. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +34 -1
  506. data/vendor/rails/activerecord/lib/active_record/migration.rb +5 -0
  507. data/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +64 -52
  508. data/vendor/rails/activerecord/lib/active_record/reflection.rb +66 -1
  509. data/vendor/rails/activerecord/lib/active_record/schema.rb +5 -1
  510. data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +3 -0
  511. data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +1 -1
  512. data/vendor/rails/activerecord/lib/active_record/validations.rb +13 -1
  513. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  514. data/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +22 -0
  515. data/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +13 -0
  516. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +8 -7
  517. data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +7 -1
  518. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +26 -0
  519. data/vendor/rails/activerecord/test/cases/associations/inverse_associations_test.rb +566 -0
  520. data/vendor/rails/activerecord/test/cases/associations_test.rb +10 -0
  521. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +86 -10
  522. data/vendor/rails/activerecord/test/cases/base_test.rb +29 -0
  523. data/vendor/rails/activerecord/test/cases/batches_test.rb +20 -0
  524. data/vendor/rails/activerecord/test/cases/calculations_test.rb +2 -3
  525. data/vendor/rails/activerecord/test/cases/encoding_test.rb +6 -0
  526. data/vendor/rails/activerecord/test/cases/finder_test.rb +19 -3
  527. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +5 -0
  528. data/vendor/rails/activerecord/test/cases/json_serialization_test.rb +14 -0
  529. data/vendor/rails/activerecord/test/cases/locking_test.rb +48 -3
  530. data/vendor/rails/activerecord/test/cases/migration_test.rb +115 -0
  531. data/vendor/rails/activerecord/test/cases/modules_test.rb +28 -0
  532. data/vendor/rails/activerecord/test/cases/named_scope_test.rb +1 -1
  533. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +239 -7
  534. data/vendor/rails/activerecord/test/cases/query_cache_test.rb +7 -1
  535. data/vendor/rails/activerecord/test/cases/reflection_test.rb +47 -7
  536. data/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +2 -2
  537. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +6 -36
  538. data/vendor/rails/activerecord/test/cases/validations_test.rb +33 -1
  539. data/vendor/rails/activerecord/test/cases/yaml_serialization_test.rb +11 -0
  540. data/vendor/rails/activerecord/test/fixtures/faces.yml +11 -0
  541. data/vendor/rails/{pkg/rails-3.0.pre.gem → activerecord/test/fixtures/fixture_database.sqlite} +0 -0
  542. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  543. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  544. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  545. data/vendor/rails/activerecord/test/fixtures/interests.yml +33 -0
  546. data/vendor/rails/activerecord/test/fixtures/men.yml +5 -0
  547. data/vendor/rails/activerecord/test/fixtures/zines.yml +5 -0
  548. data/vendor/rails/activerecord/test/models/author.rb +3 -0
  549. data/vendor/rails/activerecord/test/models/bird.rb +6 -0
  550. data/vendor/rails/activerecord/test/models/company_in_module.rb +17 -0
  551. data/vendor/rails/activerecord/test/models/event_author.rb +5 -0
  552. data/vendor/rails/activerecord/test/models/face.rb +7 -0
  553. data/vendor/rails/activerecord/test/models/interest.rb +5 -0
  554. data/vendor/rails/activerecord/test/models/invoice.rb +4 -0
  555. data/vendor/rails/activerecord/test/models/line_item.rb +3 -0
  556. data/vendor/rails/activerecord/test/models/man.rb +9 -0
  557. data/vendor/rails/activerecord/test/models/parrot.rb +6 -0
  558. data/vendor/rails/activerecord/test/models/pirate.rb +10 -0
  559. data/vendor/rails/activerecord/test/models/ship.rb +10 -1
  560. data/vendor/rails/activerecord/test/models/ship_part.rb +3 -1
  561. data/vendor/rails/activerecord/test/models/zine.rb +3 -0
  562. data/vendor/rails/activerecord/test/schema/schema.rb +41 -0
  563. data/vendor/rails/activeresource/CHANGELOG +15 -0
  564. data/vendor/rails/activeresource/Rakefile +1 -1
  565. data/vendor/rails/activeresource/lib/active_resource/base.rb +11 -2
  566. data/vendor/rails/activeresource/lib/active_resource/http_mock.rb +2 -2
  567. data/vendor/rails/activeresource/lib/active_resource/validations.rb +3 -3
  568. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  569. data/vendor/rails/activeresource/test/abstract_unit.rb +2 -2
  570. data/vendor/rails/activeresource/test/base_errors_test.rb +13 -0
  571. data/vendor/rails/activeresource/test/base_test.rb +49 -0
  572. data/vendor/rails/activeresource/test/debug.log +80350 -0
  573. data/vendor/rails/activesupport/CHANGELOG +37 -0
  574. data/vendor/rails/activesupport/lib/active_support.rb +1 -0
  575. data/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +1 -1
  576. data/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +7 -1
  577. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +1 -1
  578. data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +1 -1
  579. data/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +11 -1
  580. data/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +35 -28
  581. data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +14 -4
  582. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +14 -3
  583. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +6 -0
  584. data/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +2 -1
  585. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +1 -1
  586. data/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +1 -1
  587. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +1 -1
  588. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +33 -26
  589. data/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +1 -1
  590. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +2 -2
  591. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +1 -0
  592. data/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +20 -2
  593. data/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +6 -5
  594. data/vendor/rails/activesupport/lib/active_support/core_ext/object/singleton_class.rb +13 -0
  595. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +0 -1
  596. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +108 -44
  597. data/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +2 -4
  598. data/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +8 -4
  599. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +12 -3
  600. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +3 -2
  601. data/vendor/rails/activesupport/lib/active_support/inflections.rb +1 -1
  602. data/vendor/rails/activesupport/lib/active_support/inflector.rb +5 -2
  603. data/vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb +40 -0
  604. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +10 -7
  605. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +16 -1
  606. data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +11 -2
  607. data/vendor/rails/activesupport/lib/active_support/memoizable.rb +1 -1
  608. data/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +2 -2
  609. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +6 -7
  610. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +28 -11
  611. data/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +14 -0
  612. data/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +84 -76
  613. data/vendor/rails/activesupport/lib/active_support/vendor.rb +10 -2
  614. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.1.3/lib → i18n-0.3.7}/i18n.rb +175 -39
  615. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend.rb +19 -0
  616. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record.rb +66 -0
  617. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/missing.rb +67 -0
  618. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/store_procs.rb +38 -0
  619. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/translation.rb +88 -0
  620. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/base.rb +266 -0
  621. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cache.rb +76 -0
  622. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cascade.rb +58 -0
  623. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/chain.rb +75 -0
  624. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cldr.rb +100 -0
  625. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fallbacks.rb +69 -0
  626. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fast.rb +69 -0
  627. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/gettext.rb +75 -0
  628. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/helpers.rb +68 -0
  629. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/interpolation_compiler.rb +119 -0
  630. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/links.rb +34 -0
  631. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/metadata.rb +73 -0
  632. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/pluralization.rb +57 -0
  633. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/simple.rb +22 -0
  634. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/except.rb +8 -0
  635. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/slice.rb +8 -0
  636. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/object/meta_class.rb +5 -0
  637. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/string/interpolate.rb +99 -0
  638. data/vendor/rails/activesupport/lib/active_support/vendor/{i18n-0.1.3/lib → i18n-0.3.7}/i18n/exceptions.rb +15 -7
  639. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext.rb +25 -0
  640. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext/po_parser.rb +329 -0
  641. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers.rb +5 -0
  642. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers/gettext.rb +65 -0
  643. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale.rb +6 -0
  644. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/fallbacks.rb +98 -0
  645. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag.rb +28 -0
  646. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/parents.rb +24 -0
  647. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/rfc4646.rb +76 -0
  648. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/simple.rb +41 -0
  649. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/version.rb +3 -0
  650. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  651. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +1 -1
  652. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +23 -83
  653. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxmlsax.rb +74 -0
  654. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +25 -22
  655. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogirisax.rb +73 -0
  656. data/vendor/rails/railties/CHANGELOG +18 -2
  657. data/vendor/rails/railties/MIT-LICENSE +1 -1
  658. data/vendor/rails/railties/Rakefile +5 -5
  659. data/vendor/rails/railties/bin/rails +6 -5
  660. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +1 -1
  661. data/vendor/rails/railties/configs/initializers/cookie_verification_secret.rb +7 -0
  662. data/vendor/rails/railties/guides/source/getting_started.textile +2 -2
  663. data/vendor/rails/railties/lib/commands/dbconsole.rb +1 -1
  664. data/vendor/rails/railties/lib/commands/runner.rb +1 -1
  665. data/vendor/rails/railties/lib/dispatcher.rb +1 -1
  666. data/vendor/rails/railties/lib/rails/gem_dependency.rb +11 -4
  667. data/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +1 -1
  668. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  669. data/vendor/rails/railties/lib/rails_generator.rb +5 -2
  670. data/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +7 -6
  671. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +3 -0
  672. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +9 -5
  673. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +2 -2
  674. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +2 -4
  675. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +1 -1
  676. data/vendor/rails/railties/lib/tasks/databases.rake +14 -14
  677. data/vendor/rails/railties/lib/tasks/framework.rake +4 -1
  678. data/vendor/rails/railties/lib/tasks/rails.rb +6 -1
  679. metadata +276 -321
  680. data/config/initializers/pagination.rb +0 -1
  681. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.css +0 -293
  682. data/vendor/plugins/haml/FAQ +0 -138
  683. data/vendor/plugins/haml/README.rdoc +0 -319
  684. data/vendor/plugins/haml/REVISION +0 -1
  685. data/vendor/plugins/haml/lib/sass/constant.rb +0 -216
  686. data/vendor/plugins/haml/lib/sass/constant/color.rb +0 -101
  687. data/vendor/plugins/haml/lib/sass/constant/literal.rb +0 -54
  688. data/vendor/plugins/haml/lib/sass/constant/nil.rb +0 -9
  689. data/vendor/plugins/haml/lib/sass/constant/number.rb +0 -87
  690. data/vendor/plugins/haml/lib/sass/constant/operation.rb +0 -30
  691. data/vendor/plugins/haml/lib/sass/constant/string.rb +0 -22
  692. data/vendor/plugins/haml/lib/sass/tree/attr_node.rb +0 -57
  693. data/vendor/plugins/haml/lib/sass/tree/value_node.rb +0 -20
  694. data/vendor/plugins/haml/test/sass/results/constants.css +0 -16
  695. data/vendor/plugins/haml/test/sass/templates/constants.sass +0 -100
  696. data/vendor/radius/Manifest.txt +0 -21
  697. data/vendor/rails/Rakefile +0 -81
  698. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb +0 -46
  699. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +0 -1478
  700. data/vendor/rails/actionmailer/pkg/actionmailer-3.0.pre.gem +0 -0
  701. data/vendor/rails/actionpack/lib/action_view/erb/util.rb +0 -44
  702. data/vendor/rails/actionpack/lib/action_view/safe_buffer.rb +0 -28
  703. data/vendor/rails/actionpack/pkg/actionpack-3.0.pre.gem +0 -0
  704. data/vendor/rails/actionpack/test/view/safe_buffer_test.rb +0 -36
  705. data/vendor/rails/activemodel/CHANGES +0 -12
  706. data/vendor/rails/activemodel/README +0 -21
  707. data/vendor/rails/activemodel/Rakefile +0 -24
  708. data/vendor/rails/activemodel/lib/active_model.rb +0 -5
  709. data/vendor/rails/activemodel/lib/active_model/base.rb +0 -8
  710. data/vendor/rails/activemodel/lib/active_model/callbacks.rb +0 -7
  711. data/vendor/rails/activemodel/lib/active_model/core.rb +0 -7
  712. data/vendor/rails/activemodel/lib/active_model/deprecated_error_methods.rb +0 -38
  713. data/vendor/rails/activemodel/lib/active_model/errors.rb +0 -82
  714. data/vendor/rails/activemodel/lib/active_model/observing.rb +0 -98
  715. data/vendor/rails/activemodel/lib/active_model/state_machine.rb +0 -68
  716. data/vendor/rails/activemodel/lib/active_model/state_machine/event.rb +0 -64
  717. data/vendor/rails/activemodel/lib/active_model/state_machine/machine.rb +0 -78
  718. data/vendor/rails/activemodel/lib/active_model/state_machine/state.rb +0 -47
  719. data/vendor/rails/activemodel/lib/active_model/state_machine/state_transition.rb +0 -40
  720. data/vendor/rails/activemodel/lib/active_model/validations.rb +0 -126
  721. data/vendor/rails/activemodel/lib/active_model/validations/acceptance.rb +0 -45
  722. data/vendor/rails/activemodel/lib/active_model/validations/associated.rb +0 -46
  723. data/vendor/rails/activemodel/lib/active_model/validations/confirmation.rb +0 -44
  724. data/vendor/rails/activemodel/lib/active_model/validations/exclusion.rb +0 -37
  725. data/vendor/rails/activemodel/lib/active_model/validations/format.rb +0 -39
  726. data/vendor/rails/activemodel/lib/active_model/validations/inclusion.rb +0 -37
  727. data/vendor/rails/activemodel/lib/active_model/validations/length.rb +0 -95
  728. data/vendor/rails/activemodel/lib/active_model/validations/numericality.rb +0 -80
  729. data/vendor/rails/activemodel/lib/active_model/validations/presence.rb +0 -42
  730. data/vendor/rails/activemodel/lib/active_model/validations/uniqueness.rb +0 -104
  731. data/vendor/rails/activemodel/pkg/activemodel-3.0.pre.gem +0 -0
  732. data/vendor/rails/activemodel/test/observing_test.rb +0 -121
  733. data/vendor/rails/activemodel/test/state_machine/event_test.rb +0 -49
  734. data/vendor/rails/activemodel/test/state_machine/machine_test.rb +0 -43
  735. data/vendor/rails/activemodel/test/state_machine/state_test.rb +0 -72
  736. data/vendor/rails/activemodel/test/state_machine/state_transition_test.rb +0 -84
  737. data/vendor/rails/activemodel/test/state_machine_test.rb +0 -312
  738. data/vendor/rails/activemodel/test/test_helper.rb +0 -21
  739. data/vendor/rails/activerecord/MIT-LICENSE +0 -20
  740. data/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +0 -26
  741. data/vendor/rails/activerecord/pkg/activerecord-3.0.pre.gem +0 -0
  742. data/vendor/rails/activeresource/MIT-LICENSE +0 -20
  743. data/vendor/rails/activeresource/pkg/activeresource-3.0.pre.gem +0 -0
  744. data/vendor/rails/activesupport/MIT-LICENSE +0 -20
  745. data/vendor/rails/activesupport/Rakefile +0 -175
  746. data/vendor/rails/activesupport/bin/generate_tables +0 -147
  747. data/vendor/rails/activesupport/install.rb +0 -30
  748. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +0 -20
  749. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile +0 -20
  750. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile +0 -5
  751. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +0 -27
  752. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -214
  753. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb +0 -5
  754. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -99
  755. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -124
  756. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +0 -1
  757. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +0 -3
  758. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -567
  759. data/vendor/rails/activesupport/pkg/activesupport-3.0.pre.gem +0 -0
  760. data/vendor/rails/activesupport/test/abstract_unit.rb +0 -36
  761. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +0 -2
  762. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +0 -2
  763. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +0 -2
  764. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +0 -1
  765. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +0 -3
  766. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +0 -3
  767. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +0 -2
  768. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +0 -7
  769. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +0 -1
  770. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +0 -5
  771. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +0 -2
  772. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +0 -2
  773. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +0 -2
  774. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +0 -4
  775. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +0 -2
  776. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +0 -1
  777. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +0 -2
  778. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +0 -3
  779. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +0 -3
  780. data/vendor/rails/activesupport/test/buffered_logger_test.rb +0 -146
  781. data/vendor/rails/activesupport/test/caching_test.rb +0 -348
  782. data/vendor/rails/activesupport/test/callbacks_test.rb +0 -188
  783. data/vendor/rails/activesupport/test/clean_backtrace_test.rb +0 -47
  784. data/vendor/rails/activesupport/test/clean_logger_test.rb +0 -57
  785. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +0 -363
  786. data/vendor/rails/activesupport/test/core_ext/base64_ext_test.rb +0 -8
  787. data/vendor/rails/activesupport/test/core_ext/bigdecimal.rb +0 -10
  788. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +0 -24
  789. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +0 -14
  790. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +0 -31
  791. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +0 -224
  792. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +0 -115
  793. data/vendor/rails/activesupport/test/core_ext/class_test.rb +0 -46
  794. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +0 -278
  795. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +0 -359
  796. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +0 -22
  797. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +0 -121
  798. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +0 -97
  799. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +0 -68
  800. data/vendor/rails/activesupport/test/core_ext/file_test.rb +0 -67
  801. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +0 -25
  802. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +0 -1014
  803. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +0 -37
  804. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +0 -43
  805. data/vendor/rails/activesupport/test/core_ext/load_error_test.rb +0 -16
  806. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +0 -30
  807. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +0 -52
  808. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +0 -33
  809. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +0 -58
  810. data/vendor/rails/activesupport/test/core_ext/module/model_naming_test.rb +0 -27
  811. data/vendor/rails/activesupport/test/core_ext/module/synchronization_test.rb +0 -85
  812. data/vendor/rails/activesupport/test/core_ext/module_test.rb +0 -363
  813. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +0 -20
  814. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +0 -162
  815. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +0 -282
  816. data/vendor/rails/activesupport/test/core_ext/object_ext_test.rb +0 -8
  817. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +0 -9
  818. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +0 -11
  819. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +0 -63
  820. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +0 -369
  821. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +0 -9
  822. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +0 -744
  823. data/vendor/rails/activesupport/test/core_ext/time_with_zone_test.rb +0 -845
  824. data/vendor/rails/activesupport/test/core_ext/uri_ext_test.rb +0 -12
  825. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +0 -2
  826. data/vendor/rails/activesupport/test/dependencies/conflict.rb +0 -1
  827. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +0 -3
  828. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +0 -4
  829. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +0 -4
  830. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +0 -3
  831. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +0 -1
  832. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +0 -1
  833. data/vendor/rails/activesupport/test/dependencies/service_one.rb +0 -5
  834. data/vendor/rails/activesupport/test/dependencies/service_two.rb +0 -2
  835. data/vendor/rails/activesupport/test/dependencies_test.rb +0 -782
  836. data/vendor/rails/activesupport/test/deprecation_test.rb +0 -167
  837. data/vendor/rails/activesupport/test/flush_cache_on_private_memoization_test.rb +0 -43
  838. data/vendor/rails/activesupport/test/gzip_test.rb +0 -7
  839. data/vendor/rails/activesupport/test/i18n_test.rb +0 -98
  840. data/vendor/rails/activesupport/test/inflector_test.rb +0 -298
  841. data/vendor/rails/activesupport/test/inflector_test_cases.rb +0 -252
  842. data/vendor/rails/activesupport/test/json/decoding_test.rb +0 -73
  843. data/vendor/rails/activesupport/test/json/encoding_test.rb +0 -160
  844. data/vendor/rails/activesupport/test/memoizable_test.rb +0 -247
  845. data/vendor/rails/activesupport/test/message_encryptor_test.rb +0 -46
  846. data/vendor/rails/activesupport/test/message_verifier_test.rb +0 -31
  847. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +0 -606
  848. data/vendor/rails/activesupport/test/multibyte_conformance.rb +0 -129
  849. data/vendor/rails/activesupport/test/multibyte_test_helpers.rb +0 -19
  850. data/vendor/rails/activesupport/test/multibyte_unicode_database_test.rb +0 -22
  851. data/vendor/rails/activesupport/test/multibyte_utils_test.rb +0 -137
  852. data/vendor/rails/activesupport/test/option_merger_test.rb +0 -85
  853. data/vendor/rails/activesupport/test/ordered_hash_test.rb +0 -201
  854. data/vendor/rails/activesupport/test/ordered_options_test.rb +0 -53
  855. data/vendor/rails/activesupport/test/rescuable_test.rb +0 -75
  856. data/vendor/rails/activesupport/test/secure_random_test.rb +0 -19
  857. data/vendor/rails/activesupport/test/string_inquirer_test.rb +0 -15
  858. data/vendor/rails/activesupport/test/test_test.rb +0 -148
  859. data/vendor/rails/activesupport/test/time_zone_test.rb +0 -266
  860. data/vendor/rails/activesupport/test/whiny_nil_test.rb +0 -50
  861. data/vendor/rails/activesupport/test/xml_mini/jdom_engine_test.rb +0 -153
  862. data/vendor/rails/activesupport/test/xml_mini/nokogiri_engine_test.rb +0 -168
  863. data/vendor/rails/activesupport/test/xml_mini/rexml_engine_test.rb +0 -15
  864. data/vendor/rails/ci/ci_build.rb +0 -119
  865. data/vendor/rails/ci/ci_setup_notes.txt +0 -131
  866. data/vendor/rails/ci/cruise_config.rb +0 -9
  867. data/vendor/rails/ci/geminstaller.yml +0 -24
  868. data/vendor/rails/ci/site.css +0 -13
  869. data/vendor/rails/ci/site_config.rb +0 -72
  870. data/vendor/rails/doc/template/horo.rb +0 -613
  871. data/vendor/rails/pushgems.rb +0 -14
  872. data/vendor/rails/railties/pkg/railties-3.0.pre.gem +0 -0
  873. data/vendor/rails/railties/test/abstract_unit.rb +0 -27
  874. data/vendor/rails/railties/test/backtrace_cleaner_test.rb +0 -61
  875. data/vendor/rails/railties/test/boot_test.rb +0 -178
  876. data/vendor/rails/railties/test/console_app_test.rb +0 -42
  877. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +0 -266
  878. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +0 -1
  879. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +0 -1
  880. data/vendor/rails/railties/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +0 -1
  881. data/vendor/rails/railties/test/fixtures/eager/zoo.rb +0 -3
  882. data/vendor/rails/railties/test/fixtures/eager/zoo/reptile_house.rb +0 -2
  883. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +0 -1
  884. data/vendor/rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb +0 -0
  885. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +0 -2
  886. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_a.rb +0 -5
  887. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_b.rb +0 -5
  888. data/vendor/rails/railties/test/fixtures/metal/pluralmetal/app/metal/legacy_routes.rb +0 -5
  889. data/vendor/rails/railties/test/fixtures/metal/singlemetal/app/metal/foo_metal.rb +0 -5
  890. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_a.rb +0 -7
  891. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_b.rb +0 -7
  892. data/vendor/rails/railties/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +0 -4
  893. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/init.rb +0 -1
  894. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +0 -2
  895. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/rails/init.rb +0 -7
  896. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  897. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/about.yml +0 -2
  898. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +0 -4
  899. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +0 -7
  900. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +0 -2
  901. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/controllers/engine_controller.rb +0 -2
  902. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/metal/engine_metal.rb +0 -10
  903. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/models/engine_model.rb +0 -2
  904. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/locales/en.yml +0 -2
  905. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/routes.rb +0 -3
  906. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/init.rb +0 -3
  907. data/vendor/rails/railties/test/fixtures/public/foo/bar.html +0 -1
  908. data/vendor/rails/railties/test/fixtures/public/foo/index.html +0 -1
  909. data/vendor/rails/railties/test/fixtures/public/index.html +0 -1
  910. data/vendor/rails/railties/test/gem_dependency_test.rb +0 -219
  911. data/vendor/rails/railties/test/generator_lookup_test.rb +0 -40
  912. data/vendor/rails/railties/test/generators/generator_test_helper.rb +0 -310
  913. data/vendor/rails/railties/test/generators/rails_controller_generator_test.rb +0 -44
  914. data/vendor/rails/railties/test/generators/rails_helper_generator_test.rb +0 -36
  915. data/vendor/rails/railties/test/generators/rails_mailer_generator_test.rb +0 -29
  916. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +0 -96
  917. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +0 -29
  918. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +0 -151
  919. data/vendor/rails/railties/test/generators/rails_template_runner_test.rb +0 -216
  920. data/vendor/rails/railties/test/initializer_test.rb +0 -416
  921. data/vendor/rails/railties/test/metal_test.rb +0 -72
  922. data/vendor/rails/railties/test/mocks/routes.rb +0 -6
  923. data/vendor/rails/railties/test/plugin_loader_test.rb +0 -172
  924. data/vendor/rails/railties/test/plugin_locator_test.rb +0 -62
  925. data/vendor/rails/railties/test/plugin_test.rb +0 -162
  926. data/vendor/rails/railties/test/plugin_test_helper.rb +0 -29
  927. data/vendor/rails/railties/test/rack_static_test.rb +0 -46
  928. data/vendor/rails/railties/test/rails_generator_test.rb +0 -145
  929. data/vendor/rails/railties/test/rails_info_controller_test.rb +0 -52
  930. data/vendor/rails/railties/test/rails_info_test.rb +0 -99
  931. data/vendor/rails/railties/test/secret_key_generation_test.rb +0 -38
  932. data/vendor/rails/railties/test/vendor/gems/dummy-gem-a-0.4.0/lib/dummy-gem-a.rb +0 -1
  933. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.4.0/lib/dummy-gem-b.rb +0 -1
  934. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.6.0/lib/dummy-gem-b.rb +0 -1
  935. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.4.0/lib/dummy-gem-c.rb +0 -1
  936. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.6.0/lib/dummy-gem-c.rb +0 -1
  937. data/vendor/rails/railties/test/vendor/gems/dummy-gem-d-1.0.0/lib/dummy-gem-d.rb +0 -1
  938. data/vendor/rails/railties/test/vendor/gems/dummy-gem-e-1.0.0/lib/dummy-gem-e.rb +0 -1
  939. data/vendor/rails/railties/test/vendor/gems/dummy-gem-f-1.0.0/lib/dummy-gem-f.rb +0 -1
  940. data/vendor/rails/railties/test/vendor/gems/dummy-gem-g-1.0.0/lib/dummy-gem-g.rb +0 -1
  941. data/vendor/rails/railties/test/vendor/gems/dummy-gem-h-1.0.0/lib/dummy-gem-h.rb +0 -1
  942. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/ext/dummy-gem-i/Makefile +0 -0
  943. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/lib/dummy-gem-i.rb +0 -1
  944. data/vendor/rails/railties/test/vendor/gems/dummy-gem-j-1.0.0/lib/dummy-gem-j.rb +0 -1
  945. data/vendor/rails/railties/test/vendor/gems/dummy-gem-k-1.0.0/lib/dummy-gem-k.rb +0 -1
  946. data/vendor/rails/release.rb +0 -25
@@ -2,67 +2,72 @@
2
2
  title: Syntax
3
3
  in_menu: true
4
4
  sort_info: 10
5
- ---
6
- This is version **<%= ::Kramdown::VERSION %>** of the syntax documentation.
5
+ --- name:sidebar
6
+ <h1>Contents</h1>
7
7
 
8
- Table of Contents:
9
-
10
- {menu: {used_nodes: fragments, min_levels: 3}}
8
+ {menu: {used_nodes: fragments, min_levels: 4, max_levels: 6}}
9
+ --- name:content
11
10
 
12
11
  # kramdown Syntax
13
12
 
13
+ This is version **<%= ::Kramdown::VERSION %>** of the syntax documentation.
14
+
14
15
  The kramdown syntax is based on the Markdown syntax and has been enhanced with features that are
15
16
  found in other Markdown implementations like [Maruku], [PHP Markdown Extra] and [Pandoc]. However,
16
17
  it strives to provide a strict syntax with definite rules and therefore isn't completely compatible
17
18
  with Markdown. Nonetheless, most Markdown documents should work fine when parsed with kramdown. All
18
19
  places where the kramdown syntax differs from the Markdown syntax are highlighted.
19
20
 
20
- Following is the complete syntax definition so that you know what you will get when a kramdown
21
- document is converted to HTML. There are basically two types of elements: block level elements
22
- (paragraphs, blockquotes, ...) and span level elements (emphasis, links, ...). Each has its own
23
- section.
21
+ Following is the complete syntax definition for all elements kramdown supports. Together with the
22
+ documentation on the available converters, it is clearly specified what you will get when a kramdown
23
+ document is converted.
24
24
 
25
- [Maruku]: http://maruku.rubyforge.org
26
- [PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/
27
- [Pandoc]: http://johnmacfarlane.net/pandoc/
28
25
 
26
+ ## Source Text Formatting
29
27
 
30
- ## Tabs
28
+ A kramdown document may be in any encoding, for example ASCII, UTF-8 or ISO-8859-1, and the output
29
+ will have the same encoding as the source. The document consists of two types of elements, block
30
+ level elements and span level elements:
31
31
 
32
- kramdown assumes that tab stops are set at multiples of four. This is especially important when
33
- using tabs for indentation in lists. Also, tabs may only be used at the beginning of a line when
34
- indenting text and must not be preceded by spaces. Otherwise the results may be unexpected.
32
+ * Block level elements define the main structure of the content, for example, what part of the text
33
+ should be a paragraph, a list, a blockquote and so on.
35
34
 
35
+ * Span level elements mark up small text parts as, for example, emphasized text or a link.
36
36
 
37
- ## Automatic Escaping and Escaping
37
+ Thus span level elements can only occur inside block level elements or other span level elements.
38
38
 
39
- There are three characters in HTML syntax that need special treatment: `<`, `>` and `&`. When these
40
- characters are used inside a code block or code span, they are always automatically escaped to their
41
- HTML entity counterparts.
39
+ You will often find references to the "first column" or "first character" of a line in a block level
40
+ element descriptions. Such a reference is always to be taken relative to the current indentation
41
+ level because some block level elements open up a new indentation level (e.g. blockquotes). The
42
+ beginning of a kramdown document opens up the default indentation level which begins at the first
43
+ column of the text.
42
44
 
43
- When used inside the normal text flow:
44
45
 
45
- * `<` and `>` are always escaped except if they are part of an HTML tag, an XML processing
46
- instruction/comment or an autolink.
47
- * `&` is escaped if it is not part of an HTML entity.
46
+ ### Usage of Tabs
48
47
 
49
- For example, the following fragment:
48
+ kramdown assumes that tab stops are set at multiples of four. This is especially important when
49
+ using tabs for indentation in lists. Also, tabs may only be used at the beginning of a line when
50
+ indenting text and must not be preceded by spaces. Otherwise the results may be unexpected.
50
51
 
51
- This is the A&O. &copy; 2008 by me
52
- 0 < 1 < 2 and 2 > 1 > 0
53
52
 
54
- will be converted to:
53
+ ### Automatic and Manual Escaping
55
54
 
56
- <p>This is the A&amp;O. &copy; 2008 by me
57
- 0 &lt; 1 &lt; 2 and 2 &gt; 1 &gt; 0</p>
55
+ Depending on the output format, there are often characters that need special treatment. For example,
56
+ when converting a kramdown document to HTML one needs to take care of the characters `<`, `>` and
57
+ `&`. To ease working with these special characters, they are automatically and correctly escaped
58
+ depending on the output format.
58
59
 
59
- Since kramdown also uses some characters to mark-up the text, there need to be a way to escape these
60
- special characters so that they can have their normal meaning. This can be done by using backslash
61
- escapes. For example, you can use a literal backtick like this:
60
+ This means, for example, that you can just use `<`, `>` and `&` in a kramdown document and need not
61
+ think about when to use their HTML entity counterparts. However, if you *do use* HTML entitys or
62
+ HTML tags which use one of the characters, the result will be correct nonetheless!
63
+
64
+ Since kramdown also uses some characters to mark-up the text, there needs to be a way to escape
65
+ these special characters so that they can have their normal meaning. This can be done by using
66
+ backslash escapes. For example, you can use a literal backtick like this:
62
67
 
63
68
  This \`is not a code\` span!
64
69
 
65
- Following is a list of all those characters (character sequences) that can be escaped:
70
+ Following is a list of all the characters (character sequences) that can be escaped:
66
71
 
67
72
  \ backslash
68
73
  . period
@@ -71,7 +76,7 @@ Following is a list of all those characters (character sequences) that can be es
71
76
  + plus
72
77
  - minus
73
78
  ` backtick
74
- ()[]{} parens/brackets/braces
79
+ ()[]{} left and right parens/brackets/braces
75
80
  # hash
76
81
  ! bang
77
82
  << left guillemet
@@ -80,38 +85,13 @@ Following is a list of all those characters (character sequences) that can be es
80
85
  | pipe
81
86
  " double quote
82
87
  ' single quote
88
+ $ dollar sign
83
89
 
84
90
 
85
- ## Typographic Symbols
86
-
87
- kramdown converts the following plain ASCII character into their corresponding typographic symbols:
88
-
89
- * `---` will become an em-dash (like this ---)
90
- * `--` will become an en-dash (like this --)
91
- * `...` will become an ellipsis (like this ...)
92
- * `<<` will become a left guillemet (like this <<) -- an optional following space will become a
93
- non-breakable space
94
- * `>>` will become a right guillemet (like this >>) -- an optional leading space will become a
95
- non-breakable space
96
-
97
- It also replaces normal single `'` and double quotes `"` with "fancy quotes". There *may* be times
98
- when kramdown falsely replace the quotes. If this is the case, just \'escape\" the quotes and they
99
- won't be replaced with fancy ones.
100
-
101
- > The original Markdown program does not do this transformations.
102
- {: .markdown-difference}
103
-
104
-
105
- # Block Level Elements
106
-
107
- Block level elements are used to structure the content. They can mark up some text, for example, as
108
- code, as a quote or as list items.
91
+ # Structural Elements
109
92
 
110
- You will often find references to the "first column" or "first character" of a line in the block
111
- level element descriptions. Such a reference is always to be taken relative to the current
112
- indentation level because some block level elements open up a new indentation level (e.g.
113
- blockquotes). The beginning of a kramdown document opens up the default indentation level which
114
- begins at the first column of the text.
93
+ All structural elements are block level elements and they are used to structure the content. They
94
+ can mark up some text as, for example, a simple paragraph, a quote or as a list item.
115
95
 
116
96
 
117
97
  ## Blank lines
@@ -127,37 +107,12 @@ meaning:
127
107
  * When used in lists -- see the [lists section](#lists)
128
108
 
129
109
 
130
- ## End-Of-Block Marker
131
-
132
- The End-Of-Block (EOB) marker -- a `^` as first character on an otherwise empty line -- can be used
133
- to specify the end of a block level element even if the block level element, after which it is used,
134
- would continue otherwise. If there is no block to end, the EOB marker is simply ignored.
135
-
136
- You won't find an EOB marker in most kramdown documents but sometimes it is necessary to use it to
137
- achieve the wanted results which would be impossible otherwise.
138
-
139
- For example, the following gives you one list with two items:
140
-
141
- * list item one
142
-
143
- * list item two
144
-
145
- By using an EOB marker, you can make two lists with each one item:
146
-
147
- * list one
148
- ^
149
- * list two
150
-
151
- > The EOB marker is not part of the standard Markdown syntax.
152
- {: .markdown-difference}
153
-
154
-
155
110
  ## Paragraphs
156
111
 
157
112
  Paragraphs are the most used block level elements. One or more consecutive lines of text are
158
113
  interpreted as one paragraph. Every line of a paragraph may be indented up to three spaces. You can
159
114
  separate two consecutive paragraphs from each other by using one or more blank lines. Notice that a
160
- line break in the source does not mean a line break in the output. If you want to have an explicit
115
+ line break in the source does not mean a line break in the output! If you want to have an explicit
161
116
  line break (i.e. a `<br />` tag) you need to end a line with two or more spaces or two backslashes!
162
117
  Note, however, that a line break on the last text line of a paragraph is not possible and will be
163
118
  ignored. Leading and trailing spaces will be stripped from the paragraph text.
@@ -170,22 +125,23 @@ The following gives you an example of how paragraphs look like:
170
125
 
171
126
  This is another paragraph, not connected to the above one. But
172
127
  with a hard line break. \\
173
- and another one.
128
+ And another one.
174
129
  {: .show-whitespaces .ws-lr}
175
130
 
176
131
 
177
132
  ## Headers
178
133
 
179
- kramdown supports Setext style and atx style headers.
134
+ kramdown supports so called Setext style and atx style headers. Both forms can be used inside a
135
+ single document.
180
136
 
181
137
  ### Setext Style
182
138
 
183
- Setext style headers are specified by a blank line (except at the beginning of a document), a line
184
- of text (the header text) followed by a line with only equal signs (for a first level header) or
185
- dashes (for a second level header). The header text may be indented up to three spaces, any leading
186
- or trailing spaces are stripped from the header text. The amount of equal signs or dashes is not
187
- significant, just one is enough but more may look better. The equal signs or dashes have to begin at
188
- the first column. For example:
139
+ Setext style headers are specified by a [blank line](#blank-lines) (except at the beginning of a
140
+ document), followed by a line of text (the header text) and a line with only equal signs (for a
141
+ first level header) or dashes (for a second level header). The header text may be indented up to
142
+ three spaces but any leading or trailing spaces are stripped from the header text. The amount of
143
+ equal signs or dashes is not significant, just one is enough but more may look better. The equal
144
+ signs or dashes have to begin at the first column. For example:
189
145
 
190
146
  First level header
191
147
  ==================
@@ -196,7 +152,7 @@ the first column. For example:
196
152
  Other first level header
197
153
  =
198
154
 
199
- As mentioned you need to insert a blank line before a Setext header:
155
+ As mentioned you need to insert a blank line before (but not necessarily after) a Setext header:
200
156
 
201
157
  This is a normal
202
158
  paragraph.
@@ -214,8 +170,8 @@ However, it is generally a good idea to also use a blank line after a Setext hea
214
170
  more appropriate.
215
171
 
216
172
  > The original Markdown syntax allows one to omit the blank line before a Setext header. However,
217
- > this makes reading the document harder than necessary and is therefore not allowed in a kramdown
218
- > document.
173
+ > this leads to ambiguities and makes reading the document harder than necessary. Therefore it is
174
+ > not allowed in a kramdown document.
219
175
  {: .markdown-difference}
220
176
 
221
177
  An edge case worth mentioning is the following:
@@ -224,18 +180,19 @@ An edge case worth mentioning is the following:
224
180
  ---
225
181
  para
226
182
 
227
- One might ask if this represents two paragraphs separated by a horizontal line or a second level
228
- header and a paragraph. As suggested by the wording in the example, the latter is the case. The
229
- general rule is that Setext headers are processed before horizontal rules.
183
+ One might ask if this represents two paragraphs separated by a [horizontal rule](#horizontal-rules)
184
+ or a second level header and a paragraph. As suggested by the wording in the example, the latter is
185
+ the case. The general rule is that Setext headers are processed before horizontal rules.
230
186
 
231
187
  ### atx Style
232
188
 
233
- atx style headers can be specified by a blank line (except at the beginning of a document), a line
234
- with one or more hash characters and then the header text. No spaces are allowed before the hash
235
- characters. The number of hash characters specifies the heading level: one hash character gives you
236
- a first level heading, two a second level heading and so on till the maximum of six hash characters
237
- for a sixth level heading. You may optionally use any number of hashes at the end of the line to
238
- close the header. Any leading or trailing spaces are stripped from the header text. For example:
189
+ atx style headers are specified by a [blank line](#blank-lines) (except at the beginning of a
190
+ document), followed by a line with one or more hash characters and then the header text. No spaces
191
+ are allowed before the hash characters. The number of hash characters specifies the heading level:
192
+ one hash character gives you a first level heading, two a second level heading and so on until the
193
+ maximum of six hash characters for a sixth level heading. You may optionally use any number of
194
+ hashes at the end of the line to close the header. Any leading or trailing spaces are stripped from
195
+ the header text. For example:
239
196
 
240
197
  # First level header
241
198
 
@@ -246,56 +203,14 @@ close the header. Any leading or trailing spaces are stripped from the header te
246
203
  > Again, the original Markdown syntax allows one to omit the blank line before an atx style header.
247
204
  {: .markdown-difference}
248
205
 
249
- ### Automatic Generation of Header IDs
250
-
251
- kramdown supports the automatic generation of header IDs if the option `:auto_ids` is set to `true`
252
- (which is the default). This is done by converting the untransformed, i.e. plain, header text via the
253
- following steps:
254
-
255
- * All characters except letters, numbers, spaces and dashes are removed.
256
- * All characters from the start of the line till the first letter are removed.
257
- * Everything except letters and numbers is converted to dashes.
258
- * Everything is lowercased.
259
- * If nothing is left, the identifier `section` is used.
260
- * If a such created identifier already exists, a dash and a sequential number is added (first `-1`,
261
- then `-2` and so on).
262
-
263
- Following are some examples of header texts and their respective generated IDs:
264
-
265
- # This is a header
266
- auto_id: this-is-a-header
267
-
268
- ## 12. Another one 1 here
269
- auto_id: another-one-1-here
270
206
 
271
- ### Do ^& it now
272
- auto_id: do--it-now
207
+ ### Specifying a Header ID
273
208
 
274
- Hallo
275
- =====
276
- auto_id: hallo
277
-
278
- Not now
279
- -------
280
- auto_id: not-now
281
-
282
- # Hallo
283
- auto_id: hallo-1
284
-
285
- # 123456789
286
- auto_id: section
287
-
288
- > The automatic creation of header IDs is not part of standard Markdown. The rules on how header
289
- > text is converted to an identifier are based on the rules specified by [Pandoc].
290
- {: .markdown-difference}
291
-
292
- ### Manually Specifying a Header ID
293
-
294
- Additionally, kramdown supports a nice way for setting the header ID which is available in [PHP
295
- Markdown Extra] and [Maruku]: If you follow the header text with an opening curly bracket (separated
296
- from the text with a least one space), a hash, the ID and a closing curly bracket, the ID is set on
297
- the header. If you use the trailing hash feature of atx style headers, the header ID has to go after
298
- the trailing hashes. For example:
209
+ kramdown supports a nice way for explicitly setting the header ID which is taken from [PHP Markdown
210
+ Extra] and [Maruku]: If you follow the header text with an opening curly bracket (separated from the
211
+ text with a least one space), a hash, the ID and a closing curly bracket, the ID is set on the
212
+ header. If you use the trailing hash feature of atx style headers, the header ID has to go after the
213
+ trailing hashes. For example:
299
214
 
300
215
  Hello {#id}
301
216
  -----
@@ -310,11 +225,11 @@ the trailing hashes. For example:
310
225
 
311
226
  ## Blockquotes
312
227
 
313
- A blockquote is started using the `>` marker followed by an optional space. The marker itself may be
314
- indented up to three spaces. All following lines that are also started with the blockquote marker
315
- belong to the blockquote. The contents of a blockquote are block level elements. This means that if
316
- you are just using text as content that it will be wrapped in a paragraph. For example, the
317
- following gives you one blockquote with two paragraphs in it:
228
+ A blockquote is started using the `>` marker followed by an optional space and the content of the
229
+ blockquote. The marker itself may be indented up to three spaces. All following lines that are also
230
+ started with the blockquote marker belong to the blockquote. The contents of a blockquote are block
231
+ level elements. This means that if you are just using text as content that it will be wrapped in a
232
+ paragraph. For example, the following gives you one blockquote with two paragraphs in it:
318
233
 
319
234
  > This is a blockquote.
320
235
  >on multiple lines.
@@ -334,8 +249,8 @@ block level elements:
334
249
  > and all other block level elements
335
250
 
336
251
  Note that the first space character after the `>` marker does *not* count when counting spaces for
337
- the indentation of the block level elements inside the blockquote! So code blocks will have to be
338
- indented with five spaces or one space and one tab, like this:
252
+ the indentation of the block level elements inside the blockquote! So [code blocks](#code-blocks)
253
+ will have to be indented with five spaces or one space and one tab, like this:
339
254
 
340
255
  > A code block:
341
256
  >
@@ -356,9 +271,8 @@ indented with five spaces or one space and one tab, like this:
356
271
 
357
272
  ## Code Blocks
358
273
 
359
- Code blocks can be used to represent verbatim text like markup, HTML or a program fragment. No
360
- syntax is parsed within a code block, only `<`, `>` and `&` are substituted by their respective HTML
361
- counterparts. A code block is wrapped in both `<pre>` and `<code>` tags.
274
+ Code blocks can be used to represent verbatim text like markup, HTML or a program fragment because
275
+ no syntax is parsed within a code block.
362
276
 
363
277
  ### Standard Code Block
364
278
 
@@ -371,8 +285,8 @@ blocks:
371
285
 
372
286
  This text belongs to the same code block.
373
287
 
374
- If you want to have one code block directly after another one, you need to use an EOB marker to
375
- separate the two:
288
+ If you want to have one code block directly after another one, you need to use an [EOB
289
+ marker](#eob-marker) to separate the two:
376
290
 
377
291
  Here comes some code
378
292
  ^
@@ -406,54 +320,6 @@ example:
406
320
  This type of code block is especially useful for copy-pasted code since you don't need to indent the
407
321
  code.
408
322
 
409
- ### Showing Whitespace in a Code Block
410
-
411
- If you add the class `show-whitespaces` to a code block (using a [block
412
- IAL](#block-inline-attribute-lists)), all spaces are replaced with `&sdot;` and additionally spaces
413
- and tabs in the code block are marked up using HTML `span` tags and the CSS classes:
414
-
415
- * `ws-space-l`, `ws-tab-l`: leading spaces/tabs
416
- * `ws-space-r`, `ws-tab-r`: trailing spaces/tabs
417
- * `ws-space`, `ws-tab`: spaces/tabs in between
418
-
419
- Here is an example output:
420
-
421
- leading tab and space
422
- trailing tab and space
423
- {: .show-whitespaces}
424
-
425
-
426
- ### Automatic Syntax Highlighting {#syntax-highlighting}
427
-
428
- kramdown supports syntax highlighting of code through the [CodeRay](http://coderay.rubychan.de)
429
- library if it is installed and if the HTML converter is used. Syntax highlighting is activated when
430
- you add the key `lang` to a code block (using a [block IAL](#block-inline-attribute-lists)), its
431
- value has to be a language supported by CodeRay.
432
-
433
- Here is an example output:
434
-
435
- require 'kramdown'
436
-
437
- Kramdown::Document.new('* something').to_html
438
- puts 1 + 1
439
- {: lang='ruby'}
440
-
441
-
442
- ## Horizontal Rules
443
-
444
- A horizontal rule is created by using three or more asterisks, dashes or underscores (these may not
445
- be mixed on one line), optionally separated by spaces or tabs, on an otherwise blank line. The first
446
- asterisk, dash or underscore may optionally be indented up to three spaces. The following examples
447
- show different possibilities to create a horizontal rule:
448
-
449
- * * *
450
-
451
- ---
452
-
453
- _ _ _ _
454
-
455
- ---------------
456
-
457
323
 
458
324
  ## Lists
459
325
 
@@ -466,7 +332,8 @@ Both ordered and unordered lists follow the same rules.
466
332
 
467
333
  A list is started with a list marker (in case of unordered lists one of `+`, `-` or `*` -- you can
468
334
  mix them -- and in case of ordered lists a number followed by a period) followed by one tab or at
469
- least one space and then the first part of the content of the list item. The leading tabs or spaces
335
+ least one space, optionally followed by an [IAL](#inline-attribute-lists) that should be applied to
336
+ the list item and then the first part of the content of the list item. The leading tabs or spaces
470
337
  are stripped away from this first line of content to allow for a nice alignment with the following
471
338
  content of a list item (see below). All following list items with the same marker type (unordered or
472
339
  ordered) are put into the same list. The numbers used for ordered lists are irrelevant, an ordered
@@ -515,7 +382,8 @@ different (marker and list content) indents for same level list items!
515
382
  {: .markdown-difference}
516
383
 
517
384
  When using tabs for indenting the content of a list item, remember that tab stops occur at multiples
518
- of four. Tabs are converted to spaces for calculating the indentation. For example:
385
+ of four for kramdown. Tabs are correctly converted to spaces for calculating the indentation. For
386
+ example:
519
387
 
520
388
  * Using a tab to indent this line, the tab only counts as three spaces and therefore the
521
389
  overall indentation is four spaces.
@@ -524,8 +392,8 @@ of four. Tabs are converted to spaces for calculating the indentation. For examp
524
392
  is three spaces and the marker itself takes two characters, the overall indentation
525
393
  needed for the following lines is eight spaces or two tabs.
526
394
 
527
- It is clear that you might get unexpected results if you mix tabs and spaces and don't have the tab
528
- stops set to multiples of four! Therefore this should be avoided!
395
+ It is clear that you might get unexpected results if you mix tabs and spaces or if you don't have
396
+ the tab stops set to multiples of four in your editor! Therefore this should be avoided!
529
397
 
530
398
  The content of a list item is made up of either text or block level elements. Simple list items only
531
399
  contain text like in the above examples. They are not even wrapped in a paragraph tag. If the first
@@ -549,6 +417,16 @@ by leaving a blank line after the last list item and using an EOB marker:
549
417
 
550
418
  ^
551
419
 
420
+ The text of the last list item is also wrapped in a paragraph tag if *all* other list items contain
421
+ a proper paragraph as first element. This makes the following use case work like expected, i.e.
422
+ *all* the list items are wrapped in paragraphs:
423
+
424
+ * First list item
425
+
426
+ * Second list item
427
+
428
+ * Last list item
429
+
552
430
  > The original Markdown syntax page specifies that list items which are separated by one or more
553
431
  > blank lines are wrapped in paragraph tags. This means that the first text will also be wrapped in
554
432
  > a paragraph if you have block level elements in a list which are separated by blank lines. The
@@ -569,8 +447,8 @@ Since the content of a list item can contain block level elements, you can do th
569
447
 
570
448
  * Second item
571
449
 
572
- However, there is a problem when you want to follow a list item with an indentation of four or less
573
- immediately with a code block. You can use an EOB marker to circumvent this problem:
450
+ However, there is a problem when you want to have a code block immediately after a list item. You
451
+ can use an EOB marker to circumvent this problem:
574
452
 
575
453
  * This is a list item.
576
454
 
@@ -634,6 +512,14 @@ useful when the paragraph starts with something looking like a list item marker)
634
512
  1984\. It was great
635
513
  \- others say that, too!
636
514
 
515
+ As mentioned at the beginning, an optional IAL for applying attributes to a list item can be used
516
+ after the list item marker:
517
+
518
+ * {:.cls} This item has the class "cls".
519
+ Here continues the above paragraph.
520
+
521
+ * This is a normal list item.
522
+
637
523
 
638
524
  ### Definition Lists
639
525
 
@@ -716,7 +602,7 @@ There are three different text line types that can be used in a table:
716
602
  text of the first table cell. Subsequent table cells consist of a pipe character followed by the
717
603
  cell text. One may optionally use a pipe character at the the end of a table row line.
718
604
 
719
- Header rows, footer rows and normal rows are all made using these table rows. Table cells can only
605
+ Header rows, footer rows and normal rows are all done using these table rows. Table cells can only
720
606
  contain a single line of text, no multiline text is supported. The text of a table cell is parsed
721
607
  as span level elements. Note that literal pipe characters need to be escaped, even if they occur
722
608
  in code spans!
@@ -830,6 +716,82 @@ editor. However, the table syntax is flexible and the above table could also be
830
716
  | Footer row
831
717
 
832
718
 
719
+ ## Horizontal Rules
720
+
721
+ A horizontal rule for visually separating content is created by using three or more asterisks,
722
+ dashes or underscores (these may not be mixed on a line), optionally separated by spaces or tabs, on
723
+ an otherwise blank line. The first asterisk, dash or underscore may optionally be indented up to
724
+ three spaces. The following examples show different possibilities to create a horizontal rule:
725
+
726
+ * * *
727
+
728
+ ---
729
+
730
+ _ _ _ _
731
+
732
+ ---------------
733
+
734
+
735
+ ## Math Blocks
736
+
737
+ > This syntax feature is not part of the original Markdown syntax. The idea comes from the [Maruku]
738
+ > and [Pandoc] packages.
739
+ {: .markdown-difference}
740
+
741
+ kramdown has built-in support for block and span level mathematics written in LaTeX.
742
+
743
+ A math block is started using two dollar signs, optionally indented up to three spaces. The math
744
+ block continues until the next two dollar signs (which may be on the same line or on one of the next
745
+ lines) that appear at the end of a line, i.e. they may only be followed by whitespace characters.
746
+ The content of a math block has to be valid LaTeX math. It is always wrapped inside a
747
+ `\begin{displaymath}...\end{displaymath}` enviroment except if it begins with a `\begin` statement.
748
+
749
+ The following kramdown fragment
750
+
751
+ $$
752
+ \begin{align*}
753
+ & \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right)
754
+ = \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\
755
+ & (x_1, \ldots, x_n) \left( \begin{array}{ccc}
756
+ \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
757
+ \vdots & \ddots & \vdots \\
758
+ \phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
759
+ \end{array} \right)
760
+ \left( \begin{array}{c}
761
+ y_1 \\
762
+ \vdots \\
763
+ y_n
764
+ \end{array} \right)
765
+ \end{align*}
766
+ $$
767
+
768
+ renders as
769
+
770
+ $$
771
+ \begin{align*}
772
+ & \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right)
773
+ = \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\
774
+ & (x_1, \ldots, x_n) \left( \begin{array}{ccc}
775
+ \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
776
+ \vdots & \ddots & \vdots \\
777
+ \phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
778
+ \end{array} \right)
779
+ \left( \begin{array}{c}
780
+ y_1 \\
781
+ \vdots \\
782
+ y_n
783
+ \end{array} \right)
784
+ \end{align*}
785
+ $$
786
+
787
+ Using inline math is also easy: just surround your math content with two dollar signs, like with a
788
+ math block.
789
+
790
+ If you don't want to start a math block or an inline math statement, just escape the dollar signs
791
+ and they will be treated as simple dollar signs. If you want to start an inline math statement at
792
+ the beginning of a paragraph, just escape the first dollar sign.
793
+
794
+
833
795
  ## HTML Blocks
834
796
 
835
797
  > The original Markdown syntax specifies that an HTML block must start at the left margin, i.e. no
@@ -879,9 +841,9 @@ inside a raw HTML block.
879
841
  Also, if an invalid closing tag is found, it is ignored.
880
842
 
881
843
  By default, kramdown parses all block HTML tags and all XML tags as raw HTML blocks. However, this
882
- can be configured with the `:parse_block_html` option. If this is set to `true`, then syntax parsing
883
- in HTML blocks is globally enabled. It is also possible to enable/disable syntax parsing on a tag
884
- per tag basis using the `markdown` attribute:
844
+ can be configured with the `parse_block_html`. If this is set to `true`, then syntax parsing in HTML
845
+ blocks is globally enabled. It is also possible to enable/disable syntax parsing on a tag per tag
846
+ basis using the `markdown` attribute:
885
847
 
886
848
  * If an HTML tag has an attribute `markdown="0"`, then the tag is parsed as raw HTML block.
887
849
 
@@ -895,7 +857,7 @@ per tag basis using the `markdown` attribute:
895
857
  level elements.
896
858
 
897
859
  The following list shows which HTML tags are parsed in which mode by default when `markdown="1"` is
898
- applied or `:parse_block_html` is `true`:
860
+ applied or `parse_block_html` is `true`:
899
861
 
900
862
  Parse as raw HTML block
901
863
  :
@@ -906,19 +868,19 @@ Parse as raw HTML block
906
868
  Parse as block level elements
907
869
  :
908
870
  applet button blockquote colgroup dd div dl fieldset form iframe li
909
- map noscript object ol table tbody td th thead tfoot tr ul
871
+ map noscript object ol table tbody thead tfoot tr td ul
910
872
 
911
873
  Parse as span level elements
912
874
  :
913
875
  a abbr acronym address b bdo big cite caption code del dfn dt em
914
876
  h1 h2 h3 h4 h5 h6 i ins kbd label legend optgroup p pre q rb rbc
915
- rp rt rtc ruby samp select small span strong sub sup tt var
877
+ rp rt rtc ruby samp select small span strong sub sup th tt var
916
878
 
917
879
  > Remember that all span level HTML tags like `a` or `b` do not start a HTML block! However, the
918
880
  > above lists also include span level HTML tags in the case the `markdown` attribute is used on a
919
881
  > tag inside a raw HTML block.
920
882
 
921
- Here is a simple example input and its output with `:parse_block_html` set to `false`:
883
+ Here is a simple example input and its HTML output with `parse_block_html` set to `false`:
922
884
 
923
885
  This is a para.
924
886
  <div>
@@ -957,7 +919,7 @@ appears after a start/end tag but on the same line, is processed as if it appear
957
919
  <div markdown="1">The end tag is not found because
958
920
  this line is parsed as a paragraph</div>
959
921
 
960
- Since setting `:parse_block_html` to `true` can lead to some not wanted behaviour, it is generally
922
+ Since setting `parse_block_html` to `true` can lead to some not wanted behaviour, it is generally
961
923
  better to selectively enable or disable block/span level elements parsing by using the `markdown`
962
924
  attribute!
963
925
 
@@ -988,167 +950,8 @@ comments is not processed:
988
950
  continues here.
989
951
 
990
952
 
991
- ## Attribute List Definitions
992
-
993
- > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
994
- > the [Maruku] package.
995
- {: .markdown-difference}
996
-
997
- This is an implementation of [Maruku]'s feature for adding attributes to block and span level
998
- elements (the naming is also taken from Maruku). This block level element is used to define
999
- attributes which can be referenced later. The [Block Inline Attribute
1000
- List](#block-inline-attribute-lists) is used to attach attributes to a block level element and the
1001
- [Span Inline Attribute List](#span-inline-attribute-lists) is used to attach attributes to a span
1002
- level element.
1003
-
1004
- Following are some examples of attribute list definitions (ALDs) and afterwards comes the syntax
1005
- explanation:
1006
-
1007
- {:ref-name: #myid .my-class}
1008
- {:other: ref-name #id-of-other title="hallo you"}
1009
- {:test: key="value \" with quote" and other='quote brace \}'}
1010
-
1011
- An ALD line has the following structure:
1012
-
1013
- * a left brace, optionally preceded by up to three spaces,
1014
- * followed by a colon, the reference name and another colon,
1015
- * followed by attribute definitions (allowed characters are backslash-escaped closing braces or any
1016
- character except a not escaped closing brace),
1017
- * followed by a closing brace and optional spaces till the end of the line.
1018
-
1019
- The reference name needs to start with a word character or a digit, optionally followed by other word
1020
- characters, digits or dashes.
1021
-
1022
- There are four different types of attribute definitions which have to be separated by one or more
1023
- spaces:
1024
-
1025
- references
1026
-
1027
- : This must be a valid reference name. It is used to reference an other ALD so that the attributes
1028
- of the other ALD are also included in this one. The reference name is ignored when collecting the
1029
- attributes if no attribute definition list with this reference name exists. For example, a
1030
- simple reference looks like `id`.
1031
-
1032
- key-value pairs
1033
-
1034
- : A key-value pair is defined by a key name, which must follow the rules for reference names, then
1035
- an equal sign and then the value in single or double quotes. If you need to use the value
1036
- delimiter (a single or a double quote) inside the value, you need to escape it with a backslash.
1037
- Key-value pairs can be used to specify arbitrary attributes for block or span level elements. For
1038
- example, a key-value pair looks like `key1="bef \"quoted\" aft"` or `title='This is a title'`.
1039
-
1040
- ID name
1041
-
1042
- : An ID name is defined by using a hash and then the identifier name which must follow the rules
1043
- for reference names. This is a short hand for the key-value pair `id="IDNAME"` since this is
1044
- often used. The ID name specifies the unique ID of a block or span level element. For example,
1045
- an ID name looks like `#myid`.
1046
-
1047
- class names
1048
-
1049
- : A class name is defined by using a dot and then the class name. This is (almost, but not quite)
1050
- a short hand for the key-value pair `class="class-name"`. Almost because it actually means that
1051
- the class name should be appended to the current value of the `class` attribute. The following
1052
- ALDs are all equivalent:
1053
-
1054
- {:id: .cls1 .cls2}
1055
- {:id: class="cls1" .cls2}
1056
- {:id: class="something" class="cls1" .cls2}
1057
- {:id: class="cls1 cls2}
1058
-
1059
- As can be seen from the example of the class names, attributes that are defined earlier are
1060
- overwritten by ones with the same name defined later. Also, everything in the attribute definitions
1061
- part that does not match one of the above four types is ignored.
1062
-
1063
- If there is more than one ALD with the same reference name, the attribute definitions of all the
1064
- ALDs are processed like they are defined in one ALD.
1065
-
1066
-
1067
- ## Block Inline Attribute Lists
1068
-
1069
- > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1070
- > the [Maruku] package.
1071
- {: .markdown-difference}
1072
-
1073
- This block level element is used to attach attributes to a block level element. A block inline
1074
- attribute list (block IAL) has the same structure as an [ALD](#attribute-list-definitions) except
1075
- that the colon/reference name/colon part is replaced by a colon. A block IAL (or two or more block
1076
- IALs) has to be put directly after the block level element to which the attributes should be
1077
- attached, otherwise it is ignored. This is, for example, the case when there is a blank line between
1078
- the block level element and the IAL.
1079
-
1080
- Key-value pairs of an IAL take precedence over equally named key-value pairs in referenced ALDs.
1081
-
1082
- Here are some examples for block IALs:
1083
-
1084
- A simple paragraph with an ID attribute.
1085
- {: #para-one}
1086
-
1087
- > A blockquote with a title
1088
- {:title="The blockquote title"}
1089
- {: #myid}
1090
-
1091
- Some code here
1092
- {:.ruby}
1093
-
1094
-
1095
- ## Extension Blocks
1096
-
1097
- > This syntax feature is not part of the original Markdown syntax.
1098
- {: .markdown-difference}
1099
-
1100
- Extension blocks can be used, for example, to treat whole sections of text specially. For example,
1101
- one could write an extension that highlights a code fragment specified in an extension block.
1102
-
1103
- An extension block has two forms, one with a body and one without a body:
1104
-
1105
- Without a body
1106
-
1107
- : The extension block line has the same structure as an [ALD](#attribute-list-definitions) except
1108
- that the reference name needs to prefixed and postfixed with `:` and identifies the extension to
1109
- be used. Attributes can be defined like it is done for an ALD.
1110
-
1111
- With a body
1112
-
1113
- : The starting and ending lines of an extension block with a body have the same structure as an
1114
- [ALD](#attribute-list-definitions) except that the reference name needs to prefixed with `:` and
1115
- identifies the extension to be used; attributes can be defined on the starting or ending line.
1116
- The text between the starting and ending line is passed to the extension and not parsed by
1117
- kramdown. If no ending line is found, the starting line is ignored and the body is parsed
1118
- normally by kramdown.
1119
-
1120
- If the specified extension is not found, a warning is shown and the whole extension block including
1121
- the body is ignored. The following extensions are built-in:
1122
-
1123
- `comment`
1124
-
1125
- : Treats the body text as a comment which does not show in the output.
1126
-
1127
- `nomarkdown`
1128
-
1129
- : The body is not processed with kramdown but output as-is.
1130
-
1131
- `options`
1132
-
1133
- : Should be used without a body since the body is ignored. Is used for setting the global options
1134
- for the kramdown processor (for example, to enable automatic header ID generation). Note that
1135
- options that are used by the parser are immediately effective whereas all other options are not!
1136
- This means, for example, that it is not possible to set converter options only for some part of
1137
- a kramdown document.
1138
-
1139
- Here are some examples for how extension blocks look like:
1140
-
1141
- {::toc::}
1142
-
1143
- The above extension block could be replaced by a table of contents.
1144
-
1145
- {::comment:}
1146
- This text is completely ignored by kramdown - a comment in the text.
1147
- {::comment:}
1148
-
1149
953
 
1150
-
1151
- # Span Level Elements
954
+ # Text Markup
1152
955
 
1153
956
  These elements are used inside block level elements to markup text fragments. For example, one can
1154
957
  easily create links or apply emphasis to certain text parts.
@@ -1160,7 +963,20 @@ output.
1160
963
 
1161
964
  ## Links and Images
1162
965
 
1163
- Two styles of links are supported: inline and reference.
966
+ Three types of links are supported: autolinks, inline links and reference links.
967
+
968
+ ### Autolinks
969
+
970
+ This is the easiest one to create: Just surround a web address or an email address with angle
971
+ brackets and the address will be turned into a proper link. The address will be used as link target
972
+ and as link text. For example:
973
+
974
+ Information can be found on the <http://example.com> homepage.
975
+ You can also mail me: <me.example@example.com>
976
+
977
+ It is not possible to specify a different link text using autolinks -- use the other link types for
978
+ this!
979
+
1164
980
 
1165
981
  ### Inline Links
1166
982
 
@@ -1244,42 +1060,30 @@ The link definition for images is exactly the same as the link definition for no
1244
1060
 
1245
1061
  ## Emphasis
1246
1062
 
1247
- kramdown uses the HTML elements `em` and `strong` to style emphasized text parts. Text parts that
1248
- are surrounded with single asterisks `*` or underscores `_` are wrapped in `em` tags, text parts
1249
- surrounded with two asterisks or underscores are wrapped in `strong` tags. Surrounded means that the
1250
- starting delimiter must not be followed by a space and that the stopping delimiter must not be
1251
- preceded by a space. For example:
1063
+ kramdown supports two types of emphasis: light and strong emphasis. Text parts that are surrounded
1064
+ with single asterisks `*` or underscores `_` are treated as text with light emphasis, text parts
1065
+ surrounded with two asterisks or underscores are treated as text with strong emphasis. Surrounded
1066
+ means that the starting delimiter must not be followed by a space and that the stopping delimiter
1067
+ must not be preceded by a space.
1068
+
1069
+ Here is an example for text with light and strong emphasis:
1252
1070
 
1253
1071
  *some text*
1254
1072
  _some text_
1255
1073
  **some text**
1256
1074
  __some text__
1257
1075
 
1258
- will produce the following output:
1259
-
1260
- <em>some text</em>
1261
- <em>some text</em>
1262
- <strong>some text</strong>
1263
- <strong>some text</strong>
1264
-
1265
1076
  The asterisk form is also allowed within a single word:
1266
1077
 
1267
1078
  This is un*believe*able! This d_oe_s not work!
1268
1079
 
1269
- Text emphasized with different delimiters can be nested but you can't nest emphasized text with the
1270
- same delimiters:
1271
-
1272
- This is a ***strong and emphasized*** text.
1273
- This **is __very__ strong**.
1274
- This **is **very** strong**.
1275
-
1276
- will produce the following output:
1277
-
1278
- <p>This is a <strong><em>strong and emphasized</em></strong> text.
1279
- This <strong>is <strong>very</strong> strong</strong>.
1280
- This <strong>is </strong>very<strong> strong</strong>.</p>
1080
+ Text can be marked up with both light and strong emphasis, possibly using different delimiters.
1081
+ However, it is not possible to nest strong within strong or light within light emphasized text:
1281
1082
 
1282
- Notice the difference between the second and the third line!
1083
+ This is a ***text with light and strong emphasis***.
1084
+ This **is _emphasized_ as well**.
1085
+ This *does _not_ work*.
1086
+ This **does __not__ work either**.
1283
1087
 
1284
1088
  If one or two asterisks or underscores are surrounded by spaces, they are treated literally. If you
1285
1089
  want to force the literal meaning of an asterisk or an underscore you can backslash-escape it:
@@ -1296,20 +1100,16 @@ by surrounding it with backticks `` ` ``. For example:
1296
1100
 
1297
1101
  Use `<html>` tags for this.
1298
1102
 
1299
- The special characters `<`, `>` and `&` are substituted by their respective HTML counterparts (same
1300
- behaviour as seen with the block level code block element).
1103
+ Note that all special characters in a code span are treated correctly. For example, when a code span
1104
+ is converted to HTML, the characters `<`, `>` and `&` are substituted by their respective HTML
1105
+ counterparts.
1301
1106
 
1302
1107
  To include a literal backtick in a code span, you need to use two or more backticks as delimiters.
1303
1108
  You can insert one optional space after the starting and before the ending delimiter (these spaces
1304
1109
  are not used in the output). For example:
1305
1110
 
1306
1111
  Here is a literal `` ` `` backtick.
1307
- And here is `` `some` `` text (note the two spaces!).
1308
-
1309
- will produce:
1310
-
1311
- <p>Here is a literal <code>`</code> backtick.</p>
1312
- <p>And here is <code> `some` </code> text (note the two spaces!).</p>
1112
+ And here is `` `some` `` text (note the two spaces so that one is left in the output!).
1313
1113
 
1314
1114
  A single backtick surrounded by spaces is treated as literal backtick. If you want to force the
1315
1115
  literal meaning of a backtick you can backslash-escape it:
@@ -1327,7 +1127,7 @@ you have to use, for example, `<br />` instead of `<br>` (although kramdown trie
1327
1127
  if possible).
1328
1128
 
1329
1129
  By default, kramdown parses kramdown syntax inside span HTML tags. However, this behaviour can be
1330
- configured with the `:parse_span_html` option. If this is set to `true`, then syntax parsing in HTML
1130
+ configured with the `parse_span_html` option. If this is set to `true`, then syntax parsing in HTML
1331
1131
  spans is enabled, if it is set to `false`, parsing is disabled. It is also possible to
1332
1132
  enable/disable syntax parsing on a tag per tag basis using the `markdown` attribute:
1333
1133
 
@@ -1434,7 +1234,202 @@ foot note definitions are ignored. If more than one footnote definitions have th
1434
1234
  name, all footnote definitions but the last are ignored.
1435
1235
 
1436
1236
 
1437
- ## Span Inline Attribute Lists
1237
+ ## Abbreviations
1238
+
1239
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1240
+ > the [PHP Markdown Extra] package.
1241
+ {: .markdown-difference}
1242
+
1243
+ kramdown provides a syntax to assign the full phrase to an abbreviation. When writing the text, you
1244
+ don't need to do anything special. However, once you add abbreviation definitions, the
1245
+ abbreviations in the text get marked up automatically. Abbreviations can consist of any character
1246
+ except a closing bracket.
1247
+
1248
+ An abbreviation definition is used to define the full phrase for an abbreviation and has the
1249
+ following structure:
1250
+
1251
+ * An asterisk and the abbreviation in square brackets, optionally indented up to three
1252
+ spaces,
1253
+ * then a colon and the full phrase of the abbreviation on one line (leading and trailing spaces are
1254
+ stripped from the full phrase).
1255
+
1256
+ Later abbreviation definition for the same abbreviation override prior ones and it does not matter
1257
+ where you put an abbreviation definition in a kramdown document. Empty definitions are also allowed.
1258
+
1259
+ Here are some examples:
1260
+
1261
+ This is some text not written in HTML but in another language!
1262
+
1263
+ *[another language]: It's called Markdown
1264
+ *[HTML]: HyperTextMarkupLanguage
1265
+
1266
+ > Abbreviation definitions are, despite being described here, block level elements.
1267
+ {: .information}
1268
+
1269
+
1270
+ ## Typographic Symbols
1271
+
1272
+ > The original Markdown syntax does not support these transformations.
1273
+ {: .markdown-difference}
1274
+
1275
+ kramdown converts the following plain ASCII character into their corresponding typographic symbols:
1276
+
1277
+ * `---` will become an em-dash (like this ---)
1278
+ * `--` will become an en-dash (like this --)
1279
+ * `...` will become an ellipsis (like this ...)
1280
+ * `<<` will become a left guillemet (like this <<) -- an optional following space will become a
1281
+ non-breakable space
1282
+ * `>>` will become a right guillemet (like this >>) -- an optional leading space will become a
1283
+ non-breakable space
1284
+
1285
+ It also replaces normal single `'` and double quotes `"` with "fancy quotes". There *may* be times
1286
+ when kramdown falsely replace the quotes. If this is the case, just \'escape\" the quotes and they
1287
+ won't be replaced with fancy ones.
1288
+
1289
+
1290
+
1291
+ # Other Markup
1292
+
1293
+ This section describes markup that is not widely used in kramdown documents but which are sometimes
1294
+ needed nonetheless.
1295
+
1296
+
1297
+ ## End-Of-Block Marker {#eob-marker}
1298
+
1299
+ > The EOB marker is not part of the standard Markdown syntax.
1300
+ {: .markdown-difference}
1301
+
1302
+ The End-Of-Block (EOB) marker -- a `^` as first character on an otherwise empty line -- is a block
1303
+ level element that can be used to specify the end of a block level element even if the block level
1304
+ element, after which it is used, would continue otherwise. If there is no block level element to
1305
+ end, the EOB marker is simply ignored.
1306
+
1307
+ You won't find an EOB marker in most kramdown documents but sometimes it is necessary to use it to
1308
+ achieve the wanted results which would be impossible otherwise. However, it should only be used when
1309
+ absolutely necesary!
1310
+
1311
+ For example, the following gives you one list with two items:
1312
+
1313
+ * list item one
1314
+
1315
+ * list item two
1316
+
1317
+ By using an EOB marker, you can make two lists with one item each:
1318
+
1319
+ * list one
1320
+ ^
1321
+ * list two
1322
+
1323
+
1324
+ ## Attribute List Definitions
1325
+
1326
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1327
+ > the [Maruku] package.
1328
+ {: .markdown-difference}
1329
+
1330
+ This is an implementation of [Maruku]'s feature for adding attributes to block and span level
1331
+ elements (the naming is also taken from Maruku). This block level element is used to define
1332
+ attributes which can be referenced later. The [Block Inline Attribute
1333
+ List](#block-inline-attribute-lists) is used to attach attributes to a block level element and the
1334
+ [Span Inline Attribute List](#span-inline-attribute-lists) is used to attach attributes to a span
1335
+ level element.
1336
+
1337
+ Following are some examples of attribute list definitions (ALDs) and afterwards comes the syntax
1338
+ explanation:
1339
+
1340
+ {:ref-name: #myid .my-class}
1341
+ {:other: ref-name #id-of-other title="hallo you"}
1342
+ {:test: key="value \" with quote" and other='quote brace \}'}
1343
+
1344
+ An ALD line has the following structure:
1345
+
1346
+ * a left brace, optionally preceded by up to three spaces,
1347
+ * followed by a colon, the reference name and another colon,
1348
+ * followed by attribute definitions (allowed characters are backslash-escaped closing braces or any
1349
+ character except a not escaped closing brace),
1350
+ * followed by a closing brace and optional spaces until the end of the line.
1351
+
1352
+ The reference name needs to start with a word character or a digit, optionally followed by other word
1353
+ characters, digits or dashes.
1354
+
1355
+ There are four different types of attribute definitions which have to be separated by one or more
1356
+ spaces:
1357
+
1358
+ references
1359
+
1360
+ : This must be a valid reference name. It is used to reference an other ALD so that the attributes
1361
+ of the other ALD are also included in this one. The reference name is ignored when collecting the
1362
+ attributes if no attribute definition list with this reference name exists. For example, a
1363
+ simple reference looks like `id`.
1364
+
1365
+ key-value pairs
1366
+
1367
+ : A key-value pair is defined by a key name, which must follow the rules for reference names, then
1368
+ an equal sign and then the value in single or double quotes. If you need to use the value
1369
+ delimiter (a single or a double quote) inside the value, you need to escape it with a backslash.
1370
+ Key-value pairs can be used to specify arbitrary attributes for block or span level elements. For
1371
+ example, a key-value pair looks like `key1="bef \"quoted\" aft"` or `title='This is a title'`.
1372
+
1373
+ ID name
1374
+
1375
+ : An ID name is defined by using a hash and then the identifier name which must follow the rules
1376
+ for reference names. This is a short hand for the key-value pair `id="IDNAME"` since this is
1377
+ often used. The ID name specifies the unique ID of a block or span level element. For example,
1378
+ an ID name looks like `#myid`.
1379
+
1380
+ class names
1381
+
1382
+ : A class name is defined by using a dot and then the class name. This is (almost, but not quite)
1383
+ a short hand for the key-value pair `class="class-name"`. Almost because it actually means that
1384
+ the class name should be appended to the current value of the `class` attribute. The following
1385
+ ALDs are all equivalent:
1386
+
1387
+ {:id: .cls1 .cls2}
1388
+ {:id: class="cls1" .cls2}
1389
+ {:id: class="something" class="cls1" .cls2}
1390
+ {:id: class="cls1 cls2}
1391
+
1392
+ As can be seen from the example of the class names, attributes that are defined earlier are
1393
+ overwritten by ones with the same name defined later. Also, everything in the attribute definitions
1394
+ part that does not match one of the above four types is ignored.
1395
+
1396
+ If there is more than one ALD with the same reference name, the attribute definitions of all the
1397
+ ALDs are processed like they are defined in one ALD.
1398
+
1399
+
1400
+ ## Inline Attribute Lists
1401
+
1402
+ These elements are used to attach attributes to another element.
1403
+
1404
+ ### Block Inline Attribute Lists
1405
+
1406
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1407
+ > the [Maruku] package.
1408
+ {: .markdown-difference}
1409
+
1410
+ This block level element is used to attach attributes to a block level element. A block inline
1411
+ attribute list (block IAL) has the same structure as an [ALD](#attribute-list-definitions) except
1412
+ that the colon/reference name/colon part is replaced by a colon. A block IAL (or two or more block
1413
+ IALs) has to be put directly before or after the block level element to which the attributes should
1414
+ be attached. If a block IAL is directly after *and* before a block level element, it is applied to
1415
+ preceding element. The block IAL is ignored in all other cases, for example, when the block IAL is
1416
+ surrounded by blank lines.
1417
+
1418
+ Key-value pairs of an IAL take precedence over equally named key-value pairs in referenced ALDs.
1419
+
1420
+ Here are some examples for block IALs:
1421
+
1422
+ A simple paragraph with an ID attribute.
1423
+ {: #para-one}
1424
+
1425
+ > A blockquote with a title
1426
+ {:title="The blockquote title"}
1427
+ {: #myid}
1428
+
1429
+ {:.ruby}
1430
+ Some code here
1431
+
1432
+ ### Span Inline Attribute Lists
1438
1433
 
1439
1434
  > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1440
1435
  > the [Maruku] package.
@@ -1442,10 +1437,85 @@ name, all footnote definitions but the last are ignored.
1442
1437
 
1443
1438
  This is a version of the [block inline attribute list](#block-inline-attribute-lists) for span level
1444
1439
  elements. It has the same structure as the block IAL except that leading and trailing spaces are not
1445
- allowed. A span IAL (or two or more span IALs) has to be put directly after the span level element,
1446
- no additional character is allowed between.
1440
+ allowed. A span IAL (or two or more span IALs) has to be put directly after the span level element
1441
+ to which it should be applied, no additional character is allowed between, otherwise it is ignored
1442
+ and only removed from the output.
1447
1443
 
1448
1444
  Here are some examples for span IALs:
1449
1445
 
1450
1446
  This *is*{:.underline} some `code`{:#id}{:.class}.
1451
1447
  A [link](test.html){:rel='something'} and some **tools**{:.tools}.
1448
+
1449
+
1450
+ ## Extensions
1451
+
1452
+ > This syntax feature is not part of the original Markdown syntax.
1453
+ {: .markdown-difference}
1454
+
1455
+ Extensions provide additional functionality but use the same syntax for it. They are available as
1456
+ block as well as span level elements.
1457
+
1458
+ The syntax for an extension is very similar to the syntax of [ALDs](#attribute-list-definitions).
1459
+ Here are some examples of how to specify extensions and afterwards is the syntax definition:
1460
+
1461
+ {::comment}
1462
+ This text is completely ignored by kramdown - a comment in the text.
1463
+ {:/comment}
1464
+
1465
+ Do you see {::comment}this text{:/comment}?
1466
+ {::comment}some other comment{:/}
1467
+
1468
+ {::options key="val" /}
1469
+
1470
+ An extension can be specified with or without a body. Therefore there exist a start and an end tag
1471
+ for extensions. The start tag has the following structure:
1472
+
1473
+ * an left brace,
1474
+ * followed by two colons and the extension name,
1475
+ * optionally followed by a space and attribute definitions (allowed characters are backslash-escaped
1476
+ closing braces or any character except a not escaped closing brace -- same as with ALDs),
1477
+ * followed by a slash and a right brace (in case the extension has no body) or only a right
1478
+ brace (in case the extension has a body).
1479
+
1480
+ The stop tag has the following structure:
1481
+
1482
+ * a left brace,
1483
+ * followed by a colon and a slash,
1484
+ * optionally followed by the extension name,
1485
+ * followed by a right brace.
1486
+
1487
+ A stop tag is only needed if the extension has a body!
1488
+
1489
+ The above syntax can be used as is for span level extensions. The starting and ending lines for block level
1490
+ extensions are defined as:
1491
+
1492
+ * The starting line consists of the extension start tag, optionally preceded by up to three spaces,
1493
+ and followed by optional spaces until the end of the line.
1494
+ * The ending line consists of the extension stop tag, optionally preceded by up to three spaces,
1495
+ and followed by optional spaces until the end of the line.
1496
+
1497
+ If no end tag can be found for an extension start tag, the start tag is treated as if it has no
1498
+ body. If an invalid extension stop tag is found, it is ignored. If an invalid extension name is
1499
+ specified the extension (and the eventually specified body) are ignored.
1500
+
1501
+ The following extensions can be used with kramdown:
1502
+
1503
+ `comment`
1504
+
1505
+ : Treat the body text as a comment which does not show in the output.
1506
+
1507
+ `nomarkdown`
1508
+
1509
+ : Don't process the body with kramdown but output it as-is.
1510
+
1511
+ `options`
1512
+
1513
+ : Should be used without a body since the body is ignored. Is used for setting the global options
1514
+ for the kramdown processor (for example, to disable automatic header ID generation). Note that
1515
+ options that are used by the parser are immediately effective whereas all other options are not!
1516
+ This means, for example, that it is not possible to set converter options only for some part of
1517
+ a kramdown document.
1518
+
1519
+
1520
+
1521
+ {include_file: doc/links.markdown}