radiant 0.8.2 → 0.9.0.rc2

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 (1212) hide show
  1. data/CHANGELOG +258 -389
  2. data/CONTRIBUTORS +21 -0
  3. data/app/controllers/admin/layouts_controller.rb +2 -8
  4. data/app/controllers/admin/pages_controller.rb +0 -19
  5. data/app/controllers/admin/preferences_controller.rb +3 -4
  6. data/app/controllers/admin/references_controller.rb +1 -1
  7. data/app/controllers/admin/resource_controller.rb +11 -10
  8. data/app/controllers/admin/snippets_controller.rb +5 -6
  9. data/app/controllers/admin/users_controller.rb +15 -1
  10. data/app/controllers/admin/welcome_controller.rb +5 -5
  11. data/app/controllers/application_controller.rb +34 -2
  12. data/app/controllers/site_controller.rb +20 -6
  13. data/app/helpers/admin/layouts_helper.rb +19 -0
  14. data/app/helpers/admin/node_helper.rb +10 -10
  15. data/app/helpers/admin/pages_helper.rb +82 -22
  16. data/app/helpers/admin/references_helper.rb +6 -3
  17. data/app/helpers/admin/snippets_helper.rb +39 -0
  18. data/app/helpers/admin/users_helper.rb +2 -2
  19. data/app/helpers/application_helper.rb +93 -27
  20. data/app/models/layout.rb +3 -4
  21. data/app/models/page.rb +35 -20
  22. data/app/models/page_part.rb +4 -4
  23. data/app/models/radiant/config.rb +11 -7
  24. data/app/models/snippet.rb +5 -5
  25. data/app/models/standard_tags.rb +116 -20
  26. data/app/models/status.rb +3 -1
  27. data/app/models/user.rb +37 -33
  28. data/app/views/admin/extensions/index.html.haml +26 -25
  29. data/app/views/admin/layouts/_form.html.haml +26 -23
  30. data/app/views/admin/layouts/edit.html.haml +5 -3
  31. data/app/views/admin/layouts/index.html.haml +31 -32
  32. data/app/views/admin/layouts/new.html.haml +4 -2
  33. data/app/views/admin/layouts/remove.html.haml +9 -9
  34. data/app/views/admin/page_parts/_page_part.html.haml +11 -10
  35. data/app/views/admin/pages/_fields.html.haml +42 -48
  36. data/app/views/admin/pages/_meta_row.html.haml +2 -4
  37. data/app/views/admin/pages/_node.html.haml +5 -5
  38. data/app/views/admin/pages/_popups.html.haml +12 -29
  39. data/app/views/admin/pages/edit.html.haml +6 -3
  40. data/app/views/admin/pages/index.html.haml +22 -24
  41. data/app/views/admin/pages/new.html.haml +4 -3
  42. data/app/views/admin/pages/remove.html.haml +14 -17
  43. data/app/views/admin/preferences/edit.html.haml +36 -28
  44. data/app/views/admin/references/_tag_reference.haml +2 -2
  45. data/app/views/admin/references/filters.haml +6 -0
  46. data/app/views/admin/references/tags.haml +30 -0
  47. data/app/views/admin/snippets/_form.html.haml +22 -18
  48. data/app/views/admin/snippets/edit.html.haml +6 -2
  49. data/app/views/admin/snippets/index.html.haml +29 -29
  50. data/app/views/admin/snippets/new.html.haml +4 -2
  51. data/app/views/admin/snippets/remove.html.haml +9 -11
  52. data/app/views/admin/users/_avatar.html.haml +3 -0
  53. data/app/views/admin/users/_form.html.haml +47 -67
  54. data/app/views/admin/users/_password_fields.html.haml +18 -0
  55. data/app/views/admin/users/edit.html.haml +5 -1
  56. data/app/views/admin/users/index.html.haml +33 -30
  57. data/app/views/admin/users/new.html.haml +2 -1
  58. data/app/views/admin/users/remove.html.haml +8 -10
  59. data/app/views/admin/welcome/login.html.haml +19 -58
  60. data/app/views/layouts/application.html.haml +30 -29
  61. data/config/boot.rb +1 -1
  62. data/config/cucumber.yml +7 -0
  63. data/config/database.db2.yml +4 -1
  64. data/config/database.mysql.yml +5 -2
  65. data/config/database.postgresql.yml +5 -2
  66. data/config/database.sqlite.yml +4 -1
  67. data/config/database.sqlserver.yml +5 -2
  68. data/config/environment.rb +14 -2
  69. data/config/environments/cucumber.rb +29 -0
  70. data/config/environments/production.rb +6 -1
  71. data/config/environments/test.rb +6 -3
  72. data/config/initializers/haml.rb +2 -0
  73. data/config/initializers/pagination.rb +1 -0
  74. data/config/locales/en.yml +190 -0
  75. data/config/locales/en_available_tags.yml +454 -0
  76. data/config/routes.rb +2 -2
  77. data/db/migrate/20090226140109_add_user_language.rb +9 -0
  78. data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
  79. data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
  80. data/db/schema.rb +3 -2
  81. data/features/admin/content_negotiation.feature +4 -4
  82. data/features/admin/layouts_management.feature +2 -2
  83. data/features/admin/pages_management.feature +31 -17
  84. data/features/admin/snippets_management.feature +19 -17
  85. data/features/admin/user_permissions.feature +49 -41
  86. data/features/admin/user_preferences.feature +6 -6
  87. data/features/admin/users_management.feature +8 -9
  88. data/features/page_serving.feature +8 -8
  89. data/features/step_definitions/admin/admin_steps.rb +8 -2
  90. data/features/step_definitions/admin/content_negotiation_steps.rb +14 -5
  91. data/features/step_definitions/admin/pages_management_steps.rb +1 -1
  92. data/features/step_definitions/admin/users_management_steps.rb +3 -0
  93. data/features/step_definitions/page_serving_steps.rb +0 -19
  94. data/features/step_definitions/web_steps.rb +263 -0
  95. data/features/support/dataset.rb +9 -0
  96. data/features/support/env.rb +44 -14
  97. data/features/support/paths.rb +57 -12
  98. data/lib/generators/extension/extension_generator.rb +29 -1
  99. data/lib/generators/extension/templates/RSpecRakefile +14 -1
  100. data/lib/generators/extension/templates/Rakefile +17 -0
  101. data/lib/generators/extension/templates/en.yml +3 -0
  102. data/lib/generators/extension/templates/extension.rb +10 -10
  103. data/lib/generators/extension/templates/routes.rb +5 -0
  104. data/lib/generators/extension/templates/tasks.rake +27 -0
  105. data/lib/generators/extension/templates/test_helper.rb +1 -1
  106. data/lib/generators/instance/instance_generator.rb +3 -2
  107. data/lib/generators/instance/templates/databases/sqlserver.yml +2 -1
  108. data/lib/generators/instance/templates/instance_boot.rb +1 -1
  109. data/lib/generators/instance/templates/instance_environment.rb +8 -1
  110. data/lib/generators/language_extension/USAGE +27 -0
  111. data/lib/generators/language_extension/language_extension_generator.rb +49 -0
  112. data/lib/generators/language_extension/templates/README +3 -0
  113. data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
  114. data/lib/generators/language_extension/templates/Rakefile +25 -0
  115. data/lib/generators/language_extension/templates/available_tags.yml +553 -0
  116. data/lib/generators/language_extension/templates/cucumber.yml +1 -0
  117. data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
  118. data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
  119. data/lib/generators/language_extension/templates/extension.rb +8 -0
  120. data/lib/generators/language_extension/templates/functional_test.rb +15 -0
  121. data/lib/generators/language_extension/templates/lang.yml +181 -0
  122. data/lib/generators/language_extension/templates/spec.opts +6 -0
  123. data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
  124. data/lib/generators/language_extension/templates/tasks.rake +28 -0
  125. data/lib/generators/language_extension/templates/test_helper.rb +26 -0
  126. data/lib/login_system.rb +14 -17
  127. data/lib/radiant.rb +4 -3
  128. data/lib/radiant/admin_ui.rb +114 -58
  129. data/lib/radiant/available_locales.rb +31 -0
  130. data/lib/radiant/cache.rb +12 -0
  131. data/lib/radiant/extension.rb +29 -3
  132. data/lib/radiant/extension/script.rb +44 -13
  133. data/lib/radiant/extension_loader.rb +21 -7
  134. data/lib/radiant/initializer.rb +23 -23
  135. data/lib/radiant/pagination/link_renderer.rb +31 -0
  136. data/lib/radiant/setup.rb +1 -0
  137. data/lib/radiant/taggable.rb +2 -1
  138. data/lib/task_support.rb +21 -1
  139. data/lib/tasks/ci.rake +17 -0
  140. data/lib/tasks/cucumber.rake +39 -13
  141. data/lib/tasks/extensions.rake +12 -1
  142. data/lib/tasks/framework.rake +44 -8
  143. data/lib/tasks/prototype.rake +34 -0
  144. data/lib/tasks/release.rake +6 -4
  145. data/lib/tasks/rspec.rake +7 -7
  146. data/lib/tasks/translate.rake +59 -0
  147. data/lib/tasks/undefine.rake +4 -0
  148. data/lib/translation_support.rb +54 -0
  149. data/public/images/admin/add_tab.png +0 -0
  150. data/public/images/admin/avatar_32x32.png +0 -0
  151. data/public/images/admin/avatar_96x96.png +0 -0
  152. data/public/images/admin/{brown-bottom-line.gif → brown_bottom_line.gif} +0 -0
  153. data/public/images/admin/buttons_background.png +0 -0
  154. data/public/images/admin/calendar_down.gif +0 -0
  155. data/public/images/admin/collapse.png +0 -0
  156. data/public/images/admin/draft_page.png +0 -0
  157. data/public/images/admin/expand.png +0 -0
  158. data/public/images/admin/layout.png +0 -0
  159. data/public/images/admin/login_shadow.png +0 -0
  160. data/public/images/admin/metadata_toggle.png +0 -0
  161. data/public/images/admin/minus_disabled.png +0 -0
  162. data/public/images/admin/minus_grey.png +0 -0
  163. data/public/images/admin/navigation_background.gif +0 -0
  164. data/public/images/admin/navigation_secondary_background.png +0 -0
  165. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  166. data/public/images/admin/navigation_shadow.png +0 -0
  167. data/public/images/admin/navigation_tabs.png +0 -0
  168. data/public/images/admin/{new-homepage.png → new_homepage.png} +0 -0
  169. data/public/images/admin/{new-layout.png → new_layout.png} +0 -0
  170. data/public/images/admin/{new-snippet.png → new_snippet.png} +0 -0
  171. data/public/images/admin/{new-user.png → new_user.png} +0 -0
  172. data/public/images/admin/page.png +0 -0
  173. data/public/images/admin/plus_grey.png +0 -0
  174. data/public/images/admin/popup_border_background.png +0 -0
  175. data/public/images/admin/popup_border_bottom_left.png +0 -0
  176. data/public/images/admin/popup_border_bottom_right.png +0 -0
  177. data/public/images/admin/popup_border_top_left.png +0 -0
  178. data/public/images/admin/popup_border_top_right.png +0 -0
  179. data/public/images/admin/single_form_shadow.png +0 -0
  180. data/public/images/admin/snippet.png +0 -0
  181. data/public/images/admin/spacer.gif +0 -0
  182. data/public/images/admin/status_background.png +0 -0
  183. data/public/images/admin/status_bottom_left.png +0 -0
  184. data/public/images/admin/status_bottom_right.png +0 -0
  185. data/public/images/admin/status_spinner.gif +0 -0
  186. data/public/images/admin/status_top_left.png +0 -0
  187. data/public/images/admin/status_top_right.png +0 -0
  188. data/public/images/admin/tab_close.png +0 -0
  189. data/public/images/admin/vertical_tan_gradient.png +0 -0
  190. data/public/images/admin/view_site.png +0 -0
  191. data/public/images/admin/virtual_page.png +0 -0
  192. data/public/images/radiant-badge-color.png +0 -0
  193. data/public/javascripts/admin/application.js +82 -0
  194. data/public/javascripts/admin/codearea.js +165 -0
  195. data/public/javascripts/{controls.js → admin/controls.js} +78 -76
  196. data/public/javascripts/admin/cookie.js +80 -0
  197. data/public/javascripts/admin/dateinput.js +402 -0
  198. data/public/javascripts/{dragdrop.js → admin/dragdrop.js} +167 -166
  199. data/public/javascripts/{effects.js → admin/effects.js} +168 -174
  200. data/public/javascripts/admin/lowpro.js +340 -0
  201. data/public/javascripts/admin/overrides.js +1 -0
  202. data/public/javascripts/admin/pagestatus.js +17 -0
  203. data/public/javascripts/admin/popup.js +216 -0
  204. data/public/javascripts/{prototype.js → admin/prototype.js} +1574 -1020
  205. data/public/javascripts/admin/ruledtable.js +5 -5
  206. data/public/javascripts/admin/shortcuts.js +27 -0
  207. data/public/javascripts/admin/sitemap.js +37 -20
  208. data/public/javascripts/admin/status.js +233 -0
  209. data/public/javascripts/admin/tabcontrol.js +88 -100
  210. data/public/javascripts/admin/toggle.js +430 -0
  211. data/public/javascripts/admin/utility.js +52 -0
  212. data/public/stylesheets/admin/main.css +1088 -588
  213. data/public/stylesheets/admin/overrides.css +1 -0
  214. data/public/stylesheets/sass/admin/main.sass +26 -0
  215. data/public/stylesheets/sass/admin/modules/_links.sass +15 -0
  216. data/public/stylesheets/sass/admin/modules/_opacity.sass +7 -0
  217. data/public/stylesheets/sass/admin/modules/_rounded.sass +41 -0
  218. data/public/stylesheets/sass/admin/modules/_shadow.sass +9 -0
  219. data/public/stylesheets/sass/admin/overrides.sass +2 -0
  220. data/public/stylesheets/sass/admin/partials/_actions.sass +43 -0
  221. data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  222. data/public/stylesheets/sass/admin/partials/_base.sass +59 -0
  223. data/public/stylesheets/sass/admin/partials/_content.sass +199 -0
  224. data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  225. data/public/stylesheets/sass/admin/partials/_depreciated.sass +26 -0
  226. data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  227. data/public/stylesheets/sass/admin/partials/_forms.sass +309 -0
  228. data/public/stylesheets/sass/admin/partials/_header.sass +112 -0
  229. data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  230. data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  231. data/public/stylesheets/sass/admin/partials/_popup.sass +117 -0
  232. data/public/stylesheets/sass/admin/partials/_reset.sass +36 -0
  233. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +70 -0
  234. data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  235. data/rerun.txt +1 -0
  236. data/script/cucumber +9 -7
  237. data/spec/controllers/admin/export_controller_spec.rb +1 -1
  238. data/spec/controllers/admin/layouts_controller_spec.rb +5 -5
  239. data/spec/controllers/admin/pages_controller_spec.rb +26 -7
  240. data/spec/controllers/admin/preferences_controller_spec.rb +5 -6
  241. data/spec/controllers/admin/references_controller_spec.rb +1 -1
  242. data/spec/controllers/admin/snippets_controller_spec.rb +6 -6
  243. data/spec/controllers/admin/users_controller_spec.rb +10 -1
  244. data/spec/controllers/admin/welcome_controller_spec.rb +3 -3
  245. data/spec/controllers/application_controller_spec.rb +14 -0
  246. data/spec/controllers/site_controller_spec.rb +48 -1
  247. data/spec/datasets/pages_dataset.rb +5 -1
  248. data/spec/datasets/users_dataset.rb +23 -10
  249. data/spec/generators/extension_controller_generator_spec.rb +16 -6
  250. data/spec/generators/extension_generator_spec.rb +49 -18
  251. data/spec/generators/extension_generators_spec_helper.rb +53 -26
  252. data/spec/generators/extension_mailer_generator_spec.rb +3 -3
  253. data/spec/generators/instance_generator_spec.rb +152 -0
  254. data/spec/helpers/admin/node_helper_spec.rb +8 -8
  255. data/spec/helpers/admin/references_helper_spec.rb +4 -4
  256. data/spec/helpers/admin/users_helper_spec.rb +2 -2
  257. data/spec/helpers/application_helper_spec.rb +68 -32
  258. data/spec/lib/login_system_spec.rb +1 -1
  259. data/spec/lib/radiant/admin_ui/nav_tabs_spec.rb +139 -0
  260. data/spec/lib/radiant/admin_ui_spec.rb +30 -131
  261. data/spec/lib/radiant/available_locales_spec.rb +13 -0
  262. data/spec/lib/radiant/extension/script_spec.rb +24 -11
  263. data/spec/lib/radiant/extension_loader_spec.rb +37 -7
  264. data/spec/lib/radiant/extension_spec.rb +32 -1
  265. data/spec/lib/radiant/initializer_spec.rb +32 -2
  266. data/spec/lib/radiant/taggable_spec.rb +10 -8
  267. data/spec/lib/radiant_spec.rb +5 -1
  268. data/spec/lib/task_support_spec.rb +31 -0
  269. data/spec/lib/translation_support_spec.rb +16 -0
  270. data/spec/matchers/generator_matchers.rb +145 -147
  271. data/spec/matchers/render_form_errors_matcher.rb +1 -1
  272. data/spec/models/page_spec.rb +36 -0
  273. data/spec/models/radiant/config_spec.rb +2 -2
  274. data/spec/models/standard_tags_spec.rb +96 -26
  275. data/spec/models/user_spec.rb +32 -8
  276. data/test/fixtures/extensions/{01_basic → basic}/app/controllers/basic_extension_controller.rb +0 -0
  277. data/test/fixtures/extensions/{01_basic → basic}/app/metal/basic_metal.rb +0 -0
  278. data/test/fixtures/extensions/{01_basic → basic}/app/models/basic_extension_mailer.rb +0 -0
  279. data/test/fixtures/extensions/{01_basic → basic}/app/models/basic_extension_model.rb +0 -0
  280. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension/index.html.erb +0 -0
  281. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension/override.html.erb +0 -0
  282. data/test/fixtures/extensions/{01_basic → basic}/app/views/basic_extension_mailer/message.text.html.erb +0 -0
  283. data/test/fixtures/extensions/{01_basic → basic}/basic_extension.rb +3 -4
  284. data/test/fixtures/extensions/{01_basic → basic}/db/migrate/200812131420_create_initial_schema.rb +0 -0
  285. data/test/fixtures/extensions/{01_basic → basic}/db/migrate/200812131421_modify_initial_schema.rb +0 -0
  286. data/test/fixtures/extensions/{01_basic → basic}/lib/new_module.rb +0 -0
  287. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/multiple/init.rb +0 -0
  288. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/multiple/lib/multiple.rb +0 -0
  289. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/plugin_normal/init.rb +0 -0
  290. data/test/fixtures/extensions/{01_basic → basic}/vendor/plugins/plugin_normal/lib/normal_plugin.rb +0 -0
  291. data/test/fixtures/extensions/load_order_blue/load_order_blue_extension.rb +0 -3
  292. data/test/fixtures/extensions/load_order_green/load_order_green_extension.rb +0 -3
  293. data/test/fixtures/extensions/load_order_red/load_order_red_extension.rb +0 -3
  294. data/test/fixtures/extensions/locale/config/locales/en-uk.yml +3 -0
  295. data/test/fixtures/extensions/locale/config/locales/en.yml +3 -0
  296. data/test/fixtures/extensions/locale/locale_extension.rb +5 -0
  297. data/test/fixtures/extensions/{02_overriding → overriding}/app/metal/basic_metal.rb +0 -0
  298. data/test/fixtures/extensions/{02_overriding → overriding}/app/views/basic_extension/override.html.erb +0 -0
  299. data/test/fixtures/extensions/{02_overriding → overriding}/overriding_extension.rb +0 -3
  300. data/test/fixtures/extensions/{02_overriding → overriding}/vendor/plugins/multiple/init.rb +0 -0
  301. data/test/fixtures/extensions/{02_overriding → overriding}/vendor/plugins/multiple/lib/multiple.rb +0 -0
  302. data/test/fixtures/extensions/routed/config/routes.rb +1 -0
  303. data/test/fixtures/extensions/routed/routed_extension.rb +2 -0
  304. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/01_first.rb +0 -0
  305. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/02_second.rb +0 -0
  306. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/03_pending.rb +0 -0
  307. data/test/fixtures/extensions/{03_upgrading → upgrading}/db/migrate/04_dont_run.rb +0 -0
  308. data/test/fixtures/extensions/{03_upgrading → upgrading}/upgrading_extension.rb +0 -0
  309. data/test/fixtures/gems/misnamed_ext-0.0.0/misnamed_ext_extension.rb +2 -0
  310. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/gem_ext_extension.rb +2 -0
  311. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/lib/gem_ext.rb +3 -0
  312. data/test/test_helper.rb +1 -1
  313. data/vendor/extensions/archive/archive_extension.rb +1 -1
  314. data/vendor/extensions/dutch_language_pack/README +3 -0
  315. data/vendor/extensions/dutch_language_pack/Rakefile +123 -0
  316. data/vendor/extensions/dutch_language_pack/config/locales/nl.yml +187 -0
  317. data/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml +553 -0
  318. data/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb +9 -0
  319. data/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake +28 -0
  320. data/vendor/extensions/french_language_pack/README +3 -0
  321. data/vendor/extensions/french_language_pack/Rakefile +123 -0
  322. data/vendor/extensions/french_language_pack/config/locales/fr.yml +184 -0
  323. data/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml +553 -0
  324. data/vendor/extensions/french_language_pack/french_language_pack_extension.rb +9 -0
  325. data/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake +28 -0
  326. data/vendor/extensions/german_language_pack/README +3 -0
  327. data/vendor/extensions/german_language_pack/Rakefile +123 -0
  328. data/vendor/extensions/german_language_pack/config/locales/de.yml +184 -0
  329. data/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml +553 -0
  330. data/vendor/extensions/german_language_pack/german_language_pack_extension.rb +9 -0
  331. data/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake +28 -0
  332. data/vendor/extensions/italian_language_pack/README +3 -0
  333. data/vendor/extensions/italian_language_pack/Rakefile +123 -0
  334. data/vendor/extensions/italian_language_pack/config/locales/it.yml +184 -0
  335. data/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml +553 -0
  336. data/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb +8 -0
  337. data/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake +28 -0
  338. data/vendor/extensions/japanese_language_pack/README +3 -0
  339. data/vendor/extensions/japanese_language_pack/Rakefile +123 -0
  340. data/vendor/extensions/japanese_language_pack/config/locales/ja.yml +184 -0
  341. data/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml +553 -0
  342. data/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb +9 -0
  343. data/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake +28 -0
  344. data/vendor/extensions/markdown_filter/lib/markdown_filter.rb +5 -1
  345. data/vendor/extensions/markdown_filter/lib/markdown_tags.rb +4 -4
  346. data/vendor/extensions/markdown_filter/markdown.html +122 -122
  347. data/vendor/extensions/markdown_filter/markdown_filter_extension.rb +2 -2
  348. data/vendor/extensions/markdown_filter/smartypants.html +47 -47
  349. data/vendor/extensions/markdown_filter/spec/models/markdown_filter_spec.rb +1 -1
  350. data/vendor/extensions/markdown_filter/vendor/kramdown/AUTHORS +1 -0
  351. data/vendor/extensions/markdown_filter/vendor/kramdown/COPYING +24 -0
  352. data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +2624 -0
  353. data/vendor/extensions/markdown_filter/vendor/kramdown/GPL +674 -0
  354. data/vendor/extensions/markdown_filter/vendor/kramdown/README +20 -0
  355. data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +283 -0
  356. data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -0
  357. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/benchmark.rb +34 -0
  358. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/generate_data.rb +110 -0
  359. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-jruby-1.4.0.dat +7 -0
  360. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.6.dat +7 -0
  361. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.7.dat +7 -0
  362. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.1p243.dat +7 -0
  363. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.2dev.dat +7 -0
  364. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdbasics.text +306 -0
  365. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdsyntax.text +888 -0
  366. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-jruby-1.4.0.dat +7 -0
  367. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.6.dat +7 -0
  368. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.7.dat +7 -0
  369. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.1p243.dat +7 -0
  370. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.2dev.dat +7 -0
  371. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/testing.sh +9 -0
  372. data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/timing.sh +10 -0
  373. data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +71 -0
  374. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.css +293 -0
  375. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +78 -0
  376. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +91 -0
  377. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/installation.page +90 -0
  378. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.feed +10 -0
  379. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.page +27 -0
  380. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +551 -0
  381. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +1451 -0
  382. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/tests.page +51 -0
  383. data/vendor/extensions/markdown_filter/vendor/kramdown/doc/virtual +2 -0
  384. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown.rb +23 -0
  385. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/compatibility.rb +34 -0
  386. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +36 -0
  387. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/base.rb +75 -0
  388. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +325 -0
  389. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +516 -0
  390. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +145 -0
  391. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/error.rb +27 -0
  392. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +262 -0
  393. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser.rb +33 -0
  394. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +292 -0
  395. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +102 -0
  396. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +42 -0
  397. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blank_line.rb +43 -0
  398. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +42 -0
  399. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +58 -0
  400. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codespan.rb +57 -0
  401. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/emphasis.rb +69 -0
  402. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/eob.rb +39 -0
  403. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +38 -0
  404. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +109 -0
  405. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +73 -0
  406. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +81 -0
  407. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/horizontal_rule.rb +39 -0
  408. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +253 -0
  409. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +38 -0
  410. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/line_break.rb +38 -0
  411. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +153 -0
  412. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +225 -0
  413. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +44 -0
  414. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/smart_quotes.rb +213 -0
  415. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +125 -0
  416. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +48 -0
  417. data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +28 -0
  418. data/vendor/extensions/markdown_filter/vendor/kramdown/setup.rb +1585 -0
  419. data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +58 -0
  420. data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +39 -0
  421. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.html +1 -0
  422. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.text +3 -0
  423. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.html +1 -0
  424. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.text +6 -0
  425. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.html +1 -0
  426. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.text +3 -0
  427. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.html +1 -0
  428. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.text +3 -0
  429. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.html +2 -0
  430. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.text +5 -0
  431. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.html +18 -0
  432. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.text +19 -0
  433. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.html +5 -0
  434. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.text +5 -0
  435. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.html +1 -0
  436. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.text +1 -0
  437. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.html +4 -0
  438. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.text +4 -0
  439. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.html +34 -0
  440. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.text +32 -0
  441. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.html +1 -0
  442. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.text +1 -0
  443. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.html +31 -0
  444. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.text +36 -0
  445. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.html +1 -0
  446. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.text +2 -0
  447. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.html +17 -0
  448. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.options +1 -0
  449. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.text +19 -0
  450. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.html +25 -0
  451. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.text +14 -0
  452. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.html +9 -0
  453. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.text +5 -0
  454. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.html +4 -0
  455. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.text +2 -0
  456. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.html +8 -0
  457. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.text +4 -0
  458. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.html +15 -0
  459. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.text +11 -0
  460. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.html +4 -0
  461. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.text +4 -0
  462. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.html +2 -0
  463. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.text +1 -0
  464. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.html +13 -0
  465. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.text +10 -0
  466. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.html +7 -0
  467. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.text +9 -0
  468. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.html +3 -0
  469. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.text +3 -0
  470. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.html +13 -0
  471. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.text +12 -0
  472. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.html +6 -0
  473. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.text +5 -0
  474. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.html +7 -0
  475. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.text +7 -0
  476. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.html +19 -0
  477. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.text +19 -0
  478. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.html +3 -0
  479. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.text +3 -0
  480. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.html +3 -0
  481. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.text +3 -0
  482. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.html +17 -0
  483. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.text +17 -0
  484. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.html +9 -0
  485. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.text +5 -0
  486. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.html +38 -0
  487. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.text +25 -0
  488. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.html +111 -0
  489. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.text +66 -0
  490. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.html +17 -0
  491. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.text +7 -0
  492. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.html +39 -0
  493. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.text +18 -0
  494. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.html +19 -0
  495. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.text +13 -0
  496. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.html +61 -0
  497. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.text +43 -0
  498. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.html +3 -0
  499. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.text +1 -0
  500. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +29 -0
  501. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +19 -0
  502. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +13 -0
  503. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.text +12 -0
  504. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.html +6 -0
  505. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.options +1 -0
  506. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.text +6 -0
  507. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.html +14 -0
  508. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.options +1 -0
  509. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.text +14 -0
  510. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.html +1 -0
  511. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.options +1 -0
  512. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.text +1 -0
  513. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.html +15 -0
  514. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.options +1 -0
  515. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.text +13 -0
  516. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.html +3 -0
  517. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.text +5 -0
  518. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.html +5 -0
  519. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.text +5 -0
  520. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.html +38 -0
  521. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.text +38 -0
  522. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.html +24 -0
  523. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.text +24 -0
  524. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +32 -0
  525. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.options +1 -0
  526. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.text +30 -0
  527. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.html +12 -0
  528. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.options +1 -0
  529. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.text +9 -0
  530. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.html +21 -0
  531. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.options +1 -0
  532. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.text +17 -0
  533. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.html +13 -0
  534. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.text +12 -0
  535. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.html +62 -0
  536. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.options +1 -0
  537. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.text +57 -0
  538. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.html +2 -0
  539. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.text +8 -0
  540. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -0
  541. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.options +1 -0
  542. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.text +2 -0
  543. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +20 -0
  544. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.text +27 -0
  545. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.html +5 -0
  546. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +11 -0
  547. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +6 -0
  548. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +11 -0
  549. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.html +6 -0
  550. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +11 -0
  551. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +24 -0
  552. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +28 -0
  553. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.html +10 -0
  554. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.text +5 -0
  555. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.html +7 -0
  556. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.text +7 -0
  557. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.html +1 -0
  558. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.text +1 -0
  559. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.html +13 -0
  560. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.text +10 -0
  561. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.html +2 -0
  562. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.text +2 -0
  563. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.html +10 -0
  564. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.text +6 -0
  565. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.html +8 -0
  566. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.text +5 -0
  567. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.html +8 -0
  568. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.text +7 -0
  569. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.html +4 -0
  570. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.text +2 -0
  571. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.html +3 -0
  572. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.text +4 -0
  573. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.html +38 -0
  574. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.text +24 -0
  575. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.html +3 -0
  576. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.text +3 -0
  577. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.html +65 -0
  578. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.text +25 -0
  579. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.html +103 -0
  580. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.text +32 -0
  581. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.html +3 -0
  582. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.text +3 -0
  583. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.html +61 -0
  584. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.text +16 -0
  585. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.html +46 -0
  586. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.text +28 -0
  587. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.html +3 -0
  588. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.text +3 -0
  589. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.html +5 -0
  590. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.text +5 -0
  591. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.html +12 -0
  592. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.text +14 -0
  593. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.html +40 -0
  594. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.text +42 -0
  595. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.html +8 -0
  596. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.text +22 -0
  597. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.html +3 -0
  598. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.text +3 -0
  599. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.html +32 -0
  600. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.text +42 -0
  601. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.html +3 -0
  602. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.text +3 -0
  603. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.html +9 -0
  604. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.text +9 -0
  605. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.html +34 -0
  606. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.text +30 -0
  607. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.html +46 -0
  608. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.text +46 -0
  609. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.html +5 -0
  610. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.text +5 -0
  611. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.html +1 -0
  612. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.text +1 -0
  613. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.html +16 -0
  614. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.text +16 -0
  615. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.html +14 -0
  616. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.text +18 -0
  617. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.html +12 -0
  618. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.options +1 -0
  619. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.text +4 -0
  620. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.html +46 -0
  621. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.text +26 -0
  622. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.html +1 -0
  623. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.text +2 -0
  624. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.html +1 -0
  625. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.text +1 -0
  626. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.html +6 -0
  627. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.text +6 -0
  628. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.html +28 -0
  629. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.text +28 -0
  630. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.html +9 -0
  631. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.text +9 -0
  632. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.html +41 -0
  633. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.text +41 -0
  634. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.html +5 -0
  635. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.text +5 -0
  636. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.html +11 -0
  637. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.text +11 -0
  638. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.html +4 -0
  639. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.text +4 -0
  640. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.html +1 -0
  641. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.text +1 -0
  642. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.html +1 -0
  643. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.text +1 -0
  644. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +15 -0
  645. data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +15 -0
  646. data/vendor/extensions/russian_language_pack/README +3 -0
  647. data/vendor/extensions/russian_language_pack/Rakefile +123 -0
  648. data/vendor/extensions/russian_language_pack/config/locales/ru.yml +180 -0
  649. data/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml +553 -0
  650. data/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake +28 -0
  651. data/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb +9 -0
  652. data/vendor/extensions/textile_filter/textile.html +114 -114
  653. data/vendor/plugins/dataset/lib/dataset/extensions/cucumber.rb +5 -4
  654. data/vendor/plugins/dataset/lib/dataset/load.rb +0 -10
  655. data/vendor/plugins/dataset/lib/dataset/session.rb +4 -20
  656. data/vendor/plugins/dataset/lib/dataset/session_binding.rb +5 -15
  657. data/vendor/plugins/haml/CONTRIBUTING +4 -0
  658. data/vendor/plugins/haml/MIT-LICENSE +1 -1
  659. data/vendor/plugins/haml/README.md +357 -0
  660. data/vendor/plugins/haml/Rakefile +233 -26
  661. data/vendor/plugins/haml/TODO +47 -0
  662. data/vendor/plugins/haml/VERSION +1 -1
  663. data/vendor/plugins/haml/VERSION_NAME +1 -0
  664. data/vendor/plugins/haml/doc-src/FAQ.md +175 -0
  665. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +479 -0
  666. data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +1184 -0
  667. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +695 -0
  668. data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +1150 -0
  669. data/vendor/plugins/haml/extra/haml-mode.el +514 -97
  670. data/vendor/plugins/haml/extra/sass-mode.el +155 -38
  671. data/vendor/plugins/haml/extra/update_watch.rb +13 -0
  672. data/vendor/plugins/haml/haml.gemspec +51 -0
  673. data/vendor/plugins/haml/init.rb +11 -3
  674. data/vendor/plugins/haml/lib/haml.rb +15 -993
  675. data/vendor/plugins/haml/lib/haml/buffer.rb +147 -85
  676. data/vendor/plugins/haml/lib/haml/engine.rb +137 -103
  677. data/vendor/plugins/haml/lib/haml/error.rb +7 -7
  678. data/vendor/plugins/haml/lib/haml/exec.rb +141 -45
  679. data/vendor/plugins/haml/lib/haml/filters.rb +108 -43
  680. data/vendor/plugins/haml/lib/haml/helpers.rb +267 -168
  681. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +48 -38
  682. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +135 -138
  683. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +125 -0
  684. data/vendor/plugins/haml/lib/haml/html.rb +146 -100
  685. data/vendor/plugins/haml/lib/haml/precompiler.rb +528 -277
  686. data/vendor/plugins/haml/lib/haml/shared.rb +78 -0
  687. data/vendor/plugins/haml/lib/haml/template.rb +49 -15
  688. data/vendor/plugins/haml/lib/haml/template/patch.rb +2 -2
  689. data/vendor/plugins/haml/lib/haml/template/plugin.rb +9 -6
  690. data/vendor/plugins/haml/lib/haml/util.rb +299 -6
  691. data/vendor/plugins/haml/lib/haml/version.rb +30 -13
  692. data/vendor/plugins/haml/lib/sass.rb +7 -856
  693. data/vendor/plugins/haml/lib/sass/css.rb +171 -161
  694. data/vendor/plugins/haml/lib/sass/engine.rb +365 -316
  695. data/vendor/plugins/haml/lib/sass/environment.rb +79 -0
  696. data/vendor/plugins/haml/lib/sass/error.rb +33 -11
  697. data/vendor/plugins/haml/lib/sass/files.rb +147 -0
  698. data/vendor/plugins/haml/lib/sass/plugin.rb +177 -123
  699. data/vendor/plugins/haml/lib/sass/plugin/merb.rb +9 -16
  700. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +65 -0
  701. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +15 -15
  702. data/vendor/plugins/haml/lib/sass/repl.rb +58 -0
  703. data/vendor/plugins/haml/lib/sass/script.rb +62 -0
  704. data/vendor/plugins/haml/lib/sass/script/bool.rb +17 -0
  705. data/vendor/plugins/haml/lib/sass/script/color.rb +222 -0
  706. data/vendor/plugins/haml/lib/sass/script/funcall.rb +50 -0
  707. data/vendor/plugins/haml/lib/sass/script/functions.rb +257 -0
  708. data/vendor/plugins/haml/lib/sass/script/lexer.rb +194 -0
  709. data/vendor/plugins/haml/lib/sass/script/literal.rb +177 -0
  710. data/vendor/plugins/haml/lib/sass/script/node.rb +14 -0
  711. data/vendor/plugins/haml/lib/sass/script/number.rb +383 -0
  712. data/vendor/plugins/haml/lib/sass/script/operation.rb +45 -0
  713. data/vendor/plugins/haml/lib/sass/script/parser.rb +222 -0
  714. data/vendor/plugins/haml/lib/sass/script/string.rb +12 -0
  715. data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +34 -0
  716. data/vendor/plugins/haml/lib/sass/script/variable.rb +31 -0
  717. data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +74 -10
  718. data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +30 -0
  719. data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +39 -17
  720. data/vendor/plugins/haml/lib/sass/tree/for_node.rb +48 -0
  721. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +54 -0
  722. data/vendor/plugins/haml/lib/sass/tree/import_node.rb +65 -0
  723. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +29 -0
  724. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +48 -0
  725. data/vendor/plugins/haml/lib/sass/tree/node.rb +216 -11
  726. data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +121 -0
  727. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +182 -51
  728. data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +34 -0
  729. data/vendor/plugins/haml/lib/sass/tree/while_node.rb +31 -0
  730. data/vendor/plugins/haml/test/haml/engine_test.rb +659 -44
  731. data/vendor/plugins/haml/test/haml/helper_test.rb +60 -2
  732. data/vendor/plugins/haml/test/haml/html2haml_test.rb +60 -0
  733. data/vendor/plugins/haml/test/haml/results/content_for_layout.xhtml +0 -3
  734. data/vendor/plugins/haml/test/haml/results/filters.xhtml +2 -0
  735. data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +3 -3
  736. data/vendor/plugins/haml/test/haml/results/list.xhtml +1 -1
  737. data/vendor/plugins/haml/test/haml/results/standard.xhtml +120 -0
  738. data/vendor/plugins/haml/test/haml/rhtml/standard.rhtml +2 -2
  739. data/vendor/plugins/haml/test/haml/template_test.rb +117 -11
  740. data/vendor/plugins/haml/test/haml/templates/content_for_layout.haml +0 -2
  741. data/vendor/plugins/haml/test/haml/templates/list.haml +1 -1
  742. data/vendor/plugins/haml/test/haml/templates/standard.haml +2 -2
  743. data/vendor/plugins/haml/test/haml/templates/standard_ugly.haml +2 -2
  744. data/vendor/plugins/haml/test/haml/util_test.rb +107 -0
  745. data/vendor/plugins/haml/test/linked_rails.rb +11 -2
  746. data/vendor/plugins/haml/test/sass/css2sass_test.rb +83 -24
  747. data/vendor/plugins/haml/test/sass/engine_test.rb +743 -67
  748. data/vendor/plugins/haml/test/sass/functions_test.rb +174 -0
  749. data/vendor/plugins/haml/test/sass/more_results/more1.css +9 -0
  750. data/vendor/plugins/haml/test/sass/more_results/more1_with_line_comments.css +26 -0
  751. data/vendor/plugins/haml/test/sass/more_results/more_import.css +29 -0
  752. data/vendor/plugins/haml/test/sass/more_templates/_more_partial.sass +2 -0
  753. data/vendor/plugins/haml/test/sass/more_templates/more1.sass +23 -0
  754. data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +11 -0
  755. data/vendor/plugins/haml/test/sass/plugin_test.rb +130 -48
  756. data/vendor/plugins/haml/test/sass/results/line_numbers.css +49 -0
  757. data/vendor/plugins/haml/test/sass/results/script.css +16 -0
  758. data/vendor/plugins/haml/test/sass/results/subdir/subdir.css +2 -0
  759. data/vendor/plugins/haml/test/sass/results/units.css +11 -0
  760. data/vendor/plugins/haml/test/sass/script_test.rb +267 -0
  761. data/vendor/plugins/haml/test/sass/templates/complex.sass +0 -3
  762. data/vendor/plugins/haml/test/sass/templates/import.sass +2 -2
  763. data/vendor/plugins/haml/test/sass/templates/importee.sass +7 -2
  764. data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +13 -0
  765. data/vendor/plugins/haml/test/sass/templates/script.sass +101 -0
  766. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  767. data/vendor/plugins/haml/test/sass/templates/subdir/subdir.sass +2 -2
  768. data/vendor/plugins/haml/test/sass/templates/units.sass +11 -0
  769. data/vendor/plugins/haml/test/test_helper.rb +26 -4
  770. data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +22 -0
  771. data/vendor/plugins/haml/yard/default/layout/html/footer.erb +12 -0
  772. data/vendor/plugins/haml/yard/inherited_hash.rb +41 -0
  773. data/vendor/radius/CHANGELOG +8 -0
  774. data/vendor/radius/Manifest.txt +21 -0
  775. data/vendor/radius/{QUICKSTART → QUICKSTART.rdoc} +11 -12
  776. data/vendor/radius/{README → README.rdoc} +38 -17
  777. data/vendor/radius/Rakefile +31 -86
  778. data/vendor/radius/lib/radius.rb +10 -502
  779. data/vendor/radius/lib/radius/context.rb +139 -0
  780. data/vendor/radius/lib/radius/delegating_open_struct.rb +31 -0
  781. data/vendor/radius/lib/radius/error.rb +43 -0
  782. data/vendor/radius/lib/radius/parse_tag.rb +24 -0
  783. data/vendor/radius/lib/radius/parser.rb +65 -0
  784. data/vendor/radius/lib/radius/parser/scan.rb +1247 -0
  785. data/vendor/radius/lib/radius/parser/scan.rl +123 -0
  786. data/vendor/radius/lib/radius/tag_binding.rb +71 -0
  787. data/vendor/radius/lib/radius/tag_definitions.rb +78 -0
  788. data/vendor/radius/lib/radius/utility.rb +30 -0
  789. data/vendor/radius/lib/radius/version.rb +14 -0
  790. data/vendor/radius/radius.gemspec +38 -0
  791. data/vendor/radius/tasks/scan.rake +27 -0
  792. data/vendor/radius/test/context_test.rb +61 -0
  793. data/vendor/radius/test/{radius_test.rb → parser_test.rb} +45 -82
  794. data/vendor/radius/test/quickstart_test.rb +153 -0
  795. data/vendor/radius/test/test_helper.rb +28 -0
  796. data/vendor/rails/Rakefile +81 -0
  797. data/vendor/rails/actionmailer/CHANGELOG +4 -0
  798. data/vendor/rails/actionmailer/Rakefile +1 -1
  799. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +2 -0
  800. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  801. data/vendor/rails/actionmailer/lib/actionmailer.rb +1 -0
  802. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +1 -1
  803. data/vendor/rails/actionmailer/test/mail_service_test.rb +3 -1
  804. data/vendor/rails/actionpack/CHANGELOG +12 -0
  805. data/vendor/rails/actionpack/Rakefile +1 -1
  806. data/vendor/rails/actionpack/lib/action_controller.rb +3 -1
  807. data/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +19 -3
  808. data/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +16 -10
  809. data/vendor/rails/actionpack/lib/action_controller/base.rb +1 -1
  810. data/vendor/rails/actionpack/lib/action_controller/caching.rb +1 -0
  811. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +2 -1
  812. data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +3 -2
  813. data/vendor/rails/actionpack/lib/action_controller/integration.rb +15 -3
  814. data/vendor/rails/actionpack/lib/action_controller/layout.rb +6 -1
  815. data/vendor/rails/actionpack/lib/action_controller/middlewares.rb +2 -0
  816. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +6 -21
  817. data/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +36 -0
  818. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +6 -2
  819. data/vendor/rails/actionpack/lib/action_controller/response.rb +2 -1
  820. data/vendor/rails/actionpack/lib/action_controller/string_coercion.rb +29 -0
  821. data/vendor/rails/actionpack/lib/action_controller/test_case.rb +6 -1
  822. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +1 -1
  823. data/vendor/rails/actionpack/lib/action_controller/translation.rb +2 -2
  824. data/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +2 -2
  825. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
  826. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  827. data/vendor/rails/actionpack/lib/action_view.rb +3 -3
  828. data/vendor/rails/actionpack/lib/action_view/base.rb +6 -1
  829. data/vendor/rails/actionpack/lib/action_view/erb/util.rb +6 -0
  830. data/vendor/rails/actionpack/lib/action_view/helpers.rb +2 -0
  831. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +3 -3
  832. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +2 -2
  833. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +2 -2
  834. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +27 -15
  835. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +32 -11
  836. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +1 -1
  837. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +3 -3
  838. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +6 -1
  839. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1 -1
  840. data/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +9 -0
  841. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +10 -2
  842. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +4 -4
  843. data/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +1 -1
  844. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +3 -3
  845. data/vendor/rails/actionpack/lib/action_view/locale/en.yml +3 -0
  846. data/vendor/rails/actionpack/lib/action_view/partials.rb +1 -1
  847. data/vendor/rails/actionpack/lib/action_view/safe_buffer.rb +28 -0
  848. data/vendor/rails/actionpack/lib/action_view/template.rb +8 -2
  849. data/vendor/rails/actionpack/lib/action_view/test_case.rb +102 -27
  850. data/vendor/rails/actionpack/lib/actionpack.rb +1 -0
  851. data/vendor/rails/actionpack/test/controller/cookie_test.rb +7 -0
  852. data/vendor/rails/actionpack/test/controller/dom_assertions_test.rb +53 -0
  853. data/vendor/rails/actionpack/test/controller/filter_params_test.rb +1 -0
  854. data/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +1 -0
  855. data/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +22 -0
  856. data/vendor/rails/actionpack/test/controller/integration_test.rb +38 -0
  857. data/vendor/rails/actionpack/test/controller/layout_test.rb +11 -0
  858. data/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +4 -0
  859. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +19 -1
  860. data/vendor/rails/actionpack/test/controller/routing_test.rb +23 -15
  861. data/vendor/rails/actionpack/test/controller/session/test_session_test.rb +2 -2
  862. data/vendor/rails/actionpack/test/fixtures/layout_tests/abs_path_layout.rhtml +1 -0
  863. data/vendor/rails/actionpack/test/fixtures/test/_from_helper.erb +1 -0
  864. data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +1 -1
  865. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +12 -0
  866. data/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +6 -6
  867. data/vendor/rails/actionpack/test/template/compiled_templates_test.rb +2 -1
  868. data/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +10 -9
  869. data/vendor/rails/actionpack/test/template/date_helper_test.rb +29 -13
  870. data/vendor/rails/actionpack/test/template/form_helper_test.rb +90 -10
  871. data/vendor/rails/actionpack/test/template/number_helper_test.rb +4 -0
  872. data/vendor/rails/actionpack/test/template/raw_output_helper_test.rb +21 -0
  873. data/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +10 -1
  874. data/vendor/rails/actionpack/test/template/tag_helper_test.rb +1 -0
  875. data/vendor/rails/actionpack/test/view/safe_buffer_test.rb +36 -0
  876. data/vendor/rails/actionpack/test/view/test_case_test.rb +173 -5
  877. data/vendor/rails/activemodel/CHANGES +12 -0
  878. data/vendor/rails/activemodel/README +21 -0
  879. data/vendor/rails/activemodel/Rakefile +24 -0
  880. data/vendor/rails/activemodel/lib/active_model.rb +5 -0
  881. data/vendor/rails/activemodel/lib/active_model/base.rb +8 -0
  882. data/vendor/rails/activemodel/lib/active_model/callbacks.rb +7 -0
  883. data/vendor/rails/activemodel/lib/active_model/core.rb +7 -0
  884. data/vendor/rails/activemodel/lib/active_model/deprecated_error_methods.rb +38 -0
  885. data/vendor/rails/activemodel/lib/active_model/errors.rb +82 -0
  886. data/vendor/rails/activemodel/lib/active_model/observing.rb +98 -0
  887. data/vendor/rails/activemodel/lib/active_model/state_machine.rb +68 -0
  888. data/vendor/rails/activemodel/lib/active_model/state_machine/event.rb +64 -0
  889. data/vendor/rails/activemodel/lib/active_model/state_machine/machine.rb +78 -0
  890. data/vendor/rails/activemodel/lib/active_model/state_machine/state.rb +47 -0
  891. data/vendor/rails/activemodel/lib/active_model/state_machine/state_transition.rb +40 -0
  892. data/vendor/rails/activemodel/lib/active_model/validations.rb +126 -0
  893. data/vendor/rails/activemodel/lib/active_model/validations/acceptance.rb +45 -0
  894. data/vendor/rails/activemodel/lib/active_model/validations/associated.rb +46 -0
  895. data/vendor/rails/activemodel/lib/active_model/validations/confirmation.rb +44 -0
  896. data/vendor/rails/activemodel/lib/active_model/validations/exclusion.rb +37 -0
  897. data/vendor/rails/activemodel/lib/active_model/validations/format.rb +39 -0
  898. data/vendor/rails/activemodel/lib/active_model/validations/inclusion.rb +37 -0
  899. data/vendor/rails/activemodel/lib/active_model/validations/length.rb +95 -0
  900. data/vendor/rails/activemodel/lib/active_model/validations/numericality.rb +80 -0
  901. data/vendor/rails/activemodel/lib/active_model/validations/presence.rb +42 -0
  902. data/vendor/rails/activemodel/lib/active_model/validations/uniqueness.rb +104 -0
  903. data/vendor/rails/activemodel/test/observing_test.rb +121 -0
  904. data/vendor/rails/activemodel/test/state_machine/event_test.rb +49 -0
  905. data/vendor/rails/activemodel/test/state_machine/machine_test.rb +43 -0
  906. data/vendor/rails/activemodel/test/state_machine/state_test.rb +72 -0
  907. data/vendor/rails/activemodel/test/state_machine/state_transition_test.rb +84 -0
  908. data/vendor/rails/activemodel/test/state_machine_test.rb +312 -0
  909. data/vendor/rails/activemodel/test/test_helper.rb +21 -0
  910. data/vendor/rails/activerecord/CHANGELOG +8 -0
  911. data/vendor/rails/activerecord/MIT-LICENSE +20 -0
  912. data/vendor/rails/activerecord/Rakefile +1 -1
  913. data/vendor/rails/activerecord/lib/active_record/associations.rb +10 -7
  914. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +7 -8
  915. data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +2 -2
  916. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +9 -0
  917. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +32 -23
  918. data/vendor/rails/activerecord/lib/active_record/base.rb +7 -0
  919. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +6 -2
  920. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +1 -1
  921. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +0 -33
  922. data/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +0 -22
  923. data/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +101 -38
  924. data/vendor/rails/activerecord/lib/active_record/validations.rb +35 -35
  925. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  926. data/vendor/rails/activerecord/lib/activerecord.rb +1 -0
  927. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +12 -0
  928. data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +22 -0
  929. data/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +21 -0
  930. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +230 -11
  931. data/vendor/rails/activerecord/test/cases/base_test.rb +2 -0
  932. data/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +8 -0
  933. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +2 -2
  934. data/vendor/rails/activerecord/test/cases/locking_test.rb +0 -18
  935. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +109 -37
  936. data/vendor/rails/activerecord/test/cases/reflection_test.rb +3 -3
  937. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +8 -0
  938. data/vendor/rails/activerecord/test/cases/validations_test.rb +37 -9
  939. data/vendor/rails/activerecord/test/fixtures/accounts.yml +1 -0
  940. data/vendor/rails/activerecord/test/models/company.rb +10 -0
  941. data/vendor/rails/activerecord/test/models/pirate.rb +9 -2
  942. data/vendor/rails/activerecord/test/models/treasure.rb +2 -0
  943. data/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +12 -0
  944. data/vendor/rails/activerecord/test/schema/schema.rb +1 -0
  945. data/vendor/rails/activeresource/CHANGELOG +9 -0
  946. data/vendor/rails/activeresource/MIT-LICENSE +20 -0
  947. data/vendor/rails/activeresource/Rakefile +1 -1
  948. data/vendor/rails/activeresource/lib/active_resource/validations.rb +2 -2
  949. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  950. data/vendor/rails/activeresource/lib/activeresource.rb +1 -0
  951. data/vendor/rails/activeresource/test/base_errors_test.rb +2 -2
  952. data/vendor/rails/activesupport/CHANGELOG +8 -0
  953. data/vendor/rails/activesupport/MIT-LICENSE +20 -0
  954. data/vendor/rails/activesupport/Rakefile +175 -0
  955. data/vendor/rails/activesupport/bin/generate_tables +147 -0
  956. data/vendor/rails/activesupport/install.rb +30 -0
  957. data/vendor/rails/activesupport/lib/active_support/cache.rb +7 -0
  958. data/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +5 -0
  959. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +5 -5
  960. data/vendor/rails/activesupport/lib/active_support/core_ext.rb +7 -3
  961. data/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +2 -58
  962. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +1 -0
  963. data/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +3 -1
  964. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +1 -0
  965. data/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +58 -0
  966. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +2 -0
  967. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +48 -0
  968. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +2 -1
  969. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +1 -1
  970. data/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +2 -3
  971. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +1 -5
  972. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +2 -0
  973. data/vendor/rails/activesupport/lib/active_support/message_verifier.rb +30 -10
  974. data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +1 -1
  975. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +4 -4
  976. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +7 -0
  977. data/vendor/rails/activesupport/lib/active_support/vendor.rb +2 -2
  978. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  979. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +8 -2
  980. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +13 -21
  981. data/vendor/rails/activesupport/lib/activesupport.rb +1 -0
  982. data/vendor/rails/activesupport/test/abstract_unit.rb +36 -0
  983. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +2 -0
  984. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +2 -0
  985. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +2 -0
  986. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +1 -0
  987. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +3 -0
  988. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +3 -0
  989. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +2 -0
  990. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +7 -0
  991. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +1 -0
  992. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +5 -0
  993. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +2 -0
  994. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +2 -0
  995. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +2 -0
  996. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +4 -0
  997. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +2 -0
  998. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +1 -0
  999. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +2 -0
  1000. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +3 -0
  1001. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +3 -0
  1002. data/vendor/rails/activesupport/test/buffered_logger_test.rb +146 -0
  1003. data/vendor/rails/activesupport/test/caching_test.rb +348 -0
  1004. data/vendor/rails/activesupport/test/callbacks_test.rb +188 -0
  1005. data/vendor/rails/activesupport/test/clean_backtrace_test.rb +47 -0
  1006. data/vendor/rails/activesupport/test/clean_logger_test.rb +57 -0
  1007. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +363 -0
  1008. data/vendor/rails/activesupport/test/core_ext/base64_ext_test.rb +8 -0
  1009. data/vendor/rails/activesupport/test/core_ext/bigdecimal.rb +10 -0
  1010. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +24 -0
  1011. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +14 -0
  1012. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +31 -0
  1013. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +224 -0
  1014. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +115 -0
  1015. data/vendor/rails/activesupport/test/core_ext/class_test.rb +46 -0
  1016. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +278 -0
  1017. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +359 -0
  1018. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +22 -0
  1019. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +121 -0
  1020. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +97 -0
  1021. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +68 -0
  1022. data/vendor/rails/activesupport/test/core_ext/file_test.rb +67 -0
  1023. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +25 -0
  1024. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +1014 -0
  1025. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +37 -0
  1026. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +43 -0
  1027. data/vendor/rails/activesupport/test/core_ext/load_error_test.rb +16 -0
  1028. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +30 -0
  1029. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +52 -0
  1030. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +33 -0
  1031. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +58 -0
  1032. data/vendor/rails/activesupport/test/core_ext/module/model_naming_test.rb +27 -0
  1033. data/vendor/rails/activesupport/test/core_ext/module/synchronization_test.rb +85 -0
  1034. data/vendor/rails/activesupport/test/core_ext/module_test.rb +363 -0
  1035. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +20 -0
  1036. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +162 -0
  1037. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +282 -0
  1038. data/vendor/rails/activesupport/test/core_ext/object_ext_test.rb +8 -0
  1039. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +9 -0
  1040. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +11 -0
  1041. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +63 -0
  1042. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +369 -0
  1043. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +9 -0
  1044. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +744 -0
  1045. data/vendor/rails/activesupport/test/core_ext/time_with_zone_test.rb +845 -0
  1046. data/vendor/rails/activesupport/test/core_ext/uri_ext_test.rb +12 -0
  1047. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +2 -0
  1048. data/vendor/rails/activesupport/test/dependencies/conflict.rb +1 -0
  1049. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +3 -0
  1050. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +4 -0
  1051. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +4 -0
  1052. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +3 -0
  1053. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +1 -0
  1054. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +1 -0
  1055. data/vendor/rails/activesupport/test/dependencies/service_one.rb +5 -0
  1056. data/vendor/rails/activesupport/test/dependencies/service_two.rb +2 -0
  1057. data/vendor/rails/activesupport/test/dependencies_test.rb +782 -0
  1058. data/vendor/rails/activesupport/test/deprecation_test.rb +167 -0
  1059. data/vendor/rails/activesupport/test/flush_cache_on_private_memoization_test.rb +43 -0
  1060. data/vendor/rails/activesupport/test/gzip_test.rb +7 -0
  1061. data/vendor/rails/activesupport/test/i18n_test.rb +98 -0
  1062. data/vendor/rails/activesupport/test/inflector_test.rb +298 -0
  1063. data/vendor/rails/activesupport/test/inflector_test_cases.rb +252 -0
  1064. data/vendor/rails/activesupport/test/json/decoding_test.rb +73 -0
  1065. data/vendor/rails/activesupport/test/json/encoding_test.rb +160 -0
  1066. data/vendor/rails/activesupport/test/memoizable_test.rb +247 -0
  1067. data/vendor/rails/activesupport/test/message_encryptor_test.rb +46 -0
  1068. data/vendor/rails/activesupport/test/message_verifier_test.rb +31 -0
  1069. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +606 -0
  1070. data/vendor/rails/activesupport/test/multibyte_conformance.rb +129 -0
  1071. data/vendor/rails/activesupport/test/multibyte_test_helpers.rb +19 -0
  1072. data/vendor/rails/activesupport/test/multibyte_unicode_database_test.rb +22 -0
  1073. data/vendor/rails/activesupport/test/multibyte_utils_test.rb +137 -0
  1074. data/vendor/rails/activesupport/test/option_merger_test.rb +85 -0
  1075. data/vendor/rails/activesupport/test/ordered_hash_test.rb +201 -0
  1076. data/vendor/rails/activesupport/test/ordered_options_test.rb +53 -0
  1077. data/vendor/rails/activesupport/test/rescuable_test.rb +75 -0
  1078. data/vendor/rails/activesupport/test/secure_random_test.rb +19 -0
  1079. data/vendor/rails/activesupport/test/string_inquirer_test.rb +15 -0
  1080. data/vendor/rails/activesupport/test/test_test.rb +148 -0
  1081. data/vendor/rails/activesupport/test/time_zone_test.rb +266 -0
  1082. data/vendor/rails/activesupport/test/whiny_nil_test.rb +50 -0
  1083. data/vendor/rails/activesupport/test/xml_mini/jdom_engine_test.rb +153 -0
  1084. data/vendor/rails/activesupport/test/xml_mini/nokogiri_engine_test.rb +168 -0
  1085. data/vendor/rails/activesupport/test/xml_mini/rexml_engine_test.rb +15 -0
  1086. data/vendor/rails/ci/ci_build.rb +119 -0
  1087. data/vendor/rails/ci/ci_setup_notes.txt +131 -0
  1088. data/vendor/rails/ci/cruise_config.rb +9 -0
  1089. data/vendor/rails/ci/geminstaller.yml +24 -0
  1090. data/vendor/rails/ci/site.css +13 -0
  1091. data/vendor/rails/ci/site_config.rb +72 -0
  1092. data/vendor/rails/doc/template/horo.rb +613 -0
  1093. data/vendor/rails/pushgems.rb +14 -0
  1094. data/vendor/rails/railties/CHANGELOG +6 -0
  1095. data/vendor/rails/railties/Rakefile +6 -6
  1096. data/vendor/rails/railties/lib/commands/plugin.rb +1 -1
  1097. data/vendor/rails/railties/lib/rails/rack/debugger.rb +2 -0
  1098. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  1099. data/vendor/rails/railties/lib/rails_generator/options.rb +7 -7
  1100. data/vendor/rails/railties/lib/tasks/rails.rb +2 -1
  1101. data/vendor/rails/railties/test/abstract_unit.rb +27 -0
  1102. data/vendor/rails/railties/test/backtrace_cleaner_test.rb +61 -0
  1103. data/vendor/rails/railties/test/boot_test.rb +178 -0
  1104. data/vendor/rails/railties/test/console_app_test.rb +42 -0
  1105. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +266 -0
  1106. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/about.yml +1 -0
  1107. data/vendor/rails/railties/test/fixtures/about_yml_plugins/bad_about_yml/init.rb +1 -0
  1108. data/vendor/rails/railties/test/fixtures/about_yml_plugins/plugin_without_about_yml/init.rb +1 -0
  1109. data/vendor/rails/railties/test/fixtures/eager/zoo.rb +3 -0
  1110. data/vendor/rails/railties/test/fixtures/eager/zoo/reptile_house.rb +2 -0
  1111. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +1 -0
  1112. data/vendor/{extensions/markdown_filter/lib/tasks/textile_filter_extension_tasks.rake → rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb} +0 -0
  1113. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +2 -0
  1114. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_a.rb +5 -0
  1115. data/vendor/rails/railties/test/fixtures/metal/multiplemetals/app/metal/metal_b.rb +5 -0
  1116. data/vendor/rails/railties/test/fixtures/metal/pluralmetal/app/metal/legacy_routes.rb +5 -0
  1117. data/vendor/rails/railties/test/fixtures/metal/singlemetal/app/metal/foo_metal.rb +5 -0
  1118. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_a.rb +7 -0
  1119. data/vendor/rails/railties/test/fixtures/metal/subfolders/app/metal/Folder/metal_b.rb +7 -0
  1120. data/vendor/rails/railties/test/fixtures/plugins/alternate/a/generators/a_generator/a_generator.rb +4 -0
  1121. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/init.rb +1 -0
  1122. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/lib/gemlike.rb +2 -0
  1123. data/vendor/rails/railties/test/fixtures/plugins/default/gemlike/rails/init.rb +7 -0
  1124. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  1125. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/about.yml +2 -0
  1126. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/generators/stubby_generator/stubby_generator.rb +4 -0
  1127. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +7 -0
  1128. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +2 -0
  1129. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/controllers/engine_controller.rb +2 -0
  1130. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/metal/engine_metal.rb +10 -0
  1131. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/app/models/engine_model.rb +2 -0
  1132. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/locales/en.yml +2 -0
  1133. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/config/routes.rb +3 -0
  1134. data/vendor/rails/railties/test/fixtures/plugins/engines/engine/init.rb +3 -0
  1135. data/vendor/rails/railties/test/fixtures/public/foo/bar.html +1 -0
  1136. data/vendor/rails/railties/test/fixtures/public/foo/index.html +1 -0
  1137. data/vendor/rails/railties/test/fixtures/public/index.html +1 -0
  1138. data/vendor/rails/railties/test/gem_dependency_test.rb +219 -0
  1139. data/vendor/rails/railties/test/generator_lookup_test.rb +40 -0
  1140. data/vendor/rails/railties/test/generators/generator_test_helper.rb +310 -0
  1141. data/vendor/rails/railties/test/generators/rails_controller_generator_test.rb +44 -0
  1142. data/vendor/rails/railties/test/generators/rails_helper_generator_test.rb +36 -0
  1143. data/vendor/rails/railties/test/generators/rails_mailer_generator_test.rb +29 -0
  1144. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +96 -0
  1145. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +29 -0
  1146. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +151 -0
  1147. data/vendor/rails/railties/test/generators/rails_template_runner_test.rb +216 -0
  1148. data/vendor/rails/railties/test/initializer_test.rb +416 -0
  1149. data/vendor/rails/railties/test/metal_test.rb +72 -0
  1150. data/vendor/rails/railties/test/mocks/routes.rb +6 -0
  1151. data/vendor/rails/railties/test/plugin_loader_test.rb +172 -0
  1152. data/vendor/rails/railties/test/plugin_locator_test.rb +62 -0
  1153. data/vendor/rails/railties/test/plugin_test.rb +162 -0
  1154. data/vendor/rails/railties/test/plugin_test_helper.rb +29 -0
  1155. data/vendor/rails/railties/test/rack_static_test.rb +46 -0
  1156. data/vendor/rails/railties/test/rails_generator_test.rb +145 -0
  1157. data/vendor/rails/railties/test/rails_info_controller_test.rb +52 -0
  1158. data/vendor/rails/railties/test/rails_info_test.rb +99 -0
  1159. data/vendor/rails/railties/test/secret_key_generation_test.rb +38 -0
  1160. data/vendor/rails/railties/test/vendor/gems/dummy-gem-a-0.4.0/lib/dummy-gem-a.rb +1 -0
  1161. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.4.0/lib/dummy-gem-b.rb +1 -0
  1162. data/vendor/rails/railties/test/vendor/gems/dummy-gem-b-0.6.0/lib/dummy-gem-b.rb +1 -0
  1163. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.4.0/lib/dummy-gem-c.rb +1 -0
  1164. data/vendor/rails/railties/test/vendor/gems/dummy-gem-c-0.6.0/lib/dummy-gem-c.rb +1 -0
  1165. data/vendor/rails/railties/test/vendor/gems/dummy-gem-d-1.0.0/lib/dummy-gem-d.rb +1 -0
  1166. data/vendor/rails/railties/test/vendor/gems/dummy-gem-e-1.0.0/lib/dummy-gem-e.rb +1 -0
  1167. data/vendor/rails/railties/test/vendor/gems/dummy-gem-f-1.0.0/lib/dummy-gem-f.rb +1 -0
  1168. data/vendor/rails/railties/test/vendor/gems/dummy-gem-g-1.0.0/lib/dummy-gem-g.rb +1 -0
  1169. data/vendor/rails/railties/test/vendor/gems/dummy-gem-h-1.0.0/lib/dummy-gem-h.rb +1 -0
  1170. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/ext/dummy-gem-i/Makefile +0 -0
  1171. data/vendor/rails/railties/test/vendor/gems/dummy-gem-i-1.0.0/lib/dummy-gem-i.rb +1 -0
  1172. data/vendor/rails/railties/test/vendor/gems/dummy-gem-j-1.0.0/lib/dummy-gem-j.rb +1 -0
  1173. data/vendor/rails/railties/test/vendor/gems/dummy-gem-k-1.0.0/lib/dummy-gem-k.rb +1 -0
  1174. data/vendor/rails/release.rb +25 -0
  1175. metadata +814 -84
  1176. data/app/views/admin/pages/_edit_styles.html.haml +0 -15
  1177. data/app/views/admin/references/filters.js.erb +0 -5
  1178. data/app/views/admin/references/tags.js.erb +0 -5
  1179. data/features/step_definitions/webrat_steps.rb +0 -117
  1180. data/public/images/admin/add-child.png +0 -0
  1181. data/public/images/admin/clear-page-cache.png +0 -0
  1182. data/public/images/admin/remove-disabled.png +0 -0
  1183. data/public/images/admin/remove.png +0 -0
  1184. data/public/images/admin/view-site.gif +0 -0
  1185. data/public/images/admin/virtual-page.png +0 -0
  1186. data/public/javascripts/admin/admin.js +0 -149
  1187. data/public/javascripts/application.js +0 -2
  1188. data/public/javascripts/pngfix.js +0 -39
  1189. data/public/javascripts/string.js +0 -17
  1190. data/vendor/extensions/markdown_filter/vendor/bluecloth/CHANGES +0 -366
  1191. data/vendor/extensions/markdown_filter/vendor/bluecloth/LICENSE +0 -340
  1192. data/vendor/extensions/markdown_filter/vendor/bluecloth/README +0 -99
  1193. data/vendor/extensions/markdown_filter/vendor/bluecloth/bin/bluecloth +0 -83
  1194. data/vendor/extensions/markdown_filter/vendor/bluecloth/install.rb +0 -150
  1195. data/vendor/extensions/markdown_filter/vendor/bluecloth/lib/bluecloth.rb +0 -1144
  1196. data/vendor/extensions/markdown_filter/vendor/bluecloth/test.rb +0 -117
  1197. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/00_Class.tests.rb +0 -71
  1198. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/05_Markdown.tests.rb +0 -1527
  1199. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/10_Bug.tests.rb +0 -57
  1200. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/15_Contrib.tests.rb +0 -132
  1201. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/bctestcase.rb +0 -274
  1202. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/antsugar.txt +0 -34
  1203. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/ml-announce.txt +0 -17
  1204. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/re-overflow.txt +0 -67
  1205. data/vendor/extensions/markdown_filter/vendor/bluecloth/tests/data/re-overflow2.txt +0 -281
  1206. data/vendor/extensions/markdown_filter/vendor/bluecloth/utils.rb +0 -553
  1207. data/vendor/radius/ROADMAP +0 -12
  1208. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  1209. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  1210. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  1211. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  1212. data/vendor/rails/activeresource/test/debug.log +0 -7974
@@ -0,0 +1,1451 @@
1
+ ---
2
+ title: Syntax
3
+ in_menu: true
4
+ sort_info: 10
5
+ ---
6
+ This is version **<%= ::Kramdown::VERSION %>** of the syntax documentation.
7
+
8
+ Table of Contents:
9
+
10
+ {menu: {used_nodes: fragments, min_levels: 3}}
11
+
12
+ # kramdown Syntax
13
+
14
+ The kramdown syntax is based on the Markdown syntax and has been enhanced with features that are
15
+ found in other Markdown implementations like [Maruku], [PHP Markdown Extra] and [Pandoc]. However,
16
+ it strives to provide a strict syntax with definite rules and therefore isn't completely compatible
17
+ with Markdown. Nonetheless, most Markdown documents should work fine when parsed with kramdown. All
18
+ places where the kramdown syntax differs from the Markdown syntax are highlighted.
19
+
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.
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
+
29
+
30
+ ## Tabs
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.
35
+
36
+
37
+ ## Automatic Escaping and Escaping
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.
42
+
43
+ When used inside the normal text flow:
44
+
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.
48
+
49
+ For example, the following fragment:
50
+
51
+ This is the A&O. &copy; 2008 by me
52
+ 0 < 1 < 2 and 2 > 1 > 0
53
+
54
+ will be converted to:
55
+
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>
58
+
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:
62
+
63
+ This \`is not a code\` span!
64
+
65
+ Following is a list of all those characters (character sequences) that can be escaped:
66
+
67
+ \ backslash
68
+ . period
69
+ * asterisk
70
+ _ underscore
71
+ + plus
72
+ - minus
73
+ ` backtick
74
+ ()[]{} parens/brackets/braces
75
+ # hash
76
+ ! bang
77
+ << left guillemet
78
+ >> right guillemet
79
+ : colon
80
+ | pipe
81
+ " double quote
82
+ ' single quote
83
+
84
+
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.
109
+
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.
115
+
116
+
117
+ ## Blank lines
118
+
119
+ Any line that just contains white space characters such as spaces and tabs is considered a blank
120
+ line by kramdown. One or more consecutive blank lines are handled as one empty blank line. Blank
121
+ lines are mostly used to visually separate block level elements from each other and in this case
122
+ they don't have semantic meaning. However, there are some cases where blank lines do have a semantic
123
+ meaning:
124
+
125
+ * When used in paragraphs -- see the [paragraphs section](#paragraphs)
126
+ * When used in headers -- see the [headers section](#headers)
127
+ * When used in lists -- see the [lists section](#lists)
128
+
129
+
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
+ ## Paragraphs
156
+
157
+ Paragraphs are the most used block level elements. One or more consecutive lines of text are
158
+ interpreted as one paragraph. Every line of a paragraph may be indented up to three spaces. You can
159
+ 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
161
+ line break (i.e. a `<br />` tag) you need to end a line with two or more spaces or two backslashes!
162
+ Note, however, that a line break on the last text line of a paragraph is not possible and will be
163
+ ignored. Leading and trailing spaces will be stripped from the paragraph text.
164
+
165
+ The following gives you an example of how paragraphs look like:
166
+
167
+ This para line starts at the first column. However,
168
+ the lines can be indented up to three spaces.
169
+ The para continues here.
170
+
171
+ This is another paragraph, not connected to the above one. But
172
+ with a hard line break. \\
173
+ and another one.
174
+ {: .show-whitespaces .ws-lr}
175
+
176
+
177
+ ## Headers
178
+
179
+ kramdown supports Setext style and atx style headers.
180
+
181
+ ### Setext Style
182
+
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:
189
+
190
+ First level header
191
+ ==================
192
+
193
+ Second level header
194
+ ------
195
+
196
+ Other first level header
197
+ =
198
+
199
+ As mentioned you need to insert a blank line before a Setext header:
200
+
201
+ This is a normal
202
+ paragraph.
203
+
204
+ And A Header
205
+ ------------
206
+ And a paragraph
207
+
208
+ > This is a blockquote.
209
+
210
+ And A Header
211
+ ------------
212
+
213
+ However, it is generally a good idea to also use a blank line after a Setext header because it looks
214
+ more appropriate.
215
+
216
+ > 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.
219
+ {: .markdown-difference}
220
+
221
+ An edge case worth mentioning is the following:
222
+
223
+ header
224
+ ---
225
+ para
226
+
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.
230
+
231
+ ### atx Style
232
+
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:
239
+
240
+ # First level header
241
+
242
+ ### Third level header ###
243
+
244
+ ## Second level header ######
245
+
246
+ > Again, the original Markdown syntax allows one to omit the blank line before an atx style header.
247
+ {: .markdown-difference}
248
+
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
+
271
+ ### Do ^& it now
272
+ auto_id: do--it-now
273
+
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:
299
+
300
+ Hello {#id}
301
+ -----
302
+
303
+ # Hello {#id}
304
+
305
+ # Hello # {#id}
306
+
307
+ > This additional syntax is not part of standard Markdown.
308
+ {: .markdown-difference}
309
+
310
+
311
+ ## Blockquotes
312
+
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:
318
+
319
+ > This is a blockquote.
320
+ >on multiple lines.
321
+ >
322
+ > This is the second paragraph.
323
+
324
+ Since the contents of a blockquote are block level elements, you can nest blockquotes and use other
325
+ block level elements:
326
+
327
+ > This is a paragraph.
328
+ > > A nested blockquote.
329
+ >
330
+ > ## Headers work
331
+ >
332
+ > * lists too
333
+ >
334
+ > and all other block level elements
335
+
336
+ 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:
339
+
340
+ > A code block:
341
+ >
342
+ > ruby -e 'puts :works'
343
+
344
+ > The original Markdown syntax allowed "lazy" blockquotes, i.e. blockquotes where only the first line
345
+ > needs a blockquote marker. This is disallowed in kramdown, you always need to use a blockquote
346
+ > marker! The rational behind this is that most email programs and good text editors put the `>`
347
+ > maker automatically before every quoted line and that things like the following work like
348
+ > expected:
349
+ >
350
+ > > > This is some quoted text.
351
+ > > > Spanning multiple lines.
352
+ > > This is the answer to the quoted text above.
353
+ > This is just a normal paragraph, with the answer to the above.
354
+ {: .markdown-difference}
355
+
356
+
357
+ ## Code Blocks
358
+
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.
362
+
363
+ ### Standard Code Block
364
+
365
+ A code block can be started by using four spaces or one tab and then the text of the code block. All
366
+ following lines that adhere to this syntax belong to the same code block. The indentation (four
367
+ spaces or one tab) is stripped from the text. Note that blank lines don't separate consecutive code
368
+ blocks:
369
+
370
+ Here comes some code
371
+
372
+ This text belongs to the same code block.
373
+
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:
376
+
377
+ Here comes some code
378
+ ^
379
+ This one is separate.
380
+
381
+ ### Fenced Code Block
382
+
383
+ > This alternative syntax is not part of the original Markdown syntax. The idea and syntax comes
384
+ > from the [PHP Markdown Extra] package.
385
+ {: .markdown-difference}
386
+
387
+ kramdown also supports an alternative syntax for code blocks which does not use indented blocks but
388
+ delimiting lines. The starting line needs to begin with three or more tilde characters (`~`) and the
389
+ closing line needs to have at least the number of tildes the starting line has. Everything between
390
+ is taken literally as with the other syntax but there is no need for indenting the text. For
391
+ example:
392
+
393
+ ~~~~~~~~
394
+ Here comes some code.
395
+ ~~~~~~~~
396
+
397
+ If you need lines of tildes in such a code block, just start the code block with more tildes. For
398
+ example:
399
+
400
+ ~~~~~~~~~~~~
401
+ ~~~~~~~
402
+ code with tildes
403
+ ~~~~~~~~
404
+ ~~~~~~~~~~~~~~~~~~
405
+
406
+ This type of code block is especially useful for copy-pasted code since you don't need to indent the
407
+ code.
408
+
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
+
458
+ ## Lists
459
+
460
+ kramdown provides syntax elements for creating ordered and unordered lists as well as definition
461
+ lists.
462
+
463
+ ### Ordered and Unordered lists
464
+
465
+ Both ordered and unordered lists follow the same rules.
466
+
467
+ A list is started with a list marker (in case of unordered lists one of `+`, `-` or `*` -- you can
468
+ 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
470
+ are stripped away from this first line of content to allow for a nice alignment with the following
471
+ content of a list item (see below). All following list items with the same marker type (unordered or
472
+ ordered) are put into the same list. The numbers used for ordered lists are irrelevant, an ordered
473
+ list always starts at 1.
474
+
475
+ The following gives you an unordered list and an ordered list:
476
+
477
+ * kram
478
+ + down
479
+ - now
480
+
481
+ 1. kram
482
+ 2. down
483
+ 3. now
484
+
485
+ > The original Markdown syntax allows the markers of ordered and unordered lists to be mixed, the
486
+ > first marker specifying the list type (ordered or unordered). This is not allowed in kramdown. As
487
+ > stated, the above example will give you two lists (an unordered and an ordered) in kramdown and
488
+ > only one unordered list in Markdown.
489
+ {: .markdown-difference}
490
+
491
+ The first list marker in a list may be indented up to three spaces. The column number of the first
492
+ non-space character which appears after the list item marker on the same line specifies the
493
+ indentation that has to be used for the following lines of content of the list item. If there is no
494
+ such character, the indentation that needs to be used is four spaces or one tab. If a line does not
495
+ have the needed amount of indentation, it is not treated as list item content. The indentation is
496
+ stripped from the content and the content (note that the content naturally also contains the content
497
+ of the line with the item marker) is processed as text containing block level elements. All other
498
+ list markers in the list may be indented up to three spaces or the number of spaces used for the
499
+ indentation of the last list item minus one, whichever number is smaller. For example:
500
+
501
+ * This is the first line. Since the first non-space characters appears in column 3, all other
502
+ lines have to be indented 2 spaces so that the first characters align. This tells kramdown
503
+ that the lines belong to the list item.
504
+ * This is the another item of the list. It uses a different number of spaces for
505
+ indentation which is okay but should generally be avoided.
506
+ * The list item marker is indented 3 spaces which is allowed but should also be avoided.
507
+
508
+ So, while the above is possible and creates one list with three items, it is not advised to use
509
+ different (marker and list content) indents for same level list items!
510
+
511
+ > The original Markdown syntax also allows you to indent the marker, however, the behaviour of what
512
+ > happens with the list items is not clearly specified and may surprise you.
513
+ >
514
+ > Also, Markdown uses a fixed number of spaces/tabs to indent the lines that belong to a list item!
515
+ {: .markdown-difference}
516
+
517
+ 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:
519
+
520
+ * Using a tab to indent this line, the tab only counts as three spaces and therefore the
521
+ overall indentation is four spaces.
522
+
523
+ 1. The tab after the marker counts here as two spaces. Since the indentation of the marker
524
+ is three spaces and the marker itself takes two characters, the overall indentation
525
+ needed for the following lines is eight spaces or two tabs.
526
+
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!
529
+
530
+ The content of a list item is made up of either text or block level elements. Simple list items only
531
+ contain text like in the above examples. They are not even wrapped in a paragraph tag. If the first
532
+ list text is followed by one or more blank lines, it will be wrapped in a paragraph tag:
533
+
534
+ * kram
535
+
536
+ * down
537
+ * now
538
+
539
+ In the above example, the first list item text will be wrapped in a paragraph tag since it is
540
+ followed by a blank line whereas the second list item contains just text. There is obviously a
541
+ problem for doing this with the last list item when it contains only text. You can circumvent this
542
+ by leaving a blank line after the last list item and using an EOB marker:
543
+
544
+ * Not wrapped in a paragraph
545
+ * Wrapped in a paragraph due to the following blank line.
546
+
547
+ * Also wrapped in a paragraph due to the
548
+ following blank line and the EOB marker.
549
+
550
+ ^
551
+
552
+ > The original Markdown syntax page specifies that list items which are separated by one or more
553
+ > blank lines are wrapped in paragraph tags. This means that the first text will also be wrapped in
554
+ > a paragraph if you have block level elements in a list which are separated by blank lines. The
555
+ > above rule is easy to remember and lets you exactly specify when the first list text should be
556
+ > wrapped in a paragraph. The idea for the above rule comes from the [Pandoc] package.
557
+ {: .markdown-difference}
558
+
559
+ As seen in the examples above, blank lines between list items are allowed.
560
+
561
+ Since the content of a list item can contain block level elements, you can do the following:
562
+
563
+ * First item
564
+
565
+ A second paragraph
566
+
567
+ * nested list
568
+ > blockquote
569
+
570
+ * Second item
571
+
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:
574
+
575
+ * This is a list item.
576
+
577
+ The second para of the list item.
578
+ ^
579
+ A code block following the list item.
580
+
581
+ You can have any block level element as first element in a list item. However, as described above,
582
+ the leading tabs or spaces of the line with the list item marker are stripped away. This leads to a
583
+ problem when you want to have a code block as first element. The solution to this problem is the
584
+ following construct:
585
+
586
+ *
587
+ This is a code block (indentation needs to be 4(1)+4(1) spaces (tabs)).
588
+ {: .show-whitespaces .ws-lr}
589
+
590
+ Note that the list marker needs to be followed with at least one space or tab! Otherwise the line is
591
+ not recognized as the start of a list item but interpreted as a paragraph containing the list
592
+ marker.
593
+
594
+ > The original Markdown syntax allows you to be lazy when you just use text for a list item. So the
595
+ > following is possible with Markdown:
596
+ >
597
+ > * First list item
598
+ > continued here
599
+ > * Second list item
600
+ > continued here.
601
+ >
602
+ > This kind of syntax is disallowed in kramdown.
603
+ {: .markdown-difference}
604
+
605
+ If you want to have one list directly after another one (both with the same list type, i.e. ordered
606
+ or unordered), you need to use an EOB marker to separate the two:
607
+
608
+ * List one
609
+ ^
610
+ * List two
611
+
612
+ It is possible that a line gets parsed as ordered or unordered list although it shouldn't. This
613
+ would be the case in the following example:
614
+
615
+ I have read the book
616
+ 1984. It was great
617
+ - others say that, too!
618
+
619
+ Therefore you have to insert a blank line after a paragraph if you want to follow the paragraph with
620
+ a list. The only exception to this rule is when you want to create a compact nested list, i.e. a
621
+ list where the text is not wrapped in paragraphs:
622
+
623
+ * This is just text.
624
+ * this is a sub list item
625
+ * this is a sub sub list item
626
+ * This is just text,
627
+ spanning two lines
628
+ * this is a nested list item.
629
+
630
+ Another way to remedy the problem with the list item marker appearing in plain text is by escaping
631
+ the period in an ordered list or the list item marker in an unordered list (this is especially
632
+ useful when the paragraph starts with something looking like a list item marker):
633
+
634
+ 1984\. It was great
635
+ \- others say that, too!
636
+
637
+
638
+ ### Definition Lists
639
+
640
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
641
+ > the [PHP Markdown Extra] package.
642
+ {: .markdown-difference}
643
+
644
+ Definition lists allow you to assign one or more definitions to one or more terms.
645
+
646
+ A definition list is started when a normal paragraph is followed by a line with a definition marker
647
+ (a colon which may be optionally indented up to three spaces), then at least one tab or one space
648
+ and then the first part of the definition. The line with the definition marker may optionally be
649
+ separated from the preceding paragraph by a blank line. The leading tabs or spaces are stripped away
650
+ from this first line of the definition to allow for a nice alignment with the following definition
651
+ content. Each line of the preceding paragraph is taken to be a term and the lines separately parsed
652
+ as span level elements.
653
+
654
+ The following is a simple definition list:
655
+
656
+ kramdown
657
+ : A Markdown-superset converter
658
+
659
+ Maruku
660
+ : Another Markdown-superset converter
661
+
662
+ The column number of the first non-space character which appears after a definition marker on the
663
+ same line specifies the indentation that has to be used for the following lines of the definition.
664
+ If there is no such character, the indentation that needs to be used is four spaces or one tab. If
665
+ one of the following lines does not have the needed amount of indentation, it is not treated as part
666
+ of the definition. The indentation is stripped from the definition and it (note that the definition
667
+ naturally also contains the content of the line with the definition marker) is processed as text
668
+ containing block level elements. If there is more than one definition, all other definition markers
669
+ for the term may be indented up to three spaces or the number of spaces used for the indentation of
670
+ the last definition minus one, whichever number is smaller. For example:
671
+
672
+ definition term 1
673
+ definition term 2
674
+ : This is the first line. Since the first non-space characters appears in column 3, all other
675
+ lines have to be indented 2 spaces so that they first characters align. This tells kramdown
676
+ that the lines belong to the definition.
677
+ : This is the another definition for the same term. It uses a different number of spaces
678
+ for indentation which is okay but should generally be avoided.
679
+ : The definition marker is indented 3 spaces which is allowed but should also be avoided.
680
+
681
+ So, while the above is possible and creates a definition list with two terms and three definitions
682
+ for them, it is not advised to use different (definition marker and definition) indents in the same
683
+ definition list!
684
+
685
+ The definition for a term is made up of text and/or block level elements. If a definition is *not*
686
+ preceded by a blank line, the first part of the definition will just be text if it would be a
687
+ paragraph otherwise:
688
+
689
+ definition term
690
+ : This definition will just be text because it would normally be a paragraph and the there is
691
+ no preceding blank line.
692
+
693
+ > although the definition contains other block level elements
694
+
695
+ : This definition *will* be a paragraph since it is preceded by a blank line.
696
+
697
+ The rules about having any block level element as first element in a list item also apply to a
698
+ definition.
699
+
700
+
701
+ ## Tables
702
+
703
+ > This syntax feature is not part of the original Markdown syntax. The syntax is based on the one
704
+ > from the [PHP Markdown Extra] package.
705
+ {: .markdown-difference}
706
+
707
+ Sometimes one wants to include simple tabular data in a kramdown document for which using a
708
+ full-blown HTML table is just too much. kramdown supports this with a simple syntax for ASCII
709
+ tables.
710
+
711
+ There are three different text line types that can be used in a table:
712
+
713
+ * *Table rows* define the content of a table.
714
+
715
+ A table row is started with a pipe character, optionally indented up to three spaces, and then the
716
+ text of the first table cell. Subsequent table cells consist of a pipe character followed by the
717
+ cell text. One may optionally use a pipe character at the the end of a table row line.
718
+
719
+ Header rows, footer rows and normal rows are all made using these table rows. Table cells can only
720
+ contain a single line of text, no multiline text is supported. The text of a table cell is parsed
721
+ as span level elements. Note that literal pipe characters need to be escaped, even if they occur
722
+ in code spans!
723
+
724
+ Here are some example table rows:
725
+
726
+ | First cell|Second cell|Third cell
727
+ | First | Second | Third |
728
+
729
+ * *Separator lines* are used to split the table body into multiple body parts.
730
+
731
+ A separator line is started with a pipe or plus character, optionally indented up to three spaces,
732
+ followed by an optional space, an optional colon, a dash and then any number and combination of
733
+ pipes, dashes, pluses, colons and spaces. The pipe and plus characters can be used to visually
734
+ separate columns although this is not needed. Multiple separator lines after another are treated
735
+ as one separator line.
736
+
737
+ Here are some example separator lines:
738
+
739
+ |----+----|
740
+ +----|----+
741
+ |---------|
742
+ |-
743
+ | :-----: |
744
+
745
+ * The first separator line after at least one table row is treated specially, namely as *header
746
+ separator line*. It is used to demarcate header rows from normal table rows and/or to set column
747
+ alignments. All table rows above the header separator line are considered to be header rows.
748
+
749
+ The header separator line can be specially formatted to contain column alignment definitions: An
750
+ alignment definition consists of an optional space followed by an optional colon, one or more
751
+ dashes, an optional colon and another optional space. The colons of an alignment definition are
752
+ used to set the alignment of a column: if there are no colons, the column uses the default
753
+ alignment, if there is a colon only before the dashes, the column is left aligned, if there are
754
+ colons before and after the dashes, the column is center aligned and if there is only a colon
755
+ after the dashes, the column is right aligned. Each alignment definition sets the alignment for
756
+ one column, the first alignment definition for the first column, the second alignment definition
757
+ for the second column and so on.
758
+
759
+ Here are some example header separator lines with alignment definitions:
760
+
761
+ |---+---+---|
762
+ + :-: |:------| ---:|
763
+ | :-: :- -: -
764
+
765
+ * A *footer separator line* is used to demarcate footer rows from normal table rows. All table rows
766
+ below the footer separator line are considered to be footer rows.
767
+
768
+ A footer separator line is like a normal separator line except that dashes are replaced by equal
769
+ signs. A footer separator line may only appear once in a table. If multiple footer separator lines
770
+ are used in one table, only the last is treated as footer separator line, all others are treated
771
+ as normal separator lines. Normal separator lines that are used after the footer separator line
772
+ are ignored.
773
+
774
+ Here are some example footer separator lines:
775
+
776
+ |====+====|
777
+ +====|====+
778
+ |=========|
779
+ |=
780
+
781
+ Trailing spaces or tabs are ignored in all cases. To simplify table creation and maintenance,
782
+ header, footer and normal separator lines need not specify the same number of columns as table rows;
783
+ even `|-` and `|=` are a valid separators.
784
+
785
+ Given the above components, a table is specified by
786
+
787
+ * an optional separator line,
788
+ * optionally followed by zero, one or more table rows followed by a header separator line,
789
+ * one or more table rows, optionally interspersed with separator lines,
790
+ * optionally followed by a footer separator line and zero, one or more table rows and
791
+ * an optional trailing separator line.
792
+
793
+ > The table syntax differs from the one used in [PHP Markdown Extra] as follows:
794
+ >
795
+ > * kramdown tables have to begin with a pipe character, this is optional in [PHP Markdown Extra].
796
+ > * kramdown tables do not need to have a table header.
797
+ > * kramdown tables can be structured using separator lines.
798
+ > * kramdown tables can contain a table footer.
799
+ {: .markdown-difference}
800
+
801
+ Here is an example for a kramdown table with a table header row, two table bodies and a table footer
802
+ row:
803
+
804
+ |-----------------+------------+-----------------+----------------|
805
+ | Default aligned |Left aligned| Center aligned | Right aligned |
806
+ |-----------------|:-----------|:---------------:|---------------:|
807
+ | First body part |Second cell | Third cell | fourth cell |
808
+ | Second line |foo | **strong** | baz |
809
+ | Third line |quux | baz | bar |
810
+ |-----------------+------------+-----------------+----------------|
811
+ | Second body | | | |
812
+ | 2 line | | | |
813
+ |=================+============+=================+================|
814
+ | Footer row | | | |
815
+ |-----------------+------------+-----------------+----------------|
816
+
817
+ The above example table is rather time-consuming to create without the help of an ASCII table
818
+ editor. However, the table syntax is flexible and the above table could also be written like this:
819
+
820
+ |---
821
+ | Default aligned | Left aligned | Center aligned | Right aligned
822
+ |-|:-|:-:|-:
823
+ | First body part | Second cell | Third cell | fourth cell
824
+ | Second line |foo | **strong** | baz
825
+ | Third line |quux | baz | bar
826
+ |---
827
+ | Second body
828
+ | 2 line
829
+ |===
830
+ | Footer row
831
+
832
+
833
+ ## HTML Blocks
834
+
835
+ > The original Markdown syntax specifies that an HTML block must start at the left margin, i.e. no
836
+ > indentation is allowed. Also, the HTML block has to be surrounded by blank lines. Both
837
+ > restrictions are lifted for kramdown documents. Additionally, the original syntax does not allow
838
+ > you to use Markdown syntax in HTML blocks which is allowed with kramdown.
839
+ {: .markdown-difference}
840
+
841
+ An HTML block is potentially started if a line is encountered that begins with a non-span-level HTML
842
+ tag or a general XML tag (opening or closing) which may be indented up to three spaces.
843
+
844
+ The following HTML tags count as span level HTML tags and *won't* start an HTML block if found at
845
+ the beginning of an HTML block line:
846
+
847
+ a abbr acronym b big bdo br button cite code del dfn em i img input
848
+ ins kbd label option q rb rbc rp rt rtc ruby samp select small span
849
+ strong sub sup textarea tt var
850
+
851
+ Further parsing of a found start tag depends on the tag and in which of three possible ways its
852
+ content is parsed:
853
+
854
+ * Parse as raw HTML block: If the HTML/XML tag content should be handled as raw HTML, then only
855
+ HTML/XML tags are parsed from this point onwards and text is handled as raw, unparsed text until
856
+ the matching end tag is found or until the end of the document. Each found tag will be parsed as
857
+ raw HTML again. However, if a tag has a `markdown` attribute, this attribute controls parsing of
858
+ this one tag (see below).
859
+
860
+ Note that only correct XHTML is supported! This means that you have to use, for example, `<hr />`
861
+ instead of `<hr>` (although kramdown tries to fix such things if possible). If an invalid closing
862
+ tag is found, it is ignored.
863
+
864
+ * Parse as block level elements: If the HTML/XML tag content should be parsed as text containing
865
+ block level elements, the remaining text on the line will be parsed by the block level parser as
866
+ if it appears on a separate line (**Caution**: This also means that if the line consists of the
867
+ start tag, text and the end tag, the end tag will not be found!). All following lines are parsed
868
+ as block level elements until an HTML block line with the matching end tag is found or until the
869
+ end of the document.
870
+
871
+ * Parse as span level elements: If the HTML/XML tag content should be parsed as text containing span
872
+ level elements, then all text until the *next* matching end tag or until the end of the document
873
+ will be the content of the tag and will later be parsed by the span level parser. This also means
874
+ that if the matching end tag is inside what appears to be a code span, it is still used!
875
+
876
+ If there is text after an end tag, it will be parsed as if it appears on a separate line except when
877
+ inside a raw HTML block.
878
+
879
+ Also, if an invalid closing tag is found, it is ignored.
880
+
881
+ 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:
885
+
886
+ * If an HTML tag has an attribute `markdown="0"`, then the tag is parsed as raw HTML block.
887
+
888
+ * If an HTML tag has an attribute `markdown="1"`, then the default mechanism for parsing syntax in
889
+ this tag is used.
890
+
891
+ * If an HTML tag has an attribute `markdown="block"`, then the content of the tag is parsed as block
892
+ level elements.
893
+
894
+ * If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span
895
+ level elements.
896
+
897
+ 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`:
899
+
900
+ Parse as raw HTML block
901
+ :
902
+ script math option textarea
903
+
904
+ Also, all general XML tags are parsed as raw HTML blocks.
905
+
906
+ Parse as block level elements
907
+ :
908
+ applet button blockquote colgroup dd div dl fieldset form iframe li
909
+ map noscript object ol table tbody td th thead tfoot tr ul
910
+
911
+ Parse as span level elements
912
+ :
913
+ a abbr acronym address b bdo big cite caption code del dfn dt em
914
+ 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
916
+
917
+ > Remember that all span level HTML tags like `a` or `b` do not start a HTML block! However, the
918
+ > above lists also include span level HTML tags in the case the `markdown` attribute is used on a
919
+ > tag inside a raw HTML block.
920
+
921
+ Here is a simple example input and its output with `:parse_block_html` set to `false`:
922
+
923
+ This is a para.
924
+ <div>
925
+ Something in here.
926
+ </div>
927
+ Other para.
928
+ ^
929
+ <p>This is a para.</p>
930
+ <div>
931
+ Something in here.
932
+ </div>
933
+ <p>Other para.</p>
934
+
935
+ As one can see the content of the `div` tag will be parsed as raw HTML block and left alone.
936
+ However, if the `markdown="1"` attribute was used on the `div` tag, the content would be parsed as
937
+ block level elements and therefore converted to a paragraph.
938
+
939
+ You can also use several HTML tags at once:
940
+
941
+ <div id="content"><div id="layers"><div id="layer1">
942
+ This is some text in the `layer1` div.
943
+ </div>
944
+ This is some text in the `layers` div.
945
+ </div></div>
946
+ This is a para outside the HTML block.
947
+
948
+ However, remember that if the content of a tag is parsed as block level elements, the content that
949
+ appears after a start/end tag but on the same line, is processed as if it appears on a new line:
950
+
951
+ <div markdown="1">This is the first part of a para,
952
+ which is continued here.
953
+ </div>
954
+
955
+ <p markdown="1">This works without problems because it is parsed as span level elements</p>
956
+
957
+ <div markdown="1">The end tag is not found because
958
+ this line is parsed as a paragraph</div>
959
+
960
+ Since setting `:parse_block_html` to `true` can lead to some not wanted behaviour, it is generally
961
+ better to selectively enable or disable block/span level elements parsing by using the `markdown`
962
+ attribute!
963
+
964
+ Unclosed block level HTML tags are correctly closed at the end of the document to ensure correct
965
+ nesting and invalidly used end tags are removed from the output:
966
+
967
+ This is a para.
968
+ <div markdown="1">
969
+ Another para.
970
+ </p>
971
+ ^
972
+ <p>This is a para.</p>
973
+ <div>
974
+ <p>Another para.</p>
975
+ </div>
976
+
977
+ The parsing of processing instructions and XML comments is also supported. The content of both, PIs
978
+ and XML comments, may span multiple lines. The start of a PI/XML comment may only appear at the
979
+ beginning of a line, optionally indented up to three spaces. If there is text after the end of a PI
980
+ or XML comment, it will be parsed as if it appears on a separate line. kramdown syntax in PIs/XML
981
+ comments is not processed:
982
+
983
+ This is a para.
984
+ <!-- a *comment* -->
985
+ <? a processing `instruction`
986
+ spanning multiple lines
987
+ ?> First part of para,
988
+ continues here.
989
+
990
+
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
+
1150
+
1151
+ # Span Level Elements
1152
+
1153
+ These elements are used inside block level elements to markup text fragments. For example, one can
1154
+ easily create links or apply emphasis to certain text parts.
1155
+
1156
+ Note that empty span level elements are not converted to empty HTML tags but are copied as-is to the
1157
+ output.
1158
+
1159
+
1160
+
1161
+ ## Links and Images
1162
+
1163
+ Two styles of links are supported: inline and reference.
1164
+
1165
+ ### Inline Links
1166
+
1167
+ As the wording suggests, inline links provide all information inline in the text flow. Reference
1168
+ style links only provide the link text in the text flow and everything else is defined
1169
+ elsewhere. This also allows you to reuse link definitions.
1170
+
1171
+ An inline style link can be created by surrounding the link text with square brackets, followed
1172
+ immediately by the link URL (and an optional title in single or double quotes preceded by at least
1173
+ one space) in normal parentheses. For example:
1174
+
1175
+ This is [a link](http://rubyforge.org) to a page.
1176
+ A [link](../test "local URI") can also have a title.
1177
+ And [spaces](<link with spaces.html>)!
1178
+
1179
+ Notes:
1180
+
1181
+ * The link text is treated like normal span level text and therefore is parsed and converted.
1182
+ However, if you use square brackets within the link text, you have to either properly nest them or
1183
+ to escape them. It is not possible to create nested links!
1184
+
1185
+ * The link URL must not contain any spaces and it has to contain properly nested parentheses if no
1186
+ title is specified, or the link URL must be contained in angle brackets (then spaces and
1187
+ incorrectly nested parentheses are allowed). There must not be any spaces before the link URL, and
1188
+ if no title is specified, no spaces are allowed between the link URL and the closing parenthesis.
1189
+
1190
+ * The link title may not contain its delimiters and may not be empty.
1191
+
1192
+ ### Reference Links
1193
+
1194
+ To create a reference style link, you need to surround the link text with square brackets (as with
1195
+ inline links), followed by optional spaces/tabs/line breaks and then optionally followed with
1196
+ another set of square brackets with the link identifier in them. A link identifier may only contain
1197
+ numbers, letters, spaces (line breaks and tabs are converted to spaces, multiple spaces are
1198
+ compressed to one) and punctuation characters (i.e. `_.:,;!?-`) and is not case sensitive. For
1199
+ example:
1200
+
1201
+ This is a [reference style link][linkid] to a page. And [this]
1202
+ [linkid] is also a link. As is [this][] and [THIS].
1203
+
1204
+ If you don't specify a link identifier (i.e. only use empty square brackets) or completely omit the
1205
+ second pair of square brackets, the link text is converted to a valid link identifier by removing
1206
+ all invalid characters and inserting spaces for line breaks. If there is a link definition found for
1207
+ the link identifier, a link will be created. Otherwise the text is not converted to a link.
1208
+
1209
+ ### Link Definitions
1210
+
1211
+ The link definition can be put anywhere in the document. It does not appear in the output. A link
1212
+ definition looks like this:
1213
+
1214
+ [linkid]: http://www.example.com/ "Optional Title"
1215
+
1216
+ > Link definitions are, despite being described here, block level elements.
1217
+ {: .information}
1218
+
1219
+ The link definition has the following structure:
1220
+
1221
+ * The link identifier in square brackets, optionally indented up to three spaces,
1222
+ * then a colon and one or more spaces/tabs,
1223
+ * then the link URL which must not contain any spaces or a left angle bracket, the link URL which may
1224
+ contain spaces and a right angle bracket,
1225
+ * then optionally the title in single or double quotes, separated from the link URL by one or more
1226
+ spaces or on the next line by itself indented any number of spaces/tabs.
1227
+
1228
+ > The original Markdown syntax also allowed the title to be specified in parenthesis. This is not
1229
+ > allowed for consistency with the inline title.
1230
+ {: .markdown-difference}
1231
+
1232
+ ### Images
1233
+
1234
+ Images can be specified via a syntax that is similar to the one used by links. The difference is
1235
+ that you have to use an exclamation mark before the first square bracket and that the link text of a
1236
+ normal link becomes the alternative text of the image link. As with normal links, image links can be
1237
+ written inline or reference style. For example:
1238
+
1239
+ Here comes a ![smiley](../images/smiley.png)! And here
1240
+ ![too](../images/other.png 'Title text'). Or ![here].
1241
+
1242
+ The link definition for images is exactly the same as the link definition for normal links.
1243
+
1244
+
1245
+ ## Emphasis
1246
+
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:
1252
+
1253
+ *some text*
1254
+ _some text_
1255
+ **some text**
1256
+ __some text__
1257
+
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
+ The asterisk form is also allowed within a single word:
1266
+
1267
+ This is un*believe*able! This d_oe_s not work!
1268
+
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>
1281
+
1282
+ Notice the difference between the second and the third line!
1283
+
1284
+ If one or two asterisks or underscores are surrounded by spaces, they are treated literally. If you
1285
+ want to force the literal meaning of an asterisk or an underscore you can backslash-escape it:
1286
+
1287
+ This is a * literal asterisk.
1288
+ These are ** two literal asterisk.
1289
+ As \*are\* these!
1290
+
1291
+
1292
+ ## Code Spans
1293
+
1294
+ This is the span level equivalent of the code block element. You can markup a text part as code span
1295
+ by surrounding it with backticks `` ` ``. For example:
1296
+
1297
+ Use `<html>` tags for this.
1298
+
1299
+ The special characters `<`, `>` and `&` are substituted by their respective HTML counterparts (same
1300
+ behaviour as seen with the block level code block element).
1301
+
1302
+ To include a literal backtick in a code span, you need to use two or more backticks as delimiters.
1303
+ You can insert one optional space after the starting and before the ending delimiter (these spaces
1304
+ are not used in the output). For example:
1305
+
1306
+ 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>
1313
+
1314
+ A single backtick surrounded by spaces is treated as literal backtick. If you want to force the
1315
+ literal meaning of a backtick you can backslash-escape it:
1316
+
1317
+ This is a ` literal backtick.
1318
+ As \`are\` these!
1319
+
1320
+
1321
+ ## HTML Spans
1322
+
1323
+ HTML tags cannot only be used on the block level but also on the span level. Span level HTML tags
1324
+ can only be used inside one block level element, it is not possible to use a start tag in one block
1325
+ level element and the end tag in another. Note that only correct XHTML is supported! This means that
1326
+ you have to use, for example, `<br />` instead of `<br>` (although kramdown tries to fix such errors
1327
+ if possible).
1328
+
1329
+ 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
1331
+ spans is enabled, if it is set to `false`, parsing is disabled. It is also possible to
1332
+ enable/disable syntax parsing on a tag per tag basis using the `markdown` attribute:
1333
+
1334
+ * If an HTML tag has an attribute `markdown="0"`, then no parsing (except parsing of HTML span tags)
1335
+ is done inside that HTML tag.
1336
+
1337
+ * If an HTML tag has an attribute `markdown="1"`, then the content of the tag is parsed as span
1338
+ level elements.
1339
+
1340
+ * If an HTML tag has an attribute `markdown="block"`, then a warning is issued because HTML spans
1341
+ cannot contain block level elements and the attribute is ignored.
1342
+
1343
+ * If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span
1344
+ level elements.
1345
+
1346
+ The content of a span level HTML tag is normally parsed as span level elements. Note, however, that
1347
+ some tags like `<script>` are not parsed, i.e. their content is not modified.
1348
+
1349
+ Processing instructions and XML comments can also be used (their content is not parsed). However, as
1350
+ with HTML tags the start and the end have to appear in the same block level element.
1351
+
1352
+ Span level PIs and span level XML comments as well as general span level HTML and XML tags have to
1353
+ be preceded by at least one non whitespace character on the same line so that kramdown correctly
1354
+ recognizes them as span level element and not as block level element. However, all span HTML tags,
1355
+ i.e. `a`, `em`, `b`, ..., (opening or closing) can appear at the start of a line.
1356
+
1357
+ Unclosed span level HTML tags are correctly closed at the end of the span level text to ensure
1358
+ correct nesting and invalidly used end tags or block HTML tags are removed from the output:
1359
+
1360
+ This is </invalid>.
1361
+
1362
+ This <span>is automatically closed.
1363
+ ^
1364
+ <p>This is .</p>
1365
+
1366
+ <p>This <span>is automatically closed.</span></p>
1367
+
1368
+ Also note that one or more consecutive new line characters in an HTML span tag are replaced by a
1369
+ single space, for example:
1370
+
1371
+ Link: <a href="some
1372
+ link">text</a>
1373
+ ^
1374
+ <p>Link: <a href="some link">text</a></p>
1375
+
1376
+
1377
+ ## Footnotes
1378
+
1379
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1380
+ > the [PHP Markdown Extra] package.
1381
+ {: .markdown-difference}
1382
+
1383
+ Footnotes in kramdown are similar to reference style links and link definitions. You need to place
1384
+ the footnote marker in the correct position in the text and the actual footnote content can be
1385
+ defined anywhere in the document.
1386
+
1387
+ More exactly, a footnote marker can be created by placing the footnote name in square brackets.
1388
+ The footnote name has to start with a caret (`^`), followed by a word character or a digit and then
1389
+ optionally followed by other word characters, digits or dashes. For example:
1390
+
1391
+ This is some text.[^1]. Other text.[^footnote].
1392
+
1393
+ The footnote name has to be unique in the whole kramdown document. Therefore you can't link to the
1394
+ same footnote definition twice. The actual naming of a footnote does not matter since the numbering
1395
+ of footnotes is controlled via the position of the footnote markers in the document (the first found
1396
+ footnote marker will get the number 1, the second footnote marker the number 2 and so on). If there
1397
+ is a footnote definition found for the identifier, a footnote will be created. Otherwise the
1398
+ footnote marker is not converted to a footnote link. Also note that all attributes set via a span
1399
+ IAL are ignored for a footnote marker!
1400
+
1401
+ A footnote definition is used to define the content of a footnote and has the following structure:
1402
+
1403
+ * The footnote name in square brackets, optionally indented up to three spaces,
1404
+ * then a colon and one or more optional spaces,
1405
+ * then the text of the footnote
1406
+ * and optionally more text on the following lines which have have to be indented by four spaces or
1407
+ one tab (like with list items).
1408
+
1409
+ > Footnote definitions are, despite being described here, block level elements.
1410
+ {: .information}
1411
+
1412
+ The whole footnote content is treated like block level text and can therefore contain any valid
1413
+ block level element (also, any block level element can be the first element). If you want to have a
1414
+ code block as first element, note that all leading spaces/tabs on the first line are stripped away.
1415
+ Here are some example footnote definitions:
1416
+
1417
+ [^1]: Some *crazy* footnote definition.
1418
+
1419
+ [^footnote]:
1420
+ > Blockquotes can be in a footnote.
1421
+
1422
+ as well as code blocks
1423
+
1424
+ or, naturally, simple paragraphs.
1425
+
1426
+ [^other-note]: no code block here (spaces are stripped away)
1427
+
1428
+ [^codeblock-note]:
1429
+ this is now a code block (8 spaces indentation)
1430
+
1431
+ It does not matter where you put a footnote definition in a kramdown document; the content of all
1432
+ referenced footnote definitions will be placed at the end of the kramdown document. Not referenced
1433
+ foot note definitions are ignored. If more than one footnote definitions have the same footnote
1434
+ name, all footnote definitions but the last are ignored.
1435
+
1436
+
1437
+ ## Span Inline Attribute Lists
1438
+
1439
+ > This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
1440
+ > the [Maruku] package.
1441
+ {: .markdown-difference}
1442
+
1443
+ This is a version of the [block inline attribute list](#block-inline-attribute-lists) for span level
1444
+ 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.
1447
+
1448
+ Here are some examples for span IALs:
1449
+
1450
+ This *is*{:.underline} some `code`{:#id}{:.class}.
1451
+ A [link](test.html){:rel='something'} and some **tools**{:.tools}.