From d82314594b412cf500fa7b3b0b8007f7e3f68a41 Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Fri, 10 Jan 2020 15:06:59 -0500 Subject: [PATCH] Make rem2html understand JSON interchange format. --- www/rem2html | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/www/rem2html b/www/rem2html index e7a65e10..04010a73 100644 --- a/www/rem2html +++ b/www/rem2html @@ -4,10 +4,11 @@ use strict; use warnings; use Getopt::Long; +use JSON::Any; my %Options; -my $rem2html_version = '2.0'; +my $rem2html_version = '2.1'; my($days, $shades, $moons, $classes, $Month, $Year, $Numdays, $Firstwkday, $Mondayfirst, $weeks, @Daynames, $Nextmon, $Nextlen, $Prevmon, $Prevlen); @@ -191,7 +192,7 @@ sub parse_input my $found_data = 0; while() { chomp; - last if /^\# rem2ps begin$/; + last if /^\# rem2ps2? begin$/; } my $line; @@ -228,11 +229,26 @@ sub parse_input } while() { chomp; - last if /^\# rem2ps end$/; + last if /^\# rem2ps2? end$/; next if /^\#/; - next unless m/^(\d*).(\d*).(\d*)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*(.*)$/; - my ($y, $m, $d, $special, $tag, $duration, $time, $body) = - ($1, $2, $3, $4, $5, $6, $7, $8); + my ($y, $m, $d, $special, $tag, $duration, $time, $body); + if (m/^(\d*).(\d*).(\d*)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*(.*)$/) { + ($y, $m, $d, $special, $tag, $duration, $time, $body) = + ($1, $2, $3, $4, $5, $6, $7, $8); + } elsif (/\{/) { + my $obj = JSON::Any->jsonToObj($_); + next unless ($obj->{date} =~ /^(\d+)-(\d+)-(\d+)$/); + $y = $1; + $m = $2; + $d = $3; + $special = $obj->{passthru} || '*'; + $tag = $obj->{tags} || '*'; + $duration = $obj->{duration} || '*'; + $time = $obj->{time} || '*'; + $body = $obj->{body}; + } else { + next; + } my $d1 = $d; $d1 =~ s/^0+//; if ($special eq 'HTML') {