GOAL out { resource [ "stdout:", "html" ], div[ class="block first", h2[ "Upcoming Sessions" ], all div[ h3[ attributes { id{ &join(var FYear,"-",var FMonth, "-",var FDay, "-",var FStartTime)} } , &join(var FYear,"-",var FMonth,"-",var FDay, ": "), a[ attributes { href {&join(var FYear,"-",var FMonth, "-",var FDay, "-",var FStartTime) } }, rel="bookmark", title="Permanent Link to Entry!", var FTitle], &join(", ", var FSpeaker) ], p [ span[ class="time", &join(var FStartTime, "-", var FEndTime)], span[ class="location" ]], optional p [ class="abstract", var FAbstract ], div[ class="details", span[ class="location" ], " | ", span[ class="time", &join(var FStartTime, "-", var FEndTime)], " | ", optional span[ class="modification", "Last modified at ", var FUpdated], " | ", optional span[ class="category", "Filed Under: ", var FType ] ] ] order by lexical [ FYear, FMonth, FDay, FStartTime ] ascending, ] } FROM ns-prefix atom = "http://www.w3.org/2005/Atom" ns-prefix gd = "http://schemas.google.com/g/2005" in { resource [ "%1$s", "xml" ], atom:feed {{ atom:entry {{ atom:title {{ var FTitle }}, gd:when {{ attributes {{ atom:startTime{ /^(var FYear ->[0-9]{4})-(var FMonth ->[0-9]{2})-(var FDay ->[0-9]{2})T(var FStartTime ->[0-9]{2}:[0-9]{2}):[0-9]{2}/}, atom:endTime{ /^.*T(var FEndTime ->[0-9]{2}:[0-9]{2}):[0-9]{2}/ } }} }}, atom:content {{ /^.*Speaker:( ?)(var FSpeaker ->.+)Type:( ?)(var FType ->.+)Abstract:( ?)(var FAbstract ->.{0,250})/ }}, optional atom:updated {{ /^(var FUpdated ->[0-9]{4}-[0-9]{2}-[0-9]{2})/ }} }} }} } END