Recent data includes at least "<textarea>" in #readonly-attr,
breaking further HTML if left unescaped.
say '</p>';
}
printf 'Resources: %s.', join(', ', map {
say '</p>';
}
printf 'Resources: %s.', join(', ', map {
- sprintf '<a href="%s">%s</a>', EscapeHTML($_->{url}), $_->{title}
+ sprintf '<a href="%s">%s</a>', EscapeHTML($_->{url}), EscapeHTML($_->{title})
} @$_) for grep { @$_ } $row->{links} // ();
printf '<br>Parent feature: %s.', join(', ', map {
sprintf '<a href="%s">%s</a>', EscapeHTML("#$_"), $caniuse->{data}->{$_}->{title}
} @$_) for grep { @$_ } $row->{links} // ();
printf '<br>Parent feature: %s.', join(', ', map {
sprintf '<a href="%s">%s</a>', EscapeHTML("#$_"), $caniuse->{data}->{$_}->{title}