trusty-cms 3.8.2 → 3.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/Gemfile.lock +1 -1
  4. data/app/helpers/scoped_helper.rb +1 -1
  5. data/app/models/trusty_cms/config.rb +2 -5
  6. data/config/application.rb +4 -4
  7. data/config/initializers/devise.rb +1 -1
  8. data/db/migrate/{001_create_radiant_tables.rb → 001_create_trusty_tables.rb} +1 -1
  9. data/db/migrate/20111016150725_extend_page_part_content_limit.rb +0 -2
  10. data/lib/configuration_extensions/configuration_extensions.rb +9 -9
  11. data/lib/tasks/extensions.rake +4 -4
  12. data/lib/tasks/framework.rake +28 -28
  13. data/lib/tasks/radiant_config.rake +4 -4
  14. data/lib/trusty_cms.rb +1 -1
  15. data/lib/trusty_cms/config/definition.rb +1 -1
  16. data/lib/trusty_cms/extension_loader.rb +1 -1
  17. data/lib/trusty_cms/extension_path.rb +1 -1
  18. data/lib/trusty_cms/initializer.rb +14 -14
  19. data/lib/trusty_cms/taggable.rb +1 -1
  20. data/lib/trusty_cms/task_support.rb +2 -2
  21. data/spec/dummy/config/application.rb +8 -8
  22. data/vendor/extensions/clipped-extension/lib/tasks/clipped_extension_tasks.rake +2 -2
  23. data/vendor/extensions/multi-site-extension/lib/tasks/scoped_admin_extension_tasks.rake +2 -2
  24. metadata +3 -103
  25. data/CONTRIBUTORS.md +0 -279
  26. data/Vagrantfile +0 -122
  27. data/app/mailers/password_mailer.rb +0 -10
  28. data/bin/ci/before_script +0 -10
  29. data/bin/trusty_test +0 -3
  30. data/lib/generators/extension/USAGE +0 -30
  31. data/lib/generators/extension/extension_generator.rb +0 -97
  32. data/lib/generators/extension/templates/README.md +0 -6
  33. data/lib/generators/extension/templates/RSpecRakefile +0 -109
  34. data/lib/generators/extension/templates/Rakefile +0 -25
  35. data/lib/generators/extension/templates/cucumber.yml +0 -1
  36. data/lib/generators/extension/templates/cucumber_env.rb +0 -11
  37. data/lib/generators/extension/templates/cucumber_paths.rb +0 -22
  38. data/lib/generators/extension/templates/en.yml +0 -3
  39. data/lib/generators/extension/templates/extension.rb +0 -21
  40. data/lib/generators/extension/templates/functional_test.rb +0 -15
  41. data/lib/generators/extension/templates/gemspec.rb +0 -29
  42. data/lib/generators/extension/templates/lib.rb +0 -8
  43. data/lib/generators/extension/templates/migration.rb +0 -9
  44. data/lib/generators/extension/templates/radiant_config.rb +0 -3
  45. data/lib/generators/extension/templates/routes.rb +0 -5
  46. data/lib/generators/extension/templates/spec.opts +0 -6
  47. data/lib/generators/extension/templates/spec_helper.rb +0 -42
  48. data/lib/generators/extension/templates/tasks.rake +0 -47
  49. data/lib/generators/extension/templates/test_helper.rb +0 -26
  50. data/lib/generators/extension_controller/USAGE +0 -36
  51. data/lib/generators/extension_controller/extension_controller_generator.rb +0 -84
  52. data/lib/generators/extension_controller/templates/controller.rb +0 -10
  53. data/lib/generators/extension_controller/templates/controller_spec.rb +0 -23
  54. data/lib/generators/extension_controller/templates/functional_test.rb +0 -11
  55. data/lib/generators/extension_controller/templates/helper.rb +0 -2
  56. data/lib/generators/extension_controller/templates/helper_spec.rb +0 -11
  57. data/lib/generators/extension_controller/templates/helper_test.rb +0 -4
  58. data/lib/generators/extension_controller/templates/view.html.erb +0 -2
  59. data/lib/generators/extension_controller/templates/view_spec.rb +0 -12
  60. data/lib/generators/extension_mailer/USAGE +0 -17
  61. data/lib/generators/extension_mailer/extension_mailer_generator.rb +0 -68
  62. data/lib/generators/extension_mailer/templates/fixture.erb +0 -3
  63. data/lib/generators/extension_mailer/templates/mailer.rb +0 -15
  64. data/lib/generators/extension_mailer/templates/unit_test.rb +0 -21
  65. data/lib/generators/extension_mailer/templates/view.erb +0 -3
  66. data/lib/generators/extension_migration/USAGE +0 -34
  67. data/lib/generators/extension_migration/extension_migration_generator.rb +0 -25
  68. data/lib/generators/extension_migration/templates/migration.rb +0 -11
  69. data/lib/generators/extension_model/USAGE +0 -35
  70. data/lib/generators/extension_model/extension_model_generator.rb +0 -68
  71. data/lib/generators/extension_model/templates/fixtures.yml +0 -19
  72. data/lib/generators/extension_model/templates/migration.rb +0 -16
  73. data/lib/generators/extension_model/templates/model.rb +0 -2
  74. data/lib/generators/extension_model/templates/model_spec.rb +0 -11
  75. data/lib/generators/extension_model/templates/unit_test.rb +0 -8
  76. data/lib/generators/generator_base_extension.rb +0 -18
  77. data/lib/generators/instance/instance_generator.rb +0 -148
  78. data/lib/generators/instance/templates/databases/db2.yml +0 -40
  79. data/lib/generators/instance/templates/databases/mysql.yml +0 -47
  80. data/lib/generators/instance/templates/databases/postgresql.yml +0 -44
  81. data/lib/generators/instance/templates/databases/sqlite3.yml +0 -16
  82. data/lib/generators/instance/templates/databases/sqlserver.yml +0 -21
  83. data/lib/generators/instance/templates/instance_boot.rb +0 -122
  84. data/lib/generators/instance/templates/instance_config.ru +0 -2
  85. data/lib/generators/instance/templates/instance_environment.rb +0 -93
  86. data/lib/generators/instance/templates/instance_gemfile +0 -78
  87. data/lib/generators/instance/templates/instance_generate +0 -6
  88. data/lib/generators/instance/templates/instance_radiant_config.rb +0 -16
  89. data/lib/generators/instance/templates/instance_rakefile +0 -3
  90. data/lib/generators/instance/templates/instance_routes.rb +0 -1
  91. data/lib/generators/language_extension/USAGE +0 -27
  92. data/lib/generators/language_extension/language_extension_generator.rb +0 -71
  93. data/lib/generators/language_extension/templates/README +0 -3
  94. data/lib/generators/language_extension/templates/RSpecRakefile +0 -123
  95. data/lib/generators/language_extension/templates/Rakefile +0 -25
  96. data/lib/generators/language_extension/templates/available_tags.yml +0 -553
  97. data/lib/generators/language_extension/templates/cucumber.yml +0 -1
  98. data/lib/generators/language_extension/templates/cucumber_env.rb +0 -16
  99. data/lib/generators/language_extension/templates/cucumber_paths.rb +0 -14
  100. data/lib/generators/language_extension/templates/extension.rb +0 -12
  101. data/lib/generators/language_extension/templates/functional_test.rb +0 -15
  102. data/lib/generators/language_extension/templates/gemspec.rb +0 -24
  103. data/lib/generators/language_extension/templates/lang.yml +0 -181
  104. data/lib/generators/language_extension/templates/lib.rb +0 -8
  105. data/lib/generators/language_extension/templates/spec.opts +0 -6
  106. data/lib/generators/language_extension/templates/spec_helper.rb +0 -36
  107. data/lib/generators/language_extension/templates/tasks.rake +0 -28
  108. data/lib/generators/language_extension/templates/test_helper.rb +0 -26
  109. data/lib/generators/trusty_cms/USAGE +0 -8
  110. data/lib/generators/trusty_cms/templates/Rakefile.erb +0 -7
  111. data/lib/generators/trusty_cms/templates/application.rb.erb +0 -149
  112. data/lib/generators/trusty_cms/templates/boot.rb.erb +0 -9
  113. data/lib/generators/trusty_cms/templates/config.ru.erb +0 -4
  114. data/lib/generators/trusty_cms/templates/database.yml.erb +0 -28
  115. data/lib/generators/trusty_cms/templates/environment.rb.erb +0 -5
  116. data/lib/generators/trusty_cms/templates/environments/development.rb.erb +0 -24
  117. data/lib/generators/trusty_cms/templates/environments/production.rb.erb +0 -26
  118. data/lib/generators/trusty_cms/templates/environments/test.rb.erb +0 -35
  119. data/lib/generators/trusty_cms/templates/initializers/secret_token.rb.erb +0 -13
  120. data/lib/generators/trusty_cms/templates/initializers/session_store.rb.erb +0 -8
  121. data/lib/generators/trusty_cms/templates/initializers/trusty_cms_config.rb.erb +0 -16
  122. data/lib/generators/trusty_cms/templates/preinitializer.rb.erb +0 -18
  123. data/lib/generators/trusty_cms/templates/routes.rb.erb +0 -0
  124. data/lib/generators/trusty_cms/trusty_cms_generator.rb +0 -32
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'generators/generator_base_extension'
4
-
5
- Rails::Generator::Base.prepend_sources(Rails::Generator::PathSource.new(:builtin, "#{TrustyCms.root}/lib/generators"))
6
- require 'commands/generate'
@@ -1,16 +0,0 @@
1
- TrustyCms.config do |config|
2
- # this file can be used to set defaults, options and validation rules for local configuration settings.
3
- # core settings are defined in TRUSTY_CMS_ROOT/config/initializers/radiant_config.rb and by the corresponding
4
- # file in each radiant extension. You probably don't need to add anything here, but in case you do:
5
-
6
- # config.define 'site.show_footer?', :default => "true"
7
- # config.define 'S3.bucket', :default => "key", :allow_change => false
8
-
9
- # you can also use this file to set config values (by environment, for example):
10
-
11
- # if Rails.env == 'production'
12
- # config['cache.duration'] = 86400
13
- # else
14
- # config['cache.duration'] = 0
15
- # end
16
- end
@@ -1,3 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'config', 'boot')
2
-
3
- import File.join(TRUSTY_CMS_ROOT, 'Rakefile')
@@ -1 +0,0 @@
1
- load File.join(TRUSTY_CMS_ROOT, "config", "routes.rb")
@@ -1,27 +0,0 @@
1
- Description:
2
- The language_extension generator creates stubs for a new TrustyCms translation.
3
-
4
- The generator takes an language abbreviation as its argument. The extension name may be
5
- given as a language abbreviation 'en' or a localized abbreviation 'en-GB' and should not
6
- be prefixed with 'i18n' or suffixed with 'Extension'.
7
-
8
- The generator creates an extension directory in vendor/extensions that includes
9
- i18n_<extension_name>_extension.rb, README and Rakefile files as well as lib, task,
10
- and test directories.
11
-
12
- Example:
13
- ./script/generate language_extension fr
14
-
15
- This will create:
16
- vendor/extensions/i18n_fr/config/locales/fr.yml
17
- vendor/extensions/i18n_fr/lib/tasks
18
- vendor/extensions/i18n_fr/README
19
- vendor/extensions/i18n_fr/i18n_fr_extension.rb
20
- vendor/extensions/i18n_fr/lib/tasks/i18n_fr_extension_tasks.rake
21
- vendor/extensions/i18n_fr/spec/controllers
22
- vendor/extensions/i18n_fr/spec/models
23
- vendor/extensions/i18n_fr/spec/views
24
- vendor/extensions/i18n_fr/spec/helpers
25
- vendor/extensions/i18n_fr/Rakefile
26
- vendor/extensions/i18n_fr/spec/spec_helper.rb
27
- vendor/extensions/i18n_fr/spec/spec.opts
@@ -1,71 +0,0 @@
1
- class LanguageExtensionGenerator < Rails::Generator::NamedBase
2
- default_options :with_test_unit => false
3
-
4
- attr_reader :extension_path, :extension_file_name, :localization_name
5
-
6
- def initialize(runtime_args, runtime_options = {})
7
- super
8
- @extension_file_name = "#{file_name}_language_pack_extension"
9
- @extension_path = "vendor/extensions/#{file_name}_language_pack"
10
- @localization_name = localization_name
11
- end
12
-
13
- def manifest
14
- record do |m|
15
- m.directory "#{extension_path}/config/locales"
16
- m.directory "#{extension_path}/lib/tasks"
17
-
18
- m.template 'README', "#{extension_path}/README"
19
- m.template 'extension.rb', "#{extension_path}/#{extension_file_name}.rb"
20
- # m.template 'tasks.rake', "#{extension_path}/lib/tasks/#{extension_file_name}_tasks.rake"
21
- m.template 'lang.yml', "#{extension_path}/config/locales/#{localization_name}.yml"
22
- m.template 'available_tags.yml', "#{extension_path}/config/locales/#{localization_name}_available_tags.yml"
23
- m.template 'lib.rb', "#{extension_path}/lib/radiant-#{file_name}_language_pack-extension.rb"
24
- m.template 'gemspec.rb', "#{extension_path}/radiant-#{file_name}_language_pack-extension.gemspec"
25
- end
26
-
27
- end
28
-
29
- def class_name
30
- super.to_name.gsub(' ', '') + 'LanguagePackExtension'
31
- end
32
-
33
- def extension_name
34
- class_name.to_name('Extension')
35
- end
36
-
37
- def author_info
38
- @author_info ||= begin
39
- Git.global_config
40
- rescue NameError
41
- {}
42
- end
43
- end
44
-
45
- def homepage
46
- author_info['github.user'] ? "http://github.com/#{author_info['github.user']}/radiant-#{file_name}-extension" : "http://example.com/#{file_name}"
47
- end
48
-
49
- def author_email
50
- author_info['user.email'] || 'your email'
51
- end
52
-
53
- def author_name
54
- author_info['user.name'] || 'Your Name'
55
- end
56
-
57
- def add_options!(opt)
58
- # opt.separator ''
59
- # opt.separator 'Options:'
60
- # opt.on("--with-test-unit",
61
- # "Use Test::Unit for this extension instead of RSpec") { |v| options[:with_test_unit] = v }
62
- end
63
-
64
- def localization_name
65
- file_name.split('_')[1] ? "#{file_name.split('_')[0]}-#{file_name.split('_')[1].upcase}" : file_name
66
- end
67
-
68
- def copy_files
69
- FileUtils.cp("#{TRUSTY_CMS_ROOT}/config/locales/en_available_tags.yml","#{TRUSTY_CMS_ROOT}/#{extension_path}/config/locales/#{localization_name}_available_tags.yml")
70
- end
71
- end
@@ -1,3 +0,0 @@
1
- = <%= extension_name %>
2
-
3
- Description goes here
@@ -1,123 +0,0 @@
1
- # I think this is the one that should be moved to the extension Rakefile template
2
-
3
- # In rails 1.2, plugins aren't available in the path until they're loaded.
4
- # Check to see if the rspec plugin is installed first and require
5
- # it if it is. If not, use the gem version.
6
-
7
- # Determine where the RSpec plugin is by loading the boot
8
- unless defined? TRUSTY_CMS_ROOT
9
- ENV["Rails.env"] = "test"
10
- case
11
- when ENV["RADIANT_ENV_FILE"]
12
- require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot"
13
- when File.dirname(__FILE__) =~ %r{vendor/trusty_cms/vendor/extensions}
14
- require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot"
15
- else
16
- require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot"
17
- end
18
- end
19
-
20
- require 'rake'
21
- require 'rdoc/task'
22
- require 'rake/testtask'
23
-
24
- rspec_base = File.expand_path(TRUSTY_CMS_ROOT + '/vendor/plugins/rspec/lib')
25
- $LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
26
- require 'spec/rake/spectask'
27
- require 'cucumber'
28
- require 'cucumber/rake/task'
29
-
30
- # Cleanup the TRUSTY_CMS_ROOT constant so specs will load the environment
31
- Object.send(:remove_const, :TRUSTY_CMS_ROOT)
32
-
33
- extension_root = File.expand_path(File.dirname(__FILE__))
34
-
35
- task :default => :spec
36
- task :stats => "spec:statsetup"
37
-
38
- desc "Run all specs in spec directory"
39
- Spec::Rake::SpecTask.new(:spec) do |t|
40
- t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
41
- t.spec_files = FileList['spec/**/*_spec.rb']
42
- end
43
-
44
- task :features => 'spec:integration'
45
-
46
- namespace :spec do
47
- desc "Run all specs in spec directory with RCov"
48
- Spec::Rake::SpecTask.new(:rcov) do |t|
49
- t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
50
- t.spec_files = FileList['spec/**/*_spec.rb']
51
- t.rcov = true
52
- t.rcov_opts = ['--exclude', 'spec', '--rails']
53
- end
54
-
55
- desc "Print Specdoc for all specs"
56
- Spec::Rake::SpecTask.new(:doc) do |t|
57
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
58
- t.spec_files = FileList['spec/**/*_spec.rb']
59
- end
60
-
61
- [:models, :controllers, :views, :helpers].each do |sub|
62
- desc "Run the specs under spec/#{sub}"
63
- Spec::Rake::SpecTask.new(sub) do |t|
64
- t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
65
- t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
66
- end
67
- end
68
-
69
- desc "Run the Cucumber features"
70
- Cucumber::Rake::Task.new(:integration) do |t|
71
- t.fork = true
72
- t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')]
73
- # t.feature_pattern = "#{extension_root}/features/**/*.feature"
74
- t.profile = "default"
75
- end
76
-
77
- # Setup specs for stats
78
- task :statsetup do
79
- require 'code_statistics'
80
- ::STATS_DIRECTORIES << %w(Model\ specs spec/models)
81
- ::STATS_DIRECTORIES << %w(View\ specs spec/views)
82
- ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers)
83
- ::STATS_DIRECTORIES << %w(Helper\ specs spec/views)
84
- ::CodeStatistics::TEST_TYPES << "Model specs"
85
- ::CodeStatistics::TEST_TYPES << "View specs"
86
- ::CodeStatistics::TEST_TYPES << "Controller specs"
87
- ::CodeStatistics::TEST_TYPES << "Helper specs"
88
- ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
89
- end
90
-
91
- namespace :db do
92
- namespace :fixtures do
93
- desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y"
94
- task :load => :environment do
95
- require 'active_record/fixtures'
96
- ActiveRecord::Base.establish_connection(Rails.env.to_sym)
97
- (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(Rails.root, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
98
- Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*'))
99
- end
100
- end
101
- end
102
- end
103
- end
104
-
105
- desc 'Generate documentation for the <%= file_name %> extension.'
106
- RDoc:Task.new(:rdoc) do |rdoc|
107
- rdoc.rdoc_dir = 'rdoc'
108
- rdoc.title = '<%= class_name %>'
109
- rdoc.options << '--line-numbers' << '--inline-source'
110
- rdoc.rdoc_files.include('README')
111
- rdoc.rdoc_files.include('lib/**/*.rb')
112
- end
113
-
114
- # For extensions that are in transition
115
- desc 'Test the <%= file_name %> extension.'
116
- Rake::TestTask.new(:test) do |t|
117
- t.libs << 'lib'
118
- t.pattern = 'test/**/*_test.rb'
119
- t.verbose = true
120
- end
121
-
122
- # Load any custom rakefiles for extension
123
- Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
@@ -1,25 +0,0 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'rdoc/task'
4
-
5
- desc 'Default: run unit tests.'
6
- task :default => :test
7
-
8
- desc 'Test the <%= file_name %> extension.'
9
- Rake::TestTask.new(:test) do |t|
10
- t.libs << 'lib'
11
- t.pattern = 'test/**/*_test.rb'
12
- t.verbose = true
13
- end
14
-
15
- desc 'Generate documentation for the <%= file_name %> extension.'
16
- RDoc:Task.new(:rdoc) do |rdoc|
17
- rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = '<%= class_name %>'
19
- rdoc.options << '--line-numbers' << '--inline-source'
20
- rdoc.rdoc_files.include('README')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
23
-
24
- # Load any custom rakefiles for extension
25
- Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
@@ -1,553 +0,0 @@
1
- ---
2
- <%= localization_name %>:
3
- desc:
4
- author:
5
- Renders the name of the author of the current page.
6
-
7
- breadcrumb:
8
- Renders the @breadcrumb@ attribute of the current page.
9
-
10
- breadcrumbs:
11
- Renders a trail of breadcrumbs to the current page. The separator attribute
12
- specifies the HTML fragment that is inserted between each of the breadcrumbs. By
13
- default it is set to @>@. The boolean nolinks attribute can be specified to render
14
- breadcrumbs in plain text, without any links (useful when generating title tag).
15
-
16
- *Usage&#58;*
17
-
18
- <pre><code><r&#58;breadcrumbs [separator="separator_string"] [nolinks="true"] /></code></pre>
19
-
20
- children-count:
21
- Renders the total number of children.
22
-
23
- children-each-child:
24
- Page attribute tags inside of this tag refer to the current child. This is occasionally
25
- useful if you are inside of another tag (like &lt;r&#58;find&gt;) and need to refer back to the
26
- current child.
27
-
28
- *Usage&#58;*
29
-
30
- <pre><code><r&#58;children&#58;each>
31
- <r&#58;child>...</r&#58;child>
32
- </r&#58;children&#58;each>
33
- </code></pre>
34
-
35
- children-each-header:
36
- Renders the tag contents only if the contents do not match the previous header. This
37
- is extremely useful for rendering date headers for a list of child pages.
38
-
39
- If you would like to use several header blocks you may use the @name@ attribute to
40
- name the header. When a header is named it will not restart until another header of
41
- the same name is different.
42
-
43
- Using the @restart@ attribute you can cause other named headers to restart when the
44
- present header changes. Simply specify the names of the other headers in a semicolon
45
- separated list.
46
-
47
- *Usage&#58;*
48
-
49
- <pre><code><r&#58;children&#58;each>
50
- <r&#58;header [name="header_name"] [restart="name1[;name2;...]"]>
51
- ...
52
- </r&#58;header>
53
- </r&#58;children&#58;each>
54
- </code></pre>
55
-
56
- children-each-if_first:
57
- Renders the tag contents only if the current page is the first child in the context of
58
- a children&#58;each tag
59
-
60
- *Usage&#58;*
61
-
62
- <pre><code><r&#58;children&#58;each>
63
- <r&#58;if_first >
64
- ...
65
- </r&#58;if_first>
66
- </r&#58;children&#58;each>
67
- </code></pre>
68
-
69
-
70
- children-each-if_last:
71
- Renders the tag contents only if the current page is the last child in the context of
72
- a children&#58;each tag
73
-
74
- *Usage&#58;*
75
-
76
- <pre><code><r&#58;children&#58;each>
77
- <r&#58;if_last >
78
- ...
79
- </r&#58;if_last>
80
- </r&#58;children&#58;each>
81
- </code></pre>
82
-
83
-
84
- children-each-unless_first:
85
- Renders the tag contents unless the current page is the first child in the context of
86
- a children&#58;each tag
87
-
88
- *Usage&#58;*
89
-
90
- <pre><code><r&#58;children&#58;each>
91
- <r&#58;unless_first >
92
- ...
93
- </r&#58;unless_first>
94
- </r&#58;children&#58;each>
95
- </code></pre>
96
-
97
-
98
- children-each-unless_last:
99
- Renders the tag contents unless the current page is the last child in the context of
100
- a children&#58;each tag
101
-
102
- *Usage&#58;*
103
-
104
- <pre><code><r&#58;children&#58;each>
105
- <r&#58;unless_last >
106
- ...
107
- </r&#58;unless_last>
108
- </r&#58;children&#58;each>
109
- </code></pre>
110
-
111
-
112
- children-each:
113
- Cycles through each of the children. Inside this tag all page attribute tags
114
- are mapped to the current child page.
115
-
116
- *Usage&#58;*
117
-
118
- <pre><code><r&#58;children&#58;each [offset="number"] [limit="number"]
119
- [by="published_at|updated_at|created_at|slug|title|keywords|description"]
120
- [order="asc|desc"] [status="draft|reviewed|published|hidden|all"]>
121
- ...
122
- </r&#58;children&#58;each>
123
- </code></pre>
124
-
125
- children-first:
126
- Returns the first child. Inside this tag all page attribute tags are mapped to
127
- the first child. Takes the same ordering options as @<r&#58;children&#58;each>@.
128
-
129
- *Usage&#58;*
130
-
131
- <pre><code><r&#58;children&#58;first>...</r&#58;children&#58;first></code></pre>
132
-
133
- children-last:
134
- Returns the last child. Inside this tag all page attribute tags are mapped to
135
- the last child. Takes the same ordering options as @<r&#58;children&#58;each>@.
136
-
137
- *Usage&#58;*
138
-
139
- <pre><code><r&#58;children&#58;last>...</r&#58;children&#58;last></code></pre>
140
-
141
- children:
142
- Gives access to a page's children.
143
-
144
- *Usage&#58;*
145
-
146
- <pre><code><r&#58;children>...</r&#58;children></code></pre>
147
-
148
- comment:
149
- Nothing inside a set of comment tags is rendered.
150
-
151
- *Usage&#58;*
152
-
153
- <pre><code><r&#58;comment>...</r&#58;comment></code></pre>
154
-
155
- content:
156
- Renders the main content of a page. Use the @part@ attribute to select a specific
157
- page part. By default the @part@ attribute is set to body. Use the @inherit@
158
- attribute to specify that if a page does not have a content part by that name that
159
- the tag should render the parent's content part. By default @inherit@ is set to
160
- @false@. Use the @contextual@ attribute to force a part inherited from a parent
161
- part to be evaluated in the context of the child page. By default 'contextual'
162
- is set to true.
163
-
164
- *Usage&#58;*
165
-
166
- <pre><code><r&#58;content [part="part_name"] [inherit="true|false"] [contextual="true|false"] /></code></pre>
167
-
168
- cycle:
169
- Renders one of the passed values based on a global cycle counter. Use the @reset@
170
- attribute to reset the cycle to the beginning. Use the @name@ attribute to track
171
- multiple cycles; the default is @cycle@.
172
-
173
- *Usage&#58;*
174
-
175
- <pre><code><r&#58;cycle values="first, second, third" [reset="true|false"] [name="cycle"] /></code></pre>
176
-
177
- date:
178
- Renders the date based on the current page (by default when it was published or created).
179
- The format attribute uses the same formating codes used by the Ruby @strftime@ function. By
180
- default it's set to @&#37;A, &#37;B &#37;d, &#37;Y@. The @for@ attribute selects which date to render. Valid
181
- options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the
182
- current date/time, regardless of the page.
183
-
184
- *Usage&#58;*
185
-
186
- <pre><code><r&#58;date [format="&#37;A, &#37;B &#37;d, &#37;Y"] [for="published_at"]/></code></pre>
187
-
188
- escape_html:
189
- Escapes angle brackets, etc. for rendering in an HTML document.
190
-
191
- *Usage&#58;*
192
-
193
- <pre><code><r&#58;escape_html>...</r&#58;escape_html></code></pre>
194
-
195
- find:
196
- Inside this tag all page related tags refer to the page found at the @url@ attribute.
197
- @url@s may be relative or absolute paths.
198
-
199
- *Usage&#58;*
200
-
201
- <pre><code><r&#58;find url="value_to_find">...</r&#58;find></code></pre>
202
-
203
- if_ancestor_or_self:
204
- Renders the contained elements if the current contextual page is either the actual page or one of its parents.
205
-
206
- This is typically used inside another tag (like &lt;r&#58;children&#58;each&gt;) to add conditional mark-up if the child element is or descends from the current page.
207
-
208
- *Usage&#58;*
209
-
210
- <pre><code><r&#58;if_ancestor_or_self>...</r&#58;if_ancestor_or_self></code></pre>
211
-
212
- if_children:
213
- Renders the contained elements only if the current contextual page has one or
214
- more child pages. The @status@ attribute limits the status of found child pages
215
- to the given status, the default is @"published"@. @status="all"@ includes all
216
- non-virtual pages regardless of status.
217
-
218
- *Usage&#58;*
219
-
220
- <pre><code><r&#58;if_children [status="published"]>...</r&#58;if_children></code></pre>
221
-
222
- if_content:
223
- Renders the containing elements if all of the listed parts exist on a page.
224
- By default the @part@ attribute is set to @body@, but you may list more than one
225
- part by separating them with a comma. Setting the optional @inherit@ to true will
226
- search ancestors independently for each part. By default @inherit@ is set to @false@.
227
-
228
- When listing more than one part, you may optionally set the @find@ attribute to @any@
229
- so that it will render the containing elements if any of the listed parts are found.
230
- By default the @find@ attribute is set to @all@.
231
-
232
- *Usage&#58;*
233
-
234
- <pre><code><r&#58;if_content [part="part_name, other_part"] [inherit="true"] [find="any"]>...</r&#58;if_content></code></pre>
235
-
236
- if_dev:
237
- Renders the containing elements only if TrustyCms in is development mode.
238
-
239
- *Usage&#58;*
240
-
241
- <pre><code><r&#58;if_dev>...</r&#58;if_dev></code></pre>
242
-
243
- if_parent:
244
- Renders the contained elements only if the current contextual page has a parent, i.e.
245
- is not the root page.
246
-
247
- *Usage&#58;*
248
-
249
- <pre><code><r&#58;if_parent>...</r&#58;if_parent></code></pre>
250
-
251
- if_self:
252
- Renders the contained elements if the current contextual page is also the actual page.
253
-
254
- This is typically used inside another tag (like &lt;r&#58;children&#58;each&gt;) to add conditional mark-up if the child element is the current page.
255
-
256
- *Usage&#58;*
257
-
258
- <pre><code><r&#58;if_self>...</r&#58;if_self></code></pre>
259
-
260
- if_url:
261
- Renders the containing elements only if the page's url matches the regular expression
262
- given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the
263
- match is case sensitive. By default, @ignore_case@ is set to true.
264
-
265
- *Usage&#58;*
266
-
267
- <pre><code><r&#58;if_url matches="regexp" [ignore_case="true|false"]>...</r&#58;if_url></code></pre>
268
-
269
- link:
270
- Renders a link to the page. When used as a single tag it uses the page's title
271
- for the link name. When used as a double tag the part in between both tags will
272
- be used as the link text. The link tag passes all attributes over to the HTML
273
- @a@ tag. This is very useful for passing attributes like the @class@ attribute
274
- or @id@ attribute. If the @anchor@ attribute is passed to the tag it will
275
- append a pound sign (<code>#</code>) followed by the value of the attribute to
276
- the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor.
277
-
278
- *Usage&#58;*
279
-
280
- <pre><code><r&#58;link [anchor="name"] [other attributes...] /></code></pre>
281
-
282
- or
283
-
284
- <pre><code><r&#58;link [anchor="name"] [other attributes...]>link text here</r&#58;link></code></pre>
285
-
286
- markdown:
287
- Filters its contents with the Markdown filter.
288
-
289
- *Usage&#58;*
290
-
291
- <pre><code><r&#58;markdown>** bold text **</r&#58;markdown></code></pre>
292
-
293
- produces
294
-
295
- <pre><code><strong> bold text </strong></code></pre>
296
-
297
- meta-description:
298
- Emits the page description field in a meta tag, unless attribute
299
- 'tag' is set to 'false'.
300
-
301
- *Usage&#58;*
302
-
303
- <pre><code> <r&#58;meta&#58;description [tag="false"] /> </code></pre>
304
-
305
- meta-keywords:
306
- Emits the page keywords field in a meta tag, unless attribute
307
- 'tag' is set to 'false'.
308
-
309
- *Usage&#58;*
310
-
311
- <pre><code> <r&#58;meta&#58;keywords [tag="false"] /> </code></pre>
312
-
313
- meta:
314
- The namespace for 'meta' attributes. If used as a singleton tag, both the description
315
- and keywords fields will be output as &lt;meta /&gt; tags unless the attribute 'tag' is set to 'false'.
316
-
317
- *Usage&#58;*
318
-
319
- <pre><code> <r&#58;meta [tag="false"] />
320
- <r&#58;meta>
321
- <r&#58;description [tag="false"] />
322
- <r&#58;keywords [tag="false"] />
323
- </r&#58;meta>
324
- </code></pre>
325
-
326
- navigation-if_first:
327
- Renders the containing elements if the element is the first
328
- in the navigation list
329
-
330
- *Usage&#58;*
331
-
332
- <pre><code><r&#58;normal><r&#58;if_first>...</r&#58;if_first></r&#58;normal></code></pre>
333
-
334
- navigation-if_last:
335
- Renders the containing elements if the element is the last
336
- in the navigation list
337
-
338
- *Usage&#58;*
339
-
340
- <pre><code><r&#58;normal><r&#58;if_last>...</r&#58;if_last></r&#58;normal></code></pre>
341
-
342
- navigation:
343
- Renders a list of links specified in the @urls@ attribute according to three
344
- states&#58;
345
-
346
- * @normal@ specifies the normal state for the link
347
- * @here@ specifies the state of the link when the url matches the current
348
- page's URL
349
- * @selected@ specifies the state of the link when the current page matches
350
- is a child of the specified url
351
- # @if_last@ renders its contents within a @normal@, @here@ or
352
- @selected@ tag if the item is the last in the navigation elements
353
- # @if_first@ renders its contents within a @normal@, @here@ or
354
- @selected@ tag if the item is the first in the navigation elements
355
-
356
- The @between@ tag specifies what should be inserted in between each of the links.
357
-
358
- *Usage&#58;*
359
-
360
- <pre><code><r&#58;navigation urls="[Title&#58; url | Title&#58; url | ...]">
361
- <r&#58;normal><a href="<r&#58;url />"><r&#58;title /></a></r&#58;normal>
362
- <r&#58;here><strong><r&#58;title /></strong></r&#58;here>
363
- <r&#58;selected><strong><a href="<r&#58;url />"><r&#58;title /></a></strong></r&#58;selected>
364
- <r&#58;between> | </r&#58;between>
365
- </r&#58;navigation>
366
- </code></pre>
367
-
368
- page:
369
- Causes the tags referring to a page's attributes to refer to the current page.
370
-
371
- *Usage&#58;*
372
-
373
- <pre><code><r&#58;page>...</r&#58;page></code></pre>
374
-
375
- parent:
376
- Page attribute tags inside this tag refer to the parent of the current page.
377
-
378
- *Usage&#58;*
379
-
380
- <pre><code><r&#58;parent>...</r&#58;parent></code></pre>
381
-
382
- random:
383
- Randomly renders one of the options specified by the @option@ tags.
384
-
385
- *Usage&#58;*
386
-
387
- <pre><code><r&#58;random>
388
- <r&#58;option>...</r&#58;option>
389
- <r&#58;option>...</r&#58;option>
390
- ...
391
- <r&#58;random>
392
- </code></pre>
393
-
394
- rfc1123_date:
395
- Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.)
396
-
397
- *Usage&#58;*
398
-
399
- <pre><code><r&#58;rfc1123_date /></code></pre>
400
-
401
- slug:
402
- Renders the @slug@ attribute of the current page.
403
-
404
- smarty_pants:
405
- Filters its contents with the SmartyPants filter.
406
-
407
- *Usage&#58;*
408
-
409
- <pre><code><r&#58;smarty_pants>"A revolutionary quotation."</r&#58;smarty_pants></code></pre>
410
-
411
- produces
412
-
413
- <pre><code>&#8220;A revolutionary quotation.&#8221;</code></pre>
414
-
415
- snippet:
416
- Renders the snippet specified in the @name@ attribute within the context of a page.
417
-
418
- *Usage&#58;*
419
-
420
- <pre><code><r&#58;snippet name="snippet_name" /></code></pre>
421
-
422
- When used as a double tag, the part in between both tags may be used within the
423
- snippet itself, being substituted in place of @<r&#58;yield/>@.
424
-
425
- *Usage&#58;*
426
-
427
- <pre><code><r&#58;snippet name="snippet_name">Lorem ipsum dolor...</r&#58;snippet></code></pre>
428
-
429
- status:
430
- Prints the page's status as a string. Optional attribute 'downcase'
431
- will cause the status to be all lowercase.
432
-
433
- *Usage&#58;*
434
-
435
- <pre><code><r&#58;status [downcase='true'] /></code></pre>
436
-
437
- textile:
438
- Filters its contents with the Textile filter.
439
-
440
- *Usage*&#58;
441
-
442
- <pre><code><r&#58;textile>
443
- * First
444
- * Second
445
- </r&#58;textile></code></pre>
446
-
447
- produces&#58;
448
-
449
- <pre><code><ul>
450
- <li>First</li>
451
- <li>Second</li>
452
- </ul></code></pre>
453
-
454
- title:
455
- Renders the @title@ attribute of the current page.
456
-
457
- unless_ancestor_or_self:
458
- Renders the contained elements unless the current contextual page is either the actual page or one of its parents.
459
-
460
- This is typically used inside another tag (like &lt;r&#58;children&#58;each&gt;) to add conditional mark-up unless the child element is or descends from the current page.
461
-
462
- *Usage&#58;*
463
-
464
- <pre><code><r&#58;unless_ancestor_or_self>...</r&#58;unless_ancestor_or_self></code></pre>
465
-
466
- unless_children:
467
- Renders the contained elements only if the current contextual page has no children.
468
- The @status@ attribute limits the status of found child pages to the given status,
469
- the default is @"published"@. @status="all"@ includes all non-virtual pages
470
- regardless of status.
471
-
472
- *Usage&#58;*
473
-
474
- <pre><code><r&#58;unless_children [status="published"]>...</r&#58;unless_children></code></pre>
475
-
476
- unless_content:
477
- The opposite of the @if_content@ tag. It renders the contained elements if all of the
478
- specified parts do not exist. Setting the optional @inherit@ to true will search
479
- ancestors independently for each part. By default @inherit@ is set to @false@.
480
-
481
- When listing more than one part, you may optionally set the @find@ attribute to @any@
482
- so that it will not render the containing elements if any of the listed parts are found.
483
- By default the @find@ attribute is set to @all@.
484
-
485
- *Usage&#58;*
486
-
487
- <pre><code><r&#58;unless_content [part="part_name, other_part"] [inherit="false"] [find="any"]>...</r&#58;unless_content></code></pre>
488
-
489
- unless_dev:
490
- The opposite of the @if_dev@ tag.
491
-
492
- *Usage&#58;*
493
-
494
- <pre><code><r&#58;unless_dev>...</r&#58;unless_dev></code></pre>
495
-
496
- unless_parent:
497
- Renders the contained elements only if the current contextual page has no parent, i.e.
498
- is the root page.
499
-
500
- *Usage&#58;*
501
-
502
- <pre><code><r&#58;unless_parent>...</r&#58;unless_parent></code></pre>
503
-
504
- unless_self:
505
- Renders the contained elements unless the current contextual page is also the actual page.
506
-
507
- This is typically used inside another tag (like &lt;r&#58;children&#58;each&gt;) to add conditional mark-up unless the child element is the current page.
508
-
509
- *Usage&#58;*
510
-
511
- <pre><code><r&#58;unless_self>...</r&#58;unless_self></code></pre>
512
-
513
- unless_url:
514
- The opposite of the @if_url@ tag.
515
-
516
- *Usage&#58;*
517
-
518
- <pre><code><r&#58;unless_url matches="regexp" [ignore_case="true|false"]>...</r&#58;unless_url></code></pre>
519
-
520
- url:
521
- Renders the @url@ attribute of the current page.
522
-
523
- yield:
524
- Used within a snippet as a placeholder for substitution of child content, when
525
- the snippet is called as a double tag.
526
-
527
- *Usage (within a snippet)&#58;*
528
-
529
- <pre><code>
530
- <div id="outer">
531
- <p>before</p>
532
- <r&#58;yield/>
533
- <p>after</p>
534
- </div>
535
- </code></pre>
536
-
537
- If the above snippet was named "yielding", you could call it from any Page,
538
- Layout or Snippet as follows&#58;
539
-
540
- <pre><code><r&#58;snippet name="yielding">Content within</r&#58;snippet></code></pre>
541
-
542
- Which would output the following&#58;
543
-
544
- <pre><code>
545
- <div id="outer">
546
- <p>before</p>
547
- Content within
548
- <p>after</p>
549
- </div>
550
- </code></pre>
551
-
552
- When called in the context of a Page or a Layout, @<r&#58;yield/>@ outputs nothing.
553
-