radiant-turkish_language_pack-extension 1.0.3

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/README ADDED
@@ -0,0 +1,9 @@
1
+ = I18n Tr
2
+
3
+ Turkish language pack for Radiant. Translation consists of
4
+ admin UI strings and description of radiant tags.
5
+
6
+ == Yapılacaklar (TO-DO's)
7
+
8
+ Tags in config/locales/tr_available_tags.yml will be translated in Turkish.
9
+ config/locales/tr_available_tags.yml dosyası full türkçeye çevirilecek dikkat edilerek.
@@ -0,0 +1,123 @@
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? RADIANT_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/radiant/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 'rake/rdoctask'
22
+ require 'rake/testtask'
23
+
24
+ rspec_base = File.expand_path(RADIANT_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 RADIANT_ROOT constant so specs will load the environment
31
+ Object.send(:remove_const, :RADIANT_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 de extension.'
106
+ Rake::RDocTask.new(:rdoc) do |rdoc|
107
+ rdoc.rdoc_dir = 'rdoc'
108
+ rdoc.title = 'I18nDeExtension'
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 de 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 }
@@ -0,0 +1,237 @@
1
+ ---
2
+ tr:
3
+ account: 'Hesap'
4
+ activerecord:
5
+ errors:
6
+ messages:
7
+ blank: 'burası boş olmamalı' # required
8
+ invalid: 'bu formata uygun değil' #invalid_format
9
+ not_a_number: 'bu mutlaka sayı olmalı' # must be number
10
+ not_a_page: "burada bir sayfa olmalı"
11
+ not_permitted: 'burası mutlaka izin verilen değerlerde olmalı'
12
+ taken: 'bu isim zaten kullanımda' # name_in_use
13
+ too_long: 'burası mutlaka %{count} karakterden uzun olmamalı' # character_limit
14
+ too_short: 'burası mutlaka %{count} karakterden kısa olmamalı' # character_minimum
15
+ models:
16
+ page:
17
+ attributes:
18
+ slug:
19
+ taken: 'Slug sayfa kardeş sayfalar tarafından kullanılıyor' # slug_in_use
20
+ user:
21
+ attributes:
22
+ email:
23
+ invalid: 'bu geçerli bir e-mail adresi değil' # invalid_email
24
+ login:
25
+ taken: 'bu oturum zaten açık ve kullanılıyor' # login already in use
26
+ password:
27
+ confirmation: 'parola uyumu sağlanmalı' # password_confirmation
28
+ add_child: 'Alt Sayfa Ekle'
29
+ add_field: 'Alan Ekle'
30
+ add_part: 'Bölüm Ekle'
31
+ add_tab: 'Tab Ekle'
32
+ admin: 'Yönetici'
33
+ available_tags: 'Kullanılabilir Etiketler'
34
+ available_tags_for: '%{name} için Kullanılabilir Etiketler'
35
+ body: 'Gövde'
36
+ breadcrumb: 'Tam hazır olmayan taslak'
37
+ buttons:
38
+ create: '%{name} Oluştur'
39
+ save_and_continue: 'Kaydet ve Düzenlemeye Devam Et'
40
+ save_changes: 'Değişiklikleri Kaydet'
41
+ cancel: 'İptal Et'
42
+ change: 'Değiştir'
43
+ close: 'Kapat'
44
+ config:
45
+ admin:
46
+ title: 'Yönetici Başlık İsmi'
47
+ defaults:
48
+ locale: 'varsayılan dil'
49
+ page:
50
+ fields: "sayfa alanları"
51
+ filter: "sayfa filtresi"
52
+ parts: "sayfa bölümleri"
53
+ status: "sayfa durumu"
54
+ snippet:
55
+ filter: "snippet filtresi"
56
+ dev:
57
+ host: "geliştirici sitesi domaini"
58
+ local:
59
+ timezone: "yerel zamandilimi"
60
+ site:
61
+ title: "site başlığı"
62
+ host: "site domaini"
63
+ user:
64
+ allow_password_reset?: "parola sıfırlamaya izin ver"
65
+ content: 'İçerik'
66
+ content_type: 'İçerik Tipi'
67
+ creating_status: 'Oluşturuluyor %{model}'
68
+ date:
69
+ abbr_day_names: [Pzr, Pzt, Sal, Çrş, Prş, Cum, Cmt]
70
+ abbr_month_names: [~, Ock, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara]
71
+ day_names: [Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi]
72
+ formats:
73
+ default: "%d-%m-%Y"
74
+ long: "%B %e, %Y"
75
+ only_day: "%e"
76
+ short: "%e %b"
77
+ month_names: [~, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık]
78
+ order: [ :day, :month, :year ]
79
+ delete_layout: 'Görünüm Düzenini Sil'
80
+ delete_pages: '%{pages} sayfalarını sil'
81
+ delete_snippet: 'Snippet Sil'
82
+ delete_user: 'Kullanıcı Sil'
83
+ description: 'Açıklama'
84
+ design: 'Dizayn'
85
+ designer: 'Dizayncı'
86
+ draft: 'Taslak'
87
+ edit: 'Düzenle'
88
+ edit_configuration: 'Konfigürasyon Düzenle'
89
+ edit_layout: 'Görünümü Düzenle'
90
+ edit_page: 'Sayfa Düzenle'
91
+ edit_preferences: 'Tercih Düzenle'
92
+ edit_settings: 'Ayar Düzenle'
93
+ edit_snippet: 'Snippet Düzenle'
94
+ edit_user: 'Kullanıcı Düzenle'
95
+ email_address: 'E-mail Adresi'
96
+ extension: 'Eklenti'
97
+ extensions: 'Eklentiler'
98
+ filter: 'Filtre'
99
+ hidden: 'Gizlenmiş'
100
+ hide: 'Gizle'
101
+ keywords: 'Anahtar Kelimeler'
102
+ language: 'Dil'
103
+ layout: 'Görünüm'
104
+ layouts: 'Görünümler'
105
+ log_out: 'Çıkış yap'
106
+ logged_in_as: 'Giriş yapan: '
107
+ login: 'Giriş Yap'
108
+ modify: 'Değiştir'
109
+ more: 'Fazlası...'
110
+ more_info: 'Daha Fazla Bilgi...'
111
+ name: 'İsim'
112
+ new_homepage: 'Yeni Anasayfa'
113
+ new_layout: 'Yeni Görünüm'
114
+ new_page: 'Yeni Sayfa'
115
+ new_password: 'Yeni Parola'
116
+ new_snippet: 'Yeni Snippet'
117
+ new_user: 'Yeni Kullanıcı'
118
+ 'no': 'Hayır'
119
+ no_layouts: 'Görünüm Yok'
120
+ no_pages: 'Sayfa Yok'
121
+ no_snippets: 'Snippet Yok'
122
+ normal_page: 'Normal Sayfa'
123
+ notes: 'Notlar'
124
+ optional: 'Opsiyonel'
125
+ or: 'ya da'
126
+ page: 'Sayfa'
127
+ page_hierarchy: 'Geçerli sistenin sayfa hiyerarşisi'
128
+ page_page: 'Sayfa Bölümü'
129
+ page_title: 'Sayfa Başlığı'
130
+ page_type: 'Sayfa Tipi'
131
+ pages: 'Sayfalar'
132
+ pages_controller:
133
+ removed_many: "Sayfalar siteden başarıyla silindi."
134
+ removed_one: "Sayfa siteden başarıyla silindi."
135
+ saved: "Sayfanız kaydedildi."
136
+ password: 'Parola'
137
+ password_confirmation: 'Parola Doğrula'
138
+ personal: 'Kişisel'
139
+ personal_preferences: 'Kişisel Tercihler'
140
+ please_login: 'Lütfen Giriş Yapın'
141
+ powered_by: 'Arkasındaki güç'
142
+ preferences: 'Tercihler'
143
+ preferences_controller:
144
+ error_updating: 'Tercihleriniz güncellerinirken bir hata ile karşılaşıldı.'
145
+ updated: 'Tercihleriniz güncellendi.'
146
+ preview: 'Önizleme'
147
+ published: 'Yayınlandı'
148
+ published_at: 'Yayınlanma yeri'
149
+ published_on: 'Yayınlanma zamanı'
150
+ reference: 'Referans'
151
+ remember_me: 'Beni hatırla'
152
+ remember_me_in_this_browser: 'Beni bu tarayıcıda hatırla'
153
+ remove: 'Sil'
154
+ remove_field: 'Alan Sil'
155
+ remove_layout: 'Görünüm Sil'
156
+ remove_page: 'Sayfa Sil'
157
+ remove_pages: '%{pages} Sil'
158
+ remove_snippet: 'Snippet Sil'
159
+ remove_tab: 'Tab Sil'
160
+ remove_user: 'Kullanıcı Sil'
161
+ required: 'Gerekli'
162
+ resource_controller:
163
+ not_found: "%{humanized_model_name} bulunamadı."
164
+ removed: "%{humanized_model_name} silinmiş."
165
+ saved: "%{humanized_model_name} kaydedildi."
166
+ update_conflict: "%{humanized_model_name} son yüklemeden beri modifiye edilmiş. Veri kaybı olmadan silinmesi mümkün değil."
167
+ validation_errors: "Bu form işlenirken onaylama hataları oluştu. Devam etmeden önce formunuzu gözden geçirip hataları düzeltiniz."
168
+ reviewed: 'Gözden geçirildi'
169
+ roles: 'Roller'
170
+ saving_changes: Değişiklikler kaydediliyor
171
+ saving_preferences: Tercihler kaydediliyor
172
+ scheduled: "Zamanlandı"
173
+ search_tags: 'Etiket Ara:'
174
+ select:
175
+ default: '<varsayılan>'
176
+ inherit: '<dahili>'
177
+ none: '<hiçbiri>'
178
+ normal: '<normal>'
179
+ settings: 'Ayarlar'
180
+ show_all: 'Hepsini Göster'
181
+ slug: 'Slug Sayfa'
182
+ snippet: 'Snippet'
183
+ snippets: 'Snippetler'
184
+ status: 'Durum'
185
+ # Warnings and info text:
186
+ testing: Test yapılıyor
187
+ text:
188
+ layouts:
189
+ remove_warning: '<strong class="warning">permanently remove</strong> görünümüne geçmeye emin misiniz?'
190
+ pages:
191
+ remove_warning: 'Gerçekten <strong class="warning">permanently remove</strong> %{pages} silmeye kararlı mısınız?'
192
+ snippets:
193
+ remove_warning: 'Gerçekten <strong class="warning">permanently remove</strong> bu snippeti silecek misiniz?'
194
+ users:
195
+ remove_warning: 'Gerçekten <strong class="warning">permanently remove</strong> bu kullanıcıyı silecek misiniz?'
196
+ this_file_language: "Turkish"
197
+ time:
198
+ formats:
199
+ datetime:
200
+ formats:
201
+ default: "%m-%Y-%dT%H:%M:%S%Z"
202
+ default: "%a %b %d %H:%M:%S %Z %Y"
203
+ long: "%B %d, %Y %H:%M"
204
+ only_second: "%S"
205
+ short: "%d %b %H:%M"
206
+ time: "%H:%M"
207
+ timestamp: "%I:%M %p on %B %d, %Y"
208
+ timestamp:
209
+ at: 'at'
210
+ by: 'by'
211
+ last_updated: 'Son Güncelleme'
212
+ type: 'Tip'
213
+ units:
214
+ KB: "KB"
215
+ MB: "MB"
216
+ GB: "GB"
217
+ seconds: "saniye"
218
+ minutes: "dakika"
219
+ hours: "saat"
220
+ days: "gün"
221
+ weeks: "hafta"
222
+ months: "ay"
223
+ user: 'Kullanıcı'
224
+ username: 'Kullanıcı Adı'
225
+ username_or_email: 'Kullanıcı Adı veya E-mail Adresi'
226
+ users: 'Kullanıcılar'
227
+ users_controller:
228
+ cannot_delete_self: 'Kendinizi silemezsiniz.'
229
+ version: 'Versiyon'
230
+ view_site: 'Siteyi Gör'
231
+ warning: 'Uyarı'
232
+ website: 'Websitesi'
233
+ welcome_controller:
234
+ invalid_user: 'Geçersiz kullanıcı adı, e-mail adresi, veya parola.'
235
+ logged_out: 'Çıkışınız yapıldı. Çıktınız'
236
+ 'yes': 'Evet'
237
+
@@ -0,0 +1,625 @@
1
+
2
+ ---
3
+ en:
4
+ desc:
5
+ aggregate-children-count: "Renders the total count of children of the aggregated pages. Accepts the
6
+ same options as @<r:children:each />@.
7
+
8
+ *Usage*:
9
+
10
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
11
+ <r:children:count />
12
+ </r:aggregate></code></pre>"
13
+ aggregate-children-each: "Renders the contained block for each child of the aggregated pages. Accepts the
14
+ same options as the plain @<r:children:each />@.
15
+
16
+ *Usage*:
17
+
18
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
19
+ <r:children:each>
20
+ ...
21
+ </r:children:each>
22
+ </r:aggregate></code></pre>"
23
+ aggregate-children-first: "Renders the first child of the aggregated pages. Accepts the
24
+ same options as @<r:children:each />@.
25
+
26
+ *Usage*:
27
+
28
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
29
+ <r:children:first>
30
+ ...
31
+ </r:children:first>
32
+ </r:aggregate></code></pre>"
33
+ aggregate-children-last: "Renders the last child of the aggregated pages. Accepts the
34
+ same options as @<r:children:each />@.
35
+
36
+ *Usage*:
37
+
38
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\">
39
+ <r:children:last>
40
+ ...
41
+ </r:children:last>
42
+ </r:aggregate></code></pre>"
43
+ aggregate-each: "Sets the scope to the individual aggregated page allowing you to
44
+ iterate through each of the listed paths.
45
+
46
+ *Usage*:
47
+
48
+ <pre><code><r:aggregate:each paths=\"/section1; /section2; /section3\"> ... </r:aggregate:each></code></pre>"
49
+ aggregate: "Aggregates the children of multiple paths using the @paths@ attribute.
50
+ Useful for combining many different sections/categories into a single
51
+ feed or listing.
52
+
53
+ *Usage*:
54
+
55
+ <pre><code><r:aggregate paths=\"/section1; /section2; /section3\"> ... </r:aggregate></code></pre>"
56
+ author: "Renders the name of the author of the current page."
57
+ breadcrumb: "Renders the @breadcrumb@ attribute of the current page."
58
+ breadcrumbs: "Renders a trail of breadcrumbs to the current page. The separator attribute
59
+ specifies the HTML fragment that is inserted between each of the breadcrumbs. By
60
+ default it is set to @>@. The boolean @nolinks@ attribute can be specified to render
61
+ breadcrumbs in plain text, without any links (useful when generating title tag).
62
+ Set the boolean @noself@ attribute to omit the present page (useful in page headers).
63
+
64
+ *Usage:*
65
+
66
+ <pre><code><r:breadcrumbs [separator=\"separator_string\"] [nolinks=\"true\"] [noself=\"true\"]/></code></pre>"
67
+ children-count: "Renders the total number of children."
68
+ children-each-child: "Page attribute tags inside of this tag refer to the current child. This is occasionally
69
+ useful if you are inside of another tag (like &lt;r:find&gt;) and need to refer back to the
70
+ current child.
71
+
72
+ *Usage:*
73
+
74
+ <pre><code><r:children:each>
75
+ <r:child>...</r:child>
76
+ </r:children:each>
77
+ </code></pre>"
78
+ children-each-header: "Renders the tag contents only if the contents do not match the previous header. This
79
+ is extremely useful for rendering date headers for a list of child pages.
80
+
81
+ If you would like to use several header blocks you may use the @name@ attribute to
82
+ name the header. When a header is named it will not restart until another header of
83
+ the same name is different.
84
+
85
+ Using the @restart@ attribute you can cause other named headers to restart when the
86
+ present header changes. Simply specify the names of the other headers in a semicolon
87
+ separated list.
88
+
89
+ *Usage:*
90
+
91
+ <pre><code><r:children:each>
92
+ <r:header [name=\"header_name\"] [restart=\"name1[;name2;...]\"]>
93
+ ...
94
+ </r:header>
95
+ </r:children:each>
96
+ </code></pre>"
97
+ children-each-if_first: "Renders the tag contents only if the current page is the first child in the context of
98
+ a children:each tag
99
+
100
+ *Usage:*
101
+
102
+ <pre><code><r:children:each>
103
+ <r:if_first >
104
+ ...
105
+ </r:if_first>
106
+ </r:children:each>
107
+ </code></pre>"
108
+ children-each-if_last: "Renders the tag contents only if the current page is the last child in the context of
109
+ a children:each tag
110
+
111
+ *Usage:*
112
+
113
+ <pre><code><r:children:each>
114
+ <r:if_last >
115
+ ...
116
+ </r:if_last>
117
+ </r:children:each>
118
+ </code></pre>"
119
+ children-each-unless_first: "Renders the tag contents unless the current page is the first child in the context of
120
+ a children:each tag
121
+
122
+ *Usage:*
123
+
124
+ <pre><code><r:children:each>
125
+ <r:unless_first >
126
+ ...
127
+ </r:unless_first>
128
+ </r:children:each>
129
+ </code></pre>"
130
+ children-each-unless_last: "Renders the tag contents unless the current page is the last child in the context of
131
+ a children:each tag
132
+
133
+ *Usage:*
134
+
135
+ <pre><code><r:children:each>
136
+ <r:unless_last >
137
+ ...
138
+ </r:unless_last>
139
+ </r:children:each>
140
+ </code></pre>"
141
+ children-each: "Cycles through each of the children. Inside this tag all page attribute tags
142
+ are mapped to the current child page.
143
+
144
+ Supply @paginated=\"true\"@ to paginate the displayed list. will_paginate view helper
145
+ options can also be specified, including @per_page@, @previous_label@, @next_label@,
146
+ @class@, @separator@, @inner_window@ and @outer_window@.
147
+
148
+ *Usage:*
149
+
150
+ <pre><code><r:children:each [offset=\"number\"] [limit=\"number\"]
151
+ [by=\"published_at|updated_at|created_at|slug|title|keywords|description\"]
152
+ [order=\"asc|desc\"]
153
+ [status=\"draft|reviewed|published|hidden|all\"]
154
+ [paginated=\"true\"]
155
+ [per_page=\"number\"]
156
+ >
157
+ ...
158
+ </r:children:each>
159
+ </code></pre>"
160
+ children-first: "Returns the first child. Inside this tag all page attribute tags are mapped to
161
+ the first child. Takes the same ordering options as @<r:children:each>@.
162
+
163
+ *Usage:*
164
+
165
+ <pre><code><r:children:first>...</r:children:first></code></pre>"
166
+ children-last: "Returns the last child. Inside this tag all page attribute tags are mapped to
167
+ the last child. Takes the same ordering options as @<r:children:each>@.
168
+
169
+ *Usage:*
170
+
171
+ <pre><code><r:children:last>...</r:children:last></code></pre>"
172
+ children: "Gives access to a page's children.
173
+
174
+ *Usage:*
175
+
176
+ <pre><code><r:children>...</r:children></code></pre>"
177
+ comment: "This is deprecated and will be removed. Plase use @<r:hide>@
178
+ Nothing inside a set of comment tags is rendered.
179
+
180
+ *Usage:*
181
+
182
+ <pre><code><r:comment>...</r:comment></code></pre>"
183
+ content: "Renders the main content of a page. Use the @part@ attribute to select a specific
184
+ page part. By default the @part@ attribute is set to body. Use the @inherit@
185
+ attribute to specify that if a page does not have a content part by that name that
186
+ the tag should render the parent's content part. By default @inherit@ is set to
187
+ @false@. Use the @contextual@ attribute to force a part inherited from a parent
188
+ part to be evaluated in the context of the child page. By default 'contextual'
189
+ is set to true.
190
+
191
+ *Usage:*
192
+
193
+ <pre><code><r:content [part=\"part_name\"] [inherit=\"true|false\"] [contextual=\"true|false\"] /></code></pre>"
194
+ cycle: "Renders a counter value or one of the values given based on a global cycle counter.
195
+
196
+ To get a numeric counter just use the tag, or specify a start value with @start@.
197
+ Use the @reset@ attribute to reset the cycle to the beginning. Using @reset@ on a
198
+ numbered cycle will begin at 0. Use the @name@ attribute to track multiple cycles;
199
+ the default is @cycle@.
200
+
201
+ *Usage:*
202
+
203
+ <pre><code><r:cycle [values=\"first, second, third\"] [reset=\"true|false\"] [name=\"cycle\"] [start=\"second\"] /></code></pre>
204
+ <pre><code><r:cycle start=\"3\" /></code></pre>"
205
+ date: "Renders the date based on the current page (by default when it was published or created).
206
+ The format attribute uses the same formating codes used by the Ruby @strftime@ function. By
207
+ default it's set to @&#37;A, &#37;B &#37;d, &#37;Y@. The @for@ attribute selects which date to render. Valid
208
+ options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the
209
+ current date/time, regardless of the page.
210
+
211
+ *Usage:*
212
+
213
+ <pre><code><r:date [format=\"&#37;A, &#37;B &#37;d, &#37;Y\"] [for=\"published_at\"]/></code></pre>"
214
+ escape_html: "Escapes angle brackets, etc. for rendering in an HTML document.
215
+
216
+ *Usage:*
217
+
218
+ <pre><code><r:escape_html>...</r:escape_html></code></pre>"
219
+ field: "Renders the content of the field given in the @name@ attribute.
220
+
221
+ *Usage:*
222
+
223
+ <pre><code><r:field name=\"Keywords\" /></code></pre>"
224
+ find: "Inside this tag all page related tags refer to the page found at the @path@ attribute.
225
+ @path@s may be relative or absolute paths.
226
+
227
+ *Usage:*
228
+
229
+ <pre><code><r:find path=\"value_to_find\">...</r:find></code></pre>"
230
+ gravatar: "Renders the Gravatar of the author of the current page or the named user.
231
+
232
+ *Usage:*
233
+
234
+ <pre><code><r:gravatar /></code></pre>
235
+
236
+ or
237
+
238
+ <pre><code><r:gravatar [name=\"User Name\"]
239
+ [rating=\"G | PG | R | X\"]
240
+ [size=\"32px\"] /></code></pre>"
241
+ hide: "Nothing inside a set of hide tags is rendered.
242
+
243
+ *Usage:*
244
+
245
+ <pre><code><r:hide>...</r:hide></code></pre>"
246
+ if_ancestor_or_self: "Renders the contained elements if the current contextual page is either the actual page or one of its parents.
247
+
248
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up if the child element is or descends from the current page.
249
+
250
+ *Usage:*
251
+
252
+ <pre><code><r:if_ancestor_or_self>...</r:if_ancestor_or_self></code></pre>"
253
+ if_children: "Renders the contained elements only if the current contextual page has one or
254
+ more child pages. The @status@ attribute limits the status of found child pages
255
+ to the given status, the default is @\"published\"@. @status=\"all\"@ includes all
256
+ non-virtual pages regardless of status.
257
+
258
+ *Usage:*
259
+
260
+ <pre><code><r:if_children [status=\"published\"]>...</r:if_children></code></pre>"
261
+ if_content: "Renders the containing elements if all of the listed parts exist on a page.
262
+ By default the @part@ attribute is set to @body@, but you may list more than one
263
+ part by separating them with a comma. Setting the optional @inherit@ to true will
264
+ search ancestors independently for each part. By default @inherit@ is set to @false@.
265
+
266
+ When listing more than one part, you may optionally set the @find@ attribute to @any@
267
+ so that it will render the containing elements if any of the listed parts are found.
268
+ By default the @find@ attribute is set to @all@.
269
+
270
+ *Usage:*
271
+
272
+ <pre><code><r:if_content [part=\"part_name, other_part\"] [inherit=\"true\"] [find=\"any\"]>...</r:if_content></code></pre>"
273
+ if_dev: "Renders the containing elements only if Radiant in is development mode.
274
+
275
+ *Usage:*
276
+
277
+ <pre><code><r:if_dev>...</r:if_dev></code></pre>"
278
+ if_field: "Renders the contained elements if the field given in the @name@ attribute
279
+ exists. The tag also takes an optional @equals@ or @matches@ attribute;
280
+ these will expand the tag if the field's content equals or matches the
281
+ given string or regex.
282
+
283
+ *Usage:*
284
+
285
+ <pre><code><r:if_field name=\"author\" [equals|matches=\"John\"] [ignore_case=\"true|false\"]>...</r:if_field></code></pre>"
286
+ if_parent: "Renders the contained elements only if the current contextual page has a parent, i.e.
287
+ is not the root page.
288
+
289
+ *Usage:*
290
+
291
+ <pre><code><r:if_parent>...</r:if_parent></code></pre>"
292
+ if_path: "Renders the containing elements only if the page's path matches the regular expression
293
+ given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the
294
+ match is case sensitive. By default, @ignore_case@ is set to true.
295
+
296
+ *Usage:*
297
+
298
+ <pre><code><r:if_path matches=\"regexp\" [ignore_case=\"true|false\"]>...</r:if_path></code></pre>"
299
+ if_self: "Renders the contained elements if the current contextual page is also the actual page.
300
+
301
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up if the child element is the current page.
302
+
303
+ *Usage:*
304
+
305
+ <pre><code><r:if_self>...</r:if_self></code></pre>"
306
+ javascript: "Renders the content from or a reference to the javascript specified in the @slug@
307
+ attribute. Additionally, the @as@ attribute can be used to make the tag render
308
+ as one of the following:
309
+
310
+ * with no @as@ value the javascript's content is rendered by default.
311
+ * @inline@ - wraps the javascript's content in an (X)HTML @<script>@ element.
312
+ * @url@ - the full path to the javascript.
313
+ * @link@ - embeds the url in an (X)HTML @<script>@ element (creating a link to the external javascript).
314
+
315
+ *Additional Options:*
316
+ When rendering @as=\"inline\"@ or @as=\"link\"@, the (X)HTML @type@ attribute
317
+ is automatically be set to the default javascript content-type.
318
+ You can overrride this attribute or add additional ones by passing extra
319
+ attributes to the @<r:javascript>@ tag.
320
+
321
+ *Usage:*
322
+
323
+ <pre><code><r:javascript slug=\"site.css\" as=\"inline\"
324
+ type=\"text/custom\" id=\"my_id\" />
325
+ <r:javascript slug=\"other.js\" as=\"link\" /></code></pre>
326
+
327
+ The above example will produce the following:
328
+
329
+ <pre><code> <script type=\"text/custom\" id=\"my_id\">
330
+ //<![CDATA[
331
+ var your_script = 'this content';
332
+ //]]>
333
+ </script>
334
+ <script type=\"text/javascript\" src=\"/js/other.js\"></script></code></pre>"
335
+ link: "Renders a link to the page. When used as a single tag it uses the page's title
336
+ for the link name. When used as a double tag the part in between both tags will
337
+ be used as the link text. The link tag passes all attributes over to the HTML
338
+ @a@ tag. This is very useful for passing attributes like the @class@ attribute
339
+ or @id@ attribute. If the @anchor@ attribute is passed to the tag it will
340
+ append a pound sign (<code>#</code>) followed by the value of the attribute to
341
+ the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor.
342
+
343
+ *Usage:*
344
+
345
+ <pre><code><r:link [anchor=\"name\"] [other attributes...] /></code></pre>
346
+
347
+ or
348
+
349
+ <pre><code><r:link [anchor=\"name\"] [other attributes...]>link text here</r:link></code></pre>"
350
+ markdown: "Filters its contents with the Markdown filter.
351
+
352
+ *Usage:*
353
+
354
+ <pre><code><r:markdown>** bold text **</r:markdown></code></pre>
355
+
356
+ produces
357
+
358
+ <pre><code><strong> bold text </strong></code></pre>"
359
+ meta-description: "Emits the page description field in a meta tag, unless attribute
360
+ 'tag' is set to 'false'.
361
+
362
+ *Usage:*
363
+
364
+ <pre><code> <r:meta:description [tag=\"false\"] /> </code></pre>"
365
+ meta-keywords: "Emits the page keywords field in a meta tag, unless attribute
366
+ 'tag' is set to 'false'.
367
+
368
+ *Usage:*
369
+
370
+ <pre><code> <r:meta:keywords [tag=\"false\"] /> </code></pre>"
371
+ meta: "The namespace for 'meta' attributes. If used as a singleton tag, both the description
372
+ and keywords fields will be output as &lt;meta /&gt; tags unless the attribute 'tag' is set to 'false'.
373
+
374
+ *Usage:*
375
+
376
+ <pre><code> <r:meta [tag=\"false\"] />
377
+ <r:meta>
378
+ <r:description [tag=\"false\"] />
379
+ <r:keywords [tag=\"false\"] />
380
+ </r:meta>
381
+ </code></pre>"
382
+ navigation-if_first: "Renders the containing elements if the element is the first
383
+ in the navigation list
384
+
385
+ *Usage:*
386
+
387
+ <pre><code><r:normal><r:if_first>...</r:if_first></r:normal></code></pre>"
388
+ navigation-if_last: "Renders the containing elements if the element is the last
389
+ in the navigation list
390
+
391
+ *Usage:*
392
+
393
+ <pre><code><r:normal><r:if_last>...</r:if_last></r:normal></code></pre>"
394
+ navigation-unless_first: "Renders the containing elements unless the element is the first
395
+ in the navigation list
396
+
397
+ *Usage:*
398
+
399
+ <pre><code><r:normal><r:unless_first>...</r:unless_first></r:normal></code></pre>"
400
+ navigation-unless_last: "Renders the containing elements unless the element is the last
401
+ in the navigation list
402
+
403
+ *Usage:*
404
+
405
+ <pre><code><r:normal><r:unless_last>...</r:unless_last></r:normal></code></pre>"
406
+ navigation: "Renders a list of links specified in the @paths@ attribute according to three
407
+ states:
408
+
409
+ * @normal@ specifies the normal state for the link
410
+ * @here@ specifies the state of the link when the path matches the current
411
+ page's PATH
412
+ * @selected@ specifies the state of the link when the current page matches
413
+ is a child of the specified path
414
+ # @if_last@ renders its contents within a @normal@, @here@ or
415
+ @selected@ tag if the item is the last in the navigation elements
416
+ # @if_first@ renders its contents within a @normal@, @here@ or
417
+ @selected@ tag if the item is the first in the navigation elements
418
+
419
+ The @between@ tag specifies what should be inserted in between each of the links.
420
+
421
+ *Usage:*
422
+
423
+ <pre><code><r:navigation paths=\"[Title: path | Title: path | ...]\">
424
+ <r:normal><a href=\"<r:path />\"><r:title /></a></r:normal>
425
+ <r:here><strong><r:title /></strong></r:here>
426
+ <r:selected><strong><a href=\"<r:path />\"><r:title /></a></strong></r:selected>
427
+ <r:between> | </r:between>
428
+ </r:navigation>
429
+ </code></pre>"
430
+ page: "Causes the tags referring to a page's attributes to refer to the current page.
431
+
432
+ *Usage:*
433
+
434
+ <pre><code><r:page>...</r:page></code></pre>"
435
+ pagination: "The pagination tag is not usually called directly. Supply paginated=\"true\" when you display a list and it will
436
+ be automatically display only the current page of results, with pagination controls at the bottom.
437
+
438
+ *Usage:*
439
+
440
+ <pre><code><r:children:each paginated=\"true\" per_page=\"50\" container=\"false\" previous_label=\"foo\" next_label=\"bar\">
441
+ <r:child>...</r:child>
442
+ </r:children:each>
443
+ </code></pre>"
444
+ parent: "Page attribute tags inside this tag refer to the parent of the current page.
445
+
446
+ *Usage:*
447
+
448
+ <pre><code><r:parent>...</r:parent></code></pre>"
449
+ path: "Renders the @path@ attribute of the current page."
450
+ random: "Randomly renders one of the options specified by the @option@ tags.
451
+
452
+ *Usage:*
453
+
454
+ <pre><code><r:random>
455
+ <r:option>...</r:option>
456
+ <r:option>...</r:option>
457
+ ...
458
+ <r:random>
459
+ </code></pre>"
460
+ rfc1123_date: "Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.)
461
+
462
+ *Usage:*
463
+
464
+ <pre><code><r:rfc1123_date /></code></pre>"
465
+ slug: "Renders the @slug@ attribute of the current page."
466
+ smarty_pants: "Filters its contents with the SmartyPants filter.
467
+
468
+ *Usage:*
469
+
470
+ <pre><code><r:smarty_pants>\"A revolutionary quotation.\"</r:smarty_pants></code></pre>
471
+
472
+ produces
473
+
474
+ <pre><code>&#8220;A revolutionary quotation.&#8221;</code></pre>"
475
+ snippet: "Renders the snippet specified in the @name@ attribute within the context of a page.
476
+
477
+ *Usage:*
478
+
479
+ <pre><code><r:snippet name=\"snippet_name\" /></code></pre>
480
+
481
+ When used as a double tag, the part in between both tags may be used within the
482
+ snippet itself, being substituted in place of @<r:yield/>@.
483
+
484
+ *Usage:*
485
+
486
+ <pre><code><r:snippet name=\"snippet_name\">Lorem ipsum dolor...</r:snippet></code></pre>"
487
+ status: "Prints the page's status as a string. Optional attribute 'downcase'
488
+ will cause the status to be all lowercase.
489
+
490
+ *Usage:*
491
+
492
+ <pre><code><r:status [downcase='true'] /></code></pre>"
493
+ stylesheet: "Renders the content from or a reference to the stylesheet specified in the @slug@
494
+ attribute. Additionally, the @as@ attribute can be used to make the tag render
495
+ as one of the following:
496
+
497
+ * with no @as@ value the stylesheet's content is rendered by default.
498
+ * @inline@ - wraps the stylesheet's content in an (X)HTML @<style>@ element.
499
+ * @url@ - the full path to the stylesheet.
500
+ * @link@ - embeds the url in an (X)HTML @<link>@ element (creating a link to the external stylesheet).
501
+
502
+ *Additional Options:*
503
+ When rendering @as=\"inline\"@ or @as=\"link\"@, the (X)HTML @type@ attribute
504
+ is automatically be set to the default stylesheet content-type.
505
+ You can overrride this attribute or add additional ones by passing extra
506
+ attributes to the @<r:stylesheet>@ tag.
507
+
508
+ *Usage:*
509
+
510
+ <pre><code><r:stylesheet slug=\"site.css\" as=\"inline\"
511
+ type=\"text/custom\" id=\"my_id\" />
512
+ <r:stylesheet slug=\"other.css\" as=\"link\"
513
+ rel=\"alternate stylesheet\" /></code></pre>
514
+
515
+ The above example will produce the following:
516
+
517
+ <pre><code> <style type=\"text/custom\" id=\"my_id\">
518
+ /*<![CDATA[*/
519
+ .your_stylesheet { content: 'here' }
520
+ /*]]>*/
521
+ </style>
522
+ <link rel=\"alternate stylesheet\" type=\"text/css\"
523
+ href=\"/css/other.css\" /></code></pre>"
524
+ textile: "Filters its contents with the Textile filter.
525
+
526
+ *Usage*:
527
+
528
+ <pre><code><r:textile>
529
+ * First
530
+ * Second
531
+ </r:textile></code></pre>
532
+
533
+ produces:
534
+
535
+ <pre><code><ul>
536
+ <li>First</li>
537
+ <li>Second</li>
538
+ </ul></code></pre>"
539
+ title: "Renders the @title@ attribute of the current page."
540
+ unless_ancestor_or_self: "Renders the contained elements unless the current contextual page is either the actual page or one of its parents.
541
+
542
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up unless the child element is or descends from the current page.
543
+
544
+ *Usage:*
545
+
546
+ <pre><code><r:unless_ancestor_or_self>...</r:unless_ancestor_or_self></code></pre>"
547
+ unless_children: "Renders the contained elements only if the current contextual page has no children.
548
+ The @status@ attribute limits the status of found child pages to the given status,
549
+ the default is @\"published\"@. @status=\"all\"@ includes all non-virtual pages
550
+ regardless of status.
551
+
552
+ *Usage:*
553
+
554
+ <pre><code><r:unless_children [status=\"published\"]>...</r:unless_children></code></pre>"
555
+ unless_content: "The opposite of the @if_content@ tag. It renders the contained elements if all of the
556
+ specified parts do not exist. Setting the optional @inherit@ to true will search
557
+ ancestors independently for each part. By default @inherit@ is set to @false@.
558
+
559
+ When listing more than one part, you may optionally set the @find@ attribute to @any@
560
+ so that it will not render the containing elements if any of the listed parts are found.
561
+ By default the @find@ attribute is set to @all@.
562
+
563
+ *Usage:*
564
+
565
+ <pre><code><r:unless_content [part=\"part_name, other_part\"] [inherit=\"false\"] [find=\"any\"]>...</r:unless_content></code></pre>"
566
+ unless_dev: "The opposite of the @if_dev@ tag.
567
+
568
+ *Usage:*
569
+
570
+ <pre><code><r:unless_dev>...</r:unless_dev></code></pre>"
571
+ unless_field: "The opposite of @if_field@. Renders the contained elements unless the field
572
+ given in the @name@ attribute exists. The tag also takes an optional
573
+ @equals@ or @matches@ attribute; these will expand the tag unless the
574
+ field's content equals or matches the given string or regex.
575
+
576
+ *Usage:*
577
+
578
+ <pre><code><r:unless_field name=\"author\" [equals|matches=\"John\"] [ignore_case=\"true|false\"]>...</r:unless_field></code></pre>"
579
+ unless_parent: "Renders the contained elements only if the current contextual page has no parent, i.e.
580
+ is the root page.
581
+
582
+ *Usage:*
583
+
584
+ <pre><code><r:unless_parent>...</r:unless_parent></code></pre>"
585
+ unless_path: "The opposite of the @if_path@ tag.
586
+
587
+ *Usage:*
588
+
589
+ <pre><code><r:unless_path matches=\"regexp\" [ignore_case=\"true|false\"]>...</r:unless_path></code></pre>"
590
+ unless_self: "Renders the contained elements unless the current contextual page is also the actual page.
591
+
592
+ This is typically used inside another tag (like &lt;r:children:each&gt;) to add conditional mark-up unless the child element is the current page.
593
+
594
+ *Usage:*
595
+
596
+ <pre><code><r:unless_self>...</r:unless_self></code></pre>"
597
+ yield: "Used within a snippet as a placeholder for substitution of child content, when
598
+ the snippet is called as a double tag.
599
+
600
+ *Usage (within a snippet):*
601
+
602
+ <pre><code>
603
+ <div id=\"outer\">
604
+ <p>before</p>
605
+ <r:yield/>
606
+ <p>after</p>
607
+ </div>
608
+ </code></pre>
609
+
610
+ If the above snippet was named \"yielding\", you could call it from any Page,
611
+ Layout or Snippet as follows:
612
+
613
+ <pre><code><r:snippet name=\"yielding\">Content within</r:snippet></code></pre>
614
+
615
+ Which would output the following:
616
+
617
+ <pre><code>
618
+ <div id=\"outer\">
619
+ <p>before</p>
620
+ Content within
621
+ <p>after</p>
622
+ </div>
623
+ </code></pre>
624
+
625
+ When called in the context of a Page or a Layout, @<r:yield/>@ outputs nothing."