comfy_middle_seat 4.4.0 → 4.6.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -1
- data/README.md +56 -2
- data/app/assets/javascripts/comfy/admin/cms/cms_tag_completions.js +3 -3
- data/app/controllers/comfy/admin/cms/tag_usage_controller.rb +20 -0
- data/app/helpers/comfy/admin/cms/tag_usage_helper.rb +21 -0
- data/app/models/comfy/cms/layout.rb +1 -1
- data/app/views/comfy/admin/cms/tag_usage/_source.html.haml +2 -0
- data/app/views/comfy/admin/cms/tag_usage/index.html.haml +54 -0
- data/app/views/layouts/comfy/admin/cms/_left.html.haml +3 -0
- data/config/initializers/comfy_middle_seat.rb +3 -3
- data/config/locales/ar.yml +20 -0
- data/config/locales/ca.yml +20 -0
- data/config/locales/cs.yml +20 -0
- data/config/locales/da.yml +20 -0
- data/config/locales/de.yml +20 -0
- data/config/locales/en.yml +20 -0
- data/config/locales/es.yml +20 -0
- data/config/locales/fi.yml +20 -0
- data/config/locales/fr.yml +20 -0
- data/config/locales/gr.yml +20 -0
- data/config/locales/hr.yml +20 -0
- data/config/locales/it.yml +20 -0
- data/config/locales/ja.yml +20 -0
- data/config/locales/nb.yml +20 -0
- data/config/locales/nl.yml +20 -0
- data/config/locales/pl.yml +20 -0
- data/config/locales/pt-BR.yml +20 -0
- data/config/locales/ru.yml +20 -0
- data/config/locales/sk.yml +20 -0
- data/config/locales/sv.yml +20 -0
- data/config/locales/tr.yml +20 -0
- data/config/locales/uk.yml +20 -0
- data/config/locales/zh-CN.yml +20 -0
- data/config/locales/zh-TW.yml +20 -0
- data/lib/comfy_middle_seat/configuration.rb +3 -3
- data/lib/comfy_middle_seat/content/tag_usage.rb +124 -0
- data/lib/comfy_middle_seat/content/tag_usage_report.rb +83 -0
- data/lib/comfy_middle_seat/content/tags/asset.rb +12 -17
- data/lib/comfy_middle_seat/content/tags/helper.rb +1 -1
- data/lib/comfy_middle_seat/content/tags/mixins/file_content.rb +6 -10
- data/lib/comfy_middle_seat/content/tags/partial.rb +3 -3
- data/lib/comfy_middle_seat/content/tags/template.rb +3 -3
- data/lib/comfy_middle_seat/content.rb +2 -0
- data/lib/comfy_middle_seat/routing.rb +1 -0
- data/lib/comfy_middle_seat/version.rb +1 -1
- data/lib/tasks/cms_tag_usage.rake +32 -0
- metadata +8 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 14be7672fa83f1b3aea326362ce3b9f83269c1484ebf9de49b97751ab7ffc3f4
|
|
4
|
+
data.tar.gz: 319d286cbd63ad4be59e3f6b9ba06c3657ecfed74496ef7d5b6b75762e8efbb0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5286997ee92051fd6b37e4a71d313242d8b0734dbfd308974d7ea1b2ba16114e575bac40f964a17f66c2d3cf18a4171d04833993b7657f6adf2bbcf0d309ef7b
|
|
7
|
+
data.tar.gz: '051976a2f833fc34643d3ee9e41ec8e9427da21e18631e846af7df9937a6e7572fcd4207468e25586b1a9fa2dcb981803fb3a28f9f083cc6326908d59a2ee6e8'
|
data/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,33 @@ This changelog follows the project's lineage: **Comfortable Mexican Sofa → Com
|
|
|
14
14
|
|
|
15
15
|
### Added
|
|
16
16
|
|
|
17
|
+
- List partials, helpers, and templates in the admin, with usage links and permission status.
|
|
18
|
+
- Audit tag usage from the command line and export candidate allowlists.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Escape labels and attributes in file links and images.
|
|
23
|
+
- Clear cached page content when deleting layouts.
|
|
24
|
+
- Check helper permissions without modifying configuration.
|
|
25
|
+
- Run image-processing tests on Rails 7.2 and 8.0.
|
|
26
|
+
|
|
27
|
+
**Upgrading:** Clear rendered page and translation caches to apply escaped file markup. File labels containing HTML now display as text. No database migration or permission-policy change.
|
|
28
|
+
|
|
29
|
+
## [v4.5.0] - 2026-10-25
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- Add `layout_asset`, `render_partial`, and `render_template` aliases; existing tags remain supported.
|
|
34
|
+
- Find and expand the new aliases in editor completion.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- Generate layout asset links through Rails routes and HTML helpers.
|
|
39
|
+
|
|
40
|
+
## [v4.4.0] - 2026-10-25
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
17
44
|
- Resize, crop, and pad images with ImageMagick or Vips.
|
|
18
45
|
- Validate image dimensions with a configurable size limit.
|
|
19
46
|
|
|
@@ -22,6 +49,8 @@ This changelog follows the project's lineage: **Comfortable Mexican Sofa → Com
|
|
|
22
49
|
- Restore supported legacy image resizing and modernize admin thumbnails.
|
|
23
50
|
- Keep original file links for images that cannot be resized.
|
|
24
51
|
|
|
52
|
+
**Upgrading:** Clear rendered page and translation caches. Review legacy sizing options and the new 4096-pixel limit; see [image resizing](README.md#image-resizing). No database migration is required.
|
|
53
|
+
|
|
25
54
|
## [v4.3.0] - 2026-10-17
|
|
26
55
|
|
|
27
56
|
### Added
|
|
@@ -274,7 +303,9 @@ First release of `comfortable_media_surfer`. This new gem is a revival of [Comfo
|
|
|
274
303
|
|
|
275
304
|
- Rebranded **ComfortableMexicanSofa** as **ComfortableMediaSurfer** in order to publish new gem (database table names and schema have not changed).
|
|
276
305
|
|
|
277
|
-
[Unreleased]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.
|
|
306
|
+
[Unreleased]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.5.0...master
|
|
307
|
+
[v4.5.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.4.0...v4.5.0
|
|
308
|
+
[v4.4.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.3.0...v4.4.0
|
|
278
309
|
[v4.3.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.2.0...v4.3.0
|
|
279
310
|
[v4.2.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.1.0...v4.2.0
|
|
280
311
|
[v4.1.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.0.4...v4.1.0
|
data/README.md
CHANGED
|
@@ -114,6 +114,47 @@ A Site defines a hostname, path, and language. Layouts define page structure and
|
|
|
114
114
|
|
|
115
115
|
When an editor creates a Page using this Layout, the admin automatically presents fields for `title` and `content`. Content tags can also provide Markdown, files, images, dates, numbers, checkboxes, snippets, partials, helpers, navigation, and other reusable content.
|
|
116
116
|
|
|
117
|
+
### Descriptive tag aliases
|
|
118
|
+
|
|
119
|
+
These names are interchangeable; existing tags remain supported:
|
|
120
|
+
|
|
121
|
+
| Existing tag | Alias |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| `asset` | `layout_asset` |
|
|
124
|
+
| `partial` | `render_partial` |
|
|
125
|
+
| `template` | `render_template` |
|
|
126
|
+
|
|
127
|
+
```liquid
|
|
128
|
+
{{ cms:layout_asset main, type: css, as: tag }}
|
|
129
|
+
{{ cms:render_partial "layouts/embed_video", id: MYpbvXgpIzc }}
|
|
130
|
+
{{ cms:render_template "marketing/landing" }}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Aliases preserve all parameters, defaults, and existing allowlist behavior. No new allowlist requirement or content migration is introduced. Asset tags still require `type: css` or `type: js`; omitting the type does not default to CSS. Their URLs follow the configured Rails routes, not an independent manual override of `public_cms_path`. HTML attributes are preserved, though formatting may differ. Check for conflicts if your application already registers custom tags with these alias names.
|
|
134
|
+
|
|
135
|
+
### Tag usage audit
|
|
136
|
+
|
|
137
|
+
Open **Tag usage** in the admin navigation to list unique partials, helpers, and templates for the selected site. Expand **Used in** for source edit links. The report shows current permissions and candidate allowlists for review; it does not change permissions.
|
|
138
|
+
|
|
139
|
+
For an application-wide inventory, use the Rake task:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
bin/rails comfy:cms:tag_usage
|
|
143
|
+
bin/rails comfy:cms:tag_usage SITE=default
|
|
144
|
+
bin/rails comfy:cms:tag_usage FORMAT=json
|
|
145
|
+
bin/rails comfy:cms:tag_usage FORMAT=config
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`SITE` is a site identifier, not its numeric ID; omit it to scan all sites. `FORMAT` defaults to `text`. JSON includes source locations, scope, permissions, and warnings. Configuration output is a copyable initializer block. Both options can be combined.
|
|
149
|
+
|
|
150
|
+
The scanner reads saved layouts, snippets, page fragments, and translation fragments, including unpublished content. Aliases share one entry; counts refer to distinct source fields, not runtime executions. CMS comments are excluded. No helpers, views, ERB, or pages are executed, and caches are not read or updated.
|
|
151
|
+
|
|
152
|
+
**Review before applying candidate allowlists.** Discovered names—including currently blocked names—are not automatically safe. Allowlists are application-wide, so a single-site report is not sufficient for a multi-site installation. Replacing an allowlist blocks omitted names, including previously approved ones.
|
|
153
|
+
|
|
154
|
+
Warnings identify malformed comments or parameters. They go to stderr, and an incomplete scan exits nonzero while still emitting the partial report. JSON includes the warnings too; generated configuration marks incomplete scans. Unknown sites and unsupported formats also exit nonzero.
|
|
155
|
+
|
|
156
|
+
This is a source inventory, not runtime dependency analysis. It does not scan revisions, unsaved drafts, unimported seed files, layout CSS/JavaScript, application views, or dynamically generated tags. Restoring revisions or importing content can introduce new names; scan again afterward. Concurrent content edits are not a database snapshot, so rescan before changing permissions.
|
|
157
|
+
|
|
117
158
|
### Editor shortcuts
|
|
118
159
|
|
|
119
160
|
In HTML and Markdown code editors, type a shortcut and press **Tab** to insert a CMS tag. The parameter placeholder is selected so you can replace it immediately. For example, `;md` inserts `{{ cms:markdown content }}` with `content` selected.
|
|
@@ -152,7 +193,7 @@ Use the arrow keys and **Enter** or **Tab** to choose. The tag replaces the enti
|
|
|
152
193
|
| `;ec` | `endcomment` | — |
|
|
153
194
|
| `;end` | `end` | — |
|
|
154
195
|
|
|
155
|
-
Placeholders are examples: replace them with your field names, identifiers, paths, or IDs. `;asset` inserts the CSS version; `;comment` inserts a full comment block.
|
|
196
|
+
Placeholders are examples: replace them with your field names, identifiers, paths, or IDs. `;asset` inserts the CSS version; `;comment` inserts a full comment block. The descriptive aliases (`;layout_asset`, `;render_partial`, `;render_template`) also work for expansion and search, inserting the existing tag spellings.
|
|
156
197
|
|
|
157
198
|
Shortcuts work at the start of a line, after whitespace, or after `>`, outside an existing CMS tag. Unrecognized shortcuts retain normal Tab behavior. CSS, JavaScript, ordinary text fields, and visual editors are unchanged. Saved content uses the standard `{{ cms:... }}` syntax.
|
|
158
199
|
|
|
@@ -271,6 +312,19 @@ When adapting upstream examples, use the `comfy_middle_seat` gem, `config/initia
|
|
|
271
312
|
|
|
272
313
|
## Upgrading
|
|
273
314
|
|
|
315
|
+
### File-link and image escaping (unreleased)
|
|
316
|
+
|
|
317
|
+
File links and images now escape labels and HTML attributes. Labels containing HTML display as text; URLs, labels, image titles, CSS classes, and file separators otherwise retain their existing behavior. Links opening a new tab include `rel="noopener"`.
|
|
318
|
+
|
|
319
|
+
Clear rendered page and translation caches once after deployment so existing pages use the escaped markup:
|
|
320
|
+
|
|
321
|
+
```ruby
|
|
322
|
+
Comfy::Cms::Page.update_all(content_cache: nil)
|
|
323
|
+
Comfy::Cms::Translation.update_all(content_cache: nil)
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Content regenerates on demand. No database migration is required. Helper, partial, and template permission defaults are unchanged; the new [Tag usage audit](#tag-usage-audit) is read-only.
|
|
327
|
+
|
|
274
328
|
### Ancestor-aware publishing (unreleased)
|
|
275
329
|
|
|
276
330
|
Review branches with unpublished ancestors: their descendants will no longer be publicly accessible. No database migration is required. After deploying, clear existing rendered content once from the Rails console so cached navigation follows the new rule:
|
|
@@ -362,7 +416,7 @@ Bug reports and focused feature proposals can be opened through [GitHub Issues](
|
|
|
362
416
|
|
|
363
417
|
## Acknowledgements
|
|
364
418
|
|
|
365
|
-
- [Oleg Khabarov](https://github.com/GBH) and the contributors to [Comfortable Mexican Sofa](https://github.com/comfy/comfortable-mexican-sofa), the original Comfy CMS.
|
|
419
|
+
- [Oleg Khabarov](https://github.com/GBH) and the contributors to [Comfortable Mexican Sofa](https://github.com/comfy/comfortable-mexican-sofa), the original Comfy CMS. Recent improvements also draw on Oleg’s ongoing [Sofa 3.0 work](https://github.com/comfy/comfortable-mexican-sofa/pull/971), selectively adapted to preserve compatibility.
|
|
366
420
|
- [Andrew vonderLuft](https://github.com/avonderluft) for reviving Sofa with the [oCcaMS](https://github.com/avonderluft/occams) project, and carrying it forward.
|
|
367
421
|
- [ShakaCode](https://github.com/shakacode) for sponsoring the revived project as [Comfortable Media Surfer](https://github.com/shakacode/comfortable-media-surfer).
|
|
368
422
|
- [Roman Almeida](https://github.com/nasmorn) for contributing the OEM license for [Redactor Text Editor](https://imperavi.com/redactor/).
|
|
@@ -25,12 +25,12 @@ const completions = [
|
|
|
25
25
|
tag("fl", "file_link", "file_id, as: link", "file_id"),
|
|
26
26
|
tag("pfl", "page_file_link", "attachment, as: link", "attachment"),
|
|
27
27
|
tag("sn", "snippet", "identifier", "identifier"),
|
|
28
|
-
tag("as", "asset", "layout_identifier, type: css, as: tag", "layout_identifier"),
|
|
28
|
+
tag("as", "asset", "layout_identifier, type: css, as: tag", "layout_identifier", ["layout_asset"]),
|
|
29
29
|
tag("css", "asset", "layout_identifier, type: css, as: tag", "layout_identifier"),
|
|
30
30
|
tag("js", "asset", "layout_identifier, type: js, as: tag", "layout_identifier"),
|
|
31
31
|
tag("hlp", "helper", "method_name", "method_name"),
|
|
32
|
-
tag("par", "partial", '"path/to/partial"', "path/to/partial"),
|
|
33
|
-
tag("tpl", "template", '"path/to/template"', "path/to/template"),
|
|
32
|
+
tag("par", "partial", '"path/to/partial"', "path/to/partial", ["render_partial"]),
|
|
33
|
+
tag("tpl", "template", '"path/to/template"', "path/to/template", ["render_template"]),
|
|
34
34
|
tag("cr", "breadcrumbs"),
|
|
35
35
|
tag("ch", "children"),
|
|
36
36
|
tag("si", "siblings"),
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Comfy::Admin::Cms::TagUsageController < Comfy::Admin::Cms::BaseController
|
|
4
|
+
before_action :authorize
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@report = ComfyMiddleSeat::Content::TagUsage.new(
|
|
8
|
+
sites: Comfy::Cms::Site.where(id: @site.id), scope: 'selected_sites'
|
|
9
|
+
).call
|
|
10
|
+
@candidate_config = ComfyMiddleSeat::Content::TagUsageReport.new(@report).config
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
protected
|
|
14
|
+
|
|
15
|
+
def load_admin_site
|
|
16
|
+
# A report must never silently inventory a different site from the requested one.
|
|
17
|
+
@site = Comfy::Cms::Site.find(params[:site_id])
|
|
18
|
+
session[:site_id] = @site.id
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Comfy::Admin::Cms::TagUsageHelper
|
|
4
|
+
def tag_usage_source_path(source)
|
|
5
|
+
case source[:type]
|
|
6
|
+
when 'layout'
|
|
7
|
+
edit_comfy_admin_cms_site_layout_path(source[:site_id], source[:id])
|
|
8
|
+
when 'snippet'
|
|
9
|
+
edit_comfy_admin_cms_site_snippet_path(source[:site_id], source[:id])
|
|
10
|
+
when 'page'
|
|
11
|
+
edit_comfy_admin_cms_site_page_path(source[:site_id], source[:id])
|
|
12
|
+
when 'translation'
|
|
13
|
+
edit_comfy_admin_cms_site_page_translation_path(source[:site_id], source[:page_id], source[:id])
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def tag_usage_source_label(source)
|
|
18
|
+
type = t("activerecord.models.comfy/cms/#{source[:type]}")
|
|
19
|
+
"#{type} ##{source[:id]}: #{source[:label]}"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -18,7 +18,7 @@ class Comfy::Cms::Layout < ActiveRecord::Base
|
|
|
18
18
|
after_commit :clear_page_content_cache,
|
|
19
19
|
on: %i[create update],
|
|
20
20
|
if: :saved_changes?
|
|
21
|
-
|
|
21
|
+
before_destroy :clear_page_content_cache, prepend: true
|
|
22
22
|
|
|
23
23
|
# -- Validations -------------------------------------------------------------
|
|
24
24
|
validates :site_id,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
.page-header
|
|
2
|
+
%h2= t('comfy.admin.cms.tag_usage.title')
|
|
3
|
+
|
|
4
|
+
%p= @site.label
|
|
5
|
+
%p= t('comfy.admin.cms.tag_usage.scope')
|
|
6
|
+
%p.text-muted= t('comfy.admin.cms.tag_usage.multisite')
|
|
7
|
+
|
|
8
|
+
- unless @report[:complete]
|
|
9
|
+
.alert.alert-warning.tag-usage-incomplete{role: 'alert'}
|
|
10
|
+
= t('comfy.admin.cms.tag_usage.incomplete')
|
|
11
|
+
|
|
12
|
+
- %w[partial helper template].each do |kind|
|
|
13
|
+
%section.mb-4{id: "tag-usage-#{kind}"}
|
|
14
|
+
%h3= t("comfy.admin.cms.tag_usage.#{kind}")
|
|
15
|
+
- entries = @report[:entries].select { |entry| entry[:kind] == kind }
|
|
16
|
+
- if entries.empty?
|
|
17
|
+
%p.text-muted= t('comfy.admin.cms.tag_usage.no_results')
|
|
18
|
+
- else
|
|
19
|
+
.table-responsive
|
|
20
|
+
%table.table.table-striped
|
|
21
|
+
%thead
|
|
22
|
+
%tr
|
|
23
|
+
%th{scope: 'col'}= t('comfy.admin.cms.tag_usage.name')
|
|
24
|
+
%th{scope: 'col'}= t('comfy.admin.cms.tag_usage.status')
|
|
25
|
+
%th{scope: 'col'}= t('comfy.admin.cms.tag_usage.sources')
|
|
26
|
+
%tbody
|
|
27
|
+
- entries.each do |entry|
|
|
28
|
+
%tr
|
|
29
|
+
%td
|
|
30
|
+
%code= entry[:name]
|
|
31
|
+
%td= t("comfy.admin.cms.tag_usage.#{entry[:status]}")
|
|
32
|
+
%td
|
|
33
|
+
%details
|
|
34
|
+
%summary
|
|
35
|
+
= t('comfy.admin.cms.tag_usage.used_in')
|
|
36
|
+
= "(#{entry[:sources].size})"
|
|
37
|
+
%ul
|
|
38
|
+
- entry[:sources].each do |source|
|
|
39
|
+
%li= render 'source', source: source
|
|
40
|
+
|
|
41
|
+
- if @report[:warnings].any?
|
|
42
|
+
%section#tag-usage-warnings.mb-4
|
|
43
|
+
%h3= t('comfy.admin.cms.tag_usage.warnings')
|
|
44
|
+
%ul
|
|
45
|
+
- @report[:warnings].each do |warning|
|
|
46
|
+
%li
|
|
47
|
+
= render 'source', source: warning[:source]
|
|
48
|
+
%pre.text-wrap= warning[:message]
|
|
49
|
+
|
|
50
|
+
%section.mb-4
|
|
51
|
+
%h3= t('comfy.admin.cms.tag_usage.config')
|
|
52
|
+
%p#tag-usage-config-warning.alert.alert-warning= t('comfy.admin.cms.tag_usage.review')
|
|
53
|
+
= label_tag 'tag-usage-config', t('comfy.admin.cms.tag_usage.config')
|
|
54
|
+
= text_area_tag 'candidate_config', @candidate_config, id: 'tag-usage-config', class: 'form-control text-monospace', rows: 12, readonly: true, spellcheck: false, aria: { describedby: 'tag-usage-config-warning' }
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
%i.fas.fa-bars
|
|
28
28
|
= active_link_to comfy_admin_cms_site_files_path(@site), class: "nav-link" do
|
|
29
29
|
= t('comfy.admin.cms.base.files')
|
|
30
|
+
%li.nav-item
|
|
31
|
+
= active_link_to comfy_admin_cms_site_tag_usage_path(@site), class: "nav-link" do
|
|
32
|
+
= t('comfy.admin.cms.tag_usage.title')
|
|
30
33
|
|
|
31
34
|
= cms_hook :navigation
|
|
32
35
|
|
|
@@ -66,9 +66,9 @@ ComfyMiddleSeat.configure do |config|
|
|
|
66
66
|
# <% User.delete_all %> but if you really want to allow it...
|
|
67
67
|
# config.allow_erb = false
|
|
68
68
|
|
|
69
|
-
#
|
|
70
|
-
# all helpers are allowed except `eval`, `
|
|
71
|
-
#
|
|
69
|
+
# Allowlist of helper methods available via {{cms:helper}}. With no array configured,
|
|
70
|
+
# all helpers are allowed except `eval`, `class_eval`, `instance_eval`, and `render`.
|
|
71
|
+
# An explicit array allows only its listed names; an empty array blocks all helpers.
|
|
72
72
|
# config.allowed_helpers = nil
|
|
73
73
|
|
|
74
74
|
# Whitelist of partials paths that can be used via {{cms:partial}} tag. All partials
|
data/config/locales/ar.yml
CHANGED
|
@@ -65,6 +65,26 @@ ar:
|
|
|
65
65
|
files: ملفات
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: استخدام الوسوم
|
|
70
|
+
scope: كل المحتوى المحفوظ لهذا الموقع، بما فيه غير المنشور. لا يتم عرض المحتوى أثناء التشغيل.
|
|
71
|
+
multisite: هذا التقرير خاص بالموقع ولا يشمل كل قوائم السماح العامة للمواقع المتعددة.
|
|
72
|
+
partial: القوالب الجزئية
|
|
73
|
+
helper: الدوال المساعدة
|
|
74
|
+
template: القوالب
|
|
75
|
+
name: الاسم
|
|
76
|
+
status: الحالة الحالية
|
|
77
|
+
sources: المصادر
|
|
78
|
+
used_in: مستخدم في
|
|
79
|
+
no_results: لم يتم العثور على وسوم مطابقة.
|
|
80
|
+
incomplete: التقرير غير مكتمل. تعذر فحص بعض المحتوى؛ راجع التحذيرات أدناه.
|
|
81
|
+
warnings: تحذيرات الفحص
|
|
82
|
+
config: إعدادات مقترحة
|
|
83
|
+
review: راجع قبل الاستخدام. هذا الاقتراح ليس إذناً تلقائياً ولا موافقة أمنية. لم يتم تغيير أي إعدادات.
|
|
84
|
+
explicitly_allowed: مسموح به صراحةً
|
|
85
|
+
allowed_by_default: مسموح به افتراضياً
|
|
86
|
+
blocked: محظور
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: بحث
|
|
70
90
|
clear: مسح
|
data/config/locales/ca.yml
CHANGED
|
@@ -65,6 +65,26 @@ ca:
|
|
|
65
65
|
files: Arxius
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Ús de les etiquetes
|
|
70
|
+
scope: Tot el contingut desat d’aquest lloc, inclòs el no publicat. Sense renderització en temps d’execució.
|
|
71
|
+
multisite: Aquest informe d’un sol lloc no és exhaustiu per a les llistes globals de permisos de múltiples llocs.
|
|
72
|
+
partial: Parcials
|
|
73
|
+
helper: Helpers
|
|
74
|
+
template: Plantilles
|
|
75
|
+
name: Nom
|
|
76
|
+
status: Estat actual
|
|
77
|
+
sources: Fonts
|
|
78
|
+
used_in: Utilitzat a
|
|
79
|
+
no_results: No s’han trobat etiquetes coincidents.
|
|
80
|
+
incomplete: Informe incomplet. No s’ha pogut analitzar part del contingut; reviseu els avisos següents.
|
|
81
|
+
warnings: Avisos de l’anàlisi
|
|
82
|
+
config: Configuració proposada
|
|
83
|
+
review: Reviseu-la abans d’utilitzar-la. Aquesta proposta no és un permís automàtic ni una aprovació de seguretat. No s’ha canviat cap configuració.
|
|
84
|
+
explicitly_allowed: Permès explícitament
|
|
85
|
+
allowed_by_default: Permès per defecte
|
|
86
|
+
blocked: Bloquejat
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Cerca
|
|
70
90
|
clear: Neteja
|
data/config/locales/cs.yml
CHANGED
|
@@ -65,6 +65,26 @@ cs:
|
|
|
65
65
|
files: Soubory
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Použití značek
|
|
70
|
+
scope: Veškerý uložený obsah tohoto webu včetně nepublikovaného. Bez vykreslování za běhu.
|
|
71
|
+
multisite: Tento přehled jednoho webu není úplný pro globální seznamy povolení více webů.
|
|
72
|
+
partial: Dílčí šablony
|
|
73
|
+
helper: Pomocné metody
|
|
74
|
+
template: Šablony
|
|
75
|
+
name: Název
|
|
76
|
+
status: Aktuální stav
|
|
77
|
+
sources: Zdroje
|
|
78
|
+
used_in: Použito v
|
|
79
|
+
no_results: Nenalezeny žádné odpovídající značky.
|
|
80
|
+
incomplete: Přehled není úplný. Část obsahu se nepodařilo analyzovat; zkontrolujte upozornění níže.
|
|
81
|
+
warnings: Upozornění analýzy
|
|
82
|
+
config: Navržená konfigurace
|
|
83
|
+
review: Před použitím zkontrolujte. Návrh není automatickým povolením ani bezpečnostním schválením. Žádná konfigurace nebyla změněna.
|
|
84
|
+
explicitly_allowed: Výslovně povoleno
|
|
85
|
+
allowed_by_default: Povoleno ve výchozím nastavení
|
|
86
|
+
blocked: Blokováno
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Hledat
|
|
70
90
|
clear: Vymazat
|
data/config/locales/da.yml
CHANGED
|
@@ -65,6 +65,26 @@ da:
|
|
|
65
65
|
files: Filer
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Brug af tags
|
|
70
|
+
scope: Alt gemt indhold på dette websted, også upubliceret indhold. Ingen rendering under kørsel.
|
|
71
|
+
multisite: Denne rapport for ét websted er ikke udtømmende for globale tilladelseslister på tværs af websteder.
|
|
72
|
+
partial: Delvisninger
|
|
73
|
+
helper: Hjælpemetoder
|
|
74
|
+
template: Skabeloner
|
|
75
|
+
name: Navn
|
|
76
|
+
status: Aktuel status
|
|
77
|
+
sources: Kilder
|
|
78
|
+
used_in: Brugt i
|
|
79
|
+
no_results: Ingen matchende tags fundet.
|
|
80
|
+
incomplete: Rapporten er ufuldstændig. Noget indhold kunne ikke analyseres; gennemgå advarslerne nedenfor.
|
|
81
|
+
warnings: Analyseadvarsler
|
|
82
|
+
config: Foreslået konfiguration
|
|
83
|
+
review: Gennemgå før brug. Forslaget er ikke automatisk tilladelse eller sikkerhedsgodkendelse. Ingen konfiguration er ændret.
|
|
84
|
+
explicitly_allowed: Udtrykkeligt tilladt
|
|
85
|
+
allowed_by_default: Tilladt som standard
|
|
86
|
+
blocked: Blokeret
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Søg
|
|
70
90
|
clear: Ryd
|
data/config/locales/de.yml
CHANGED
|
@@ -65,6 +65,26 @@ de:
|
|
|
65
65
|
files: Dateien
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Tag-Verwendung
|
|
70
|
+
scope: Alle gespeicherten Inhalte dieser Site, auch unveröffentlichte. Kein Rendering zur Laufzeit.
|
|
71
|
+
multisite: Dieser Bericht für eine Site ist für globale Freigabelisten mehrerer Sites nicht vollständig.
|
|
72
|
+
partial: Partials
|
|
73
|
+
helper: Hilfsmethoden
|
|
74
|
+
template: Templates
|
|
75
|
+
name: Name
|
|
76
|
+
status: Aktueller Status
|
|
77
|
+
sources: Quellen
|
|
78
|
+
used_in: Verwendet in
|
|
79
|
+
no_results: Keine passenden Tags gefunden.
|
|
80
|
+
incomplete: Bericht unvollständig. Einige Inhalte konnten nicht analysiert werden; prüfen Sie die folgenden Warnungen.
|
|
81
|
+
warnings: Analysewarnungen
|
|
82
|
+
config: Konfigurationsvorschlag
|
|
83
|
+
review: Vor Verwendung prüfen. Dieser Vorschlag ist weder eine automatische Berechtigung noch eine Sicherheitsfreigabe. Es wurde keine Konfiguration geändert.
|
|
84
|
+
explicitly_allowed: Ausdrücklich erlaubt
|
|
85
|
+
allowed_by_default: Standardmäßig erlaubt
|
|
86
|
+
blocked: Blockiert
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Suchen
|
|
70
90
|
clear: Leeren
|
data/config/locales/en.yml
CHANGED
|
@@ -65,6 +65,26 @@ en:
|
|
|
65
65
|
files: Files
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Tag usage
|
|
70
|
+
scope: All saved content for this site, including unpublished content. No runtime rendering.
|
|
71
|
+
multisite: This site-only report is not exhaustive for global multi-site allowlists.
|
|
72
|
+
partial: Partials
|
|
73
|
+
helper: Helpers
|
|
74
|
+
template: Templates
|
|
75
|
+
name: Name
|
|
76
|
+
status: Current status
|
|
77
|
+
sources: Sources
|
|
78
|
+
used_in: Used in
|
|
79
|
+
no_results: No matching tags found.
|
|
80
|
+
incomplete: Report incomplete. Some content could not be scanned; review the warnings below.
|
|
81
|
+
warnings: Scanner warnings
|
|
82
|
+
config: Candidate configuration
|
|
83
|
+
review: Review before use. This candidate is not automatic permission or security approval. No configuration has been changed.
|
|
84
|
+
explicitly_allowed: Explicitly allowed
|
|
85
|
+
allowed_by_default: Allowed by default
|
|
86
|
+
blocked: Blocked
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Search
|
|
70
90
|
clear: Clear
|
data/config/locales/es.yml
CHANGED
|
@@ -65,6 +65,26 @@ es:
|
|
|
65
65
|
files: Archivos
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Uso de etiquetas
|
|
70
|
+
scope: Todo el contenido guardado de este sitio, incluido el no publicado. Sin renderizado en tiempo de ejecución.
|
|
71
|
+
multisite: Este informe de un solo sitio no es exhaustivo para las listas globales de permisos de múltiples sitios.
|
|
72
|
+
partial: Parciales
|
|
73
|
+
helper: Helpers
|
|
74
|
+
template: Plantillas
|
|
75
|
+
name: Nombre
|
|
76
|
+
status: Estado actual
|
|
77
|
+
sources: Fuentes
|
|
78
|
+
used_in: Utilizado en
|
|
79
|
+
no_results: No se encontraron etiquetas coincidentes.
|
|
80
|
+
incomplete: Informe incompleto. No se pudo analizar parte del contenido; revise las advertencias siguientes.
|
|
81
|
+
warnings: Advertencias del análisis
|
|
82
|
+
config: Configuración propuesta
|
|
83
|
+
review: Revise antes de usar. Esta propuesta no es un permiso automático ni una aprobación de seguridad. No se ha cambiado ninguna configuración.
|
|
84
|
+
explicitly_allowed: Permitido explícitamente
|
|
85
|
+
allowed_by_default: Permitido por defecto
|
|
86
|
+
blocked: Bloqueado
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Buscar
|
|
70
90
|
clear: Limpiar
|
data/config/locales/fi.yml
CHANGED
|
@@ -65,6 +65,26 @@ fi:
|
|
|
65
65
|
files: Tiedostot
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Tagien käyttö
|
|
70
|
+
scope: Kaikki tämän sivuston tallennettu sisältö, myös julkaisematon. Ei suorituksenaikaista renderöintiä.
|
|
71
|
+
multisite: Tämä yhden sivuston raportti ei ole kattava usean sivuston yhteisiä sallittujen kohteiden luetteloita varten.
|
|
72
|
+
partial: Osanäkymät
|
|
73
|
+
helper: Apumetodit
|
|
74
|
+
template: Näkymäpohjat
|
|
75
|
+
name: Nimi
|
|
76
|
+
status: Nykyinen tila
|
|
77
|
+
sources: Lähteet
|
|
78
|
+
used_in: Käytössä kohteissa
|
|
79
|
+
no_results: Vastaavia tageja ei löytynyt.
|
|
80
|
+
incomplete: Raportti on puutteellinen. Osaa sisällöstä ei voitu analysoida; tarkista alla olevat varoitukset.
|
|
81
|
+
warnings: Analyysin varoitukset
|
|
82
|
+
config: Asetusehdotus
|
|
83
|
+
review: Tarkista ennen käyttöä. Ehdotus ei ole automaattinen lupa eikä turvallisuushyväksyntä. Asetuksia ei ole muutettu.
|
|
84
|
+
explicitly_allowed: Erikseen sallittu
|
|
85
|
+
allowed_by_default: Oletusarvoisesti sallittu
|
|
86
|
+
blocked: Estetty
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Hae
|
|
70
90
|
clear: Tyhjennä
|
data/config/locales/fr.yml
CHANGED
|
@@ -65,6 +65,26 @@ fr:
|
|
|
65
65
|
files: Fichiers
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Utilisation des balises
|
|
70
|
+
scope: Tout le contenu enregistré de ce site, y compris le contenu non publié. Aucun rendu à l’exécution.
|
|
71
|
+
multisite: Ce rapport limité au site n’est pas exhaustif pour les listes d’autorisation globales multisites.
|
|
72
|
+
partial: Partiels
|
|
73
|
+
helper: Helpers
|
|
74
|
+
template: Modèles
|
|
75
|
+
name: Nom
|
|
76
|
+
status: État actuel
|
|
77
|
+
sources: Sources
|
|
78
|
+
used_in: Utilisé dans
|
|
79
|
+
no_results: Aucune balise correspondante trouvée.
|
|
80
|
+
incomplete: Rapport incomplet. Certains contenus n’ont pas pu être analysés ; consultez les avertissements ci-dessous.
|
|
81
|
+
warnings: Avertissements d’analyse
|
|
82
|
+
config: Configuration proposée
|
|
83
|
+
review: À vérifier avant utilisation. Cette proposition ne constitue ni une autorisation automatique ni une validation de sécurité. Aucune configuration n’a été modifiée.
|
|
84
|
+
explicitly_allowed: Explicitement autorisé
|
|
85
|
+
allowed_by_default: Autorisé par défaut
|
|
86
|
+
blocked: Bloqué
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Rechercher
|
|
70
90
|
clear: Effacer
|
data/config/locales/gr.yml
CHANGED
|
@@ -65,6 +65,26 @@ gr:
|
|
|
65
65
|
files: Αρχεία
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Χρήση ετικετών
|
|
70
|
+
scope: Όλο το αποθηκευμένο περιεχόμενο αυτού του ιστοτόπου, ακόμη και το μη δημοσιευμένο. Χωρίς απόδοση κατά την εκτέλεση.
|
|
71
|
+
multisite: Αυτή η αναφορά ενός ιστοτόπου δεν είναι πλήρης για καθολικές λίστες επιτρεπόμενων στοιχείων πολλών ιστοτόπων.
|
|
72
|
+
partial: Μερικά πρότυπα
|
|
73
|
+
helper: Βοηθητικές μέθοδοι
|
|
74
|
+
template: Πρότυπα
|
|
75
|
+
name: Όνομα
|
|
76
|
+
status: Τρέχουσα κατάσταση
|
|
77
|
+
sources: Πηγές
|
|
78
|
+
used_in: Χρησιμοποιείται σε
|
|
79
|
+
no_results: Δεν βρέθηκαν αντίστοιχες ετικέτες.
|
|
80
|
+
incomplete: Ελλιπής αναφορά. Κάποιο περιεχόμενο δεν ήταν δυνατό να αναλυθεί· ελέγξτε τις παρακάτω προειδοποιήσεις.
|
|
81
|
+
warnings: Προειδοποιήσεις ανάλυσης
|
|
82
|
+
config: Προτεινόμενη ρύθμιση
|
|
83
|
+
review: Ελέγξτε πριν από τη χρήση. Η πρόταση δεν αποτελεί αυτόματη άδεια ή έγκριση ασφάλειας. Καμία ρύθμιση δεν άλλαξε.
|
|
84
|
+
explicitly_allowed: Επιτρέπεται ρητά
|
|
85
|
+
allowed_by_default: Επιτρέπεται από προεπιλογή
|
|
86
|
+
blocked: Αποκλεισμένο
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Αναζήτηση
|
|
70
90
|
clear: Εκκαθάριση
|
data/config/locales/hr.yml
CHANGED
|
@@ -65,6 +65,26 @@ hr:
|
|
|
65
65
|
files: Datoteke
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Upotreba oznaka
|
|
70
|
+
scope: Sav spremljeni sadržaj ovog websitea, uključujući neobjavljeni. Bez prikazivanja tijekom izvršavanja.
|
|
71
|
+
multisite: Ovo izvješće za jedan website nije potpuno za globalne popise dopuštenja za više websiteova.
|
|
72
|
+
partial: Djelomični predlošci
|
|
73
|
+
helper: Pomoćne metode
|
|
74
|
+
template: Predlošci
|
|
75
|
+
name: Naziv
|
|
76
|
+
status: Trenutačni status
|
|
77
|
+
sources: Izvori
|
|
78
|
+
used_in: Koristi se u
|
|
79
|
+
no_results: Nisu pronađene odgovarajuće oznake.
|
|
80
|
+
incomplete: Izvješće je nepotpuno. Dio sadržaja nije bilo moguće analizirati; pregledajte upozorenja u nastavku.
|
|
81
|
+
warnings: Upozorenja analize
|
|
82
|
+
config: Predložena konfiguracija
|
|
83
|
+
review: Pregledajte prije upotrebe. Prijedlog nije automatsko dopuštenje ni sigurnosno odobrenje. Konfiguracija nije promijenjena.
|
|
84
|
+
explicitly_allowed: Izričito dopušteno
|
|
85
|
+
allowed_by_default: Dopušteno prema zadanim postavkama
|
|
86
|
+
blocked: Blokirano
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Pretraži
|
|
70
90
|
clear: Očisti
|
data/config/locales/it.yml
CHANGED
|
@@ -65,6 +65,26 @@ it:
|
|
|
65
65
|
files: Files
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
tag_usage:
|
|
69
|
+
title: Utilizzo dei tag
|
|
70
|
+
scope: Tutti i contenuti salvati di questo sito, inclusi quelli non pubblicati. Nessun rendering durante l’esecuzione.
|
|
71
|
+
multisite: Questo rapporto per un solo sito non è esaustivo per gli elenchi globali di autorizzazione di più siti.
|
|
72
|
+
partial: Parziali
|
|
73
|
+
helper: Helper
|
|
74
|
+
template: Modelli
|
|
75
|
+
name: Nome
|
|
76
|
+
status: Stato attuale
|
|
77
|
+
sources: Fonti
|
|
78
|
+
used_in: Utilizzato in
|
|
79
|
+
no_results: Nessun tag corrispondente trovato.
|
|
80
|
+
incomplete: Rapporto incompleto. Alcuni contenuti non sono stati analizzati; controllare gli avvisi seguenti.
|
|
81
|
+
warnings: Avvisi dell’analisi
|
|
82
|
+
config: Configurazione proposta
|
|
83
|
+
review: Verificare prima dell’uso. La proposta non è un’autorizzazione automatica né un’approvazione di sicurezza. Nessuna configurazione è stata modificata.
|
|
84
|
+
explicitly_allowed: Esplicitamente consentito
|
|
85
|
+
allowed_by_default: Consentito per impostazione predefinita
|
|
86
|
+
blocked: Bloccato
|
|
87
|
+
|
|
68
88
|
search:
|
|
69
89
|
submit: Cerca
|
|
70
90
|
clear: Pulisci
|