GOAL
out {
resource [ "stdout:", "html" ],
div[ class="block",
h2[ "Past Sessions" ],
all div[
h3[ attributes { id{ &join(var PYear,"-",var PMonth, "-",var PDay, "-",var PStartTime)} } , &join(var PYear,"-",var PMonth,"-",var PDay, ": "),
a[ attributes { href {&join(var PYear,"-",var PMonth, "-",var PDay, "-",var PStartTime) } },
rel="bookmark", title="Permanent Link to Entry!",
var PTitle], &join(", ", var PSpeaker)
],
p [ span[ class="time", &join(var PStartTime, "-", var PEndTime)],
span[ class="location" ]],
optional p [ class="abstract", var PAbstract ],
div[ class="details",
span[ class="location" ], " | ",
span[ class="time", &join(var PStartTime, "-", var PEndTime)], " | ",
optional span[ class="modification", "Last modified at ", var PUpdated], " | ",
optional span[ class="category", "Filed Under: ", var PType ] ]
] order by lexical [ PYear, PMonth, PDay, PStartTime ] descending,
]
}
FROM
ns-prefix atom = "http://www.w3.org/2005/Atom"
ns-prefix gd = "http://schemas.google.com/g/2005"
in {
resource [ "http://www.google.com/calendar/feeds/sc1lgv2s0nqgktgn9rdneilv6g%40group.calendar.google.com/public/full?start-max=2008-05-15T05:20:29", "Xml" ],
atom:feed {{
atom:entry {{
atom:title {{ var PTitle }},
gd:when {{
attributes {{
atom:startTime{ /^(var PYear ->[0-9]{4})-(var PMonth ->[0-9]{2})-(var PDay ->[0-9]{2})T(var PStartTime ->[0-9]{2}:[0-9]{2}):[0-9]{2}/},
atom:endTime{ /^.*T(var PEndTime ->[0-9]{2}:[0-9]{2}):[0-9]{2}/ }
}}
}},
atom:content {{ /^.*Speaker:( ?)(var PSpeaker ->.+)Type:( ?)(var PType ->.+)Abstract:( ?)(var PAbstract ->.{0,250})/ }},
optional atom:updated {{ /^(var PUpdated ->[0-9]{4}-[0-9]{2}-[0-9]{2})/ }}
}}
}}
}
END