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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -1
  3. data/README.md +56 -2
  4. data/app/assets/javascripts/comfy/admin/cms/cms_tag_completions.js +3 -3
  5. data/app/controllers/comfy/admin/cms/tag_usage_controller.rb +20 -0
  6. data/app/helpers/comfy/admin/cms/tag_usage_helper.rb +21 -0
  7. data/app/models/comfy/cms/layout.rb +1 -1
  8. data/app/views/comfy/admin/cms/tag_usage/_source.html.haml +2 -0
  9. data/app/views/comfy/admin/cms/tag_usage/index.html.haml +54 -0
  10. data/app/views/layouts/comfy/admin/cms/_left.html.haml +3 -0
  11. data/config/initializers/comfy_middle_seat.rb +3 -3
  12. data/config/locales/ar.yml +20 -0
  13. data/config/locales/ca.yml +20 -0
  14. data/config/locales/cs.yml +20 -0
  15. data/config/locales/da.yml +20 -0
  16. data/config/locales/de.yml +20 -0
  17. data/config/locales/en.yml +20 -0
  18. data/config/locales/es.yml +20 -0
  19. data/config/locales/fi.yml +20 -0
  20. data/config/locales/fr.yml +20 -0
  21. data/config/locales/gr.yml +20 -0
  22. data/config/locales/hr.yml +20 -0
  23. data/config/locales/it.yml +20 -0
  24. data/config/locales/ja.yml +20 -0
  25. data/config/locales/nb.yml +20 -0
  26. data/config/locales/nl.yml +20 -0
  27. data/config/locales/pl.yml +20 -0
  28. data/config/locales/pt-BR.yml +20 -0
  29. data/config/locales/ru.yml +20 -0
  30. data/config/locales/sk.yml +20 -0
  31. data/config/locales/sv.yml +20 -0
  32. data/config/locales/tr.yml +20 -0
  33. data/config/locales/uk.yml +20 -0
  34. data/config/locales/zh-CN.yml +20 -0
  35. data/config/locales/zh-TW.yml +20 -0
  36. data/lib/comfy_middle_seat/configuration.rb +3 -3
  37. data/lib/comfy_middle_seat/content/tag_usage.rb +124 -0
  38. data/lib/comfy_middle_seat/content/tag_usage_report.rb +83 -0
  39. data/lib/comfy_middle_seat/content/tags/asset.rb +12 -17
  40. data/lib/comfy_middle_seat/content/tags/helper.rb +1 -1
  41. data/lib/comfy_middle_seat/content/tags/mixins/file_content.rb +6 -10
  42. data/lib/comfy_middle_seat/content/tags/partial.rb +3 -3
  43. data/lib/comfy_middle_seat/content/tags/template.rb +3 -3
  44. data/lib/comfy_middle_seat/content.rb +2 -0
  45. data/lib/comfy_middle_seat/routing.rb +1 -0
  46. data/lib/comfy_middle_seat/version.rb +1 -1
  47. data/lib/tasks/cms_tag_usage.rake +32 -0
  48. metadata +8 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 654bed46bea3e8580f57ce3b9ba688ceb7b592d83f76c6762b771ee21c11266c
4
- data.tar.gz: 6164127c75dd90045b376a401887ab95976a6722f9b084bc3e7b937056d7570e
3
+ metadata.gz: 14be7672fa83f1b3aea326362ce3b9f83269c1484ebf9de49b97751ab7ffc3f4
4
+ data.tar.gz: 319d286cbd63ad4be59e3f6b9ba06c3657ecfed74496ef7d5b6b75762e8efbb0
5
5
  SHA512:
6
- metadata.gz: 1c2c3126c49194876cb5794df8d986f524ed93fc159337d08651f54dcd88fbcd9a2f9ccfb3ee80ea8eb6046217a0a82b94f73dcf442aa4c33877c196b61bad01
7
- data.tar.gz: 235b0a6ecc612706f168d2daf513f1935addbd9083afea5a2f80726dffb65e80fc74021dae0cd3de1284d26f4df19ab084f336907489b409324f071c0e49171b
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.3.0...master
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
- after_destroy :clear_page_content_cache
21
+ before_destroy :clear_page_content_cache, prepend: true
22
22
 
23
23
  # -- Validations -------------------------------------------------------------
24
24
  validates :site_id,
@@ -0,0 +1,2 @@
1
+ = link_to tag_usage_source_label(source), tag_usage_source_path(source)
2
+ %code= source[:field]
@@ -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
- # Whitelist of all helper methods that can be used via {{cms:helper}} tag. By default
70
- # all helpers are allowed except `eval`, `send`, `call` and few others. Empty array
71
- # will prevent rendering of all helpers.
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
@@ -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: مسح
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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ä
@@ -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
@@ -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: Εκκαθάριση
@@ -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
@@ -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