comfy_middle_seat 4.5.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -1
  3. data/README.md +37 -1
  4. data/app/controllers/comfy/admin/cms/tag_usage_controller.rb +20 -0
  5. data/app/helpers/comfy/admin/cms/tag_usage_helper.rb +21 -0
  6. data/app/models/comfy/cms/layout.rb +1 -1
  7. data/app/views/comfy/admin/cms/tag_usage/_source.html.haml +2 -0
  8. data/app/views/comfy/admin/cms/tag_usage/index.html.haml +54 -0
  9. data/app/views/layouts/comfy/admin/cms/_left.html.haml +3 -0
  10. data/config/initializers/comfy_middle_seat.rb +3 -3
  11. data/config/locales/ar.yml +20 -0
  12. data/config/locales/ca.yml +20 -0
  13. data/config/locales/cs.yml +20 -0
  14. data/config/locales/da.yml +20 -0
  15. data/config/locales/de.yml +20 -0
  16. data/config/locales/en.yml +20 -0
  17. data/config/locales/es.yml +20 -0
  18. data/config/locales/fi.yml +20 -0
  19. data/config/locales/fr.yml +20 -0
  20. data/config/locales/gr.yml +20 -0
  21. data/config/locales/hr.yml +20 -0
  22. data/config/locales/it.yml +20 -0
  23. data/config/locales/ja.yml +20 -0
  24. data/config/locales/nb.yml +20 -0
  25. data/config/locales/nl.yml +20 -0
  26. data/config/locales/pl.yml +20 -0
  27. data/config/locales/pt-BR.yml +20 -0
  28. data/config/locales/ru.yml +20 -0
  29. data/config/locales/sk.yml +20 -0
  30. data/config/locales/sv.yml +20 -0
  31. data/config/locales/tr.yml +20 -0
  32. data/config/locales/uk.yml +20 -0
  33. data/config/locales/zh-CN.yml +20 -0
  34. data/config/locales/zh-TW.yml +20 -0
  35. data/lib/comfy_middle_seat/configuration.rb +3 -3
  36. data/lib/comfy_middle_seat/content/tag_usage.rb +124 -0
  37. data/lib/comfy_middle_seat/content/tag_usage_report.rb +83 -0
  38. data/lib/comfy_middle_seat/content/tags/helper.rb +1 -1
  39. data/lib/comfy_middle_seat/content/tags/mixins/file_content.rb +6 -10
  40. data/lib/comfy_middle_seat/content.rb +2 -0
  41. data/lib/comfy_middle_seat/routing.rb +1 -0
  42. data/lib/comfy_middle_seat/version.rb +1 -1
  43. data/lib/tasks/cms_tag_usage.rake +32 -0
  44. metadata +8 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f6717192c25596be740e0176e1ae1f6e4b0bd5dd07a71a5f7a8271ad047fc10
4
- data.tar.gz: 7c18f5c772a0ee0a8bab66870066d515b6977a5a962484479eccf5a7c2d9525b
3
+ metadata.gz: 14be7672fa83f1b3aea326362ce3b9f83269c1484ebf9de49b97751ab7ffc3f4
4
+ data.tar.gz: 319d286cbd63ad4be59e3f6b9ba06c3657ecfed74496ef7d5b6b75762e8efbb0
5
5
  SHA512:
6
- metadata.gz: b940efa50666b34b7963839d60fa6265ce5f84566c959388e981cf9e29c02757d9e37a330c59150cebe1c09a27e8c6d2bd72f040922664e7ef39cc37aadd7195
7
- data.tar.gz: '088311053691f043a38462dd1f9b84d57c6a8fff0ae88afe97803d339dc1feceacefff99c99d6b3c52ab0627fe50d324634680e22e8878d0565df78e13be0142'
6
+ metadata.gz: 5286997ee92051fd6b37e4a71d313242d8b0734dbfd308974d7ea1b2ba16114e575bac40f964a17f66c2d3cf18a4171d04833993b7657f6adf2bbcf0d309ef7b
7
+ data.tar.gz: '051976a2f833fc34643d3ee9e41ec8e9427da21e18631e846af7df9937a6e7572fcd4207468e25586b1a9fa2dcb981803fb3a28f9f083cc6326908d59a2ee6e8'
data/CHANGELOG.md CHANGED
@@ -14,7 +14,24 @@ 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
+
17
33
  - Add `layout_asset`, `render_partial`, and `render_template` aliases; existing tags remain supported.
34
+ - Find and expand the new aliases in editor completion.
18
35
 
19
36
  ### Changed
20
37
 
@@ -286,7 +303,8 @@ First release of `comfortable_media_surfer`. This new gem is a revival of [Comfo
286
303
 
287
304
  - Rebranded **ComfortableMexicanSofa** as **ComfortableMediaSurfer** in order to publish new gem (database table names and schema have not changed).
288
305
 
289
- [Unreleased]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.4.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
290
308
  [v4.4.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.3.0...v4.4.0
291
309
  [v4.3.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.2.0...v4.3.0
292
310
  [v4.2.0]: https://github.com/avonderluft/comfy-middle-seat/compare/v4.1.0...v4.2.0
data/README.md CHANGED
@@ -132,6 +132,29 @@ These names are interchangeable; existing tags remain supported:
132
132
 
133
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
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
+
135
158
  ### Editor shortcuts
136
159
 
137
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.
@@ -289,6 +312,19 @@ When adapting upstream examples, use the `comfy_middle_seat` gem, `config/initia
289
312
 
290
313
  ## Upgrading
291
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
+
292
328
  ### Ancestor-aware publishing (unreleased)
293
329
 
294
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:
@@ -380,7 +416,7 @@ Bug reports and focused feature proposals can be opened through [GitHub Issues](
380
416
 
381
417
  ## Acknowledgements
382
418
 
383
- - [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.
384
420
  - [Andrew vonderLuft](https://github.com/avonderluft) for reviving Sofa with the [oCcaMS](https://github.com/avonderluft/occams) project, and carrying it forward.
385
421
  - [ShakaCode](https://github.com/shakacode) for sponsoring the revived project as [Comfortable Media Surfer](https://github.com/shakacode/comfortable-media-surfer).
386
422
  - [Roman Almeida](https://github.com/nasmorn) for contributing the OEM license for [Redactor Text Editor](https://imperavi.com/redactor/).
@@ -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
@@ -65,6 +65,26 @@ ja:
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 @@ nb:
65
65
  files: Filer
66
66
 
67
67
 
68
+ tag_usage:
69
+ title: Bruk av tagger
70
+ scope: Alt lagret innhold på dette nettstedet, også upublisert innhold. Ingen rendering under kjøring.
71
+ multisite: Denne rapporten for ett nettsted er ikke uttømmende for globale tillatelseslister på tvers av nettsteder.
72
+ partial: Delvisninger
73
+ helper: Hjelpemetoder
74
+ template: Maler
75
+ name: Navn
76
+ status: Gjeldende status
77
+ sources: Kilder
78
+ used_in: Brukt i
79
+ no_results: Ingen samsvarende tagger funnet.
80
+ incomplete: Rapporten er ufullstendig. Noe innhold kunne ikke analyseres; se advarslene nedenfor.
81
+ warnings: Analyseadvarsler
82
+ config: Foreslått konfigurasjon
83
+ review: Gjennomgå før bruk. Forslaget er ikke automatisk tillatelse eller sikkerhetsgodkjenning. Ingen konfigurasjon er endret.
84
+ explicitly_allowed: Uttrykkelig tillatt
85
+ allowed_by_default: Tillatt som standard
86
+ blocked: Blokkert
87
+
68
88
  search:
69
89
  submit: Søk
70
90
  clear: Tøm