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
@@ -23,27 +23,11 @@ module Haml
|
|
23
23
|
# :major => 2, :minor => 1, :teeny => 0
|
24
24
|
# }
|
25
25
|
#
|
26
|
-
# If a prerelease version of Haml is being used,
|
27
|
-
# the `:string` and `:number` fields will reflect the full version
|
28
|
-
# (e.g. `"2.2.beta.1"`), and the `:teeny` field will be `-1`.
|
29
|
-
# A `:prerelease` key will contain the name of the prerelease (e.g. `"beta"`),
|
30
|
-
# and a `:prerelease_number` key will contain the rerelease number.
|
31
|
-
# For example:
|
32
|
-
#
|
33
|
-
# {
|
34
|
-
# :string => "3.0.beta.1",
|
35
|
-
# :number => "3.0.beta.1",
|
36
|
-
# :major => 3, :minor => 0, :teeny => -1,
|
37
|
-
# :prerelease => "beta",
|
38
|
-
# :prerelease_number => 1
|
39
|
-
# }
|
40
|
-
#
|
41
26
|
# @return [{Symbol => String/Fixnum}] The version hash
|
42
27
|
def version
|
43
28
|
return @@version if defined?(@@version)
|
44
29
|
|
45
|
-
numbers = File.read(scope('VERSION')).strip.split('.').
|
46
|
-
map {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
|
30
|
+
numbers = File.read(scope('VERSION')).strip.split('.').map { |n| n.to_i }
|
47
31
|
name = File.read(scope('VERSION_NAME')).strip
|
48
32
|
@@version = {
|
49
33
|
:major => numbers[0],
|
@@ -51,14 +35,7 @@ module Haml
|
|
51
35
|
:teeny => numbers[2],
|
52
36
|
:name => name
|
53
37
|
}
|
54
|
-
|
55
|
-
if numbers[3].is_a?(String)
|
56
|
-
@@version[:teeny] = -1
|
57
|
-
@@version[:prerelease] = numbers[3]
|
58
|
-
@@version[:prerelease_number] = numbers[4]
|
59
|
-
end
|
60
|
-
|
61
|
-
@@version[:number] = numbers.join('.')
|
38
|
+
@@version[:number] = [:major, :minor, :teeny].map { |comp| @@version[comp] }.compact.join('.')
|
62
39
|
@@version[:string] = @@version[:number].dup
|
63
40
|
|
64
41
|
if rev = revision_number
|
@@ -5,7 +5,7 @@ require 'haml/version'
|
|
5
5
|
|
6
6
|
# The module that contains everything Sass-related:
|
7
7
|
#
|
8
|
-
# * {Sass::Engine} is the class used to render Sass
|
8
|
+
# * {Sass::Engine} is the class used to render Sass within Ruby code.
|
9
9
|
# * {Sass::Plugin} is interfaces with web frameworks (Rails and Merb in particular).
|
10
10
|
# * {Sass::SyntaxError} is raised when Sass encounters an error.
|
11
11
|
# * {Sass::CSS} handles conversion of CSS to Sass.
|
@@ -15,15 +15,10 @@ module Sass
|
|
15
15
|
extend Haml::Version
|
16
16
|
|
17
17
|
# A string representing the version of Sass.
|
18
|
-
# A more fine-grained representation is available from {
|
19
|
-
# @api public
|
18
|
+
# A more fine-grained representation is available from {Sass.version}.
|
20
19
|
VERSION = version[:string] unless defined?(Sass::VERSION)
|
21
20
|
end
|
22
21
|
|
23
22
|
require 'haml/util'
|
24
|
-
|
25
|
-
dir = Haml::Util.scope("vendor/fssm/lib")
|
26
|
-
$LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
|
27
|
-
|
28
23
|
require 'sass/engine'
|
29
24
|
require 'sass/plugin' if defined?(Merb::Plugins)
|
@@ -1,30 +1,69 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../sass'
|
2
2
|
require 'sass/tree/node'
|
3
|
-
require 'sass/scss/css_parser'
|
4
3
|
require 'strscan'
|
5
4
|
|
6
5
|
module Sass
|
7
|
-
|
6
|
+
module Tree
|
7
|
+
class Node
|
8
|
+
# Converts a node to Sass code that will generate it.
|
9
|
+
#
|
10
|
+
# @param tabs [Fixnum] The amount of tabulation to use for the Sass code
|
11
|
+
# @param opts [{Symbol => Object}] An options hash (see {Sass::CSS#initialize})
|
12
|
+
# @return [String] The Sass code corresponding to the node
|
13
|
+
def to_sass(tabs = 0, opts = {})
|
14
|
+
result = ''
|
15
|
+
|
16
|
+
children.each do |child|
|
17
|
+
result << "#{' ' * tabs}#{child.to_sass(0, opts)}\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
result
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class RuleNode
|
25
|
+
# @see Node#to_sass
|
26
|
+
def to_sass(tabs, opts = {})
|
27
|
+
name = rules.first
|
28
|
+
name = "\\" + name if name[0] == ?:
|
29
|
+
str = "\n#{' ' * tabs}#{name}#{children.any? { |c| c.is_a? PropNode } ? "\n" : ''}"
|
30
|
+
|
31
|
+
children.each do |child|
|
32
|
+
str << "#{child.to_sass(tabs + 1, opts)}"
|
33
|
+
end
|
34
|
+
|
35
|
+
str
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class PropNode
|
40
|
+
# @see Node#to_sass
|
41
|
+
def to_sass(tabs, opts = {})
|
42
|
+
"#{' ' * tabs}#{opts[:old] ? ':' : ''}#{name}#{opts[:old] ? '' : ':'} #{value}\n"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class DirectiveNode
|
47
|
+
# @see Node#to_sass
|
48
|
+
def to_sass(tabs, opts = {})
|
49
|
+
"#{' ' * tabs}#{value}#{children.map {|c| c.to_sass(tabs + 1, opts)}}\n"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# This class converts CSS documents into Sass templates.
|
8
55
|
# It works by parsing the CSS document into a {Sass::Tree} structure,
|
9
56
|
# and then applying various transformations to the structure
|
10
|
-
# to produce more concise and idiomatic Sass
|
57
|
+
# to produce more concise and idiomatic Sass.
|
11
58
|
#
|
12
59
|
# Example usage:
|
13
60
|
#
|
14
|
-
# Sass::CSS.new("p { color: blue }").render
|
15
|
-
# Sass::CSS.new("p { color: blue }").render(:scss) #=> "p {\n color: blue; }"
|
61
|
+
# Sass::CSS.new("p { color: blue }").render #=> "p\n color: blue"
|
16
62
|
class CSS
|
17
|
-
# @param template [String] The CSS
|
18
|
-
# This stylesheet can be encoded using any encoding
|
19
|
-
# that can be converted to Unicode.
|
20
|
-
# If the stylesheet contains an `@charset` declaration,
|
21
|
-
# that overrides the Ruby encoding
|
22
|
-
# (see {file:SASS_REFERENCE.md#encodings the encoding documentation})
|
63
|
+
# @param template [String] The CSS code
|
23
64
|
# @option options :old [Boolean] (false)
|
24
65
|
# Whether or not to output old property syntax
|
25
66
|
# (`:color blue` as opposed to `color: blue`).
|
26
|
-
# This is only meaningful when generating Sass code,
|
27
|
-
# rather than SCSS.
|
28
67
|
def initialize(template, options = {})
|
29
68
|
if template.is_a? IO
|
30
69
|
template = template.read
|
@@ -33,49 +72,32 @@ module Sass
|
|
33
72
|
@options = options.dup
|
34
73
|
# Backwards compatibility
|
35
74
|
@options[:old] = true if @options[:alternate] == false
|
36
|
-
@template = template
|
75
|
+
@template = StringScanner.new(template)
|
37
76
|
end
|
38
77
|
|
39
|
-
# Converts the CSS template into Sass
|
40
|
-
#
|
41
|
-
# @
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
rescue Sass::SyntaxError => err
|
48
|
-
err.modify_backtrace(:filename => @options[:filename] || '(css)')
|
49
|
-
raise err
|
50
|
-
end
|
78
|
+
# Converts the CSS template into Sass code.
|
79
|
+
#
|
80
|
+
# @return [String] The resulting Sass code
|
81
|
+
def render
|
82
|
+
begin
|
83
|
+
build_tree.to_sass(0, @options).strip + "\n"
|
84
|
+
rescue Exception => err
|
85
|
+
line = @template.string[0...@template.pos].split("\n").size
|
51
86
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
# @return [Encoding, nil]
|
56
|
-
# @raise [Encoding::UndefinedConversionError] if the source encoding
|
57
|
-
# cannot be converted to UTF-8
|
58
|
-
# @raise [ArgumentError] if the document uses an unknown encoding with `@charset`
|
59
|
-
def source_encoding
|
60
|
-
check_encoding!
|
61
|
-
@original_encoding
|
87
|
+
err.backtrace.unshift "(css):#{line}"
|
88
|
+
raise err
|
89
|
+
end
|
62
90
|
end
|
63
91
|
|
64
92
|
private
|
65
93
|
|
66
|
-
def check_encoding!
|
67
|
-
return if @checked_encoding
|
68
|
-
@checked_encoding = true
|
69
|
-
@template, @original_encoding = Haml::Util.check_sass_encoding(@template) do |msg, line|
|
70
|
-
raise Sass::SyntaxError.new(msg, :line => line)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
94
|
# Parses the CSS template and applies various transformations
|
75
95
|
#
|
76
96
|
# @return [Tree::Node] The root node of the parsed tree
|
77
97
|
def build_tree
|
78
|
-
root =
|
98
|
+
root = Tree::Node.new
|
99
|
+
whitespace
|
100
|
+
rules root
|
79
101
|
expand_commas root
|
80
102
|
parent_ref_rules root
|
81
103
|
remove_parent_refs root
|
@@ -84,6 +106,117 @@ module Sass
|
|
84
106
|
root
|
85
107
|
end
|
86
108
|
|
109
|
+
# Parses a set of CSS rules.
|
110
|
+
#
|
111
|
+
# @param root [Tree::Node] The parent node of the rules
|
112
|
+
def rules(root)
|
113
|
+
while r = rule
|
114
|
+
root << r
|
115
|
+
whitespace
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# Parses a single CSS rule.
|
120
|
+
#
|
121
|
+
# @return [Tree::Node] The parsed rule
|
122
|
+
def rule
|
123
|
+
rule = ""
|
124
|
+
loop do
|
125
|
+
token = @template.scan(/(?:[^\{\};\/\s]|\/[^*])+/)
|
126
|
+
if token.nil?
|
127
|
+
return if rule.empty?
|
128
|
+
break
|
129
|
+
end
|
130
|
+
rule << token
|
131
|
+
break unless @template.match?(/\s|\/\*/)
|
132
|
+
whitespace
|
133
|
+
rule << " "
|
134
|
+
end
|
135
|
+
|
136
|
+
rule.strip!
|
137
|
+
directive = rule[0] == ?@
|
138
|
+
|
139
|
+
if directive
|
140
|
+
node = Tree::DirectiveNode.new(rule)
|
141
|
+
return node if @template.scan(/;/)
|
142
|
+
|
143
|
+
assert_match /\{/
|
144
|
+
whitespace
|
145
|
+
|
146
|
+
rules(node)
|
147
|
+
return node
|
148
|
+
end
|
149
|
+
|
150
|
+
assert_match /\{/
|
151
|
+
node = Tree::RuleNode.new(rule)
|
152
|
+
properties(node)
|
153
|
+
return node
|
154
|
+
end
|
155
|
+
|
156
|
+
# Parses a set of CSS properties within a rule.
|
157
|
+
#
|
158
|
+
# @param rule [Tree::RuleNode] The parent node of the properties
|
159
|
+
def properties(rule)
|
160
|
+
while @template.scan(/[^:\}\s]+/)
|
161
|
+
name = @template[0]
|
162
|
+
whitespace
|
163
|
+
|
164
|
+
assert_match /:/
|
165
|
+
|
166
|
+
value = ''
|
167
|
+
while @template.scan(/[^;\s\}]+/)
|
168
|
+
value << @template[0] << whitespace
|
169
|
+
end
|
170
|
+
|
171
|
+
assert_match /(;|(?=\}))/
|
172
|
+
rule << Tree::PropNode.new(name, value, nil)
|
173
|
+
end
|
174
|
+
|
175
|
+
assert_match /\}/
|
176
|
+
end
|
177
|
+
|
178
|
+
# Moves the scanner over a section of whitespace or comments.
|
179
|
+
#
|
180
|
+
# @return [String] The ignored whitespace
|
181
|
+
def whitespace
|
182
|
+
space = @template.scan(/\s*/) || ''
|
183
|
+
|
184
|
+
# If we've hit a comment,
|
185
|
+
# go past it and look for more whitespace
|
186
|
+
if @template.scan(/\/\*/)
|
187
|
+
@template.scan_until(/\*\//)
|
188
|
+
return space + whitespace
|
189
|
+
end
|
190
|
+
return space
|
191
|
+
end
|
192
|
+
|
193
|
+
# Moves the scanner over a regular expression,
|
194
|
+
# raising an exception if it doesn't match.
|
195
|
+
#
|
196
|
+
# @param re [Regexp] The regular expression to assert
|
197
|
+
def assert_match(re)
|
198
|
+
if @template.scan(re)
|
199
|
+
whitespace
|
200
|
+
return
|
201
|
+
end
|
202
|
+
|
203
|
+
line = @template.string[0..@template.pos].count "\n"
|
204
|
+
pos = @template.pos
|
205
|
+
|
206
|
+
after = @template.string[pos - 15...pos]
|
207
|
+
after = "..." + after if pos >= 15
|
208
|
+
|
209
|
+
# Display basic regexps as plain old strings
|
210
|
+
expected = re.source == Regexp.escape(re.source) ? "\"#{re.source}\"" : re.inspect
|
211
|
+
|
212
|
+
was = @template.rest[0...15]
|
213
|
+
was += "..." if @template.rest.size >= 15
|
214
|
+
raise Exception.new(<<MESSAGE)
|
215
|
+
Invalid CSS on line #{line + 1} after #{after.inspect}:
|
216
|
+
expected #{expected}, was #{was.inspect}
|
217
|
+
MESSAGE
|
218
|
+
end
|
219
|
+
|
87
220
|
# Transform
|
88
221
|
#
|
89
222
|
# foo, bar, baz
|
@@ -101,12 +234,9 @@ module Sass
|
|
101
234
|
# @param root [Tree::Node] The parent node
|
102
235
|
def expand_commas(root)
|
103
236
|
root.children.map! do |child|
|
104
|
-
unless
|
105
|
-
|
106
|
-
|
107
|
-
end
|
108
|
-
child.rule.first.split(',').map do |rule|
|
109
|
-
node = Tree::RuleNode.new([rule.strip])
|
237
|
+
next child unless Tree::RuleNode === child && child.rules.first.include?(',')
|
238
|
+
child.rules.first.split(',').map do |rule|
|
239
|
+
node = Tree::RuleNode.new(rule.strip)
|
110
240
|
node.children = child.children
|
111
241
|
node
|
112
242
|
end
|
@@ -150,29 +280,22 @@ module Sass
|
|
150
280
|
# @param root [Tree::Node] The parent node
|
151
281
|
def parent_ref_rules(root)
|
152
282
|
current_rule = nil
|
153
|
-
root.children.
|
154
|
-
|
155
|
-
|
156
|
-
next child
|
157
|
-
end
|
283
|
+
root.children.select { |c| Tree::RuleNode === c }.each do |child|
|
284
|
+
root.children.delete child
|
285
|
+
first, rest = child.rules.first.scan(/^(&?(?: .|[^ ])[^.#: \[]*)([.#: \[].*)?$/).first
|
158
286
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
current_rule = Tree::RuleNode.new([first])
|
287
|
+
if current_rule.nil? || current_rule.rules.first != first
|
288
|
+
current_rule = Tree::RuleNode.new(first)
|
289
|
+
root << current_rule
|
163
290
|
end
|
164
291
|
|
165
292
|
if rest
|
166
|
-
child.
|
293
|
+
child.rules = ["&" + rest]
|
167
294
|
current_rule << child
|
168
295
|
else
|
169
296
|
current_rule.children += child.children
|
170
297
|
end
|
171
|
-
|
172
|
-
current_rule
|
173
298
|
end
|
174
|
-
root.children.compact!
|
175
|
-
root.children.uniq!
|
176
299
|
|
177
300
|
root.children.each { |v| parent_ref_rules(v) }
|
178
301
|
end
|
@@ -192,11 +315,8 @@ module Sass
|
|
192
315
|
# @param root [Tree::Node] The parent node
|
193
316
|
def remove_parent_refs(root)
|
194
317
|
root.children.each do |child|
|
195
|
-
|
196
|
-
|
197
|
-
child.rule.first.gsub! /^& +/, ''
|
198
|
-
remove_parent_refs child
|
199
|
-
when Tree::DirectiveNode
|
318
|
+
if child.is_a?(Tree::RuleNode)
|
319
|
+
child.rules.first.gsub! /^& +/, ''
|
200
320
|
remove_parent_refs child
|
201
321
|
end
|
202
322
|
end
|
@@ -226,14 +346,7 @@ module Sass
|
|
226
346
|
#
|
227
347
|
# @param root [Tree::Node] The parent node
|
228
348
|
def flatten_rules(root)
|
229
|
-
root.children.each
|
230
|
-
case child
|
231
|
-
when Tree::RuleNode
|
232
|
-
flatten_rule(child)
|
233
|
-
when Tree::DirectiveNode
|
234
|
-
flatten_rules(child)
|
235
|
-
end
|
236
|
-
end
|
349
|
+
root.children.each { |child| flatten_rule(child) if child.is_a?(Tree::RuleNode) }
|
237
350
|
end
|
238
351
|
|
239
352
|
# Flattens a single rule
|
@@ -244,10 +357,10 @@ module Sass
|
|
244
357
|
while rule.children.size == 1 && rule.children.first.is_a?(Tree::RuleNode)
|
245
358
|
child = rule.children.first
|
246
359
|
|
247
|
-
if child.
|
248
|
-
rule.
|
360
|
+
if child.rules.first[0] == ?&
|
361
|
+
rule.rules = [child.rules.first.gsub(/^&/, rule.rules.first)]
|
249
362
|
else
|
250
|
-
rule.
|
363
|
+
rule.rules = ["#{rule.rules.first} #{child.rules.first}"]
|
251
364
|
end
|
252
365
|
|
253
366
|
rule.children = child.children
|
@@ -274,13 +387,10 @@ module Sass
|
|
274
387
|
def fold_commas(root)
|
275
388
|
prev_rule = nil
|
276
389
|
root.children.map! do |child|
|
277
|
-
unless child.is_a?(Tree::RuleNode)
|
278
|
-
fold_commas(child) if child.is_a?(Tree::DirectiveNode)
|
279
|
-
next child
|
280
|
-
end
|
390
|
+
next child unless child.is_a?(Tree::RuleNode)
|
281
391
|
|
282
392
|
if prev_rule && prev_rule.children == child.children
|
283
|
-
prev_rule.
|
393
|
+
prev_rule.rules.first << ", #{child.rules.first}"
|
284
394
|
next nil
|
285
395
|
end
|
286
396
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'strscan'
|
2
2
|
require 'digest/sha1'
|
3
3
|
require 'sass/tree/node'
|
4
|
-
require 'sass/tree/root_node'
|
5
4
|
require 'sass/tree/rule_node'
|
6
5
|
require 'sass/tree/comment_node'
|
7
6
|
require 'sass/tree/prop_node'
|
@@ -9,18 +8,13 @@ require 'sass/tree/directive_node'
|
|
9
8
|
require 'sass/tree/variable_node'
|
10
9
|
require 'sass/tree/mixin_def_node'
|
11
10
|
require 'sass/tree/mixin_node'
|
12
|
-
require 'sass/tree/extend_node'
|
13
11
|
require 'sass/tree/if_node'
|
14
12
|
require 'sass/tree/while_node'
|
15
13
|
require 'sass/tree/for_node'
|
16
14
|
require 'sass/tree/debug_node'
|
17
|
-
require 'sass/tree/warn_node'
|
18
15
|
require 'sass/tree/import_node'
|
19
|
-
require 'sass/tree/charset_node'
|
20
|
-
require 'sass/selector'
|
21
16
|
require 'sass/environment'
|
22
17
|
require 'sass/script'
|
23
|
-
require 'sass/scss'
|
24
18
|
require 'sass/error'
|
25
19
|
require 'sass/files'
|
26
20
|
require 'haml/shared'
|
@@ -82,63 +76,68 @@ module Sass
|
|
82
76
|
end
|
83
77
|
|
84
78
|
# The character that begins a CSS property.
|
79
|
+
# @private
|
85
80
|
PROPERTY_CHAR = ?:
|
86
81
|
|
87
82
|
# The character that designates that
|
88
83
|
# a property should be assigned to a SassScript expression.
|
84
|
+
# @private
|
89
85
|
SCRIPT_CHAR = ?=
|
90
86
|
|
91
87
|
# The character that designates the beginning of a comment,
|
92
88
|
# either Sass or CSS.
|
89
|
+
# @private
|
93
90
|
COMMENT_CHAR = ?/
|
94
91
|
|
95
92
|
# The character that follows the general COMMENT_CHAR and designates a Sass comment,
|
96
93
|
# which is not output as a CSS comment.
|
94
|
+
# @private
|
97
95
|
SASS_COMMENT_CHAR = ?/
|
98
96
|
|
99
97
|
# The character that follows the general COMMENT_CHAR and designates a CSS comment,
|
100
98
|
# which is embedded in the CSS document.
|
99
|
+
# @private
|
101
100
|
CSS_COMMENT_CHAR = ?*
|
102
101
|
|
103
102
|
# The character used to denote a compiler directive.
|
103
|
+
# @private
|
104
104
|
DIRECTIVE_CHAR = ?@
|
105
105
|
|
106
106
|
# Designates a non-parsed rule.
|
107
|
+
# @private
|
107
108
|
ESCAPE_CHAR = ?\\
|
108
109
|
|
109
110
|
# Designates block as mixin definition rather than CSS rules to output
|
111
|
+
# @private
|
110
112
|
MIXIN_DEFINITION_CHAR = ?=
|
111
113
|
|
112
114
|
# Includes named mixin declared using MIXIN_DEFINITION_CHAR
|
115
|
+
# @private
|
113
116
|
MIXIN_INCLUDE_CHAR = ?+
|
114
117
|
|
115
118
|
# The regex that matches properties of the form `name: prop`.
|
119
|
+
# @private
|
116
120
|
PROPERTY_NEW_MATCHER = /^[^\s:"\[]+\s*[=:](\s|$)/
|
117
121
|
|
118
122
|
# The regex that matches and extracts data from
|
119
123
|
# properties of the form `name: prop`.
|
120
|
-
|
124
|
+
# @private
|
125
|
+
PROPERTY_NEW = /^([^\s=:"]+)(\s*=|:)(?:\s+|$)(.*)/
|
121
126
|
|
122
127
|
# The regex that matches and extracts data from
|
123
128
|
# properties of the form `:name prop`.
|
129
|
+
# @private
|
124
130
|
PROPERTY_OLD = /^:([^\s=:"]+)\s*(=?)(?:\s+|$)(.*)/
|
125
131
|
|
126
132
|
# The default options for Sass::Engine.
|
127
|
-
# @api public
|
128
133
|
DEFAULT_OPTIONS = {
|
129
134
|
:style => :nested,
|
130
135
|
:load_paths => ['.'],
|
131
136
|
:cache => true,
|
132
137
|
:cache_location => './.sass-cache',
|
133
|
-
:syntax => :sass,
|
134
138
|
}.freeze
|
135
139
|
|
136
140
|
# @param template [String] The Sass template.
|
137
|
-
# This template can be encoded using any encoding
|
138
|
-
# that can be converted to Unicode.
|
139
|
-
# If the template contains an `@charset` declaration,
|
140
|
-
# that overrides the Ruby encoding
|
141
|
-
# (see {file:SASS_REFERENCE.md#encodings the encoding documentation})
|
142
141
|
# @param options [{Symbol => Object}] An options hash;
|
143
142
|
# see {file:SASS_REFERENCE.md#sass_options the Sass options documentation}
|
144
143
|
def initialize(template, options={})
|
@@ -161,13 +160,10 @@ module Sass
|
|
161
160
|
#
|
162
161
|
# @return [String] The CSS
|
163
162
|
# @raise [Sass::SyntaxError] if there's an error in the document
|
164
|
-
# @raise [Encoding::UndefinedConversionError] if the source encoding
|
165
|
-
# cannot be converted to UTF-8
|
166
|
-
# @raise [ArgumentError] if the document uses an unknown encoding with `@charset`
|
167
163
|
def render
|
168
|
-
|
169
|
-
Haml::Util.silence_haml_warnings {_render}
|
164
|
+
to_tree.render
|
170
165
|
end
|
166
|
+
|
171
167
|
alias_method :to_css, :render
|
172
168
|
|
173
169
|
# Parses the document into its parse tree.
|
@@ -175,62 +171,14 @@ module Sass
|
|
175
171
|
# @return [Sass::Tree::Node] The root of the parse tree.
|
176
172
|
# @raise [Sass::SyntaxError] if there's an error in the document
|
177
173
|
def to_tree
|
178
|
-
|
179
|
-
|
180
|
-
end
|
181
|
-
|
182
|
-
# Returns the original encoding of the document,
|
183
|
-
# or `nil` under Ruby 1.8.
|
184
|
-
#
|
185
|
-
# @return [Encoding, nil]
|
186
|
-
# @raise [Encoding::UndefinedConversionError] if the source encoding
|
187
|
-
# cannot be converted to UTF-8
|
188
|
-
# @raise [ArgumentError] if the document uses an unknown encoding with `@charset`
|
189
|
-
def source_encoding
|
190
|
-
check_encoding!
|
191
|
-
@original_encoding
|
192
|
-
end
|
193
|
-
|
194
|
-
private
|
195
|
-
|
196
|
-
def _render
|
197
|
-
rendered = _to_tree.render
|
198
|
-
return rendered if ruby1_8?
|
199
|
-
begin
|
200
|
-
# Try to convert the result to the original encoding,
|
201
|
-
# but if that doesn't work fall back on UTF-8
|
202
|
-
rendered = rendered.encode(source_encoding)
|
203
|
-
rescue EncodingError
|
204
|
-
end
|
205
|
-
rendered.gsub(Regexp.new('\A@charset "(.*?)"'.encode(source_encoding)),
|
206
|
-
"@charset \"#{source_encoding.name}\"".encode(source_encoding))
|
207
|
-
end
|
208
|
-
|
209
|
-
def _to_tree
|
210
|
-
check_encoding!
|
211
|
-
|
212
|
-
if @options[:syntax] == :scss
|
213
|
-
root = Sass::SCSS::Parser.new(@template).parse
|
214
|
-
else
|
215
|
-
root = Tree::RootNode.new(@template)
|
216
|
-
append_children(root, tree(tabulate(@template)).first, true)
|
217
|
-
end
|
218
|
-
|
174
|
+
root = Tree::Node.new
|
175
|
+
append_children(root, tree(tabulate(@template)).first, true)
|
219
176
|
root.options = @options
|
220
177
|
root
|
221
|
-
rescue SyntaxError => e
|
222
|
-
e.modify_backtrace(:filename => @options[:filename], :line => @line)
|
223
|
-
e.sass_template = @template
|
224
|
-
raise e
|
178
|
+
rescue SyntaxError => e; e.add_metadata(@options[:filename], @line)
|
225
179
|
end
|
226
180
|
|
227
|
-
|
228
|
-
return if @checked_encoding
|
229
|
-
@checked_encoding = true
|
230
|
-
@template, @original_encoding = check_sass_encoding(@template) do |msg, line|
|
231
|
-
raise Sass::SyntaxError.new(msg, :line => line)
|
232
|
-
end
|
233
|
-
end
|
181
|
+
private
|
234
182
|
|
235
183
|
def tabulate(string)
|
236
184
|
tab_str = nil
|
@@ -254,11 +202,10 @@ module Sass
|
|
254
202
|
|
255
203
|
tab_str ||= line_tab_str
|
256
204
|
|
257
|
-
raise SyntaxError.new("Indenting at the beginning of the document is illegal.",
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
:line => index) if tab_str.include?(?\s) && tab_str.include?(?\t)
|
205
|
+
raise SyntaxError.new("Indenting at the beginning of the document is illegal.", index) if first
|
206
|
+
if tab_str.include?(?\s) && tab_str.include?(?\t)
|
207
|
+
raise SyntaxError.new("Indentation can't use both tabs and spaces.", index)
|
208
|
+
end
|
262
209
|
end
|
263
210
|
first &&= !tab_str.nil?
|
264
211
|
if tab_str.nil?
|
@@ -267,21 +214,17 @@ module Sass
|
|
267
214
|
end
|
268
215
|
|
269
216
|
comment_tab_str ||= line_tab_str
|
270
|
-
if try_comment(line, lines.last, tab_str * lines.last.tabs, comment_tab_str, index)
|
217
|
+
if try_comment(line, lines.last, tab_str * (lines.last.tabs + 1), comment_tab_str, index)
|
271
218
|
next
|
272
219
|
else
|
273
220
|
comment_tab_str = nil
|
274
221
|
end
|
275
222
|
|
276
223
|
line_tabs = line_tab_str.scan(tab_str).size
|
277
|
-
if tab_str * line_tabs != line_tab_str
|
278
|
-
message = <<END.strip.gsub("\n", ' ')
|
224
|
+
raise SyntaxError.new(<<END.strip.gsub("\n", ' '), index) if tab_str * line_tabs != line_tab_str
|
279
225
|
Inconsistent indentation: #{Haml::Shared.human_indentation line_tab_str, true} used for indentation,
|
280
226
|
but the rest of the document was indented using #{Haml::Shared.human_indentation tab_str}.
|
281
227
|
END
|
282
|
-
raise SyntaxError.new(message, :line => index)
|
283
|
-
end
|
284
|
-
|
285
228
|
lines << Line.new(line.strip, line_tabs, index, tab_str.size, @options[:filename], [])
|
286
229
|
end
|
287
230
|
lines
|
@@ -289,11 +232,9 @@ END
|
|
289
232
|
|
290
233
|
def try_comment(line, last, tab_str, comment_tab_str, index)
|
291
234
|
return unless last && last.comment?
|
292
|
-
|
293
|
-
# than the normal indentation
|
294
|
-
return unless line =~ /^#{tab_str}\s/
|
235
|
+
return unless line =~ /^#{tab_str}/
|
295
236
|
unless line =~ /^(?:#{comment_tab_str})(.*)$/
|
296
|
-
raise SyntaxError.new(<<MSG.strip.gsub("\n", " "),
|
237
|
+
raise SyntaxError.new(<<MSG.strip.gsub("\n", " "), index)
|
297
238
|
Inconsistent indentation:
|
298
239
|
previous line was indented by #{Haml::Shared.human_indentation comment_tab_str},
|
299
240
|
but this line was indented by #{Haml::Shared.human_indentation line[/^\s*/]}.
|
@@ -311,8 +252,9 @@ MSG
|
|
311
252
|
nodes = []
|
312
253
|
while (line = arr[i]) && line.tabs >= base
|
313
254
|
if line.tabs > base
|
314
|
-
|
315
|
-
|
255
|
+
if line.tabs > base + 1
|
256
|
+
raise SyntaxError.new("The line was indented #{line.tabs - base} levels deeper than the previous line.", line.index)
|
257
|
+
end
|
316
258
|
|
317
259
|
nodes.last.children, i = tree(arr, i)
|
318
260
|
else
|
@@ -334,7 +276,11 @@ MSG
|
|
334
276
|
node.line = line.index
|
335
277
|
node.filename = line.filename
|
336
278
|
|
337
|
-
|
279
|
+
if node.is_a?(Tree::CommentNode)
|
280
|
+
node.lines = line.children
|
281
|
+
else
|
282
|
+
append_children(node, line.children, false)
|
283
|
+
end
|
338
284
|
end
|
339
285
|
|
340
286
|
node_or_nodes
|
@@ -342,13 +288,11 @@ MSG
|
|
342
288
|
|
343
289
|
def append_children(parent, children, root)
|
344
290
|
continued_rule = nil
|
345
|
-
continued_comment = nil
|
346
291
|
children.each do |line|
|
347
292
|
child = build_tree(parent, line, root)
|
348
293
|
|
349
294
|
if child.is_a?(Tree::RuleNode) && child.continued?
|
350
|
-
raise SyntaxError.new("Rules can't end in commas.",
|
351
|
-
:line => child.line) unless child.children.empty?
|
295
|
+
raise SyntaxError.new("Rules can't end in commas.", child.line) unless child.children.empty?
|
352
296
|
if continued_rule
|
353
297
|
continued_rule.add_rules child
|
354
298
|
else
|
@@ -358,35 +302,31 @@ MSG
|
|
358
302
|
end
|
359
303
|
|
360
304
|
if continued_rule
|
361
|
-
raise SyntaxError.new("Rules can't end in commas.",
|
362
|
-
:line => continued_rule.line) unless child.is_a?(Tree::RuleNode)
|
305
|
+
raise SyntaxError.new("Rules can't end in commas.", continued_rule.line) unless child.is_a?(Tree::RuleNode)
|
363
306
|
continued_rule.add_rules child
|
364
307
|
continued_rule.children = child.children
|
365
308
|
continued_rule, child = nil, continued_rule
|
366
309
|
end
|
367
310
|
|
368
|
-
if child.is_a?(Tree::CommentNode) && child.silent
|
369
|
-
if continued_comment &&
|
370
|
-
child.line == continued_comment.line +
|
371
|
-
continued_comment.value.count("\n") + 1
|
372
|
-
continued_comment.value << "\n" << child.value
|
373
|
-
next
|
374
|
-
end
|
375
|
-
|
376
|
-
continued_comment = child
|
377
|
-
end
|
378
|
-
|
379
311
|
check_for_no_children(child)
|
380
312
|
validate_and_append_child(parent, child, line, root)
|
381
313
|
end
|
382
314
|
|
383
|
-
raise SyntaxError.new("Rules can't end in commas.",
|
384
|
-
:line => continued_rule.line) if continued_rule
|
315
|
+
raise SyntaxError.new("Rules can't end in commas.", continued_rule.line) if continued_rule
|
385
316
|
|
386
317
|
parent
|
387
318
|
end
|
388
319
|
|
389
320
|
def validate_and_append_child(parent, child, line, root)
|
321
|
+
unless root
|
322
|
+
case child
|
323
|
+
when Tree::MixinDefNode
|
324
|
+
raise SyntaxError.new("Mixins may only be defined at the root of a document.", line.index)
|
325
|
+
when Tree::ImportNode
|
326
|
+
raise SyntaxError.new("Import directives may only be used at the root of a document.", line.index)
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
390
330
|
case child
|
391
331
|
when Array
|
392
332
|
child.each {|c| validate_and_append_child(parent, c, line, root)}
|
@@ -397,10 +337,18 @@ MSG
|
|
397
337
|
|
398
338
|
def check_for_no_children(node)
|
399
339
|
return unless node.is_a?(Tree::RuleNode) && node.children.empty?
|
400
|
-
|
340
|
+
warning = (node.rules.size == 1) ? <<SHORT : <<LONG
|
341
|
+
WARNING on line #{node.line}#{" of #{node.filename}" if node.filename}:
|
342
|
+
Selector #{node.rules.first.inspect} doesn't have any properties and will not be rendered.
|
343
|
+
SHORT
|
344
|
+
|
401
345
|
WARNING on line #{node.line}#{" of #{node.filename}" if node.filename}:
|
402
|
-
|
403
|
-
|
346
|
+
Selector
|
347
|
+
#{node.rules.join("\n ")}
|
348
|
+
doesn't have any properties and will not be rendered.
|
349
|
+
LONG
|
350
|
+
|
351
|
+
warn(warning.strip)
|
404
352
|
end
|
405
353
|
|
406
354
|
def parse_line(parent, line, root)
|
@@ -413,100 +361,62 @@ WARNING
|
|
413
361
|
# which begin with ::,
|
414
362
|
# as well as pseudo-classes
|
415
363
|
# if we're using the new property syntax
|
416
|
-
Tree::RuleNode.new(
|
364
|
+
Tree::RuleNode.new(line.text)
|
417
365
|
else
|
418
|
-
|
419
|
-
raise SyntaxError.new("Invalid property: \"#{line.text}\".",
|
420
|
-
:line => @line) if name.nil? || value.nil?
|
421
|
-
parse_property(name, parse_interp(name), eq, value, :old, line)
|
366
|
+
parse_property(line, PROPERTY_OLD)
|
422
367
|
end
|
423
|
-
when
|
368
|
+
when Script::VARIABLE_CHAR
|
424
369
|
parse_variable(line)
|
425
370
|
when COMMENT_CHAR
|
426
371
|
parse_comment(line.text)
|
427
372
|
when DIRECTIVE_CHAR
|
428
373
|
parse_directive(parent, line, root)
|
429
374
|
when ESCAPE_CHAR
|
430
|
-
Tree::RuleNode.new(
|
375
|
+
Tree::RuleNode.new(line.text[1..-1])
|
431
376
|
when MIXIN_DEFINITION_CHAR
|
432
377
|
parse_mixin_definition(line)
|
433
378
|
when MIXIN_INCLUDE_CHAR
|
434
379
|
if line.text[1].nil? || line.text[1] == ?\s
|
435
|
-
Tree::RuleNode.new(
|
380
|
+
Tree::RuleNode.new(line.text)
|
436
381
|
else
|
437
382
|
parse_mixin_include(line, root)
|
438
383
|
end
|
439
384
|
else
|
440
|
-
|
385
|
+
if line.text =~ PROPERTY_NEW_MATCHER
|
386
|
+
parse_property(line, PROPERTY_NEW)
|
387
|
+
else
|
388
|
+
Tree::RuleNode.new(line.text)
|
389
|
+
end
|
441
390
|
end
|
442
391
|
end
|
443
392
|
|
444
|
-
def
|
445
|
-
|
446
|
-
hack_char = scanner.scan(/[:\*\.]|\#(?!\{)/)
|
447
|
-
parser = Sass::SCSS::SassParser.new(scanner, @line)
|
448
|
-
|
449
|
-
unless res = parser.parse_interp_ident
|
450
|
-
return Tree::RuleNode.new(parse_interp(line.text))
|
451
|
-
end
|
452
|
-
res.unshift(hack_char) if hack_char
|
453
|
-
if comment = scanner.scan(Sass::SCSS::RX::COMMENT)
|
454
|
-
res << comment
|
455
|
-
end
|
393
|
+
def parse_property(line, property_regx)
|
394
|
+
name, eq, value = line.text.scan(property_regx)[0]
|
456
395
|
|
457
|
-
name
|
458
|
-
|
459
|
-
parse_property(name, res, scanner[1], scanner.rest, :new, line)
|
460
|
-
else
|
461
|
-
res.pop if comment
|
462
|
-
Tree::RuleNode.new(res + parse_interp(scanner.rest))
|
396
|
+
if name.nil? || value.nil?
|
397
|
+
raise SyntaxError.new("Invalid property: \"#{line.text}\".", @line)
|
463
398
|
end
|
464
|
-
|
465
|
-
|
466
|
-
def parse_property(name, parsed_name, eq, value, prop, line)
|
467
|
-
if value.strip.empty?
|
468
|
-
expr = Sass::Script::String.new("")
|
399
|
+
expr = if (eq.strip[0] == SCRIPT_CHAR)
|
400
|
+
parse_script(value, :offset => line.offset + line.text.index(value))
|
469
401
|
else
|
470
|
-
|
471
|
-
|
472
|
-
if eq.strip[0] == SCRIPT_CHAR
|
473
|
-
expr.context = :equals
|
474
|
-
Script.equals_warning("properties", name,
|
475
|
-
Sass::Tree::PropNode.val_to_sass(expr, @options), false,
|
476
|
-
@line, line.offset + 1, @options[:filename])
|
477
|
-
end
|
402
|
+
value
|
478
403
|
end
|
479
|
-
Tree::PropNode.new(
|
404
|
+
Tree::PropNode.new(name, expr, property_regx == PROPERTY_OLD ? :old : :new)
|
480
405
|
end
|
481
406
|
|
482
407
|
def parse_variable(line)
|
483
|
-
name, op, value
|
484
|
-
|
485
|
-
raise SyntaxError.new("
|
486
|
-
:line => @line + 1) unless line.children.empty?
|
487
|
-
raise SyntaxError.new("Invalid variable: \"#{line.text}\".",
|
488
|
-
:line => @line) unless name && value
|
489
|
-
Script.var_warning(name, @line, line.offset + 1, @options[:filename]) if line.text[0] == ?!
|
490
|
-
|
491
|
-
expr = parse_script(value, :offset => line.offset + line.text.index(value))
|
492
|
-
if op =~ /=$/
|
493
|
-
expr.context = :equals
|
494
|
-
type = guarded ? "variable defaults" : "variables"
|
495
|
-
Script.equals_warning(type, "$#{name}", expr.to_sass,
|
496
|
-
guarded, @line, line.offset + 1, @options[:filename])
|
497
|
-
end
|
408
|
+
name, op, value = line.text.scan(Script::MATCH)[0]
|
409
|
+
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath variable declarations.", @line + 1) unless line.children.empty?
|
410
|
+
raise SyntaxError.new("Invalid variable: \"#{line.text}\".", @line) unless name && value
|
498
411
|
|
499
|
-
Tree::VariableNode.new(name,
|
412
|
+
Tree::VariableNode.new(name, parse_script(value, :offset => line.offset + line.text.index(value)), op == '||=')
|
500
413
|
end
|
501
414
|
|
502
415
|
def parse_comment(line)
|
503
416
|
if line[1] == CSS_COMMENT_CHAR || line[1] == SASS_COMMENT_CHAR
|
504
|
-
|
505
|
-
Tree::CommentNode.new(
|
506
|
-
format_comment_text(line[2..-1], silent),
|
507
|
-
silent)
|
417
|
+
Tree::CommentNode.new(line, line[1] == SASS_COMMENT_CHAR)
|
508
418
|
else
|
509
|
-
Tree::RuleNode.new(
|
419
|
+
Tree::RuleNode.new(line)
|
510
420
|
end
|
511
421
|
end
|
512
422
|
|
@@ -516,12 +426,9 @@ WARNING
|
|
516
426
|
|
517
427
|
# If value begins with url( or ",
|
518
428
|
# it's a CSS @import rule and we don't want to touch it.
|
519
|
-
if directive == "import"
|
520
|
-
|
521
|
-
|
522
|
-
parse_mixin_definition(line)
|
523
|
-
elsif directive == "include"
|
524
|
-
parse_mixin_include(line, root)
|
429
|
+
if directive == "import" && value !~ /^(url\(|")/
|
430
|
+
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath import directives.", @line + 1) unless line.children.empty?
|
431
|
+
value.split(/,\s*/).map {|f| Tree::ImportNode.new(f)}
|
525
432
|
elsif directive == "for"
|
526
433
|
parse_for(line, root, value)
|
527
434
|
elsif directive == "else"
|
@@ -534,28 +441,9 @@ WARNING
|
|
534
441
|
Tree::IfNode.new(parse_script(value, :offset => offset))
|
535
442
|
elsif directive == "debug"
|
536
443
|
raise SyntaxError.new("Invalid debug directive '@debug': expected expression.") unless value
|
537
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath debug directives.",
|
538
|
-
:line => @line + 1) unless line.children.empty?
|
444
|
+
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath debug directives.", @line + 1) unless line.children.empty?
|
539
445
|
offset = line.offset + line.text.index(value).to_i
|
540
446
|
Tree::DebugNode.new(parse_script(value, :offset => offset))
|
541
|
-
elsif directive == "extend"
|
542
|
-
raise SyntaxError.new("Invalid extend directive '@extend': expected expression.") unless value
|
543
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath extend directives.",
|
544
|
-
:line => @line + 1) unless line.children.empty?
|
545
|
-
offset = line.offset + line.text.index(value).to_i
|
546
|
-
Tree::ExtendNode.new(parse_interp(value, offset))
|
547
|
-
elsif directive == "warn"
|
548
|
-
raise SyntaxError.new("Invalid warn directive '@warn': expected expression.") unless value
|
549
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath warn directives.",
|
550
|
-
:line => @line + 1) unless line.children.empty?
|
551
|
-
offset = line.offset + line.text.index(value).to_i
|
552
|
-
Tree::WarnNode.new(parse_script(value, :offset => offset))
|
553
|
-
elsif directive == "charset"
|
554
|
-
name = value && value[/\A(["'])(.*)\1\Z/, 2] #"
|
555
|
-
raise SyntaxError.new("Invalid charset directive '@charset': expected string.") unless name
|
556
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath charset directives.",
|
557
|
-
:line => @line + 1) unless line.children.empty?
|
558
|
-
Tree::CharsetNode.new(name)
|
559
447
|
else
|
560
448
|
Tree::DirectiveNode.new(line.text)
|
561
449
|
end
|
@@ -572,26 +460,22 @@ WARNING
|
|
572
460
|
else
|
573
461
|
expected = "'to <expr>' or 'through <expr>'"
|
574
462
|
end
|
575
|
-
raise SyntaxError.new("Invalid for directive '@for #{text}': expected #{expected}.")
|
576
|
-
end
|
577
|
-
raise SyntaxError.new("Invalid variable \"#{var}\".") unless var =~ Script::VALIDATE
|
578
|
-
if var.slice!(0) == ?!
|
579
|
-
offset = line.offset + line.text.index("!" + var) + 1
|
580
|
-
Script.var_warning(var, @line, offset, @options[:filename])
|
463
|
+
raise SyntaxError.new("Invalid for directive '@for #{text}': expected #{expected}.", @line)
|
581
464
|
end
|
465
|
+
raise SyntaxError.new("Invalid variable \"#{var}\".", @line) unless var =~ Script::VALIDATE
|
582
466
|
|
583
467
|
parsed_from = parse_script(from_expr, :offset => line.offset + line.text.index(from_expr))
|
584
468
|
parsed_to = parse_script(to_expr, :offset => line.offset + line.text.index(to_expr))
|
585
|
-
Tree::ForNode.new(var, parsed_from, parsed_to, to_name == 'to')
|
469
|
+
Tree::ForNode.new(var[1..-1], parsed_from, parsed_to, to_name == 'to')
|
586
470
|
end
|
587
471
|
|
588
472
|
def parse_else(parent, line, text)
|
589
|
-
previous = parent.
|
473
|
+
previous = parent.last
|
590
474
|
raise SyntaxError.new("@else must come after @if.") unless previous.is_a?(Tree::IfNode)
|
591
475
|
|
592
476
|
if text
|
593
477
|
if text !~ /^if\s+(.+)/
|
594
|
-
raise SyntaxError.new("Invalid else directive '@else #{text}': expected 'if <expr>'.")
|
478
|
+
raise SyntaxError.new("Invalid else directive '@else #{text}': expected 'if <expr>'.", @line)
|
595
479
|
end
|
596
480
|
expr = parse_script($1, :offset => line.offset + line.text.index($1))
|
597
481
|
end
|
@@ -602,119 +486,30 @@ WARNING
|
|
602
486
|
nil
|
603
487
|
end
|
604
488
|
|
605
|
-
def parse_import(line, value)
|
606
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath import directives.",
|
607
|
-
:line => @line + 1) unless line.children.empty?
|
608
|
-
|
609
|
-
scanner = StringScanner.new(value)
|
610
|
-
values = []
|
611
|
-
|
612
|
-
loop do
|
613
|
-
unless node = parse_import_arg(scanner)
|
614
|
-
raise SyntaxError.new("Invalid @import: expected file to import, was #{scanner.rest.inspect}",
|
615
|
-
:line => @line)
|
616
|
-
end
|
617
|
-
values << node
|
618
|
-
break unless scanner.scan(/,\s*/)
|
619
|
-
end
|
620
|
-
|
621
|
-
return values
|
622
|
-
end
|
623
|
-
|
624
|
-
def parse_import_arg(scanner)
|
625
|
-
return if scanner.eos?
|
626
|
-
unless (str = scanner.scan(Sass::SCSS::RX::STRING)) ||
|
627
|
-
(uri = scanner.scan(Sass::SCSS::RX::URI))
|
628
|
-
return Tree::ImportNode.new(scanner.scan(/[^,]+/))
|
629
|
-
end
|
630
|
-
|
631
|
-
val = scanner[1] || scanner[2]
|
632
|
-
scanner.scan(/\s*/)
|
633
|
-
if media = scanner.scan(/[^,].*/)
|
634
|
-
Tree::DirectiveNode.new("@import #{str || uri} #{media}")
|
635
|
-
elsif uri
|
636
|
-
Tree::DirectiveNode.new("@import #{uri}")
|
637
|
-
elsif val =~ /^http:\/\//
|
638
|
-
Tree::DirectiveNode.new("@import url(#{val})")
|
639
|
-
else
|
640
|
-
Tree::ImportNode.new(val)
|
641
|
-
end
|
642
|
-
end
|
643
|
-
|
644
|
-
MIXIN_DEF_RE = /^(?:=|@mixin)\s*(#{Sass::SCSS::RX::IDENT})(.*)$/
|
645
489
|
def parse_mixin_definition(line)
|
646
|
-
name, arg_string = line.text.scan(
|
647
|
-
raise SyntaxError.new("Invalid mixin \"#{line.text[1..-1]}\".") if name.nil?
|
490
|
+
name, arg_string = line.text.scan(/^=\s*([^(]+)(.*)$/).first
|
491
|
+
raise SyntaxError.new("Invalid mixin \"#{line.text[1..-1]}\".", @line) if name.nil?
|
648
492
|
|
649
493
|
offset = line.offset + line.text.size - arg_string.size
|
650
|
-
args = Script::Parser.new(arg_string.strip, @line, offset
|
651
|
-
parse_mixin_definition_arglist
|
494
|
+
args = Script::Parser.new(arg_string.strip, @line, offset).parse_mixin_definition_arglist
|
652
495
|
default_arg_found = false
|
653
496
|
Tree::MixinDefNode.new(name, args)
|
654
497
|
end
|
655
498
|
|
656
|
-
MIXIN_INCLUDE_RE = /^(?:\+|@include)\s*(#{Sass::SCSS::RX::IDENT})(.*)$/
|
657
499
|
def parse_mixin_include(line, root)
|
658
|
-
name, arg_string = line.text.scan(
|
659
|
-
raise SyntaxError.new("Invalid mixin include \"#{line.text}\".") if name.nil?
|
500
|
+
name, arg_string = line.text.scan(/^\+\s*([^(]+)(.*)$/).first
|
501
|
+
raise SyntaxError.new("Invalid mixin include \"#{line.text}\".", @line) if name.nil?
|
660
502
|
|
661
503
|
offset = line.offset + line.text.size - arg_string.size
|
662
|
-
args = Script::Parser.new(arg_string.strip, @line, offset
|
663
|
-
|
664
|
-
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath mixin directives.",
|
665
|
-
:line => @line + 1) unless line.children.empty?
|
504
|
+
args = Script::Parser.new(arg_string.strip, @line, offset).parse_mixin_include_arglist
|
505
|
+
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath mixin directives.", @line + 1) unless line.children.empty?
|
666
506
|
Tree::MixinNode.new(name, args)
|
667
507
|
end
|
668
508
|
|
669
509
|
def parse_script(script, options = {})
|
670
510
|
line = options[:line] || @line
|
671
511
|
offset = options[:offset] || 0
|
672
|
-
Script.parse(script, line, offset, @options)
|
673
|
-
end
|
674
|
-
|
675
|
-
def format_comment_text(text, silent)
|
676
|
-
content = text.split("\n")
|
677
|
-
|
678
|
-
if content.first && content.first.strip.empty?
|
679
|
-
removed_first = true
|
680
|
-
content.shift
|
681
|
-
end
|
682
|
-
|
683
|
-
return silent ? "//" : "/* */" if content.empty?
|
684
|
-
content.last.gsub!(%r{ ?\*/ *$}, '')
|
685
|
-
content.map! {|l| l.gsub!(/^\*( ?)/, '\1') || (l.empty? ? "" : " ") + l}
|
686
|
-
content.first.gsub!(/^ /, '') unless removed_first
|
687
|
-
if silent
|
688
|
-
"//" + content.join("\n//")
|
689
|
-
else
|
690
|
-
# The #gsub fixes the case of a trailing */
|
691
|
-
"/*" + content.join("\n *").gsub(/ \*\Z/, '') + " */"
|
692
|
-
end
|
693
|
-
end
|
694
|
-
|
695
|
-
def parse_interp(text, offset = 0)
|
696
|
-
self.class.parse_interp(text, @line, offset, :filename => @filename)
|
697
|
-
end
|
698
|
-
|
699
|
-
# It's important that this have strings (at least)
|
700
|
-
# at the beginning, the end, and between each Script::Node.
|
701
|
-
#
|
702
|
-
# @private
|
703
|
-
def self.parse_interp(text, line, offset, options)
|
704
|
-
res = []
|
705
|
-
rest = Haml::Shared.handle_interpolation text do |scan|
|
706
|
-
escapes = scan[2].size
|
707
|
-
res << scan.matched[0...-2 - escapes]
|
708
|
-
if escapes % 2 == 1
|
709
|
-
res << "\\" * (escapes - 1) << '#{'
|
710
|
-
else
|
711
|
-
res << "\\" * [0, escapes - 1].max
|
712
|
-
res << Script::Parser.new(
|
713
|
-
scan, line, offset + scan.pos - scan.matched_size, options).
|
714
|
-
parse_interpolated
|
715
|
-
end
|
716
|
-
end
|
717
|
-
res << rest
|
512
|
+
Script.parse(script, line, offset, @options[:filename])
|
718
513
|
end
|
719
514
|
end
|
720
515
|
end
|