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