Files
vue-journal-layer/i18n/locales/pl.json
Jakub Zych 5beb1c5634 fix: sanitize journal HTML instead of blanking it on a regex match
The three-regex gate could be bypassed (an attribute without a space,
<svg/onload>, entity-encoded or tab-split javascript: URLs, MathML
xlink:href, base, meta refresh, forms) and it blanked a whole post or
category when ordinary text such as "Data: 12 maja 2024" matched.

- sanitizeJournalHtml runs sanitize-html with the Journal plugin's
  bluemonday policy: UGC elements plus footer, class, schema.org
  microdata, four validated inline styles, footnote roles, dir=auto,
  two chat transcript data attributes; http, https, mailto and
  relative URLs only
- gateJournalHtml and isSafeJournalHtml keep their signatures; html is
  always the sanitized value and is never blanked
- post body, category content and both page payloads are sanitized;
  the blocked notice, its style and string, and the blocked props and
  content_blocked field are removed
- toPostView moves to postView.ts so list pages and cards do not load
  the sanitizer
- tests cover every bypass from the review, the Data:/metadata: text
  and an imported author footer; the SSR smoke expects the unsafe
  sample's safe paragraphs
2026-10-10 00:01:01 +02:00

39 lines
964 B
JSON

{
"journal": {
"index": {
"title": "Najnowsze wpisy",
"empty": "Nie ma jeszcze żadnych wpisów."
},
"pagination": {
"label": "Stronicowanie",
"previous": "Poprzednia strona",
"next": "Następna strona",
"pageTitle": "Strona {page}"
},
"post": {
"publishedOn": "Opublikowano {date}",
"readingTime": "{minutes} min czytania",
"by": "Autor:",
"related": "Powiązane wpisy",
"previous": "Poprzedni wpis",
"next": "Następny wpis"
},
"category": {
"empty": "W tej kategorii nie ma jeszcze wpisów."
},
"tag": {
"title": "Wpisy z tagiem {name}",
"empty": "Nie ma jeszcze wpisów z tym tagiem."
},
"author": {
"title": "Wpisy autora {name}",
"posts": "Wpisy",
"empty": "Ten autor nie opublikował jeszcze żadnych wpisów."
},
"readMore": "Czytaj dalej",
"rss": {
"title": "Kanał RSS"
}
}
}