<
p:declare-step xmlns:p=
"http://www.w3.org/ns/xproc" xmlns:px=
"http://www.daisy.org/ns/pipeline/xproc" type=
"px:epub3-to-pef.load" version=
"1.0" exclude-inline-prefixes=
"#all" name=
"main">
<
p:output port=
"fileset.out" primary=
"true"/>
<
p:output port=
"in-memory.out" sequence=
"true">
<
p:pipe step=
"add-preamble" port=
"in-memory"/>
</
p:output>
<
p:option name=
"epub" required=
"true"/>
<
p:option name=
"preamble" required=
"false" select=
"''"/>
<
p:option name=
"temp-dir" required=
"true">
<
p:documentation>Empty temporary directory dedicated to this step.</
p:documentation>
</
p:option>
<
p:import href=
"http://www.daisy.org/pipeline/modules/fileset-utils/library.xpl">
<
p:documentation>
px:fileset-add-entry
px:fileset-join
</
p:documentation>
</
p:import>
<
p:import href=
"http://www.daisy.org/pipeline/modules/html-utils/library.xpl">
<
p:documentation>
px:html-load
</
p:documentation>
</
p:import>
<
p:import href=
"http://www.daisy.org/pipeline/modules/epub-utils/library.xpl">
<
p:documentation>
px:epub-load
</
p:documentation>
</
p:import>
<
px:epub-load name=
"epub" version=
"3" px:progress=
"1">
<
p:with-option name=
"href" select=
"$epub"/>
<
p:with-option name=
"temp-dir" select=
"$temp-dir"/>
</
px:epub-load>
<
p:choose name=
"add-preamble">
<
p:when test=
"$preamble!=''">
<
p:output port=
"fileset" primary=
"true"/>
<
p:output port=
"in-memory" sequence=
"true">
<
p:pipe step=
"epub" port=
"result.in-memory"/>
<
p:pipe step=
"preamble" port=
"result.in-memory"/>
</
p:output>
<
px:fileset-add-entry media-type=
"text/html" replace-attributes=
"true">
<
p:with-option name=
"href" select=
"$preamble"/>
<
p:with-param port=
"file-attributes" name=
"role" select=
"'preamble'"/>
</
px:fileset-add-entry>
<
px:html-load name=
"preamble"/>
<
p:sink/>
<
px:fileset-join>
<
p:input port=
"source">
<
p:pipe step=
"epub" port=
"result.fileset"/>
<
p:pipe step=
"preamble" port=
"result.fileset"/>
</
p:input>
</
px:fileset-join>
</
p:when>
<
p:otherwise>
<
p:output port=
"fileset" primary=
"true"/>
<
p:output port=
"in-memory" sequence=
"true">
<
p:pipe step=
"epub" port=
"result.in-memory"/>
</
p:output>
<
p:identity/>
</
p:otherwise>
</
p:choose>
</
p:declare-step>