Last active
June 19, 2017 04:50
-
-
Save gimsieke/8f869d2681a31fd249051e927bfdcf68 to your computer and use it in GitHub Desktop.
a birthday serenade for Norm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" | |
xmlns:ndw50="urn:ndw:birthday:50" | |
xmlns:c="http://www.w3.org/ns/xproc-step" | |
xmlns:cx="http://xmlcalabash.com/ns/extensions" | |
version="1.0" | |
exclude-inline-prefixes="c cx ndw50" | |
type="ndw50:serenade" name="serenade"> | |
<p:output port="serenade-lines" sequence="true"> | |
<p:pipe port="lines" step="finished-yet"/> | |
</p:output> | |
<p:output port="result" primary="true"/> | |
<p:serialization port="result" indent="true" omit-xml-declaration="false"/> | |
<p:option name="times" select="'50'"/> | |
<p:input port="source" sequence="true" primary="true"> | |
<p:inline><line xmlns="http://docbook.org/ns/docbook">Happy birthday to you.</line></p:inline> | |
</p:input> | |
<p:split-sequence initial-only="true" test="position() = 1" name="first-line"/> | |
<p:sink/> | |
<p:count name="count"> | |
<p:input port="source"> | |
<p:pipe port="source" step="serenade"/> | |
</p:input> | |
</p:count> | |
<p:sink/> | |
<p:choose name="finished-yet"> | |
<p:xpath-context> | |
<p:pipe port="result" step="count"/> | |
</p:xpath-context> | |
<p:when test="number(/*) lt number($times)"> | |
<p:output port="lines" sequence="true"> | |
<p:pipe port="serenade-lines" step="recurse"/> | |
</p:output> | |
<p:output port="serenade" primary="true"/> | |
<ndw50:serenade name="recurse"> | |
<p:input port="source"> | |
<p:pipe port="matched" step="first-line"/> | |
<p:pipe port="source" step="serenade"/> | |
</p:input> | |
<p:with-option name="times" select="$times"/> | |
</ndw50:serenade> | |
</p:when> | |
<p:otherwise> | |
<p:output port="lines" sequence="true"/> | |
<p:output port="serenade" primary="true"/> | |
<p:wrap-sequence wrapper="poetry" wrapper-namespace="http://docbook.org/ns/docbook" name="w1"> | |
<p:input port="source"> | |
<p:pipe port="source" step="serenade"/> | |
</p:input> | |
</p:wrap-sequence> | |
<p:insert match="/*" position="last-child" name="i1"> | |
<p:input port="insertion"> | |
<p:inline><line xmlns="http://docbook.org/ns/docbook">Happy birthday dear Norman!</line></p:inline> | |
</p:input> | |
</p:insert> | |
<p:insert match="/*" position="last-child" name="i2"> | |
<p:input port="insertion"> | |
<p:pipe port="matched" step="first-line"/> | |
</p:input> | |
</p:insert> | |
</p:otherwise> | |
</p:choose> | |
</p:declare-step> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<poetry xmlns="http://docbook.org/ns/docbook"> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday to you.</line> | |
<line>Happy birthday dear Norman!</line> | |
<line>Happy birthday to you.</line> | |
</poetry> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment