From 249651154697809d1e13e52b6a895eb59a3748bd Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Fri, 6 Feb 2015 05:16:29 +0100 Subject: [PATCH] browser: format markup in notes Code and links are encoded with Markdown syntax in recent caniuse comments. Some simple regular expressions will suffice for this subset. --- browser.plp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/browser.plp b/browser.plp index 85ee802..8b51522 100644 --- a/browser.plp +++ b/browser.plp @@ -293,6 +293,18 @@ sub featurescore { return $rank; } +sub formatnotes { + my @html = @_; + for (@html) { + s/\h* $//gmx; # trailing whitespace + s/(?<= [^.\n]) $/./gmx; # consistently end each line by a period + Entity($_); + s{ ` ([^`]*) ` }{$1}gx; + s{ \[ ([^]]*) \] \( ([^)]*) \) }{$1}gx; + } + return @html; +} + sub saytitlecol { my ($id) = @_; my $row = $caniuse->{data}->{$id}; @@ -313,9 +325,8 @@ sub saytitlecol { ); } $row->{title}; print '
'; - s/\.?$/./, print "

$_

" for map { ref $_ ? @$_ : $_ || () } - Entity($row->{description}), - map { s/\s*\n/\n
/g; $_ } $row->{notes}; + print "

$_

" + for formatnotes($row->{description}, $row->{notes} || ()); printf 'Resources: %s.', join(', ', map { sprintf '%s', EscapeHTML($_->{url}), $_->{title} } @$_) for grep { @$_ } $row->{links} // (); -- 2.30.0