zen 0.2.8 → 0.3b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gems +20 -0
- data/.mailmap +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +13 -2
- data/.yardopts +13 -0
- data/AUTHORS +1 -1
- data/README.md +115 -77
- data/Rakefile +6 -7
- data/bin/zen +12 -5
- data/guide/_static/categories/categories.png +0 -0
- data/guide/_static/categories/category_groups.png +0 -0
- data/guide/_static/categories/new_category.png +0 -0
- data/guide/_static/categories/new_category_group.png +0 -0
- data/guide/_static/comments/comments.png +0 -0
- data/guide/_static/comments/edit_comment.png +0 -0
- data/guide/_static/custom_fields/custom_field_groups.png +0 -0
- data/guide/_static/custom_fields/custom_field_types.png +0 -0
- data/guide/_static/custom_fields/custom_fields.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/_static/menus/edit_menu.png +0 -0
- data/guide/_static/menus/edit_menu_item.png +0 -0
- data/guide/_static/menus/menu_items.png +0 -0
- data/guide/_static/menus/menus.png +0 -0
- data/guide/_static/sections/edit_entry.png +0 -0
- data/guide/_static/sections/edit_entry_categories.png +0 -0
- data/guide/_static/sections/edit_entry_general.png +0 -0
- data/guide/_static/sections/edit_entry_meta.png +0 -0
- data/guide/_static/sections/edit_section_comments.png +0 -0
- data/guide/_static/sections/edit_section_general.png +0 -0
- data/guide/_static/sections/edit_section_groups.png +0 -0
- data/guide/_static/sections/entries.png +0 -0
- data/guide/_static/sections/sections.png +0 -0
- data/guide/_static/settings/overview_general.png +0 -0
- data/guide/_static/settings/overview_security.png +0 -0
- data/guide/_static/settings/overview_user.png +0 -0
- data/guide/_static/users/edit_user.png +0 -0
- data/guide/_static/users/edit_user_group.png +0 -0
- data/guide/_static/users/edit_user_group_permissions.png +0 -0
- data/guide/_static/users/edit_user_permissions.png +0 -0
- data/guide/_static/users/overview.png +0 -0
- data/guide/_static/users/user_groups_overview.png +0 -0
- data/guide/asset_management.md +117 -0
- data/{CHANGELOG.md → guide/changelog.md} +42 -0
- data/guide/css/common.css +20 -0
- data/guide/getting_started.md +61 -0
- data/guide/hacking.md +52 -0
- data/guide/installation.md +44 -0
- data/guide/javascript.md +352 -0
- data/lib/vendor/sequel_sluggable.rb +137 -0
- data/lib/yard/tags.rb +13 -0
- data/lib/zen.rb +148 -78
- data/lib/zen/asset_groups.rb +85 -0
- data/lib/zen/bin/create.rb +267 -56
- data/lib/zen/bin/default.rb +84 -0
- data/lib/zen/controller/admin_controller.rb +1 -82
- data/lib/zen/controller/base_controller.rb +9 -5
- data/lib/zen/controller/frontend_controller.rb +0 -1
- data/lib/zen/controller/main_controller.rb +30 -42
- data/lib/zen/controller/preview.rb +9 -8
- data/lib/zen/controller/translations.rb +49 -0
- data/lib/zen/error.rb +17 -0
- data/lib/zen/event.rb +118 -0
- data/lib/zen/helper/asset.rb +63 -0
- data/lib/zen/helper/breadcrumb.rb +1 -4
- data/lib/zen/helper/controller.rb +73 -0
- data/lib/zen/helper/locale.rb +42 -0
- data/lib/zen/helper/message.rb +0 -3
- data/lib/zen/helper/search.rb +54 -0
- data/lib/zen/helper/stacked_aspect.rb +249 -0
- data/lib/zen/helper/theme.rb +3 -10
- data/lib/zen/language.rb +356 -181
- data/lib/zen/language/en/zen_general.rb +52 -0
- data/lib/zen/language/en/zen_models.rb +19 -0
- data/lib/zen/language/nl/zen_general.rb +57 -0
- data/lib/zen/language/nl/zen_models.rb +22 -0
- data/lib/zen/language/translation.rb +132 -0
- data/lib/zen/languages.rb +9 -0
- data/lib/zen/layout/admin.xhtml +3 -3
- data/lib/zen/layout/login.xhtml +1 -1
- data/lib/zen/markup.rb +189 -0
- data/lib/zen/model/helper.rb +65 -0
- data/lib/zen/model/init.rb +62 -0
- data/lib/zen/model/methods.rb +6 -7
- data/lib/zen/package.rb +312 -201
- data/lib/zen/package/all.rb +4 -3
- data/lib/zen/package/categories/lib/categories.rb +29 -41
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
- data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
- data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
- data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
- data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
- data/lib/zen/package/comments/lib/comments.rb +30 -50
- data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
- data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
- data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
- data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
- data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
- data/lib/zen/package/extensions/lib/extensions.rb +20 -0
- data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
- data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
- data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
- data/lib/zen/package/menu.rb +109 -0
- data/lib/zen/package/menus/lib/menus.rb +25 -34
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
- data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
- data/lib/zen/package/sections/lib/sections.rb +25 -68
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
- data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
- data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
- data/lib/zen/package/settings/lib/settings.rb +25 -120
- data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
- data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
- data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
- data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
- data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
- data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
- data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
- data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
- data/lib/zen/package/users/lib/users.rb +51 -36
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
- data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
- data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
- data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
- data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
- data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
- data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
- data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
- data/lib/zen/package/users/lib/users/model/user.rb +104 -65
- data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
- data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
- data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
- data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
- data/lib/zen/package/users/lib/users/settings.rb +19 -0
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
- data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
- data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
- data/lib/zen/public/admin/css/zen/buttons.css +3 -11
- data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
- data/lib/zen/public/admin/css/zen/editor.css +6 -14
- data/lib/zen/public/admin/css/zen/forms.css +19 -12
- data/lib/zen/public/admin/css/zen/general.css +22 -18
- data/lib/zen/public/admin/css/zen/grid.css +1 -20
- data/lib/zen/public/admin/css/zen/layout.css +26 -11
- data/lib/zen/public/admin/css/zen/messages.css +3 -10
- data/lib/zen/public/admin/css/zen/reset.css +13 -15
- data/lib/zen/public/admin/css/zen/tables.css +8 -10
- data/lib/zen/public/admin/css/zen/tabs.css +2 -10
- data/lib/zen/public/admin/css/zen/window.css +2 -8
- data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
- data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
- data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
- data/lib/zen/public/admin/js/zen/index.js +8 -14
- data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
- data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
- data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
- data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
- data/lib/zen/spec/bacon/color_output.rb +1 -1
- data/lib/zen/spec/helper.rb +6 -11
- data/lib/zen/spec/simplecov.rb +3 -3
- data/lib/zen/task.rb +0 -1
- data/lib/zen/task/build.rake +46 -26
- data/lib/zen/task/clean.rake +14 -7
- data/lib/zen/task/db.rake +31 -29
- data/lib/zen/task/package.rake +19 -23
- data/lib/zen/task/proto.rake +3 -5
- data/lib/zen/task/setup.rake +4 -0
- data/lib/zen/task/test.rake +31 -6
- data/lib/zen/task/theme.rake +13 -19
- data/lib/zen/theme.rb +377 -52
- data/lib/zen/validation.rb +22 -30
- data/lib/zen/version.rb +1 -2
- data/lib/zen/view/bottom.xhtml +9 -1
- data/lib/zen/view/head.xhtml +1 -1
- data/lib/zen/view/main.xhtml +1 -1
- data/lib/zen/view/search.xhtml +9 -0
- data/proto/app/Rakefile +0 -1
- data/proto/app/app.rb +21 -16
- data/proto/app/config/config.rb.erb +41 -0
- data/proto/app/config/{database.rb → database.rb.erb} +17 -14
- data/proto/app/config/middlewares.rb +1 -1
- data/proto/app/theme/default/index.xhtml +25 -0
- data/proto/app/theme/theme.rb +19 -0
- data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
- data/proto/migration.rb +3 -5
- data/proto/rack/thin.yml +41 -0
- data/proto/rack/unicorn.rb +38 -0
- data/spec/Rakefile +15 -11
- data/spec/fixtures/zen/helper/controller.rb +13 -0
- data/spec/fixtures/zen/helper/locale.rb +7 -0
- data/spec/fixtures/zen/helper/message.rb +0 -4
- data/spec/fixtures/zen/language.rb +31 -0
- data/spec/fixtures/zen/language/en/spec.rb +11 -0
- data/spec/fixtures/zen/language/nl/spec.rb +11 -0
- data/spec/fixtures/zen/package.rb +0 -10
- data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
- data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
- data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
- data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
- data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
- data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
- data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
- data/spec/helper.rb +12 -27
- data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
- data/spec/zen/controller/admin_controller.rb +5 -6
- data/spec/zen/controller/main_controller.rb +29 -35
- data/spec/zen/controller/preview.rb +9 -10
- data/spec/zen/event.rb +44 -0
- data/spec/zen/helper/breadcrumb.rb +4 -5
- data/spec/zen/helper/controller.rb +21 -0
- data/spec/zen/helper/locale.rb +25 -0
- data/spec/zen/helper/message.rb +4 -11
- data/spec/zen/helper/theme.rb +11 -14
- data/spec/zen/language.rb +48 -22
- data/spec/zen/markup.rb +39 -0
- data/spec/zen/package.rb +48 -11
- data/spec/zen/package/categories/controller/categories.rb +99 -45
- data/spec/zen/package/categories/controller/category_groups.rb +109 -33
- data/spec/zen/package/categories/helper/category.rb +19 -32
- data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
- data/spec/zen/package/comments/anti_spam.rb +50 -0
- data/spec/zen/package/comments/controller/comments.rb +121 -61
- data/spec/zen/package/comments/controller/comments_form.rb +120 -94
- data/spec/zen/package/comments/helper/comment.rb +13 -13
- data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
- data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
- data/spec/zen/package/extensions/controller/extensions.rb +38 -0
- data/spec/zen/package/menus/controller/menu_items.rb +121 -42
- data/spec/zen/package/menus/controller/menus.rb +125 -38
- data/spec/zen/package/menus/helper/menu.rb +26 -26
- data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
- data/spec/zen/package/sections/controller/section_entries.rb +145 -89
- data/spec/zen/package/sections/controller/sections.rb +130 -35
- data/spec/zen/package/sections/helper/section.rb +27 -38
- data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
- data/spec/zen/package/settings/controller/settings.rb +73 -8
- data/spec/zen/package/settings/settings.rb +119 -0
- data/spec/zen/package/users/controller/user_groups.rb +134 -34
- data/spec/zen/package/users/controller/users.rb +189 -44
- data/spec/zen/package/users/helper/access.rb +29 -0
- data/spec/zen/package/users/helper/acl.rb +46 -0
- data/spec/zen/package/users/helper/users.rb +20 -64
- data/spec/zen/theme.rb +7 -9
- data/spec/zen/validation.rb +1 -2
- data/zen.gemspec +25 -22
- metadata +303 -222
- data/lib/zen/asset.rb +0 -292
- data/lib/zen/bin/runner.rb +0 -118
- data/lib/zen/error/language_error.rb +0 -10
- data/lib/zen/error/package_error.rb +0 -10
- data/lib/zen/error/plugin_error.rb +0 -10
- data/lib/zen/error/theme_error.rb +0 -10
- data/lib/zen/error/validation_error.rb +0 -10
- data/lib/zen/helper/acl.rb +0 -182
- data/lib/zen/helper/blue_form_vendor.rb +0 -689
- data/lib/zen/language/en/zen_general.yml +0 -25
- data/lib/zen/language/en/zen_models.yml +0 -13
- data/lib/zen/language/nl/zen_general.yml +0 -25
- data/lib/zen/language/nl/zen_models.yml +0 -13
- data/lib/zen/model/settings.rb +0 -78
- data/lib/zen/package/base.rb +0 -62
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
- data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
- data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
- data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
- data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
- data/lib/zen/plugin.rb +0 -182
- data/lib/zen/plugin/base.rb +0 -46
- data/lib/zen/plugin/helper.rb +0 -47
- data/lib/zen/plugin/markup/lib/markup.rb +0 -14
- data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
- data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
- data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
- data/lib/zen/task/plugin.rake +0 -18
- data/lib/zen/theme/base.rb +0 -65
- data/proto/app/config/config.rb +0 -18
- data/spec/fixtures/zen/language/en/spec.yml +0 -10
- data/spec/fixtures/zen/language/nl/spec.yml +0 -7
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
- data/spec/zen/asset.rb +0 -97
- data/spec/zen/bin/create.rb +0 -89
- data/spec/zen/bin/runner.rb +0 -47
- data/spec/zen/helper/acl.rb +0 -149
- data/spec/zen/package/categories/plugin/categories.rb +0 -92
- data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
- data/spec/zen/package/comments/plugin/comments.rb +0 -107
- data/spec/zen/package/menus/plugin/menus.rb +0 -120
- data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
- data/spec/zen/package/sections/plugin/sections.rb +0 -75
- data/spec/zen/package/settings/plugin/settings.rb +0 -33
- data/spec/zen/package/users/controller/access_rules.rb +0 -90
- data/spec/zen/plugin.rb +0 -64
- data/spec/zen/plugin/helper.rb +0 -11
- data/spec/zen/plugin/markup.rb +0 -44
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'en'
|
|
3
|
+
trans.name = 'zen_general'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['labels.powered_by'] = 'Powered by'
|
|
7
|
+
t['labels.view_website'] = 'View website'
|
|
8
|
+
t['labels.logout'] = 'Logout'
|
|
9
|
+
t['labels.profile'] = 'Profile'
|
|
10
|
+
|
|
11
|
+
t['errors.csrf'] = 'The specified request can not be executed without a ' \
|
|
12
|
+
'valid CSRF token.'
|
|
13
|
+
|
|
14
|
+
t['errors.not_authorized'] = 'You are not authorized to access that page.'
|
|
15
|
+
t['errors.no_templates'] = 'No templates were found for the given action.'
|
|
16
|
+
t['errors.no_theme'] = 'No theme has been specified.'
|
|
17
|
+
t['errors.invalid_request'] = 'The request could not be executed as the ' \
|
|
18
|
+
'specified data is incorrect.'
|
|
19
|
+
|
|
20
|
+
t['errors.require_login'] = 'You need to be logged in in order to view ' \
|
|
21
|
+
'that page.'
|
|
22
|
+
|
|
23
|
+
t['errors.invalid_search'] = 'The specified search query is invalid.'
|
|
24
|
+
|
|
25
|
+
t['descriptions.search'] = 'Search keywords'
|
|
26
|
+
|
|
27
|
+
t['buttons.bold'] = 'Bold'
|
|
28
|
+
t['buttons.italic'] = 'Italic'
|
|
29
|
+
t['buttons.link'] = 'Link'
|
|
30
|
+
t['buttons.ul'] = 'Unordered list'
|
|
31
|
+
t['buttons.ol'] = 'Ordered list'
|
|
32
|
+
t['buttons.preview'] = 'Preview'
|
|
33
|
+
t['buttons.close'] = 'Close'
|
|
34
|
+
t['buttons.search'] = 'Search'
|
|
35
|
+
|
|
36
|
+
t['datepicker.select_a_time'] = 'Select a time'
|
|
37
|
+
t['datepicker.use_mouse_wheel'] = 'Use the mouse wheel to quickly change ' \
|
|
38
|
+
'the value'
|
|
39
|
+
t['datepicker.time_confirm_button'] = 'Ok'
|
|
40
|
+
t['datepicker.apply_range'] = 'Ok'
|
|
41
|
+
t['datepicker.cancel'] = 'Cancel'
|
|
42
|
+
t['datepicker.week'] = 'W'
|
|
43
|
+
|
|
44
|
+
t['special.boolean_hash.true'] = 'Yes'
|
|
45
|
+
t['special.boolean_hash.false'] = 'No'
|
|
46
|
+
|
|
47
|
+
t['markup.html'] = 'HTML'
|
|
48
|
+
t['markup.textile'] = 'Textile'
|
|
49
|
+
t['markup.markdown'] = 'Markdown'
|
|
50
|
+
t['markup.plain'] = 'Plain'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'en'
|
|
3
|
+
trans.name = 'zen_models'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['exact_length'] = 'This field is not exactly %s characters long.'
|
|
7
|
+
t['format'] = "This field's format is invalid."
|
|
8
|
+
t['includes'] = "This field's value is not in the range or set of %s."
|
|
9
|
+
t['integer'] = "This field's value is not an integer."
|
|
10
|
+
t['length_range'] = "This field's value is either too long or too short."
|
|
11
|
+
t['max_length'] = "This field's value may not be longer than %s characters."
|
|
12
|
+
t['min_length'] = "This field's value may not be shorter than %s characters."
|
|
13
|
+
t['not_string'] = "This field's value is not a string."
|
|
14
|
+
t['numeric'] = "This field's value is not numeric."
|
|
15
|
+
t['type'] = "This field's value is not a %s."
|
|
16
|
+
t['presence'] = "This field's value is required."
|
|
17
|
+
t['unique'] = "This field's value is already taken."
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'nl'
|
|
3
|
+
trans.name = 'zen_general'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['labels.powered_by'] = 'Aangedreven door'
|
|
7
|
+
t['labels.view_website'] = 'Bekijk website'
|
|
8
|
+
t['labels.logout'] = 'Log uit'
|
|
9
|
+
t['labels.profile'] = 'Profiel'
|
|
10
|
+
|
|
11
|
+
t['errors.csrf'] = 'De actie kon niet worden uitgevoerd zonder een geldige ' \
|
|
12
|
+
'CSRF token.'
|
|
13
|
+
|
|
14
|
+
t['errors.not_authorized'] = 'U bent niet toegestaan om de opgevraagde ' \
|
|
15
|
+
'pagina te bekijken.'
|
|
16
|
+
|
|
17
|
+
t['errors.no_templates'] = 'Er konden geen templates worden gevonden voor ' \
|
|
18
|
+
'huidige actie.'
|
|
19
|
+
|
|
20
|
+
t['errors.no_theme'] = 'Er is geen thema ingesteld.'
|
|
21
|
+
t['errors.invalid_request'] = 'De actie kon niet worden uitgevoerd omdat ' \
|
|
22
|
+
'de data onjuist is.'
|
|
23
|
+
|
|
24
|
+
t['errors.require_login'] = 'U moet ingelogd zijn om de opgevraagde pagina ' \
|
|
25
|
+
'te kunnen bekijken.'
|
|
26
|
+
|
|
27
|
+
t['errors.invalid_search'] = 'De opgegeven zoek actie is ongeldig.'
|
|
28
|
+
|
|
29
|
+
t['descriptions.search'] = 'Zoektermen'
|
|
30
|
+
|
|
31
|
+
t['buttons.bold'] = 'Vet'
|
|
32
|
+
t['buttons.italic'] = 'Cursief'
|
|
33
|
+
t['buttons.link'] = 'Hyperlink'
|
|
34
|
+
t['buttons.ul'] = 'Ongesorteerde lijst'
|
|
35
|
+
t['buttons.ol'] = 'Gesorteerde lijst'
|
|
36
|
+
t['buttons.preview'] = 'Voorbeeld'
|
|
37
|
+
t['buttons.close'] = 'Sluiten'
|
|
38
|
+
t['buttons.search'] = 'Zoeken'
|
|
39
|
+
|
|
40
|
+
t['datepicker.select_a_time'] = 'Selecteer een tijd'
|
|
41
|
+
t['datepicker.use_mouse_wheel'] = 'Gebruik het muis wiel om een waarde te ' \
|
|
42
|
+
'selecteren'
|
|
43
|
+
|
|
44
|
+
t['datepicker.time_confirm_button'] = 'Ok'
|
|
45
|
+
t['datepicker.apply_range'] = 'Ok'
|
|
46
|
+
t['datepicker.cancel'] = 'Annuleren'
|
|
47
|
+
t['datepicker.week'] = 'W'
|
|
48
|
+
|
|
49
|
+
t['special.boolean_hash.true'] = 'Ja'
|
|
50
|
+
t['special.boolean_hash.false'] = 'Nee'
|
|
51
|
+
|
|
52
|
+
t['markup.html'] = 'HTML'
|
|
53
|
+
t['markup.markdown'] = 'Markdown'
|
|
54
|
+
t['markup.textile'] = 'Textile'
|
|
55
|
+
t['markup.plain'] = 'Platte tekst'
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'nl'
|
|
3
|
+
trans.name = 'zen_models'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['exact_length'] = 'Dit veld bevat niet exact %s karakters.'
|
|
7
|
+
t['format'] = 'Het formaat van de waarde van dit veld is onjuist.'
|
|
8
|
+
t['includes'] = 'De waarde van dit veld is niet binnen het bereik '\
|
|
9
|
+
'van %s.'
|
|
10
|
+
t['integer'] = 'De waarde van dit veld is niet numeriek.'
|
|
11
|
+
t['length_range'] = 'De waarde van dit veld is te lang of te kort.'
|
|
12
|
+
t['max_length'] = 'De waarde van dit veld mag niet langer zijn dan ' \
|
|
13
|
+
'%s karakters.'
|
|
14
|
+
t['min_length'] = 'De waarde van dit veld mag niet korter zijn dan ' \
|
|
15
|
+
'%s karakters.'
|
|
16
|
+
t['not_string'] = 'De waarde van dit veld is geen tekst.'
|
|
17
|
+
t['numeric'] = 'De waarde van dit veld is niet numeriek.'
|
|
18
|
+
t['type'] = 'De waarde van dit veld is niet het type %s.'
|
|
19
|
+
t['presence'] = 'Dit veld is vereist.'
|
|
20
|
+
t['unique'] = 'De waarde van dit veld is al in gebruik.'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
module Zen
|
|
2
|
+
class Language
|
|
3
|
+
##
|
|
4
|
+
# Class used to specify all the translations in a language file/pack. In
|
|
5
|
+
# order to add a translation you need to specify the language, the name of
|
|
6
|
+
# the collection and a bunch of strings to translate. This is done as
|
|
7
|
+
# following:
|
|
8
|
+
#
|
|
9
|
+
# Zen::Language::Translation.add do |trans|
|
|
10
|
+
# trans.language = 'en'
|
|
11
|
+
# trans.name = 'users'
|
|
12
|
+
#
|
|
13
|
+
# trans.translate do |t|
|
|
14
|
+
# t['titles.index'] = 'Users'
|
|
15
|
+
# end
|
|
16
|
+
# end
|
|
17
|
+
#
|
|
18
|
+
# For more general and expanded information see {Zen::Language}.
|
|
19
|
+
#
|
|
20
|
+
# @since 16-11-2011
|
|
21
|
+
#
|
|
22
|
+
class Translation
|
|
23
|
+
include Zen::Validation
|
|
24
|
+
|
|
25
|
+
# A regex that specifies the allowed format of language keys.
|
|
26
|
+
KEY_REGEX = /^[a-z_\.]+$/
|
|
27
|
+
|
|
28
|
+
# The name of the language this set of translations belongs to.
|
|
29
|
+
attr_reader :language
|
|
30
|
+
|
|
31
|
+
# The name of the set of translations.
|
|
32
|
+
attr_reader :name
|
|
33
|
+
|
|
34
|
+
# A block containing all the translations for the language file.
|
|
35
|
+
attr_accessor :translations
|
|
36
|
+
|
|
37
|
+
##
|
|
38
|
+
# Adds a new translation set.
|
|
39
|
+
#
|
|
40
|
+
# @since 16-11-2011
|
|
41
|
+
# @yield Zen::Language::Translation
|
|
42
|
+
#
|
|
43
|
+
def self.add
|
|
44
|
+
trans = new
|
|
45
|
+
|
|
46
|
+
yield(trans)
|
|
47
|
+
|
|
48
|
+
trans.validate
|
|
49
|
+
|
|
50
|
+
REGISTERED[trans.language].collections[trans.name] = trans
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Sets the language for the collection of translations.
|
|
55
|
+
#
|
|
56
|
+
# @since 16-11-2011
|
|
57
|
+
# @param [#to_s] language The language code.
|
|
58
|
+
# @raise Zen::ValidationError Raised whenever a given language is invalid.
|
|
59
|
+
#
|
|
60
|
+
def language=(language)
|
|
61
|
+
@language = language.is_a?(String) ? language : language.to_s
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
##
|
|
65
|
+
# Stores the supplied block containing all translations in
|
|
66
|
+
# ``@translations``.
|
|
67
|
+
#
|
|
68
|
+
# @since 17-11-2011
|
|
69
|
+
# @param [Proc] block A block containing all calls to ``#[]=()``.
|
|
70
|
+
#
|
|
71
|
+
def translate(&block)
|
|
72
|
+
@translations = block
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
##
|
|
76
|
+
# Loads the translations by invoking the block that was set using
|
|
77
|
+
# {#translate}.
|
|
78
|
+
#
|
|
79
|
+
# @since 17-11-2011
|
|
80
|
+
#
|
|
81
|
+
def load
|
|
82
|
+
@translations.call(self)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
##
|
|
86
|
+
# Sets the name of the collection of translations.
|
|
87
|
+
#
|
|
88
|
+
# @since 16-11-2011
|
|
89
|
+
# @param [#to_s] name The name of the collection.
|
|
90
|
+
#
|
|
91
|
+
def name=(name)
|
|
92
|
+
@name = name.is_a?(String) ? name : name.to_s
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
##
|
|
96
|
+
# Adds a new translation by directly storing it in the cache
|
|
97
|
+
# ``Ramaze::Cache.translations``.
|
|
98
|
+
#
|
|
99
|
+
# @since 16-11-2011
|
|
100
|
+
# @param [#to_s] key The name of the language item, an example is
|
|
101
|
+
# "titles.index".
|
|
102
|
+
# @param [#to_s] value The value of the language item.
|
|
103
|
+
#
|
|
104
|
+
def []=(key, value)
|
|
105
|
+
unless key =~ KEY_REGEX
|
|
106
|
+
raise(
|
|
107
|
+
Zen::LanguageError,
|
|
108
|
+
"The format of the language key \"#{key}\" is invalid"
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
Ramaze::Cache.translations.store([language, name, key].join('.'), value)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
##
|
|
116
|
+
# Validates the instance.
|
|
117
|
+
#
|
|
118
|
+
# @since 17-11-2011
|
|
119
|
+
#
|
|
120
|
+
def validate
|
|
121
|
+
validates_presence([:name, :name, :translations])
|
|
122
|
+
|
|
123
|
+
unless Zen::Language::REGISTERED.key?(language)
|
|
124
|
+
raise(
|
|
125
|
+
Zen::ValidationError,
|
|
126
|
+
"The language \"#{language}\" doesn't exist"
|
|
127
|
+
)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end # Translation
|
|
131
|
+
end # Language
|
|
132
|
+
end # Zen
|
data/lib/zen/layout/admin.xhtml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
|
|
2
|
+
#{Zen::Language.html_head}
|
|
3
3
|
<head>
|
|
4
4
|
#{render_file(__DIR__('../view/head.xhtml'))}
|
|
5
5
|
</head>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div id="top">
|
|
9
9
|
<header class="container">
|
|
10
10
|
<nav id="main_nav" class="grid_12">
|
|
11
|
-
#{Zen::Package.build_menu(
|
|
11
|
+
#{Zen::Package.build_menu('left', session[:permissions])}
|
|
12
12
|
|
|
13
13
|
<ul class="right clearfix">
|
|
14
14
|
<li>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</a>
|
|
18
18
|
</li>
|
|
19
19
|
<li>
|
|
20
|
-
<a href="/admin/users/edit/#{
|
|
20
|
+
<a href="/admin/users/edit/#{user.id}">
|
|
21
21
|
#{lang('zen_general.labels.profile')}
|
|
22
22
|
</a>
|
|
23
23
|
</li>
|
data/lib/zen/layout/login.xhtml
CHANGED
data/lib/zen/markup.rb
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
module Zen
|
|
2
|
+
##
|
|
3
|
+
# {Zen::Markup} is a module that makes it easy to convert markup from one
|
|
4
|
+
# format to another. It can be used to generate HTML using Markdown and
|
|
5
|
+
# Textile or to escape HTML using ``Ramaze::Helper::CGI``.
|
|
6
|
+
#
|
|
7
|
+
# Using this module is quite easy, simply call the ``.convert`` method of and
|
|
8
|
+
# pass the name of the markup engine you'd like to use to it along with some
|
|
9
|
+
# markup. For example, to convert Markdown to HTML you'd call the following:
|
|
10
|
+
#
|
|
11
|
+
# html = Zen::Markup.convert(:markdown, 'Hello **world**')
|
|
12
|
+
#
|
|
13
|
+
# When converting Markdown or Textile Zen will automatically install the
|
|
14
|
+
# required gems. For Markdown RDiscount is used, for Textile RedCloth is used.
|
|
15
|
+
#
|
|
16
|
+
# You may be tempted to call the various methods directly but it is not
|
|
17
|
+
# recommended to do so. For example, you might have the following code:
|
|
18
|
+
#
|
|
19
|
+
# # Taken from an HTML form
|
|
20
|
+
# engine = 'markdown'
|
|
21
|
+
# markup = '...'
|
|
22
|
+
# html = Zen::Markdown.send(engine, markup)
|
|
23
|
+
#
|
|
24
|
+
# This however makes it possible to do some serious damage. Consider the
|
|
25
|
+
# following:
|
|
26
|
+
#
|
|
27
|
+
# engine = 'instance_eval'
|
|
28
|
+
# markup = 'eval("....")'
|
|
29
|
+
# html = Zen::Markdown.send(engine, markup)
|
|
30
|
+
#
|
|
31
|
+
# Because of this you should use {Zen::Markup.convert} instead as this method
|
|
32
|
+
# will verify the engine name before calling the method for it.
|
|
33
|
+
#
|
|
34
|
+
# ## Adding Markup Engines
|
|
35
|
+
#
|
|
36
|
+
# Adding a new engine is relatively easy and is done in two steps. First you
|
|
37
|
+
# should add the name of your engine and it's label to
|
|
38
|
+
# {Zen::Markup::REGISTERED}. The keys of this hash should be the methods to
|
|
39
|
+
# call, teh values will be displayed in various ``<select>`` elements in the
|
|
40
|
+
# administration interface.
|
|
41
|
+
#
|
|
42
|
+
# Zen::Markup::REGISTERED['my_markup'] = 'My Markup'
|
|
43
|
+
#
|
|
44
|
+
# In this example the label is hardcoded but it's recommended to use
|
|
45
|
+
# {Zen::Language.lang} instead.
|
|
46
|
+
#
|
|
47
|
+
# Once the engine has been added to the list you'll have to add a
|
|
48
|
+
# corresponding method. This can be done as following:
|
|
49
|
+
#
|
|
50
|
+
# module Zen
|
|
51
|
+
# module Markup
|
|
52
|
+
# private
|
|
53
|
+
#
|
|
54
|
+
# def self.my_markup(markup)
|
|
55
|
+
#
|
|
56
|
+
# end
|
|
57
|
+
# end
|
|
58
|
+
# end
|
|
59
|
+
#
|
|
60
|
+
# Each markup method should be a class method and should take a single
|
|
61
|
+
# parameter. This parameter will contain the markup to convert. The return
|
|
62
|
+
# value of these methods should be the converted markup:
|
|
63
|
+
#
|
|
64
|
+
# module Zen
|
|
65
|
+
# module Markup
|
|
66
|
+
# private
|
|
67
|
+
#
|
|
68
|
+
# def self.my_markup(markup)
|
|
69
|
+
# return markup.upcase
|
|
70
|
+
# end
|
|
71
|
+
# end
|
|
72
|
+
# end
|
|
73
|
+
#
|
|
74
|
+
# @since 0.2.5
|
|
75
|
+
#
|
|
76
|
+
module Markup
|
|
77
|
+
# Hash containing all the markup engines and their names as they'll be
|
|
78
|
+
# displayed in the backend.
|
|
79
|
+
REGISTERED = {
|
|
80
|
+
'markdown' => 'zen_general.markup.markdown',
|
|
81
|
+
'textile' => 'zen_general.markup.textile',
|
|
82
|
+
'plain' => 'zen_general.markup.plain',
|
|
83
|
+
'html' => 'zen_general.markup.html'
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
class << self
|
|
87
|
+
include ::Ramaze::Helper::CGI
|
|
88
|
+
|
|
89
|
+
##
|
|
90
|
+
# Returns a hash containing the available markup engines and their labels
|
|
91
|
+
# for the current language.
|
|
92
|
+
#
|
|
93
|
+
# @since 15-11-2011
|
|
94
|
+
# @return [Hash]
|
|
95
|
+
#
|
|
96
|
+
def to_hash
|
|
97
|
+
hash = {}
|
|
98
|
+
|
|
99
|
+
REGISTERED.each { |k, v| hash[k] = lang(v) }
|
|
100
|
+
|
|
101
|
+
return hash
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
##
|
|
105
|
+
# Converts markup using the specified markup engine.
|
|
106
|
+
#
|
|
107
|
+
# @example
|
|
108
|
+
# Zen::Markup.conver(:markdown, 'Hello **world**')
|
|
109
|
+
#
|
|
110
|
+
# @since 0.3
|
|
111
|
+
# @param [#to_s] engine The markup engine to use.
|
|
112
|
+
# @param [String] markup The markup to convert.
|
|
113
|
+
# @return [String]
|
|
114
|
+
#
|
|
115
|
+
def convert(engine, markup)
|
|
116
|
+
unless REGISTERED.keys.include?(engine.to_s)
|
|
117
|
+
raise(ArgumentError, "The specified engine \"#{engine}\" is invalid")
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
return send(engine, markup)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
private
|
|
124
|
+
|
|
125
|
+
##
|
|
126
|
+
# Converts the Markdown markup to HTML using RDiscount.
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
# Zen::Markup.markdown('Hello **world**')
|
|
130
|
+
#
|
|
131
|
+
# @since 0.2.5
|
|
132
|
+
# @param [String] markup The Markdown string to convert to HTML.
|
|
133
|
+
# @return [String] The HTML returned by RDiscount.
|
|
134
|
+
#
|
|
135
|
+
def markdown(markup)
|
|
136
|
+
unless Kernel.const_defined?(:RDiscount)
|
|
137
|
+
Ramaze.setup(:verbose => false) do
|
|
138
|
+
gem 'rdiscount'
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
return RDiscount.new(markup).to_html
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
##
|
|
146
|
+
# Converts Textile to HTML using RedCloth.
|
|
147
|
+
#
|
|
148
|
+
# @example
|
|
149
|
+
# Zen::Markup.textile('Hello *world*')
|
|
150
|
+
#
|
|
151
|
+
# @since 0.2.5
|
|
152
|
+
# @param [String] markup The Textile markup to convert to HTML.
|
|
153
|
+
# @return [String] The HTML returned by RedCloth.
|
|
154
|
+
#
|
|
155
|
+
def textile(markup)
|
|
156
|
+
unless Kernel.const_defined?(:RedCloth)
|
|
157
|
+
Ramaze.setup(:verbose => false) do
|
|
158
|
+
gem 'RedCloth', :lib => 'redcloth'
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
return RedCloth.new(markup).to_html
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
##
|
|
166
|
+
# Escapes all HTML using Ramaze::Helper::CGI.
|
|
167
|
+
#
|
|
168
|
+
# @since 0.2.5
|
|
169
|
+
# @param [String] markup The markup in which all HTML tags should be
|
|
170
|
+
# escaped.
|
|
171
|
+
# @return [String] String containing the escaped HTML.
|
|
172
|
+
#
|
|
173
|
+
def plain(markup)
|
|
174
|
+
return h(markup)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
##
|
|
178
|
+
# Ignores the markup and just returns it.
|
|
179
|
+
#
|
|
180
|
+
# @since 0.2.5
|
|
181
|
+
# @param [String] markup The markup to return.
|
|
182
|
+
# @return [String] String containing our markup.
|
|
183
|
+
#
|
|
184
|
+
def html(markup)
|
|
185
|
+
return markup
|
|
186
|
+
end
|
|
187
|
+
end # class << self
|
|
188
|
+
end # Markup
|
|
189
|
+
end # Zen
|