radiantcms-couchrest_model 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +0 -16
- data/CONTRIBUTORS +0 -7
- data/README +84 -2
- data/app/controllers/admin/export_controller.rb +5 -0
- data/app/controllers/admin/pages_controller.rb +7 -11
- data/app/controllers/admin/preferences_controller.rb +1 -1
- data/app/controllers/admin/resource_controller.rb +1 -1
- data/app/helpers/admin/pages_helper.rb +3 -1
- data/app/helpers/admin/preferences_helper.rb +0 -1
- data/app/helpers/admin/references_helper.rb +2 -1
- data/app/helpers/application_helper.rb +2 -4
- data/app/models/env_dump_page.rb +17 -0
- data/app/models/file_not_found_page.rb +0 -4
- data/app/models/page.rb +20 -61
- data/app/models/radiant/config.rb +37 -225
- data/app/models/radiant/exporter.rb +11 -0
- data/app/models/standard_tags.rb +108 -116
- data/app/models/status.rb +1 -9
- data/app/models/text_filter.rb +1 -12
- data/app/views/admin/extensions/index.html.haml +2 -2
- data/app/views/admin/layouts/index.html.haml +9 -9
- data/app/views/admin/pages/_fields.html.haml +4 -11
- data/app/views/admin/pages/_meta_row.html.haml +1 -5
- data/app/views/admin/pages/_node.html.haml +8 -8
- data/app/views/admin/pages/_popups.html.haml +1 -14
- data/app/views/admin/pages/index.html.haml +4 -4
- data/app/views/admin/snippets/_form.html.haml +1 -1
- data/app/views/admin/snippets/index.html.haml +10 -10
- data/app/views/admin/users/_avatar.html.haml +1 -3
- data/app/views/admin/users/_form.html.haml +2 -2
- data/app/views/admin/users/_password_fields.html.haml +2 -2
- data/app/views/admin/users/index.html.haml +10 -10
- data/app/views/layouts/application.html.haml +1 -1
- data/config/environment.rb +3 -5
- data/config/locales/en.yml +11 -48
- data/config/locales/en_available_tags.yml +34 -122
- data/config/routes.rb +6 -3
- data/db/schema.rb +3 -9
- data/db/templates/empty.yml +2 -0
- data/db/templates/roasters.yml +1210 -0
- data/db/templates/simple-blog.yml +197 -0
- data/db/templates/styled-blog.yml +472 -0
- data/features/admin/pages_management.feature +9 -2
- data/features/admin/resource_pagination.feature +1 -1
- data/features/admin/snippets_management.feature +1 -2
- data/features/admin/user_permissions.feature +1 -0
- data/features/admin/user_preferences.feature +1 -1
- data/features/step_definitions/admin/content_negotiation_steps.rb +0 -4
- data/features/step_definitions/admin/pagination_steps.rb +4 -2
- data/features/support/paths.rb +0 -2
- data/files +7283 -0
- data/lib/generators/extension/extension_generator.rb +0 -6
- data/lib/generators/extension/templates/README +1 -4
- data/lib/generators/extension/templates/RSpecRakefile +19 -0
- data/lib/generators/extension/templates/Rakefile +17 -0
- data/lib/generators/extension/templates/extension.rb +3 -3
- data/lib/generators/instance/instance_generator.rb +2 -3
- data/lib/generators/instance/templates/instance_environment.rb +2 -3
- data/lib/radiant.rb +2 -2
- data/lib/radiant/admin_ui.rb +11 -27
- data/lib/radiant/extension.rb +2 -8
- data/lib/radiant/extension_loader.rb +0 -4
- data/lib/radiant/initializer.rb +2 -46
- data/lib/radiant/setup.rb +11 -21
- data/lib/task_support.rb +8 -14
- data/lib/tasks/framework.rake +10 -17
- data/lib/tasks/prototype.rake +3 -3
- data/lib/tasks/release.rake +0 -1
- data/public/javascripts/admin/application.js +1 -1
- data/public/javascripts/admin/popup.js +7 -7
- data/public/javascripts/admin/tabcontrol.js +0 -1
- data/public/javascripts/admin/utility.js +2 -3
- data/public/stylesheets/admin/main.css +1213 -1
- data/public/stylesheets/admin/overrides.css +1 -0
- data/public/stylesheets/sass/admin/main.sass +20 -24
- data/public/stylesheets/sass/admin/modules/_links.sass +3 -6
- data/public/stylesheets/sass/admin/modules/_opacity.sass +2 -2
- data/public/stylesheets/sass/admin/modules/_rounded.sass +3 -3
- data/public/stylesheets/sass/admin/modules/_shadow.sass +2 -5
- data/public/stylesheets/sass/admin/partials/_actions.sass +38 -53
- data/public/stylesheets/sass/admin/partials/_avatars.sass +2 -2
- data/public/stylesheets/sass/admin/partials/_base.sass +58 -6
- data/public/stylesheets/sass/admin/partials/_content.sass +182 -10
- data/public/stylesheets/sass/admin/partials/_dateinput.sass +5 -5
- data/public/stylesheets/sass/admin/partials/_deprecated.sass +1 -1
- data/public/stylesheets/sass/admin/partials/_forms.sass +25 -26
- data/public/stylesheets/sass/admin/partials/_header.sass +9 -9
- data/public/stylesheets/sass/admin/partials/_popup.sass +1 -1
- data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +3 -4
- data/radiantcms-couchrest_model.gemspec +3673 -0
- data/rerun.txt +1 -0
- data/spec/controllers/admin/export_controller_spec.rb +16 -0
- data/spec/controllers/admin/pages_controller_spec.rb +6 -35
- data/spec/controllers/admin/preferences_controller_spec.rb +1 -1
- data/spec/datasets/config_dataset.rb +0 -1
- data/spec/datasets/home_page_dataset.rb +3 -1
- data/spec/datasets/pages_dataset.rb +1 -1
- data/spec/fixtures/radiant_config.yml +2 -2
- data/spec/generators/extension_generator_spec.rb +8 -28
- data/spec/generators/instance_generator_spec.rb +3 -10
- data/spec/helpers/admin/node_helper_spec.rb +0 -1
- data/spec/helpers/admin/references_helper_spec.rb +1 -10
- data/spec/helpers/application_helper_spec.rb +2 -7
- data/spec/lib/radiant/admin_ui_spec.rb +10 -11
- data/spec/lib/radiant/extension_spec.rb +3 -3
- data/spec/lib/task_support_spec.rb +0 -6
- data/spec/models/env_dump_page_spec.rb +18 -0
- data/spec/models/file_not_found_page_spec.rb +11 -15
- data/spec/models/page_spec.rb +166 -209
- data/spec/models/radiant/config_spec.rb +3 -38
- data/spec/models/radiant/exporter_spec.rb +25 -0
- data/spec/models/standard_tags_spec.rb +142 -132
- data/spec/models/status_spec.rb +0 -11
- data/spec/models/text_filter_spec.rb +2 -6
- data/test/fixtures/extensions/basic/basic_extension.rb +6 -1
- data/vendor/extensions/archive/README +29 -0
- data/vendor/extensions/archive/Rakefile +120 -0
- data/vendor/extensions/archive/app/models/archive_day_index_page.rb +28 -0
- data/vendor/extensions/archive/app/models/archive_finder.rb +60 -0
- data/vendor/extensions/archive/app/models/archive_month_index_page.rb +28 -0
- data/vendor/extensions/archive/app/models/archive_page.rb +36 -0
- data/vendor/extensions/archive/app/models/archive_year_index_page.rb +28 -0
- data/vendor/extensions/archive/archive_extension.rb +19 -0
- data/vendor/extensions/archive/lib/archive_index_tags_and_methods.rb +57 -0
- data/vendor/extensions/archive/lib/tasks/archive_extension_tasks.rake +28 -0
- data/vendor/extensions/archive/spec/datasets/archive_dataset.rb +51 -0
- data/vendor/extensions/archive/spec/models/archive_day_index_page_spec.rb +20 -0
- data/vendor/extensions/archive/spec/models/archive_month_index_page_spec.rb +20 -0
- data/vendor/extensions/archive/spec/models/archive_page_spec.rb +33 -0
- data/vendor/extensions/archive/spec/models/archive_year_index_page_spec.rb +20 -0
- data/vendor/extensions/archive/spec/spec.opts +6 -0
- data/vendor/extensions/archive/spec/spec_helper.rb +36 -0
- data/vendor/extensions/archive/test/fixtures/pages.yml +397 -0
- data/vendor/extensions/archive/test/functional/archive_extension_test.rb +16 -0
- data/vendor/extensions/archive/test/helpers/archive_index_test_helper.rb +37 -0
- data/vendor/extensions/archive/test/test_helper.rb +26 -0
- data/vendor/extensions/archive/test/unit/archive_day_index_page_test.rb +22 -0
- data/vendor/extensions/archive/test/unit/archive_month_index_page_test.rb +22 -0
- data/vendor/extensions/archive/test/unit/archive_page_test.rb +40 -0
- data/vendor/extensions/archive/test/unit/archive_year_index_page_test.rb +22 -0
- data/vendor/extensions/dutch_language_pack/README +3 -0
- data/vendor/extensions/dutch_language_pack/Rakefile +123 -0
- data/vendor/extensions/dutch_language_pack/config/locales/nl.yml +187 -0
- data/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml +553 -0
- data/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb +9 -0
- data/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake +28 -0
- data/vendor/extensions/french_language_pack/README +3 -0
- data/vendor/extensions/french_language_pack/Rakefile +123 -0
- data/vendor/extensions/french_language_pack/config/locales/fr.yml +190 -0
- data/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml +553 -0
- data/vendor/extensions/french_language_pack/french_language_pack_extension.rb +9 -0
- data/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake +28 -0
- data/vendor/extensions/german_language_pack/README +4 -0
- data/vendor/extensions/german_language_pack/Rakefile +123 -0
- data/vendor/extensions/german_language_pack/config/locales/de.yml +186 -0
- data/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml +624 -0
- data/vendor/extensions/german_language_pack/german_language_pack_extension.rb +9 -0
- data/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake +28 -0
- data/vendor/extensions/italian_language_pack/README +3 -0
- data/vendor/extensions/italian_language_pack/Rakefile +123 -0
- data/vendor/extensions/italian_language_pack/config/locales/it.yml +184 -0
- data/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml +553 -0
- data/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb +8 -0
- data/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake +28 -0
- data/vendor/extensions/japanese_language_pack/README +3 -0
- data/vendor/extensions/japanese_language_pack/Rakefile +123 -0
- data/vendor/extensions/japanese_language_pack/config/locales/ja.yml +184 -0
- data/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml +553 -0
- data/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb +9 -0
- data/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake +28 -0
- data/vendor/extensions/markdown_filter/README +1 -0
- data/vendor/extensions/markdown_filter/Rakefile +120 -0
- data/vendor/extensions/markdown_filter/lib/markdown_filter.rb +14 -0
- data/vendor/extensions/markdown_filter/lib/markdown_tags.rb +18 -0
- data/vendor/extensions/markdown_filter/lib/tasks/markdown_filter_extension_tasks.rake +28 -0
- data/vendor/extensions/markdown_filter/markdown.html +123 -0
- data/vendor/extensions/markdown_filter/markdown_filter_extension.rb +18 -0
- data/vendor/extensions/markdown_filter/spec/models/markdown_filter_spec.rb +22 -0
- data/vendor/extensions/markdown_filter/spec/spec.opts +6 -0
- data/vendor/extensions/markdown_filter/spec/spec_helper.rb +36 -0
- data/vendor/extensions/markdown_filter/test/test_helper.rb +19 -0
- data/vendor/extensions/markdown_filter/test/unit/markdown_filter_test.rb +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/AUTHORS +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/CONTRIBUTERS +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/COPYING +24 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/ChangeLog +3956 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/GPL +674 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/README +30 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/Rakefile +342 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/VERSION +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/benchmark.rb +34 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/generate_data.rb +112 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-jruby-1.4.0.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.6.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.8.7.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.1p243.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/historic-ruby-1.9.2dev.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdbasics.text +306 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/mdsyntax.text +888 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-jruby-1.4.0.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.6.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.8.7.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.1p243.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/static-ruby-1.9.2dev.dat +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/testing.sh +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/benchmark/timing.sh +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/bin/kramdown +78 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.html +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/data/kramdown/document.latex +43 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.less.css +510 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/default.template +71 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/documentation.page +72 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/index.page +63 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/installation.page +90 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/links.markdown +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.feed +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/news.page +28 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/quickref.page +564 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/syntax.page +1521 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/tests.page +51 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/doc/virtual +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown.rb +23 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/compatibility.rb +34 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter.rb +41 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/base.rb +111 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/html.rb +397 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/converter/latex.rb +555 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/document.rb +164 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/error.rb +27 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/options.rb +282 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser.rb +39 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/base.rb +95 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/html.rb +387 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown.rb +301 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/abbreviation.rb +65 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/attribute_list.rb +103 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/autolink.rb +47 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blank_line.rb +43 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/blockquote.rb +42 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codeblock.rb +58 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/codespan.rb +57 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/emphasis.rb +70 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/eob.rb +39 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/escaped_chars.rb +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/extension.rb +101 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/footnote.rb +73 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/header.rb +66 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/horizontal_rule.rb +39 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html.rb +173 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/html_entity.rb +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/line_break.rb +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/link.rb +153 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/list.rb +228 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/math.rb +53 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/paragraph.rb +44 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/smart_quotes.rb +214 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/table.rb +126 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/parser/kramdown/typographic_symbol.rb +52 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/lib/kramdown/version.rb +28 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/man/man1/kramdown.1 +222 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/setup.rb +1585 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/run_tests.rb +59 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/test_files.rb +100 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/spaces.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/01_blank_line/tabs.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/beginning.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/end.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.html +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/02_eob/middle.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.html +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/indented.text +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/no_newline_at_end.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/one_para.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/03_paragraph/two_para.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.html +34 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header.text +32 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/atx_header_no_newline_at_end.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.html +31 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header.text +36 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/setext_header_no_newline_at_end.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.options +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_id_prefix.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.html +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/04_header/with_auto_ids.text +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.html +25 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/indented.text +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.html +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/nested.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/no_newline_at_end.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/only_first_quoted.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.html +15 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/05_blockquote/with_code_blocks.text +11 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/error.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.html +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/no_newline_at_end.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.html +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/normal.text +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.html +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/tilde_syntax.text +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/whitespace.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.html +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_blank_line.text +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/06_codeblock/with_eob_marker.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.html +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/error.text +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.html +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/normal.text +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/sepspaces.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/07_horizontal_rule/septabs.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.html +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/escaping.text +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.html +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/item_ial.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.html +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_hr.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.html +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/list_and_others.text +25 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.html +117 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/mixed.text +66 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.html +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/nested.text +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.html +39 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/other_first_element.text +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.html +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ol.text +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.html +61 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/simple_ul.text +43 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/single_item.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.html +78 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/08_list/special_cases.text +48 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.html +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/comment.text +15 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/deflists.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.html +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/content_model/tables.text +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/filtered_html.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.html +15 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_and_codeblocks.text +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.html +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/code.text +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.html +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/comment.text +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/emphasis.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/entity.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.options +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/header.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_dl.text +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.html +15 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ol.text +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.html +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/list_ul.text +22 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/paragraph.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.html +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_normal.text +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.html +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/table_simple.text +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/html_to_native/typography.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_1.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/invalid_html_2.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.html +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/markdown_attr.text +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.html +24 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/not_parsed.text +24 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.html +30 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_raw.text +29 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.html +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_as_span.text +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.html +21 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/parse_block_html.text +17 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.html +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/processing_instruction.text +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.html +62 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/09_html/simple.text +57 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.html +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/10_ald/simple.text +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/auto_id_and_ial.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.html +25 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/11_ial/simple.text +34 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/comment.text +11 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/ignored.text +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/nomarkdown.text +11 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.html +24 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options.text +27 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.html +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options2.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.html +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/12_extension/options3.text +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/definition_at_beginning.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.html +13 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/multiple_terms.text +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.html +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/no_def_list.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.html +10 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/para_wrapping.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/separated_by_eob.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/simple.text +7 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/styled_terms.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/too_much_space.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.html +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/13_definition_list/with_blocks.text +24 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/errors.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.html +65 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/footer.text +25 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.html +103 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/header.text +32 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/no_table.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.html +61 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/14_table/simple.text +16 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.html +19 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/block/15_math/normal.text +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.html +46 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/encoding.text +28 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/empty.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/image_in_a.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.html +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/imagelinks.text +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.html +40 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/inline.text +42 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/link_defs.text +22 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/links_with_angle_brackets.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.html +32 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/01_link/reference.text +42 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.html +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/empty.text +3 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.html +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/errors.text +9 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.html +38 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/nesting.text +33 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.html +46 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/02_emphasis/normal.text +46 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/empty.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/errors.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.html +16 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/03_codespan/normal.text +16 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.html +14 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.latex +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/definitions.text +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.html +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.latex +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.options +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/footnote_nr.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.html +46 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.latex +32 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/04_footnote/markers.text +26 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/across_lines.text +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/invalid.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/link_with_mailto.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/markdown_attr.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.html +28 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/05_html/normal.text +28 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.html +8 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev.text +15 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.html +2 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/abbreviations/abbrev_defs.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.html +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/autolinks/url_links.text +12 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.html +41 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/escaped_chars/normal.text +41 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/comment.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/ignored.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/nomarkdown.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/extension/options.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.html +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/ial/simple.text +6 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.html +11 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/line_breaks/normal.text +11 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.html +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/math/normal.text +5 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.html +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/entities.text +4 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/greaterthan.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.html +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/lowerthan.text +1 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.html +18 -0
- data/vendor/extensions/markdown_filter/vendor/kramdown/test/testcases/span/text_substitutions/typography.text +18 -0
- data/vendor/extensions/russian_language_pack/README +3 -0
- data/vendor/extensions/russian_language_pack/Rakefile +123 -0
- data/vendor/extensions/russian_language_pack/config/locales/ru.yml +180 -0
- data/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml +553 -0
- data/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake +28 -0
- data/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb +9 -0
- data/vendor/extensions/smarty_pants_filter/README +1 -0
- data/vendor/extensions/smarty_pants_filter/Rakefile +136 -0
- data/vendor/extensions/smarty_pants_filter/lib/smarty_pants_filter.rb +7 -0
- data/vendor/extensions/smarty_pants_filter/lib/smarty_pants_tags.rb +18 -0
- data/vendor/extensions/smarty_pants_filter/lib/tasks/smarty_pants_filter_extension_tasks.rake +28 -0
- data/vendor/extensions/smarty_pants_filter/smarty_pants_filter_extension.rb +18 -0
- data/vendor/extensions/smarty_pants_filter/smartypants.html +47 -0
- data/vendor/extensions/smarty_pants_filter/spec/models/smarty_pants_filter_spec.rb +19 -0
- data/vendor/extensions/smarty_pants_filter/spec/spec.opts +6 -0
- data/vendor/extensions/smarty_pants_filter/spec/spec_helper.rb +36 -0
- data/vendor/extensions/smarty_pants_filter/test/test_helper.rb +19 -0
- data/vendor/extensions/smarty_pants_filter/test/unit/smarty_pants_filter_test.rb +14 -0
- data/vendor/extensions/smarty_pants_filter/vendor/rubypants/README +114 -0
- data/vendor/extensions/smarty_pants_filter/vendor/rubypants/Rakefile +84 -0
- data/vendor/extensions/smarty_pants_filter/vendor/rubypants/install.rb +9 -0
- data/vendor/extensions/smarty_pants_filter/vendor/rubypants/rubypants.rb +490 -0
- data/vendor/extensions/smarty_pants_filter/vendor/rubypants/test_rubypants.rb +162 -0
- data/vendor/extensions/textile_filter/README +1 -0
- data/vendor/extensions/textile_filter/Rakefile +120 -0
- data/vendor/extensions/textile_filter/lib/tasks/textile_filter_extension_tasks.rake +0 -0
- data/vendor/extensions/textile_filter/lib/textile_filter.rb +6 -0
- data/vendor/extensions/textile_filter/lib/textile_tags.rb +24 -0
- data/vendor/extensions/textile_filter/spec/models/textile_filter_spec.rb +19 -0
- data/vendor/extensions/textile_filter/spec/spec.opts +6 -0
- data/vendor/extensions/textile_filter/spec/spec_helper.rb +36 -0
- data/vendor/extensions/textile_filter/test/test_helper.rb +19 -0
- data/vendor/extensions/textile_filter/test/unit/textile_filter_test.rb +13 -0
- data/vendor/extensions/textile_filter/textile.html +115 -0
- data/vendor/extensions/textile_filter/textile_filter_extension.rb +10 -0
- data/vendor/plugins/haml/README.md +154 -95
- data/vendor/plugins/haml/Rakefile +91 -104
- data/vendor/plugins/haml/TODO +20 -26
- data/vendor/plugins/haml/VERSION +1 -1
- data/vendor/plugins/haml/VERSION_NAME +1 -1
- data/vendor/plugins/haml/bin/css2sass +1 -7
- data/vendor/plugins/haml/doc-src/FAQ.md +4 -16
- data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +1 -536
- data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +16 -176
- data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +0 -1159
- data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +632 -1162
- data/vendor/plugins/haml/extra/haml-mode.el +34 -36
- data/vendor/plugins/haml/extra/sass-mode.el +9 -10
- data/vendor/plugins/haml/haml.gemspec +33 -8
- data/vendor/plugins/haml/lib/haml.rb +2 -5
- data/vendor/plugins/haml/lib/haml/buffer.rb +4 -22
- data/vendor/plugins/haml/lib/haml/engine.rb +4 -13
- data/vendor/plugins/haml/lib/haml/exec.rb +64 -456
- data/vendor/plugins/haml/lib/haml/filters.rb +1 -19
- data/vendor/plugins/haml/lib/haml/helpers.rb +19 -40
- data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +12 -38
- data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +2 -13
- data/vendor/plugins/haml/lib/haml/html.rb +49 -209
- data/vendor/plugins/haml/lib/haml/precompiler.rb +89 -130
- data/vendor/plugins/haml/lib/haml/railtie.rb +13 -16
- data/vendor/plugins/haml/lib/haml/template.rb +12 -13
- data/vendor/plugins/haml/lib/haml/template/plugin.rb +6 -18
- data/vendor/plugins/haml/lib/haml/util.rb +44 -483
- data/vendor/plugins/haml/lib/haml/version.rb +2 -25
- data/vendor/plugins/haml/lib/sass.rb +2 -7
- data/vendor/plugins/haml/lib/sass/css.rb +196 -86
- data/vendor/plugins/haml/lib/sass/engine.rb +99 -304
- data/vendor/plugins/haml/lib/sass/environment.rb +3 -67
- data/vendor/plugins/haml/lib/sass/error.rb +25 -166
- data/vendor/plugins/haml/lib/sass/files.rb +38 -43
- data/vendor/plugins/haml/lib/sass/plugin.rb +150 -198
- data/vendor/plugins/haml/lib/sass/plugin/merb.rb +20 -8
- data/vendor/plugins/haml/lib/sass/plugin/rack.rb +20 -2
- data/vendor/plugins/haml/lib/sass/plugin/rails.rb +9 -16
- data/vendor/plugins/haml/lib/sass/repl.rb +1 -1
- data/vendor/plugins/haml/lib/sass/script.rb +31 -32
- data/vendor/plugins/haml/lib/sass/script/bool.rb +1 -2
- data/vendor/plugins/haml/lib/sass/script/color.rb +26 -295
- data/vendor/plugins/haml/lib/sass/script/funcall.rb +6 -33
- data/vendor/plugins/haml/lib/sass/script/functions.rb +33 -637
- data/vendor/plugins/haml/lib/sass/script/lexer.rb +57 -200
- data/vendor/plugins/haml/lib/sass/script/literal.rb +10 -69
- data/vendor/plugins/haml/lib/sass/script/node.rb +1 -99
- data/vendor/plugins/haml/lib/sass/script/number.rb +24 -64
- data/vendor/plugins/haml/lib/sass/script/operation.rb +3 -53
- data/vendor/plugins/haml/lib/sass/script/parser.rb +50 -229
- data/vendor/plugins/haml/lib/sass/script/string.rb +2 -57
- data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +2 -25
- data/vendor/plugins/haml/lib/sass/script/variable.rb +5 -22
- data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +27 -71
- data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +2 -8
- data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +37 -44
- data/vendor/plugins/haml/lib/sass/tree/for_node.rb +0 -19
- data/vendor/plugins/haml/lib/sass/tree/if_node.rb +0 -26
- data/vendor/plugins/haml/lib/sass/tree/import_node.rb +27 -64
- data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +0 -31
- data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +7 -82
- data/vendor/plugins/haml/lib/sass/tree/node.rb +77 -291
- data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +58 -157
- data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +137 -178
- data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +5 -10
- data/vendor/plugins/haml/lib/sass/tree/while_node.rb +0 -17
- data/vendor/plugins/haml/test/benchmark.rb +5 -5
- data/vendor/plugins/haml/test/haml/engine_test.rb +19 -530
- data/vendor/plugins/haml/test/haml/helper_test.rb +7 -124
- data/vendor/plugins/haml/test/haml/html2haml_test.rb +66 -250
- data/vendor/plugins/haml/test/haml/results/filters.xhtml +1 -1
- data/vendor/plugins/haml/test/haml/results/helpers.xhtml +23 -0
- data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +0 -2
- data/vendor/plugins/haml/test/haml/rhtml/_av_partial_1.rhtml +12 -0
- data/vendor/plugins/haml/test/haml/rhtml/_av_partial_2.rhtml +8 -0
- data/vendor/plugins/haml/test/haml/rhtml/action_view.rhtml +62 -0
- data/vendor/plugins/haml/test/haml/rhtml/standard.rhtml +54 -0
- data/vendor/plugins/haml/test/haml/template_test.rb +3 -33
- data/vendor/plugins/haml/test/haml/templates/helpers.haml +66 -0
- data/vendor/plugins/haml/test/haml/templates/just_stuff.haml +0 -2
- data/vendor/plugins/haml/test/haml/util_test.rb +0 -161
- data/vendor/plugins/haml/test/linked_rails.rb +1 -22
- data/vendor/plugins/haml/test/sass/css2sass_test.rb +18 -130
- data/vendor/plugins/haml/test/sass/engine_test.rb +138 -1426
- data/vendor/plugins/haml/test/sass/functions_test.rb +47 -429
- data/vendor/plugins/haml/test/sass/more_results/more_import.css +1 -1
- data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +3 -3
- data/vendor/plugins/haml/test/sass/plugin_test.rb +56 -246
- data/vendor/plugins/haml/test/sass/results/compact.css +1 -1
- data/vendor/plugins/haml/test/sass/results/complex.css +6 -5
- data/vendor/plugins/haml/test/sass/results/compressed.css +1 -1
- data/vendor/plugins/haml/test/sass/results/expanded.css +1 -1
- data/vendor/plugins/haml/test/sass/results/import.css +1 -3
- data/vendor/plugins/haml/test/sass/results/mixins.css +12 -12
- data/vendor/plugins/haml/test/sass/results/nested.css +1 -1
- data/vendor/plugins/haml/test/sass/results/parent_ref.css +4 -4
- data/vendor/plugins/haml/test/sass/results/script.css +4 -4
- data/vendor/plugins/haml/test/sass/script_test.rb +78 -281
- data/vendor/plugins/haml/test/sass/templates/alt.sass +2 -2
- data/vendor/plugins/haml/test/sass/templates/basic.sass +1 -1
- data/vendor/plugins/haml/test/sass/templates/bork.sass +2 -0
- data/vendor/plugins/haml/test/sass/templates/complex.sass +2 -0
- data/vendor/plugins/haml/test/sass/templates/import.sass +4 -5
- data/vendor/plugins/haml/test/sass/templates/importee.sass +3 -3
- data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +1 -1
- data/vendor/plugins/haml/test/sass/templates/mixins.sass +2 -2
- data/vendor/plugins/haml/test/sass/templates/parent_ref.sass +2 -2
- data/vendor/plugins/haml/test/sass/templates/script.sass +69 -69
- data/vendor/plugins/haml/test/sass/templates/units.sass +10 -10
- data/vendor/plugins/haml/test/test_helper.rb +4 -52
- data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +1 -5
- metadata +2926 -2487
- data/vendor/rack-cache/CHANGES +0 -128
- data/vendor/rack-cache/COPYING +0 -18
- data/vendor/rack-cache/README +0 -110
- data/vendor/rack-cache/Rakefile +0 -137
- data/vendor/rack-cache/TODO +0 -31
- data/vendor/rack-cache/doc/configuration.markdown +0 -86
- data/vendor/rack-cache/doc/faq.markdown +0 -141
- data/vendor/rack-cache/doc/index.markdown +0 -118
- data/vendor/rack-cache/doc/layout.html.erb +0 -34
- data/vendor/rack-cache/doc/license.markdown +0 -24
- data/vendor/rack-cache/doc/rack-cache.css +0 -362
- data/vendor/rack-cache/doc/server.ru +0 -34
- data/vendor/rack-cache/doc/storage.markdown +0 -162
- data/vendor/rack-cache/example/sinatra/app.rb +0 -25
- data/vendor/rack-cache/example/sinatra/views/index.erb +0 -44
- data/vendor/rack-cache/lib/rack/cache.rb +0 -45
- data/vendor/rack-cache/lib/rack/cache/cachecontrol.rb +0 -193
- data/vendor/rack-cache/lib/rack/cache/context.rb +0 -233
- data/vendor/rack-cache/lib/rack/cache/entitystore.rb +0 -253
- data/vendor/rack-cache/lib/rack/cache/key.rb +0 -52
- data/vendor/rack-cache/lib/rack/cache/metastore.rb +0 -328
- data/vendor/rack-cache/lib/rack/cache/options.rb +0 -150
- data/vendor/rack-cache/lib/rack/cache/request.rb +0 -33
- data/vendor/rack-cache/lib/rack/cache/response.rb +0 -267
- data/vendor/rack-cache/lib/rack/cache/storage.rb +0 -49
- data/vendor/rack-cache/rack-cache.gemspec +0 -69
- data/vendor/rack-cache/test/cache_test.rb +0 -38
- data/vendor/rack-cache/test/cachecontrol_test.rb +0 -139
- data/vendor/rack-cache/test/context_test.rb +0 -727
- data/vendor/rack-cache/test/entitystore_test.rb +0 -189
- data/vendor/rack-cache/test/key_test.rb +0 -50
- data/vendor/rack-cache/test/metastore_test.rb +0 -263
- data/vendor/rack-cache/test/options_test.rb +0 -78
- data/vendor/rack-cache/test/pony.jpg +0 -0
- data/vendor/rack-cache/test/request_test.rb +0 -19
- data/vendor/rack-cache/test/response_test.rb +0 -178
- data/vendor/rack-cache/test/spec_setup.rb +0 -202
- data/vendor/rack-cache/test/storage_test.rb +0 -94
@@ -0,0 +1,1521 @@
|
|
1
|
+
---
|
2
|
+
title: Syntax
|
3
|
+
in_menu: true
|
4
|
+
sort_info: 10
|
5
|
+
--- name:sidebar
|
6
|
+
<h1>Contents</h1>
|
7
|
+
|
8
|
+
{menu: {used_nodes: fragments, min_levels: 4, max_levels: 6}}
|
9
|
+
--- name:content
|
10
|
+
|
11
|
+
# kramdown Syntax
|
12
|
+
|
13
|
+
This is version **<%= ::Kramdown::VERSION %>** of the syntax documentation.
|
14
|
+
|
15
|
+
The kramdown syntax is based on the Markdown syntax and has been enhanced with features that are
|
16
|
+
found in other Markdown implementations like [Maruku], [PHP Markdown Extra] and [Pandoc]. However,
|
17
|
+
it strives to provide a strict syntax with definite rules and therefore isn't completely compatible
|
18
|
+
with Markdown. Nonetheless, most Markdown documents should work fine when parsed with kramdown. All
|
19
|
+
places where the kramdown syntax differs from the Markdown syntax are highlighted.
|
20
|
+
|
21
|
+
Following is the complete syntax definition for all elements kramdown supports. Together with the
|
22
|
+
documentation on the available converters, it is clearly specified what you will get when a kramdown
|
23
|
+
document is converted.
|
24
|
+
|
25
|
+
|
26
|
+
## Source Text Formatting
|
27
|
+
|
28
|
+
A kramdown document may be in any encoding, for example ASCII, UTF-8 or ISO-8859-1, and the output
|
29
|
+
will have the same encoding as the source. The document consists of two types of elements, block
|
30
|
+
level elements and span level elements:
|
31
|
+
|
32
|
+
* Block level elements define the main structure of the content, for example, what part of the text
|
33
|
+
should be a paragraph, a list, a blockquote and so on.
|
34
|
+
|
35
|
+
* Span level elements mark up small text parts as, for example, emphasized text or a link.
|
36
|
+
|
37
|
+
Thus span level elements can only occur inside block level elements or other span level elements.
|
38
|
+
|
39
|
+
You will often find references to the "first column" or "first character" of a line in a block level
|
40
|
+
element descriptions. Such a reference is always to be taken relative to the current indentation
|
41
|
+
level because some block level elements open up a new indentation level (e.g. blockquotes). The
|
42
|
+
beginning of a kramdown document opens up the default indentation level which begins at the first
|
43
|
+
column of the text.
|
44
|
+
|
45
|
+
|
46
|
+
### Usage of Tabs
|
47
|
+
|
48
|
+
kramdown assumes that tab stops are set at multiples of four. This is especially important when
|
49
|
+
using tabs for indentation in lists. Also, tabs may only be used at the beginning of a line when
|
50
|
+
indenting text and must not be preceded by spaces. Otherwise the results may be unexpected.
|
51
|
+
|
52
|
+
|
53
|
+
### Automatic and Manual Escaping
|
54
|
+
|
55
|
+
Depending on the output format, there are often characters that need special treatment. For example,
|
56
|
+
when converting a kramdown document to HTML one needs to take care of the characters `<`, `>` and
|
57
|
+
`&`. To ease working with these special characters, they are automatically and correctly escaped
|
58
|
+
depending on the output format.
|
59
|
+
|
60
|
+
This means, for example, that you can just use `<`, `>` and `&` in a kramdown document and need not
|
61
|
+
think about when to use their HTML entity counterparts. However, if you *do use* HTML entitys or
|
62
|
+
HTML tags which use one of the characters, the result will be correct nonetheless!
|
63
|
+
|
64
|
+
Since kramdown also uses some characters to mark-up the text, there needs to be a way to escape
|
65
|
+
these special characters so that they can have their normal meaning. This can be done by using
|
66
|
+
backslash escapes. For example, you can use a literal backtick like this:
|
67
|
+
|
68
|
+
This \`is not a code\` span!
|
69
|
+
|
70
|
+
Following is a list of all the characters (character sequences) that can be escaped:
|
71
|
+
|
72
|
+
\ backslash
|
73
|
+
. period
|
74
|
+
* asterisk
|
75
|
+
_ underscore
|
76
|
+
+ plus
|
77
|
+
- minus
|
78
|
+
` backtick
|
79
|
+
()[]{} left and right parens/brackets/braces
|
80
|
+
# hash
|
81
|
+
! bang
|
82
|
+
<< left guillemet
|
83
|
+
>> right guillemet
|
84
|
+
: colon
|
85
|
+
| pipe
|
86
|
+
" double quote
|
87
|
+
' single quote
|
88
|
+
$ dollar sign
|
89
|
+
|
90
|
+
|
91
|
+
# Structural Elements
|
92
|
+
|
93
|
+
All structural elements are block level elements and they are used to structure the content. They
|
94
|
+
can mark up some text as, for example, a simple paragraph, a quote or as a list item.
|
95
|
+
|
96
|
+
|
97
|
+
## Blank lines
|
98
|
+
|
99
|
+
Any line that just contains white space characters such as spaces and tabs is considered a blank
|
100
|
+
line by kramdown. One or more consecutive blank lines are handled as one empty blank line. Blank
|
101
|
+
lines are mostly used to visually separate block level elements from each other and in this case
|
102
|
+
they don't have semantic meaning. However, there are some cases where blank lines do have a semantic
|
103
|
+
meaning:
|
104
|
+
|
105
|
+
* When used in paragraphs -- see the [paragraphs section](#paragraphs)
|
106
|
+
* When used in headers -- see the [headers section](#headers)
|
107
|
+
* When used in lists -- see the [lists section](#lists)
|
108
|
+
|
109
|
+
|
110
|
+
## Paragraphs
|
111
|
+
|
112
|
+
Paragraphs are the most used block level elements. One or more consecutive lines of text are
|
113
|
+
interpreted as one paragraph. Every line of a paragraph may be indented up to three spaces. You can
|
114
|
+
separate two consecutive paragraphs from each other by using one or more blank lines. Notice that a
|
115
|
+
line break in the source does not mean a line break in the output! If you want to have an explicit
|
116
|
+
line break (i.e. a `<br />` tag) you need to end a line with two or more spaces or two backslashes!
|
117
|
+
Note, however, that a line break on the last text line of a paragraph is not possible and will be
|
118
|
+
ignored. Leading and trailing spaces will be stripped from the paragraph text.
|
119
|
+
|
120
|
+
The following gives you an example of how paragraphs look like:
|
121
|
+
|
122
|
+
This para line starts at the first column. However,
|
123
|
+
the lines can be indented up to three spaces.
|
124
|
+
The para continues here.
|
125
|
+
|
126
|
+
This is another paragraph, not connected to the above one. But
|
127
|
+
with a hard line break. \\
|
128
|
+
And another one.
|
129
|
+
{: .show-whitespaces .ws-lr}
|
130
|
+
|
131
|
+
|
132
|
+
## Headers
|
133
|
+
|
134
|
+
kramdown supports so called Setext style and atx style headers. Both forms can be used inside a
|
135
|
+
single document.
|
136
|
+
|
137
|
+
### Setext Style
|
138
|
+
|
139
|
+
Setext style headers are specified by a [blank line](#blank-lines) (except at the beginning of a
|
140
|
+
document), followed by a line of text (the header text) and a line with only equal signs (for a
|
141
|
+
first level header) or dashes (for a second level header). The header text may be indented up to
|
142
|
+
three spaces but any leading or trailing spaces are stripped from the header text. The amount of
|
143
|
+
equal signs or dashes is not significant, just one is enough but more may look better. The equal
|
144
|
+
signs or dashes have to begin at the first column. For example:
|
145
|
+
|
146
|
+
First level header
|
147
|
+
==================
|
148
|
+
|
149
|
+
Second level header
|
150
|
+
------
|
151
|
+
|
152
|
+
Other first level header
|
153
|
+
=
|
154
|
+
|
155
|
+
As mentioned you need to insert a blank line before (but not necessarily after) a Setext header:
|
156
|
+
|
157
|
+
This is a normal
|
158
|
+
paragraph.
|
159
|
+
|
160
|
+
And A Header
|
161
|
+
------------
|
162
|
+
And a paragraph
|
163
|
+
|
164
|
+
> This is a blockquote.
|
165
|
+
|
166
|
+
And A Header
|
167
|
+
------------
|
168
|
+
|
169
|
+
However, it is generally a good idea to also use a blank line after a Setext header because it looks
|
170
|
+
more appropriate.
|
171
|
+
|
172
|
+
> The original Markdown syntax allows one to omit the blank line before a Setext header. However,
|
173
|
+
> this leads to ambiguities and makes reading the document harder than necessary. Therefore it is
|
174
|
+
> not allowed in a kramdown document.
|
175
|
+
{: .markdown-difference}
|
176
|
+
|
177
|
+
An edge case worth mentioning is the following:
|
178
|
+
|
179
|
+
header
|
180
|
+
---
|
181
|
+
para
|
182
|
+
|
183
|
+
One might ask if this represents two paragraphs separated by a [horizontal rule](#horizontal-rules)
|
184
|
+
or a second level header and a paragraph. As suggested by the wording in the example, the latter is
|
185
|
+
the case. The general rule is that Setext headers are processed before horizontal rules.
|
186
|
+
|
187
|
+
### atx Style
|
188
|
+
|
189
|
+
atx style headers are specified by a [blank line](#blank-lines) (except at the beginning of a
|
190
|
+
document), followed by a line with one or more hash characters and then the header text. No spaces
|
191
|
+
are allowed before the hash characters. The number of hash characters specifies the heading level:
|
192
|
+
one hash character gives you a first level heading, two a second level heading and so on until the
|
193
|
+
maximum of six hash characters for a sixth level heading. You may optionally use any number of
|
194
|
+
hashes at the end of the line to close the header. Any leading or trailing spaces are stripped from
|
195
|
+
the header text. For example:
|
196
|
+
|
197
|
+
# First level header
|
198
|
+
|
199
|
+
### Third level header ###
|
200
|
+
|
201
|
+
## Second level header ######
|
202
|
+
|
203
|
+
> Again, the original Markdown syntax allows one to omit the blank line before an atx style header.
|
204
|
+
{: .markdown-difference}
|
205
|
+
|
206
|
+
|
207
|
+
### Specifying a Header ID
|
208
|
+
|
209
|
+
kramdown supports a nice way for explicitly setting the header ID which is taken from [PHP Markdown
|
210
|
+
Extra] and [Maruku]: If you follow the header text with an opening curly bracket (separated from the
|
211
|
+
text with a least one space), a hash, the ID and a closing curly bracket, the ID is set on the
|
212
|
+
header. If you use the trailing hash feature of atx style headers, the header ID has to go after the
|
213
|
+
trailing hashes. For example:
|
214
|
+
|
215
|
+
Hello {#id}
|
216
|
+
-----
|
217
|
+
|
218
|
+
# Hello {#id}
|
219
|
+
|
220
|
+
# Hello # {#id}
|
221
|
+
|
222
|
+
> This additional syntax is not part of standard Markdown.
|
223
|
+
{: .markdown-difference}
|
224
|
+
|
225
|
+
|
226
|
+
## Blockquotes
|
227
|
+
|
228
|
+
A blockquote is started using the `>` marker followed by an optional space and the content of the
|
229
|
+
blockquote. The marker itself may be indented up to three spaces. All following lines that are also
|
230
|
+
started with the blockquote marker belong to the blockquote. The contents of a blockquote are block
|
231
|
+
level elements. This means that if you are just using text as content that it will be wrapped in a
|
232
|
+
paragraph. For example, the following gives you one blockquote with two paragraphs in it:
|
233
|
+
|
234
|
+
> This is a blockquote.
|
235
|
+
>on multiple lines.
|
236
|
+
>
|
237
|
+
> This is the second paragraph.
|
238
|
+
|
239
|
+
Since the contents of a blockquote are block level elements, you can nest blockquotes and use other
|
240
|
+
block level elements:
|
241
|
+
|
242
|
+
> This is a paragraph.
|
243
|
+
> > A nested blockquote.
|
244
|
+
>
|
245
|
+
> ## Headers work
|
246
|
+
>
|
247
|
+
> * lists too
|
248
|
+
>
|
249
|
+
> and all other block level elements
|
250
|
+
|
251
|
+
Note that the first space character after the `>` marker does *not* count when counting spaces for
|
252
|
+
the indentation of the block level elements inside the blockquote! So [code blocks](#code-blocks)
|
253
|
+
will have to be indented with five spaces or one space and one tab, like this:
|
254
|
+
|
255
|
+
> A code block:
|
256
|
+
>
|
257
|
+
> ruby -e 'puts :works'
|
258
|
+
|
259
|
+
> The original Markdown syntax allowed "lazy" blockquotes, i.e. blockquotes where only the first line
|
260
|
+
> needs a blockquote marker. This is disallowed in kramdown, you always need to use a blockquote
|
261
|
+
> marker! The rational behind this is that most email programs and good text editors put the `>`
|
262
|
+
> maker automatically before every quoted line and that things like the following work like
|
263
|
+
> expected:
|
264
|
+
>
|
265
|
+
> > > This is some quoted text.
|
266
|
+
> > > Spanning multiple lines.
|
267
|
+
> > This is the answer to the quoted text above.
|
268
|
+
> This is just a normal paragraph, with the answer to the above.
|
269
|
+
{: .markdown-difference}
|
270
|
+
|
271
|
+
|
272
|
+
## Code Blocks
|
273
|
+
|
274
|
+
Code blocks can be used to represent verbatim text like markup, HTML or a program fragment because
|
275
|
+
no syntax is parsed within a code block.
|
276
|
+
|
277
|
+
### Standard Code Block
|
278
|
+
|
279
|
+
A code block can be started by using four spaces or one tab and then the text of the code block. All
|
280
|
+
following lines that adhere to this syntax belong to the same code block. The indentation (four
|
281
|
+
spaces or one tab) is stripped from the text. Note that blank lines don't separate consecutive code
|
282
|
+
blocks:
|
283
|
+
|
284
|
+
Here comes some code
|
285
|
+
|
286
|
+
This text belongs to the same code block.
|
287
|
+
|
288
|
+
If you want to have one code block directly after another one, you need to use an [EOB
|
289
|
+
marker](#eob-marker) to separate the two:
|
290
|
+
|
291
|
+
Here comes some code
|
292
|
+
^
|
293
|
+
This one is separate.
|
294
|
+
|
295
|
+
### Fenced Code Block
|
296
|
+
|
297
|
+
> This alternative syntax is not part of the original Markdown syntax. The idea and syntax comes
|
298
|
+
> from the [PHP Markdown Extra] package.
|
299
|
+
{: .markdown-difference}
|
300
|
+
|
301
|
+
kramdown also supports an alternative syntax for code blocks which does not use indented blocks but
|
302
|
+
delimiting lines. The starting line needs to begin with three or more tilde characters (`~`) and the
|
303
|
+
closing line needs to have at least the number of tildes the starting line has. Everything between
|
304
|
+
is taken literally as with the other syntax but there is no need for indenting the text. For
|
305
|
+
example:
|
306
|
+
|
307
|
+
~~~~~~~~
|
308
|
+
Here comes some code.
|
309
|
+
~~~~~~~~
|
310
|
+
|
311
|
+
If you need lines of tildes in such a code block, just start the code block with more tildes. For
|
312
|
+
example:
|
313
|
+
|
314
|
+
~~~~~~~~~~~~
|
315
|
+
~~~~~~~
|
316
|
+
code with tildes
|
317
|
+
~~~~~~~~
|
318
|
+
~~~~~~~~~~~~~~~~~~
|
319
|
+
|
320
|
+
This type of code block is especially useful for copy-pasted code since you don't need to indent the
|
321
|
+
code.
|
322
|
+
|
323
|
+
|
324
|
+
## Lists
|
325
|
+
|
326
|
+
kramdown provides syntax elements for creating ordered and unordered lists as well as definition
|
327
|
+
lists.
|
328
|
+
|
329
|
+
### Ordered and Unordered lists
|
330
|
+
|
331
|
+
Both ordered and unordered lists follow the same rules.
|
332
|
+
|
333
|
+
A list is started with a list marker (in case of unordered lists one of `+`, `-` or `*` -- you can
|
334
|
+
mix them -- and in case of ordered lists a number followed by a period) followed by one tab or at
|
335
|
+
least one space, optionally followed by an [IAL](#inline-attribute-lists) that should be applied to
|
336
|
+
the list item and then the first part of the content of the list item. The leading tabs or spaces
|
337
|
+
are stripped away from this first line of content to allow for a nice alignment with the following
|
338
|
+
content of a list item (see below). All following list items with the same marker type (unordered or
|
339
|
+
ordered) are put into the same list. The numbers used for ordered lists are irrelevant, an ordered
|
340
|
+
list always starts at 1.
|
341
|
+
|
342
|
+
The following gives you an unordered list and an ordered list:
|
343
|
+
|
344
|
+
* kram
|
345
|
+
+ down
|
346
|
+
- now
|
347
|
+
|
348
|
+
1. kram
|
349
|
+
2. down
|
350
|
+
3. now
|
351
|
+
|
352
|
+
> The original Markdown syntax allows the markers of ordered and unordered lists to be mixed, the
|
353
|
+
> first marker specifying the list type (ordered or unordered). This is not allowed in kramdown. As
|
354
|
+
> stated, the above example will give you two lists (an unordered and an ordered) in kramdown and
|
355
|
+
> only one unordered list in Markdown.
|
356
|
+
{: .markdown-difference}
|
357
|
+
|
358
|
+
The first list marker in a list may be indented up to three spaces. The column number of the first
|
359
|
+
non-space character which appears after the list item marker on the same line specifies the
|
360
|
+
indentation that has to be used for the following lines of content of the list item. If there is no
|
361
|
+
such character, the indentation that needs to be used is four spaces or one tab. If a line does not
|
362
|
+
have the needed amount of indentation, it is not treated as list item content. The indentation is
|
363
|
+
stripped from the content and the content (note that the content naturally also contains the content
|
364
|
+
of the line with the item marker) is processed as text containing block level elements. All other
|
365
|
+
list markers in the list may be indented up to three spaces or the number of spaces used for the
|
366
|
+
indentation of the last list item minus one, whichever number is smaller. For example:
|
367
|
+
|
368
|
+
* This is the first line. Since the first non-space characters appears in column 3, all other
|
369
|
+
lines have to be indented 2 spaces so that the first characters align. This tells kramdown
|
370
|
+
that the lines belong to the list item.
|
371
|
+
* This is the another item of the list. It uses a different number of spaces for
|
372
|
+
indentation which is okay but should generally be avoided.
|
373
|
+
* The list item marker is indented 3 spaces which is allowed but should also be avoided.
|
374
|
+
|
375
|
+
So, while the above is possible and creates one list with three items, it is not advised to use
|
376
|
+
different (marker and list content) indents for same level list items!
|
377
|
+
|
378
|
+
> The original Markdown syntax also allows you to indent the marker, however, the behaviour of what
|
379
|
+
> happens with the list items is not clearly specified and may surprise you.
|
380
|
+
>
|
381
|
+
> Also, Markdown uses a fixed number of spaces/tabs to indent the lines that belong to a list item!
|
382
|
+
{: .markdown-difference}
|
383
|
+
|
384
|
+
When using tabs for indenting the content of a list item, remember that tab stops occur at multiples
|
385
|
+
of four for kramdown. Tabs are correctly converted to spaces for calculating the indentation. For
|
386
|
+
example:
|
387
|
+
|
388
|
+
* Using a tab to indent this line, the tab only counts as three spaces and therefore the
|
389
|
+
overall indentation is four spaces.
|
390
|
+
|
391
|
+
1. The tab after the marker counts here as two spaces. Since the indentation of the marker
|
392
|
+
is three spaces and the marker itself takes two characters, the overall indentation
|
393
|
+
needed for the following lines is eight spaces or two tabs.
|
394
|
+
|
395
|
+
It is clear that you might get unexpected results if you mix tabs and spaces or if you don't have
|
396
|
+
the tab stops set to multiples of four in your editor! Therefore this should be avoided!
|
397
|
+
|
398
|
+
The content of a list item is made up of either text or block level elements. Simple list items only
|
399
|
+
contain text like in the above examples. They are not even wrapped in a paragraph tag. If the first
|
400
|
+
list text is followed by one or more blank lines, it will be wrapped in a paragraph tag:
|
401
|
+
|
402
|
+
* kram
|
403
|
+
|
404
|
+
* down
|
405
|
+
* now
|
406
|
+
|
407
|
+
In the above example, the first list item text will be wrapped in a paragraph tag since it is
|
408
|
+
followed by a blank line whereas the second list item contains just text. There is obviously a
|
409
|
+
problem for doing this with the last list item when it contains only text. You can circumvent this
|
410
|
+
by leaving a blank line after the last list item and using an EOB marker:
|
411
|
+
|
412
|
+
* Not wrapped in a paragraph
|
413
|
+
* Wrapped in a paragraph due to the following blank line.
|
414
|
+
|
415
|
+
* Also wrapped in a paragraph due to the
|
416
|
+
following blank line and the EOB marker.
|
417
|
+
|
418
|
+
^
|
419
|
+
|
420
|
+
The text of the last list item is also wrapped in a paragraph tag if *all* other list items contain
|
421
|
+
a proper paragraph as first element. This makes the following use case work like expected, i.e.
|
422
|
+
*all* the list items are wrapped in paragraphs:
|
423
|
+
|
424
|
+
* First list item
|
425
|
+
|
426
|
+
* Second list item
|
427
|
+
|
428
|
+
* Last list item
|
429
|
+
|
430
|
+
> The original Markdown syntax page specifies that list items which are separated by one or more
|
431
|
+
> blank lines are wrapped in paragraph tags. This means that the first text will also be wrapped in
|
432
|
+
> a paragraph if you have block level elements in a list which are separated by blank lines. The
|
433
|
+
> above rule is easy to remember and lets you exactly specify when the first list text should be
|
434
|
+
> wrapped in a paragraph. The idea for the above rule comes from the [Pandoc] package.
|
435
|
+
{: .markdown-difference}
|
436
|
+
|
437
|
+
As seen in the examples above, blank lines between list items are allowed.
|
438
|
+
|
439
|
+
Since the content of a list item can contain block level elements, you can do the following:
|
440
|
+
|
441
|
+
* First item
|
442
|
+
|
443
|
+
A second paragraph
|
444
|
+
|
445
|
+
* nested list
|
446
|
+
> blockquote
|
447
|
+
|
448
|
+
* Second item
|
449
|
+
|
450
|
+
However, there is a problem when you want to have a code block immediately after a list item. You
|
451
|
+
can use an EOB marker to circumvent this problem:
|
452
|
+
|
453
|
+
* This is a list item.
|
454
|
+
|
455
|
+
The second para of the list item.
|
456
|
+
^
|
457
|
+
A code block following the list item.
|
458
|
+
|
459
|
+
You can have any block level element as first element in a list item. However, as described above,
|
460
|
+
the leading tabs or spaces of the line with the list item marker are stripped away. This leads to a
|
461
|
+
problem when you want to have a code block as first element. The solution to this problem is the
|
462
|
+
following construct:
|
463
|
+
|
464
|
+
*
|
465
|
+
This is a code block (indentation needs to be 4(1)+4(1) spaces (tabs)).
|
466
|
+
{: .show-whitespaces .ws-lr}
|
467
|
+
|
468
|
+
Note that the list marker needs to be followed with at least one space or tab! Otherwise the line is
|
469
|
+
not recognized as the start of a list item but interpreted as a paragraph containing the list
|
470
|
+
marker.
|
471
|
+
|
472
|
+
> The original Markdown syntax allows you to be lazy when you just use text for a list item. So the
|
473
|
+
> following is possible with Markdown:
|
474
|
+
>
|
475
|
+
> * First list item
|
476
|
+
> continued here
|
477
|
+
> * Second list item
|
478
|
+
> continued here.
|
479
|
+
>
|
480
|
+
> This kind of syntax is disallowed in kramdown.
|
481
|
+
{: .markdown-difference}
|
482
|
+
|
483
|
+
If you want to have one list directly after another one (both with the same list type, i.e. ordered
|
484
|
+
or unordered), you need to use an EOB marker to separate the two:
|
485
|
+
|
486
|
+
* List one
|
487
|
+
^
|
488
|
+
* List two
|
489
|
+
|
490
|
+
It is possible that a line gets parsed as ordered or unordered list although it shouldn't. This
|
491
|
+
would be the case in the following example:
|
492
|
+
|
493
|
+
I have read the book
|
494
|
+
1984. It was great
|
495
|
+
- others say that, too!
|
496
|
+
|
497
|
+
Therefore you have to insert a blank line after a paragraph if you want to follow the paragraph with
|
498
|
+
a list. The only exception to this rule is when you want to create a compact nested list, i.e. a
|
499
|
+
list where the text is not wrapped in paragraphs:
|
500
|
+
|
501
|
+
* This is just text.
|
502
|
+
* this is a sub list item
|
503
|
+
* this is a sub sub list item
|
504
|
+
* This is just text,
|
505
|
+
spanning two lines
|
506
|
+
* this is a nested list item.
|
507
|
+
|
508
|
+
Another way to remedy the problem with the list item marker appearing in plain text is by escaping
|
509
|
+
the period in an ordered list or the list item marker in an unordered list (this is especially
|
510
|
+
useful when the paragraph starts with something looking like a list item marker):
|
511
|
+
|
512
|
+
1984\. It was great
|
513
|
+
\- others say that, too!
|
514
|
+
|
515
|
+
As mentioned at the beginning, an optional IAL for applying attributes to a list item can be used
|
516
|
+
after the list item marker:
|
517
|
+
|
518
|
+
* {:.cls} This item has the class "cls".
|
519
|
+
Here continues the above paragraph.
|
520
|
+
|
521
|
+
* This is a normal list item.
|
522
|
+
|
523
|
+
|
524
|
+
### Definition Lists
|
525
|
+
|
526
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
527
|
+
> the [PHP Markdown Extra] package.
|
528
|
+
{: .markdown-difference}
|
529
|
+
|
530
|
+
Definition lists allow you to assign one or more definitions to one or more terms.
|
531
|
+
|
532
|
+
A definition list is started when a normal paragraph is followed by a line with a definition marker
|
533
|
+
(a colon which may be optionally indented up to three spaces), then at least one tab or one space
|
534
|
+
and then the first part of the definition. The line with the definition marker may optionally be
|
535
|
+
separated from the preceding paragraph by a blank line. The leading tabs or spaces are stripped away
|
536
|
+
from this first line of the definition to allow for a nice alignment with the following definition
|
537
|
+
content. Each line of the preceding paragraph is taken to be a term and the lines separately parsed
|
538
|
+
as span level elements.
|
539
|
+
|
540
|
+
The following is a simple definition list:
|
541
|
+
|
542
|
+
kramdown
|
543
|
+
: A Markdown-superset converter
|
544
|
+
|
545
|
+
Maruku
|
546
|
+
: Another Markdown-superset converter
|
547
|
+
|
548
|
+
The column number of the first non-space character which appears after a definition marker on the
|
549
|
+
same line specifies the indentation that has to be used for the following lines of the definition.
|
550
|
+
If there is no such character, the indentation that needs to be used is four spaces or one tab. If
|
551
|
+
one of the following lines does not have the needed amount of indentation, it is not treated as part
|
552
|
+
of the definition. The indentation is stripped from the definition and it (note that the definition
|
553
|
+
naturally also contains the content of the line with the definition marker) is processed as text
|
554
|
+
containing block level elements. If there is more than one definition, all other definition markers
|
555
|
+
for the term may be indented up to three spaces or the number of spaces used for the indentation of
|
556
|
+
the last definition minus one, whichever number is smaller. For example:
|
557
|
+
|
558
|
+
definition term 1
|
559
|
+
definition term 2
|
560
|
+
: This is the first line. Since the first non-space characters appears in column 3, all other
|
561
|
+
lines have to be indented 2 spaces so that they first characters align. This tells kramdown
|
562
|
+
that the lines belong to the definition.
|
563
|
+
: This is the another definition for the same term. It uses a different number of spaces
|
564
|
+
for indentation which is okay but should generally be avoided.
|
565
|
+
: The definition marker is indented 3 spaces which is allowed but should also be avoided.
|
566
|
+
|
567
|
+
So, while the above is possible and creates a definition list with two terms and three definitions
|
568
|
+
for them, it is not advised to use different (definition marker and definition) indents in the same
|
569
|
+
definition list!
|
570
|
+
|
571
|
+
The definition for a term is made up of text and/or block level elements. If a definition is *not*
|
572
|
+
preceded by a blank line, the first part of the definition will just be text if it would be a
|
573
|
+
paragraph otherwise:
|
574
|
+
|
575
|
+
definition term
|
576
|
+
: This definition will just be text because it would normally be a paragraph and the there is
|
577
|
+
no preceding blank line.
|
578
|
+
|
579
|
+
> although the definition contains other block level elements
|
580
|
+
|
581
|
+
: This definition *will* be a paragraph since it is preceded by a blank line.
|
582
|
+
|
583
|
+
The rules about having any block level element as first element in a list item also apply to a
|
584
|
+
definition.
|
585
|
+
|
586
|
+
|
587
|
+
## Tables
|
588
|
+
|
589
|
+
> This syntax feature is not part of the original Markdown syntax. The syntax is based on the one
|
590
|
+
> from the [PHP Markdown Extra] package.
|
591
|
+
{: .markdown-difference}
|
592
|
+
|
593
|
+
Sometimes one wants to include simple tabular data in a kramdown document for which using a
|
594
|
+
full-blown HTML table is just too much. kramdown supports this with a simple syntax for ASCII
|
595
|
+
tables.
|
596
|
+
|
597
|
+
There are three different text line types that can be used in a table:
|
598
|
+
|
599
|
+
* *Table rows* define the content of a table.
|
600
|
+
|
601
|
+
A table row is started with a pipe character, optionally indented up to three spaces, and then the
|
602
|
+
text of the first table cell. Subsequent table cells consist of a pipe character followed by the
|
603
|
+
cell text. One may optionally use a pipe character at the the end of a table row line.
|
604
|
+
|
605
|
+
Header rows, footer rows and normal rows are all done using these table rows. Table cells can only
|
606
|
+
contain a single line of text, no multiline text is supported. The text of a table cell is parsed
|
607
|
+
as span level elements. Note that literal pipe characters need to be escaped, even if they occur
|
608
|
+
in code spans!
|
609
|
+
|
610
|
+
Here are some example table rows:
|
611
|
+
|
612
|
+
| First cell|Second cell|Third cell
|
613
|
+
| First | Second | Third |
|
614
|
+
|
615
|
+
* *Separator lines* are used to split the table body into multiple body parts.
|
616
|
+
|
617
|
+
A separator line is started with a pipe or plus character, optionally indented up to three spaces,
|
618
|
+
followed by an optional space, an optional colon, a dash and then any number and combination of
|
619
|
+
pipes, dashes, pluses, colons and spaces. The pipe and plus characters can be used to visually
|
620
|
+
separate columns although this is not needed. Multiple separator lines after another are treated
|
621
|
+
as one separator line.
|
622
|
+
|
623
|
+
Here are some example separator lines:
|
624
|
+
|
625
|
+
|----+----|
|
626
|
+
+----|----+
|
627
|
+
|---------|
|
628
|
+
|-
|
629
|
+
| :-----: |
|
630
|
+
|
631
|
+
* The first separator line after at least one table row is treated specially, namely as *header
|
632
|
+
separator line*. It is used to demarcate header rows from normal table rows and/or to set column
|
633
|
+
alignments. All table rows above the header separator line are considered to be header rows.
|
634
|
+
|
635
|
+
The header separator line can be specially formatted to contain column alignment definitions: An
|
636
|
+
alignment definition consists of an optional space followed by an optional colon, one or more
|
637
|
+
dashes, an optional colon and another optional space. The colons of an alignment definition are
|
638
|
+
used to set the alignment of a column: if there are no colons, the column uses the default
|
639
|
+
alignment, if there is a colon only before the dashes, the column is left aligned, if there are
|
640
|
+
colons before and after the dashes, the column is center aligned and if there is only a colon
|
641
|
+
after the dashes, the column is right aligned. Each alignment definition sets the alignment for
|
642
|
+
one column, the first alignment definition for the first column, the second alignment definition
|
643
|
+
for the second column and so on.
|
644
|
+
|
645
|
+
Here are some example header separator lines with alignment definitions:
|
646
|
+
|
647
|
+
|---+---+---|
|
648
|
+
+ :-: |:------| ---:|
|
649
|
+
| :-: :- -: -
|
650
|
+
|
651
|
+
* A *footer separator line* is used to demarcate footer rows from normal table rows. All table rows
|
652
|
+
below the footer separator line are considered to be footer rows.
|
653
|
+
|
654
|
+
A footer separator line is like a normal separator line except that dashes are replaced by equal
|
655
|
+
signs. A footer separator line may only appear once in a table. If multiple footer separator lines
|
656
|
+
are used in one table, only the last is treated as footer separator line, all others are treated
|
657
|
+
as normal separator lines. Normal separator lines that are used after the footer separator line
|
658
|
+
are ignored.
|
659
|
+
|
660
|
+
Here are some example footer separator lines:
|
661
|
+
|
662
|
+
|====+====|
|
663
|
+
+====|====+
|
664
|
+
|=========|
|
665
|
+
|=
|
666
|
+
|
667
|
+
Trailing spaces or tabs are ignored in all cases. To simplify table creation and maintenance,
|
668
|
+
header, footer and normal separator lines need not specify the same number of columns as table rows;
|
669
|
+
even `|-` and `|=` are a valid separators.
|
670
|
+
|
671
|
+
Given the above components, a table is specified by
|
672
|
+
|
673
|
+
* an optional separator line,
|
674
|
+
* optionally followed by zero, one or more table rows followed by a header separator line,
|
675
|
+
* one or more table rows, optionally interspersed with separator lines,
|
676
|
+
* optionally followed by a footer separator line and zero, one or more table rows and
|
677
|
+
* an optional trailing separator line.
|
678
|
+
|
679
|
+
> The table syntax differs from the one used in [PHP Markdown Extra] as follows:
|
680
|
+
>
|
681
|
+
> * kramdown tables have to begin with a pipe character, this is optional in [PHP Markdown Extra].
|
682
|
+
> * kramdown tables do not need to have a table header.
|
683
|
+
> * kramdown tables can be structured using separator lines.
|
684
|
+
> * kramdown tables can contain a table footer.
|
685
|
+
{: .markdown-difference}
|
686
|
+
|
687
|
+
Here is an example for a kramdown table with a table header row, two table bodies and a table footer
|
688
|
+
row:
|
689
|
+
|
690
|
+
|-----------------+------------+-----------------+----------------|
|
691
|
+
| Default aligned |Left aligned| Center aligned | Right aligned |
|
692
|
+
|-----------------|:-----------|:---------------:|---------------:|
|
693
|
+
| First body part |Second cell | Third cell | fourth cell |
|
694
|
+
| Second line |foo | **strong** | baz |
|
695
|
+
| Third line |quux | baz | bar |
|
696
|
+
|-----------------+------------+-----------------+----------------|
|
697
|
+
| Second body | | | |
|
698
|
+
| 2 line | | | |
|
699
|
+
|=================+============+=================+================|
|
700
|
+
| Footer row | | | |
|
701
|
+
|-----------------+------------+-----------------+----------------|
|
702
|
+
|
703
|
+
The above example table is rather time-consuming to create without the help of an ASCII table
|
704
|
+
editor. However, the table syntax is flexible and the above table could also be written like this:
|
705
|
+
|
706
|
+
|---
|
707
|
+
| Default aligned | Left aligned | Center aligned | Right aligned
|
708
|
+
|-|:-|:-:|-:
|
709
|
+
| First body part | Second cell | Third cell | fourth cell
|
710
|
+
| Second line |foo | **strong** | baz
|
711
|
+
| Third line |quux | baz | bar
|
712
|
+
|---
|
713
|
+
| Second body
|
714
|
+
| 2 line
|
715
|
+
|===
|
716
|
+
| Footer row
|
717
|
+
|
718
|
+
|
719
|
+
## Horizontal Rules
|
720
|
+
|
721
|
+
A horizontal rule for visually separating content is created by using three or more asterisks,
|
722
|
+
dashes or underscores (these may not be mixed on a line), optionally separated by spaces or tabs, on
|
723
|
+
an otherwise blank line. The first asterisk, dash or underscore may optionally be indented up to
|
724
|
+
three spaces. The following examples show different possibilities to create a horizontal rule:
|
725
|
+
|
726
|
+
* * *
|
727
|
+
|
728
|
+
---
|
729
|
+
|
730
|
+
_ _ _ _
|
731
|
+
|
732
|
+
---------------
|
733
|
+
|
734
|
+
|
735
|
+
## Math Blocks
|
736
|
+
|
737
|
+
> This syntax feature is not part of the original Markdown syntax. The idea comes from the [Maruku]
|
738
|
+
> and [Pandoc] packages.
|
739
|
+
{: .markdown-difference}
|
740
|
+
|
741
|
+
kramdown has built-in support for block and span level mathematics written in LaTeX.
|
742
|
+
|
743
|
+
A math block is started using two dollar signs, optionally indented up to three spaces. The math
|
744
|
+
block continues until the next two dollar signs (which may be on the same line or on one of the next
|
745
|
+
lines) that appear at the end of a line, i.e. they may only be followed by whitespace characters.
|
746
|
+
The content of a math block has to be valid LaTeX math. It is always wrapped inside a
|
747
|
+
`\begin{displaymath}...\end{displaymath}` enviroment except if it begins with a `\begin` statement.
|
748
|
+
|
749
|
+
The following kramdown fragment
|
750
|
+
|
751
|
+
$$
|
752
|
+
\begin{align*}
|
753
|
+
& \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right)
|
754
|
+
= \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\
|
755
|
+
& (x_1, \ldots, x_n) \left( \begin{array}{ccc}
|
756
|
+
\phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
|
757
|
+
\vdots & \ddots & \vdots \\
|
758
|
+
\phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
|
759
|
+
\end{array} \right)
|
760
|
+
\left( \begin{array}{c}
|
761
|
+
y_1 \\
|
762
|
+
\vdots \\
|
763
|
+
y_n
|
764
|
+
\end{array} \right)
|
765
|
+
\end{align*}
|
766
|
+
$$
|
767
|
+
|
768
|
+
renders as
|
769
|
+
|
770
|
+
$$
|
771
|
+
\begin{align*}
|
772
|
+
& \phi(x,y) = \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right)
|
773
|
+
= \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) = \\
|
774
|
+
& (x_1, \ldots, x_n) \left( \begin{array}{ccc}
|
775
|
+
\phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
|
776
|
+
\vdots & \ddots & \vdots \\
|
777
|
+
\phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
|
778
|
+
\end{array} \right)
|
779
|
+
\left( \begin{array}{c}
|
780
|
+
y_1 \\
|
781
|
+
\vdots \\
|
782
|
+
y_n
|
783
|
+
\end{array} \right)
|
784
|
+
\end{align*}
|
785
|
+
$$
|
786
|
+
|
787
|
+
Using inline math is also easy: just surround your math content with two dollar signs, like with a
|
788
|
+
math block.
|
789
|
+
|
790
|
+
If you don't want to start a math block or an inline math statement, just escape the dollar signs
|
791
|
+
and they will be treated as simple dollar signs. If you want to start an inline math statement at
|
792
|
+
the beginning of a paragraph, just escape the first dollar sign.
|
793
|
+
|
794
|
+
|
795
|
+
## HTML Blocks
|
796
|
+
|
797
|
+
> The original Markdown syntax specifies that an HTML block must start at the left margin, i.e. no
|
798
|
+
> indentation is allowed. Also, the HTML block has to be surrounded by blank lines. Both
|
799
|
+
> restrictions are lifted for kramdown documents. Additionally, the original syntax does not allow
|
800
|
+
> you to use Markdown syntax in HTML blocks which is allowed with kramdown.
|
801
|
+
{: .markdown-difference}
|
802
|
+
|
803
|
+
An HTML block is potentially started if a line is encountered that begins with a non-span-level HTML
|
804
|
+
tag or a general XML tag (opening or closing) which may be indented up to three spaces.
|
805
|
+
|
806
|
+
The following HTML tags count as span level HTML tags and *won't* start an HTML block if found at
|
807
|
+
the beginning of an HTML block line:
|
808
|
+
|
809
|
+
a abbr acronym b big bdo br button cite code del dfn em i img input
|
810
|
+
ins kbd label option q rb rbc rp rt rtc ruby samp select small span
|
811
|
+
strong sub sup textarea tt var
|
812
|
+
|
813
|
+
Further parsing of a found start tag depends on the tag and in which of three possible ways its
|
814
|
+
content is parsed:
|
815
|
+
|
816
|
+
* Parse as raw HTML block: If the HTML/XML tag content should be handled as raw HTML, then only
|
817
|
+
HTML/XML tags are parsed from this point onwards and text is handled as raw, unparsed text until
|
818
|
+
the matching end tag is found or until the end of the document. Each found tag will be parsed as
|
819
|
+
raw HTML again. However, if a tag has a `markdown` attribute, this attribute controls parsing of
|
820
|
+
this one tag (see below).
|
821
|
+
|
822
|
+
Note that only correct XHTML is supported! This means that you have to use, for example, `<hr />`
|
823
|
+
instead of `<hr>` (although kramdown tries to fix such things if possible). If an invalid closing
|
824
|
+
tag is found, it is ignored.
|
825
|
+
|
826
|
+
* Parse as block level elements: If the HTML/XML tag content should be parsed as text containing
|
827
|
+
block level elements, the remaining text on the line will be parsed by the block level parser as
|
828
|
+
if it appears on a separate line (**Caution**: This also means that if the line consists of the
|
829
|
+
start tag, text and the end tag, the end tag will not be found!). All following lines are parsed
|
830
|
+
as block level elements until an HTML block line with the matching end tag is found or until the
|
831
|
+
end of the document.
|
832
|
+
|
833
|
+
* Parse as span level elements: If the HTML/XML tag content should be parsed as text containing span
|
834
|
+
level elements, then all text until the *next* matching end tag or until the end of the document
|
835
|
+
will be the content of the tag and will later be parsed by the span level parser. This also means
|
836
|
+
that if the matching end tag is inside what appears to be a code span, it is still used!
|
837
|
+
|
838
|
+
If there is text after an end tag, it will be parsed as if it appears on a separate line except when
|
839
|
+
inside a raw HTML block.
|
840
|
+
|
841
|
+
Also, if an invalid closing tag is found, it is ignored.
|
842
|
+
|
843
|
+
By default, kramdown parses all block HTML tags and all XML tags as raw HTML blocks. However, this
|
844
|
+
can be configured with the `parse_block_html`. If this is set to `true`, then syntax parsing in HTML
|
845
|
+
blocks is globally enabled. It is also possible to enable/disable syntax parsing on a tag per tag
|
846
|
+
basis using the `markdown` attribute:
|
847
|
+
|
848
|
+
* If an HTML tag has an attribute `markdown="0"`, then the tag is parsed as raw HTML block.
|
849
|
+
|
850
|
+
* If an HTML tag has an attribute `markdown="1"`, then the default mechanism for parsing syntax in
|
851
|
+
this tag is used.
|
852
|
+
|
853
|
+
* If an HTML tag has an attribute `markdown="block"`, then the content of the tag is parsed as block
|
854
|
+
level elements.
|
855
|
+
|
856
|
+
* If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span
|
857
|
+
level elements.
|
858
|
+
|
859
|
+
The following list shows which HTML tags are parsed in which mode by default when `markdown="1"` is
|
860
|
+
applied or `parse_block_html` is `true`:
|
861
|
+
|
862
|
+
Parse as raw HTML block
|
863
|
+
:
|
864
|
+
script math option textarea
|
865
|
+
|
866
|
+
Also, all general XML tags are parsed as raw HTML blocks.
|
867
|
+
|
868
|
+
Parse as block level elements
|
869
|
+
:
|
870
|
+
applet button blockquote colgroup dd div dl fieldset form iframe li
|
871
|
+
map noscript object ol table tbody thead tfoot tr td ul
|
872
|
+
|
873
|
+
Parse as span level elements
|
874
|
+
:
|
875
|
+
a abbr acronym address b bdo big cite caption code del dfn dt em
|
876
|
+
h1 h2 h3 h4 h5 h6 i ins kbd label legend optgroup p pre q rb rbc
|
877
|
+
rp rt rtc ruby samp select small span strong sub sup th tt var
|
878
|
+
|
879
|
+
> Remember that all span level HTML tags like `a` or `b` do not start a HTML block! However, the
|
880
|
+
> above lists also include span level HTML tags in the case the `markdown` attribute is used on a
|
881
|
+
> tag inside a raw HTML block.
|
882
|
+
|
883
|
+
Here is a simple example input and its HTML output with `parse_block_html` set to `false`:
|
884
|
+
|
885
|
+
This is a para.
|
886
|
+
<div>
|
887
|
+
Something in here.
|
888
|
+
</div>
|
889
|
+
Other para.
|
890
|
+
^
|
891
|
+
<p>This is a para.</p>
|
892
|
+
<div>
|
893
|
+
Something in here.
|
894
|
+
</div>
|
895
|
+
<p>Other para.</p>
|
896
|
+
|
897
|
+
As one can see the content of the `div` tag will be parsed as raw HTML block and left alone.
|
898
|
+
However, if the `markdown="1"` attribute was used on the `div` tag, the content would be parsed as
|
899
|
+
block level elements and therefore converted to a paragraph.
|
900
|
+
|
901
|
+
You can also use several HTML tags at once:
|
902
|
+
|
903
|
+
<div id="content"><div id="layers"><div id="layer1">
|
904
|
+
This is some text in the `layer1` div.
|
905
|
+
</div>
|
906
|
+
This is some text in the `layers` div.
|
907
|
+
</div></div>
|
908
|
+
This is a para outside the HTML block.
|
909
|
+
|
910
|
+
However, remember that if the content of a tag is parsed as block level elements, the content that
|
911
|
+
appears after a start/end tag but on the same line, is processed as if it appears on a new line:
|
912
|
+
|
913
|
+
<div markdown="1">This is the first part of a para,
|
914
|
+
which is continued here.
|
915
|
+
</div>
|
916
|
+
|
917
|
+
<p markdown="1">This works without problems because it is parsed as span level elements</p>
|
918
|
+
|
919
|
+
<div markdown="1">The end tag is not found because
|
920
|
+
this line is parsed as a paragraph</div>
|
921
|
+
|
922
|
+
Since setting `parse_block_html` to `true` can lead to some not wanted behaviour, it is generally
|
923
|
+
better to selectively enable or disable block/span level elements parsing by using the `markdown`
|
924
|
+
attribute!
|
925
|
+
|
926
|
+
Unclosed block level HTML tags are correctly closed at the end of the document to ensure correct
|
927
|
+
nesting and invalidly used end tags are removed from the output:
|
928
|
+
|
929
|
+
This is a para.
|
930
|
+
<div markdown="1">
|
931
|
+
Another para.
|
932
|
+
</p>
|
933
|
+
^
|
934
|
+
<p>This is a para.</p>
|
935
|
+
<div>
|
936
|
+
<p>Another para.</p>
|
937
|
+
</div>
|
938
|
+
|
939
|
+
The parsing of processing instructions and XML comments is also supported. The content of both, PIs
|
940
|
+
and XML comments, may span multiple lines. The start of a PI/XML comment may only appear at the
|
941
|
+
beginning of a line, optionally indented up to three spaces. If there is text after the end of a PI
|
942
|
+
or XML comment, it will be parsed as if it appears on a separate line. kramdown syntax in PIs/XML
|
943
|
+
comments is not processed:
|
944
|
+
|
945
|
+
This is a para.
|
946
|
+
<!-- a *comment* -->
|
947
|
+
<? a processing `instruction`
|
948
|
+
spanning multiple lines
|
949
|
+
?> First part of para,
|
950
|
+
continues here.
|
951
|
+
|
952
|
+
|
953
|
+
|
954
|
+
# Text Markup
|
955
|
+
|
956
|
+
These elements are used inside block level elements to markup text fragments. For example, one can
|
957
|
+
easily create links or apply emphasis to certain text parts.
|
958
|
+
|
959
|
+
Note that empty span level elements are not converted to empty HTML tags but are copied as-is to the
|
960
|
+
output.
|
961
|
+
|
962
|
+
|
963
|
+
|
964
|
+
## Links and Images
|
965
|
+
|
966
|
+
Three types of links are supported: autolinks, inline links and reference links.
|
967
|
+
|
968
|
+
### Autolinks
|
969
|
+
|
970
|
+
This is the easiest one to create: Just surround a web address or an email address with angle
|
971
|
+
brackets and the address will be turned into a proper link. The address will be used as link target
|
972
|
+
and as link text. For example:
|
973
|
+
|
974
|
+
Information can be found on the <http://example.com> homepage.
|
975
|
+
You can also mail me: <me.example@example.com>
|
976
|
+
|
977
|
+
It is not possible to specify a different link text using autolinks -- use the other link types for
|
978
|
+
this!
|
979
|
+
|
980
|
+
|
981
|
+
### Inline Links
|
982
|
+
|
983
|
+
As the wording suggests, inline links provide all information inline in the text flow. Reference
|
984
|
+
style links only provide the link text in the text flow and everything else is defined
|
985
|
+
elsewhere. This also allows you to reuse link definitions.
|
986
|
+
|
987
|
+
An inline style link can be created by surrounding the link text with square brackets, followed
|
988
|
+
immediately by the link URL (and an optional title in single or double quotes preceded by at least
|
989
|
+
one space) in normal parentheses. For example:
|
990
|
+
|
991
|
+
This is [a link](http://rubyforge.org) to a page.
|
992
|
+
A [link](../test "local URI") can also have a title.
|
993
|
+
And [spaces](<link with spaces.html>)!
|
994
|
+
|
995
|
+
Notes:
|
996
|
+
|
997
|
+
* The link text is treated like normal span level text and therefore is parsed and converted.
|
998
|
+
However, if you use square brackets within the link text, you have to either properly nest them or
|
999
|
+
to escape them. It is not possible to create nested links!
|
1000
|
+
|
1001
|
+
* The link URL must not contain any spaces and it has to contain properly nested parentheses if no
|
1002
|
+
title is specified, or the link URL must be contained in angle brackets (then spaces and
|
1003
|
+
incorrectly nested parentheses are allowed). There must not be any spaces before the link URL, and
|
1004
|
+
if no title is specified, no spaces are allowed between the link URL and the closing parenthesis.
|
1005
|
+
|
1006
|
+
* The link title may not contain its delimiters and may not be empty.
|
1007
|
+
|
1008
|
+
### Reference Links
|
1009
|
+
|
1010
|
+
To create a reference style link, you need to surround the link text with square brackets (as with
|
1011
|
+
inline links), followed by optional spaces/tabs/line breaks and then optionally followed with
|
1012
|
+
another set of square brackets with the link identifier in them. A link identifier may only contain
|
1013
|
+
numbers, letters, spaces (line breaks and tabs are converted to spaces, multiple spaces are
|
1014
|
+
compressed to one) and punctuation characters (i.e. `_.:,;!?-`) and is not case sensitive. For
|
1015
|
+
example:
|
1016
|
+
|
1017
|
+
This is a [reference style link][linkid] to a page. And [this]
|
1018
|
+
[linkid] is also a link. As is [this][] and [THIS].
|
1019
|
+
|
1020
|
+
If you don't specify a link identifier (i.e. only use empty square brackets) or completely omit the
|
1021
|
+
second pair of square brackets, the link text is converted to a valid link identifier by removing
|
1022
|
+
all invalid characters and inserting spaces for line breaks. If there is a link definition found for
|
1023
|
+
the link identifier, a link will be created. Otherwise the text is not converted to a link.
|
1024
|
+
|
1025
|
+
### Link Definitions
|
1026
|
+
|
1027
|
+
The link definition can be put anywhere in the document. It does not appear in the output. A link
|
1028
|
+
definition looks like this:
|
1029
|
+
|
1030
|
+
[linkid]: http://www.example.com/ "Optional Title"
|
1031
|
+
|
1032
|
+
> Link definitions are, despite being described here, block level elements.
|
1033
|
+
{: .information}
|
1034
|
+
|
1035
|
+
The link definition has the following structure:
|
1036
|
+
|
1037
|
+
* The link identifier in square brackets, optionally indented up to three spaces,
|
1038
|
+
* then a colon and one or more spaces/tabs,
|
1039
|
+
* then the link URL which must not contain any spaces or a left angle bracket, the link URL which may
|
1040
|
+
contain spaces and a right angle bracket,
|
1041
|
+
* then optionally the title in single or double quotes, separated from the link URL by one or more
|
1042
|
+
spaces or on the next line by itself indented any number of spaces/tabs.
|
1043
|
+
|
1044
|
+
> The original Markdown syntax also allowed the title to be specified in parenthesis. This is not
|
1045
|
+
> allowed for consistency with the inline title.
|
1046
|
+
{: .markdown-difference}
|
1047
|
+
|
1048
|
+
### Images
|
1049
|
+
|
1050
|
+
Images can be specified via a syntax that is similar to the one used by links. The difference is
|
1051
|
+
that you have to use an exclamation mark before the first square bracket and that the link text of a
|
1052
|
+
normal link becomes the alternative text of the image link. As with normal links, image links can be
|
1053
|
+
written inline or reference style. For example:
|
1054
|
+
|
1055
|
+
Here comes a ![smiley](../images/smiley.png)! And here
|
1056
|
+
![too](../images/other.png 'Title text'). Or ![here].
|
1057
|
+
|
1058
|
+
The link definition for images is exactly the same as the link definition for normal links.
|
1059
|
+
|
1060
|
+
|
1061
|
+
## Emphasis
|
1062
|
+
|
1063
|
+
kramdown supports two types of emphasis: light and strong emphasis. Text parts that are surrounded
|
1064
|
+
with single asterisks `*` or underscores `_` are treated as text with light emphasis, text parts
|
1065
|
+
surrounded with two asterisks or underscores are treated as text with strong emphasis. Surrounded
|
1066
|
+
means that the starting delimiter must not be followed by a space and that the stopping delimiter
|
1067
|
+
must not be preceded by a space.
|
1068
|
+
|
1069
|
+
Here is an example for text with light and strong emphasis:
|
1070
|
+
|
1071
|
+
*some text*
|
1072
|
+
_some text_
|
1073
|
+
**some text**
|
1074
|
+
__some text__
|
1075
|
+
|
1076
|
+
The asterisk form is also allowed within a single word:
|
1077
|
+
|
1078
|
+
This is un*believe*able! This d_oe_s not work!
|
1079
|
+
|
1080
|
+
Text can be marked up with both light and strong emphasis, possibly using different delimiters.
|
1081
|
+
However, it is not possible to nest strong within strong or light within light emphasized text:
|
1082
|
+
|
1083
|
+
This is a ***text with light and strong emphasis***.
|
1084
|
+
This **is _emphasized_ as well**.
|
1085
|
+
This *does _not_ work*.
|
1086
|
+
This **does __not__ work either**.
|
1087
|
+
|
1088
|
+
If one or two asterisks or underscores are surrounded by spaces, they are treated literally. If you
|
1089
|
+
want to force the literal meaning of an asterisk or an underscore you can backslash-escape it:
|
1090
|
+
|
1091
|
+
This is a * literal asterisk.
|
1092
|
+
These are ** two literal asterisk.
|
1093
|
+
As \*are\* these!
|
1094
|
+
|
1095
|
+
|
1096
|
+
## Code Spans
|
1097
|
+
|
1098
|
+
This is the span level equivalent of the code block element. You can markup a text part as code span
|
1099
|
+
by surrounding it with backticks `` ` ``. For example:
|
1100
|
+
|
1101
|
+
Use `<html>` tags for this.
|
1102
|
+
|
1103
|
+
Note that all special characters in a code span are treated correctly. For example, when a code span
|
1104
|
+
is converted to HTML, the characters `<`, `>` and `&` are substituted by their respective HTML
|
1105
|
+
counterparts.
|
1106
|
+
|
1107
|
+
To include a literal backtick in a code span, you need to use two or more backticks as delimiters.
|
1108
|
+
You can insert one optional space after the starting and before the ending delimiter (these spaces
|
1109
|
+
are not used in the output). For example:
|
1110
|
+
|
1111
|
+
Here is a literal `` ` `` backtick.
|
1112
|
+
And here is `` `some` `` text (note the two spaces so that one is left in the output!).
|
1113
|
+
|
1114
|
+
A single backtick surrounded by spaces is treated as literal backtick. If you want to force the
|
1115
|
+
literal meaning of a backtick you can backslash-escape it:
|
1116
|
+
|
1117
|
+
This is a ` literal backtick.
|
1118
|
+
As \`are\` these!
|
1119
|
+
|
1120
|
+
|
1121
|
+
## HTML Spans
|
1122
|
+
|
1123
|
+
HTML tags cannot only be used on the block level but also on the span level. Span level HTML tags
|
1124
|
+
can only be used inside one block level element, it is not possible to use a start tag in one block
|
1125
|
+
level element and the end tag in another. Note that only correct XHTML is supported! This means that
|
1126
|
+
you have to use, for example, `<br />` instead of `<br>` (although kramdown tries to fix such errors
|
1127
|
+
if possible).
|
1128
|
+
|
1129
|
+
By default, kramdown parses kramdown syntax inside span HTML tags. However, this behaviour can be
|
1130
|
+
configured with the `parse_span_html` option. If this is set to `true`, then syntax parsing in HTML
|
1131
|
+
spans is enabled, if it is set to `false`, parsing is disabled. It is also possible to
|
1132
|
+
enable/disable syntax parsing on a tag per tag basis using the `markdown` attribute:
|
1133
|
+
|
1134
|
+
* If an HTML tag has an attribute `markdown="0"`, then no parsing (except parsing of HTML span tags)
|
1135
|
+
is done inside that HTML tag.
|
1136
|
+
|
1137
|
+
* If an HTML tag has an attribute `markdown="1"`, then the content of the tag is parsed as span
|
1138
|
+
level elements.
|
1139
|
+
|
1140
|
+
* If an HTML tag has an attribute `markdown="block"`, then a warning is issued because HTML spans
|
1141
|
+
cannot contain block level elements and the attribute is ignored.
|
1142
|
+
|
1143
|
+
* If an HTML tag has an attribute `markdown="span"`, then the content of the tag is parsed as span
|
1144
|
+
level elements.
|
1145
|
+
|
1146
|
+
The content of a span level HTML tag is normally parsed as span level elements. Note, however, that
|
1147
|
+
some tags like `<script>` are not parsed, i.e. their content is not modified.
|
1148
|
+
|
1149
|
+
Processing instructions and XML comments can also be used (their content is not parsed). However, as
|
1150
|
+
with HTML tags the start and the end have to appear in the same block level element.
|
1151
|
+
|
1152
|
+
Span level PIs and span level XML comments as well as general span level HTML and XML tags have to
|
1153
|
+
be preceded by at least one non whitespace character on the same line so that kramdown correctly
|
1154
|
+
recognizes them as span level element and not as block level element. However, all span HTML tags,
|
1155
|
+
i.e. `a`, `em`, `b`, ..., (opening or closing) can appear at the start of a line.
|
1156
|
+
|
1157
|
+
Unclosed span level HTML tags are correctly closed at the end of the span level text to ensure
|
1158
|
+
correct nesting and invalidly used end tags or block HTML tags are removed from the output:
|
1159
|
+
|
1160
|
+
This is </invalid>.
|
1161
|
+
|
1162
|
+
This <span>is automatically closed.
|
1163
|
+
^
|
1164
|
+
<p>This is .</p>
|
1165
|
+
|
1166
|
+
<p>This <span>is automatically closed.</span></p>
|
1167
|
+
|
1168
|
+
Also note that one or more consecutive new line characters in an HTML span tag are replaced by a
|
1169
|
+
single space, for example:
|
1170
|
+
|
1171
|
+
Link: <a href="some
|
1172
|
+
link">text</a>
|
1173
|
+
^
|
1174
|
+
<p>Link: <a href="some link">text</a></p>
|
1175
|
+
|
1176
|
+
|
1177
|
+
## Footnotes
|
1178
|
+
|
1179
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
1180
|
+
> the [PHP Markdown Extra] package.
|
1181
|
+
{: .markdown-difference}
|
1182
|
+
|
1183
|
+
Footnotes in kramdown are similar to reference style links and link definitions. You need to place
|
1184
|
+
the footnote marker in the correct position in the text and the actual footnote content can be
|
1185
|
+
defined anywhere in the document.
|
1186
|
+
|
1187
|
+
More exactly, a footnote marker can be created by placing the footnote name in square brackets.
|
1188
|
+
The footnote name has to start with a caret (`^`), followed by a word character or a digit and then
|
1189
|
+
optionally followed by other word characters, digits or dashes. For example:
|
1190
|
+
|
1191
|
+
This is some text.[^1]. Other text.[^footnote].
|
1192
|
+
|
1193
|
+
The footnote name has to be unique in the whole kramdown document. Therefore you can't link to the
|
1194
|
+
same footnote definition twice. The actual naming of a footnote does not matter since the numbering
|
1195
|
+
of footnotes is controlled via the position of the footnote markers in the document (the first found
|
1196
|
+
footnote marker will get the number 1, the second footnote marker the number 2 and so on). If there
|
1197
|
+
is a footnote definition found for the identifier, a footnote will be created. Otherwise the
|
1198
|
+
footnote marker is not converted to a footnote link. Also note that all attributes set via a span
|
1199
|
+
IAL are ignored for a footnote marker!
|
1200
|
+
|
1201
|
+
A footnote definition is used to define the content of a footnote and has the following structure:
|
1202
|
+
|
1203
|
+
* The footnote name in square brackets, optionally indented up to three spaces,
|
1204
|
+
* then a colon and one or more optional spaces,
|
1205
|
+
* then the text of the footnote
|
1206
|
+
* and optionally more text on the following lines which have have to be indented by four spaces or
|
1207
|
+
one tab (like with list items).
|
1208
|
+
|
1209
|
+
> Footnote definitions are, despite being described here, block level elements.
|
1210
|
+
{: .information}
|
1211
|
+
|
1212
|
+
The whole footnote content is treated like block level text and can therefore contain any valid
|
1213
|
+
block level element (also, any block level element can be the first element). If you want to have a
|
1214
|
+
code block as first element, note that all leading spaces/tabs on the first line are stripped away.
|
1215
|
+
Here are some example footnote definitions:
|
1216
|
+
|
1217
|
+
[^1]: Some *crazy* footnote definition.
|
1218
|
+
|
1219
|
+
[^footnote]:
|
1220
|
+
> Blockquotes can be in a footnote.
|
1221
|
+
|
1222
|
+
as well as code blocks
|
1223
|
+
|
1224
|
+
or, naturally, simple paragraphs.
|
1225
|
+
|
1226
|
+
[^other-note]: no code block here (spaces are stripped away)
|
1227
|
+
|
1228
|
+
[^codeblock-note]:
|
1229
|
+
this is now a code block (8 spaces indentation)
|
1230
|
+
|
1231
|
+
It does not matter where you put a footnote definition in a kramdown document; the content of all
|
1232
|
+
referenced footnote definitions will be placed at the end of the kramdown document. Not referenced
|
1233
|
+
foot note definitions are ignored. If more than one footnote definitions have the same footnote
|
1234
|
+
name, all footnote definitions but the last are ignored.
|
1235
|
+
|
1236
|
+
|
1237
|
+
## Abbreviations
|
1238
|
+
|
1239
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
1240
|
+
> the [PHP Markdown Extra] package.
|
1241
|
+
{: .markdown-difference}
|
1242
|
+
|
1243
|
+
kramdown provides a syntax to assign the full phrase to an abbreviation. When writing the text, you
|
1244
|
+
don't need to do anything special. However, once you add abbreviation definitions, the
|
1245
|
+
abbreviations in the text get marked up automatically. Abbreviations can consist of any character
|
1246
|
+
except a closing bracket.
|
1247
|
+
|
1248
|
+
An abbreviation definition is used to define the full phrase for an abbreviation and has the
|
1249
|
+
following structure:
|
1250
|
+
|
1251
|
+
* An asterisk and the abbreviation in square brackets, optionally indented up to three
|
1252
|
+
spaces,
|
1253
|
+
* then a colon and the full phrase of the abbreviation on one line (leading and trailing spaces are
|
1254
|
+
stripped from the full phrase).
|
1255
|
+
|
1256
|
+
Later abbreviation definition for the same abbreviation override prior ones and it does not matter
|
1257
|
+
where you put an abbreviation definition in a kramdown document. Empty definitions are also allowed.
|
1258
|
+
|
1259
|
+
Here are some examples:
|
1260
|
+
|
1261
|
+
This is some text not written in HTML but in another language!
|
1262
|
+
|
1263
|
+
*[another language]: It's called Markdown
|
1264
|
+
*[HTML]: HyperTextMarkupLanguage
|
1265
|
+
|
1266
|
+
> Abbreviation definitions are, despite being described here, block level elements.
|
1267
|
+
{: .information}
|
1268
|
+
|
1269
|
+
|
1270
|
+
## Typographic Symbols
|
1271
|
+
|
1272
|
+
> The original Markdown syntax does not support these transformations.
|
1273
|
+
{: .markdown-difference}
|
1274
|
+
|
1275
|
+
kramdown converts the following plain ASCII character into their corresponding typographic symbols:
|
1276
|
+
|
1277
|
+
* `---` will become an em-dash (like this ---)
|
1278
|
+
* `--` will become an en-dash (like this --)
|
1279
|
+
* `...` will become an ellipsis (like this ...)
|
1280
|
+
* `<<` will become a left guillemet (like this <<) -- an optional following space will become a
|
1281
|
+
non-breakable space
|
1282
|
+
* `>>` will become a right guillemet (like this >>) -- an optional leading space will become a
|
1283
|
+
non-breakable space
|
1284
|
+
|
1285
|
+
It also replaces normal single `'` and double quotes `"` with "fancy quotes". There *may* be times
|
1286
|
+
when kramdown falsely replace the quotes. If this is the case, just \'escape\" the quotes and they
|
1287
|
+
won't be replaced with fancy ones.
|
1288
|
+
|
1289
|
+
|
1290
|
+
|
1291
|
+
# Other Markup
|
1292
|
+
|
1293
|
+
This section describes markup that is not widely used in kramdown documents but which are sometimes
|
1294
|
+
needed nonetheless.
|
1295
|
+
|
1296
|
+
|
1297
|
+
## End-Of-Block Marker {#eob-marker}
|
1298
|
+
|
1299
|
+
> The EOB marker is not part of the standard Markdown syntax.
|
1300
|
+
{: .markdown-difference}
|
1301
|
+
|
1302
|
+
The End-Of-Block (EOB) marker -- a `^` as first character on an otherwise empty line -- is a block
|
1303
|
+
level element that can be used to specify the end of a block level element even if the block level
|
1304
|
+
element, after which it is used, would continue otherwise. If there is no block level element to
|
1305
|
+
end, the EOB marker is simply ignored.
|
1306
|
+
|
1307
|
+
You won't find an EOB marker in most kramdown documents but sometimes it is necessary to use it to
|
1308
|
+
achieve the wanted results which would be impossible otherwise. However, it should only be used when
|
1309
|
+
absolutely necesary!
|
1310
|
+
|
1311
|
+
For example, the following gives you one list with two items:
|
1312
|
+
|
1313
|
+
* list item one
|
1314
|
+
|
1315
|
+
* list item two
|
1316
|
+
|
1317
|
+
By using an EOB marker, you can make two lists with one item each:
|
1318
|
+
|
1319
|
+
* list one
|
1320
|
+
^
|
1321
|
+
* list two
|
1322
|
+
|
1323
|
+
|
1324
|
+
## Attribute List Definitions
|
1325
|
+
|
1326
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
1327
|
+
> the [Maruku] package.
|
1328
|
+
{: .markdown-difference}
|
1329
|
+
|
1330
|
+
This is an implementation of [Maruku]'s feature for adding attributes to block and span level
|
1331
|
+
elements (the naming is also taken from Maruku). This block level element is used to define
|
1332
|
+
attributes which can be referenced later. The [Block Inline Attribute
|
1333
|
+
List](#block-inline-attribute-lists) is used to attach attributes to a block level element and the
|
1334
|
+
[Span Inline Attribute List](#span-inline-attribute-lists) is used to attach attributes to a span
|
1335
|
+
level element.
|
1336
|
+
|
1337
|
+
Following are some examples of attribute list definitions (ALDs) and afterwards comes the syntax
|
1338
|
+
explanation:
|
1339
|
+
|
1340
|
+
{:ref-name: #myid .my-class}
|
1341
|
+
{:other: ref-name #id-of-other title="hallo you"}
|
1342
|
+
{:test: key="value \" with quote" and other='quote brace \}'}
|
1343
|
+
|
1344
|
+
An ALD line has the following structure:
|
1345
|
+
|
1346
|
+
* a left brace, optionally preceded by up to three spaces,
|
1347
|
+
* followed by a colon, the reference name and another colon,
|
1348
|
+
* followed by attribute definitions (allowed characters are backslash-escaped closing braces or any
|
1349
|
+
character except a not escaped closing brace),
|
1350
|
+
* followed by a closing brace and optional spaces until the end of the line.
|
1351
|
+
|
1352
|
+
The reference name needs to start with a word character or a digit, optionally followed by other word
|
1353
|
+
characters, digits or dashes.
|
1354
|
+
|
1355
|
+
There are four different types of attribute definitions which have to be separated by one or more
|
1356
|
+
spaces:
|
1357
|
+
|
1358
|
+
references
|
1359
|
+
|
1360
|
+
: This must be a valid reference name. It is used to reference an other ALD so that the attributes
|
1361
|
+
of the other ALD are also included in this one. The reference name is ignored when collecting the
|
1362
|
+
attributes if no attribute definition list with this reference name exists. For example, a
|
1363
|
+
simple reference looks like `id`.
|
1364
|
+
|
1365
|
+
key-value pairs
|
1366
|
+
|
1367
|
+
: A key-value pair is defined by a key name, which must follow the rules for reference names, then
|
1368
|
+
an equal sign and then the value in single or double quotes. If you need to use the value
|
1369
|
+
delimiter (a single or a double quote) inside the value, you need to escape it with a backslash.
|
1370
|
+
Key-value pairs can be used to specify arbitrary attributes for block or span level elements. For
|
1371
|
+
example, a key-value pair looks like `key1="bef \"quoted\" aft"` or `title='This is a title'`.
|
1372
|
+
|
1373
|
+
ID name
|
1374
|
+
|
1375
|
+
: An ID name is defined by using a hash and then the identifier name which must follow the rules
|
1376
|
+
for reference names. This is a short hand for the key-value pair `id="IDNAME"` since this is
|
1377
|
+
often used. The ID name specifies the unique ID of a block or span level element. For example,
|
1378
|
+
an ID name looks like `#myid`.
|
1379
|
+
|
1380
|
+
class names
|
1381
|
+
|
1382
|
+
: A class name is defined by using a dot and then the class name. This is (almost, but not quite)
|
1383
|
+
a short hand for the key-value pair `class="class-name"`. Almost because it actually means that
|
1384
|
+
the class name should be appended to the current value of the `class` attribute. The following
|
1385
|
+
ALDs are all equivalent:
|
1386
|
+
|
1387
|
+
{:id: .cls1 .cls2}
|
1388
|
+
{:id: class="cls1" .cls2}
|
1389
|
+
{:id: class="something" class="cls1" .cls2}
|
1390
|
+
{:id: class="cls1 cls2}
|
1391
|
+
|
1392
|
+
As can be seen from the example of the class names, attributes that are defined earlier are
|
1393
|
+
overwritten by ones with the same name defined later. Also, everything in the attribute definitions
|
1394
|
+
part that does not match one of the above four types is ignored.
|
1395
|
+
|
1396
|
+
If there is more than one ALD with the same reference name, the attribute definitions of all the
|
1397
|
+
ALDs are processed like they are defined in one ALD.
|
1398
|
+
|
1399
|
+
|
1400
|
+
## Inline Attribute Lists
|
1401
|
+
|
1402
|
+
These elements are used to attach attributes to another element.
|
1403
|
+
|
1404
|
+
### Block Inline Attribute Lists
|
1405
|
+
|
1406
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
1407
|
+
> the [Maruku] package.
|
1408
|
+
{: .markdown-difference}
|
1409
|
+
|
1410
|
+
This block level element is used to attach attributes to a block level element. A block inline
|
1411
|
+
attribute list (block IAL) has the same structure as an [ALD](#attribute-list-definitions) except
|
1412
|
+
that the colon/reference name/colon part is replaced by a colon. A block IAL (or two or more block
|
1413
|
+
IALs) has to be put directly before or after the block level element to which the attributes should
|
1414
|
+
be attached. If a block IAL is directly after *and* before a block level element, it is applied to
|
1415
|
+
preceding element. The block IAL is ignored in all other cases, for example, when the block IAL is
|
1416
|
+
surrounded by blank lines.
|
1417
|
+
|
1418
|
+
Key-value pairs of an IAL take precedence over equally named key-value pairs in referenced ALDs.
|
1419
|
+
|
1420
|
+
Here are some examples for block IALs:
|
1421
|
+
|
1422
|
+
A simple paragraph with an ID attribute.
|
1423
|
+
{: #para-one}
|
1424
|
+
|
1425
|
+
> A blockquote with a title
|
1426
|
+
{:title="The blockquote title"}
|
1427
|
+
{: #myid}
|
1428
|
+
|
1429
|
+
{:.ruby}
|
1430
|
+
Some code here
|
1431
|
+
|
1432
|
+
### Span Inline Attribute Lists
|
1433
|
+
|
1434
|
+
> This syntax feature is not part of the original Markdown syntax. The idea and syntax comes from
|
1435
|
+
> the [Maruku] package.
|
1436
|
+
{: .markdown-difference}
|
1437
|
+
|
1438
|
+
This is a version of the [block inline attribute list](#block-inline-attribute-lists) for span level
|
1439
|
+
elements. It has the same structure as the block IAL except that leading and trailing spaces are not
|
1440
|
+
allowed. A span IAL (or two or more span IALs) has to be put directly after the span level element
|
1441
|
+
to which it should be applied, no additional character is allowed between, otherwise it is ignored
|
1442
|
+
and only removed from the output.
|
1443
|
+
|
1444
|
+
Here are some examples for span IALs:
|
1445
|
+
|
1446
|
+
This *is*{:.underline} some `code`{:#id}{:.class}.
|
1447
|
+
A [link](test.html){:rel='something'} and some **tools**{:.tools}.
|
1448
|
+
|
1449
|
+
|
1450
|
+
## Extensions
|
1451
|
+
|
1452
|
+
> This syntax feature is not part of the original Markdown syntax.
|
1453
|
+
{: .markdown-difference}
|
1454
|
+
|
1455
|
+
Extensions provide additional functionality but use the same syntax for it. They are available as
|
1456
|
+
block as well as span level elements.
|
1457
|
+
|
1458
|
+
The syntax for an extension is very similar to the syntax of [ALDs](#attribute-list-definitions).
|
1459
|
+
Here are some examples of how to specify extensions and afterwards is the syntax definition:
|
1460
|
+
|
1461
|
+
{::comment}
|
1462
|
+
This text is completely ignored by kramdown - a comment in the text.
|
1463
|
+
{:/comment}
|
1464
|
+
|
1465
|
+
Do you see {::comment}this text{:/comment}?
|
1466
|
+
{::comment}some other comment{:/}
|
1467
|
+
|
1468
|
+
{::options key="val" /}
|
1469
|
+
|
1470
|
+
An extension can be specified with or without a body. Therefore there exist a start and an end tag
|
1471
|
+
for extensions. The start tag has the following structure:
|
1472
|
+
|
1473
|
+
* an left brace,
|
1474
|
+
* followed by two colons and the extension name,
|
1475
|
+
* optionally followed by a space and attribute definitions (allowed characters are backslash-escaped
|
1476
|
+
closing braces or any character except a not escaped closing brace -- same as with ALDs),
|
1477
|
+
* followed by a slash and a right brace (in case the extension has no body) or only a right
|
1478
|
+
brace (in case the extension has a body).
|
1479
|
+
|
1480
|
+
The stop tag has the following structure:
|
1481
|
+
|
1482
|
+
* a left brace,
|
1483
|
+
* followed by a colon and a slash,
|
1484
|
+
* optionally followed by the extension name,
|
1485
|
+
* followed by a right brace.
|
1486
|
+
|
1487
|
+
A stop tag is only needed if the extension has a body!
|
1488
|
+
|
1489
|
+
The above syntax can be used as is for span level extensions. The starting and ending lines for block level
|
1490
|
+
extensions are defined as:
|
1491
|
+
|
1492
|
+
* The starting line consists of the extension start tag, optionally preceded by up to three spaces,
|
1493
|
+
and followed by optional spaces until the end of the line.
|
1494
|
+
* The ending line consists of the extension stop tag, optionally preceded by up to three spaces,
|
1495
|
+
and followed by optional spaces until the end of the line.
|
1496
|
+
|
1497
|
+
If no end tag can be found for an extension start tag, the start tag is treated as if it has no
|
1498
|
+
body. If an invalid extension stop tag is found, it is ignored. If an invalid extension name is
|
1499
|
+
specified the extension (and the eventually specified body) are ignored.
|
1500
|
+
|
1501
|
+
The following extensions can be used with kramdown:
|
1502
|
+
|
1503
|
+
`comment`
|
1504
|
+
|
1505
|
+
: Treat the body text as a comment which does not show in the output.
|
1506
|
+
|
1507
|
+
`nomarkdown`
|
1508
|
+
|
1509
|
+
: Don't process the body with kramdown but output it as-is.
|
1510
|
+
|
1511
|
+
`options`
|
1512
|
+
|
1513
|
+
: Should be used without a body since the body is ignored. Is used for setting the global options
|
1514
|
+
for the kramdown processor (for example, to disable automatic header ID generation). Note that
|
1515
|
+
options that are used by the parser are immediately effective whereas all other options are not!
|
1516
|
+
This means, for example, that it is not possible to set converter options only for some part of
|
1517
|
+
a kramdown document.
|
1518
|
+
|
1519
|
+
|
1520
|
+
|
1521
|
+
{include_file: doc/links.markdown}
|