da8b1298

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

jsonld: extract ld+json nested inside a microdata itemscope

Many CMSs wrap <body> in itemscope/WebPage microdata. Previously, once the
parser entered a microdata item it consumed the whole subtree, swallowing any
nested <script type=application/ld+json> so its structured data was lost.

goLD now takes a continuation, so an ld+json script found inside a microdata
item is extracted separately and then microdata parsing resumes. Regression
test: a WebPage-microdata <body> wrapping an Event ld+json now yields both
values, not just the WebPage.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 1m29s 1m29s 1m31s 0s
Build 1m05s 1m04s 24s 1m30s 0s
Suite 0s 2m35s 1m31s 1m31s 0s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s