fixed links
All checks were successful
Deploy / build-deploy (push) Successful in 8m16s

This commit is contained in:
Jorijn van der Graaf 2026-08-08 20:04:36 +02:00
commit 2f5ccd272e
3 changed files with 107 additions and 16 deletions

View file

@ -31,6 +31,7 @@ namespace Catcrafts::Views {
using Html::SafeHtml;
using Html::Escape;
using Html::Autolink;
using Html::Format;
using Html::Num;
using Html::Raw;
@ -1115,7 +1116,10 @@ export RenderedPage RenderLegal(const LegalPage& lp) {
for (const LegalSection& sec : lp.sections) {
std::vector<SafeHtml> paras;
for (const std::string& para : sec.body) {
paras.push_back(Format(R"(<p>{}</p>)", Escape(para)));
// Autolink, not Escape: the privacy notice points the reader at
// /analytics and at its own edit history, and a policy that says
// "go look for yourself" should not make them retype the address.
paras.push_back(Format(R"(<p>{}</p>)", Autolink(para)));
}
sections.push_back(Format(
R"(<section class="legal__section">)"
@ -1151,7 +1155,9 @@ export RenderedPage RenderAbout(const LegalPage& about) {
for (const LegalSection& sec : about.sections) {
std::vector<SafeHtml> paras;
for (const std::string& para : sec.body) {
paras.push_back(Format(R"(<p>{}</p>)", Escape(para)));
// Same prose shape as the legal pages, so the same treatment —
// otherwise a URL added here later silently renders as dead text.
paras.push_back(Format(R"(<p>{}</p>)", Autolink(para)));
}
sections.push_back(Format(
R"(<section class="legal__section">)"