epub:create-ops create-ops

epubtools/modules/create-ops/xpl/create-ops.xpl

Import URI: http://transpect.le-tex.de/epubtools/modules/create-ops/xpl/create-ops.xpl

Visualisation

The pre-creation of this SVG image needs the Graphviz software installed. Please inform your project maintainer.

Input Ports

NameDocumentationConnections

source

conf

/hierarchy – may be included in /epub-config

meta

/epub-config

Output Ports

NameDocumentationConnections

result

css

css-xml

files

report

Options

NameDocumentationDefault

base-uri

target

'EPUB2'

css-filename

'stylesheet.css'

use-svg

'yes'

cut-paths

'true'

terminate-on-error

'yes'

debug

'no'

debug-dir-uri

'debug'

Subpipeline

Hashed file names are patched into the HTML before split

StepInputsOutputsOptions

p:group copy-resources

p:variable targetdir

source on create-ops

replace($base-uri, '^(.*[/])+(.*)', '$1')

p:variable use-unchanged-css-from-input

meta on create-ops

(/epub-config/@leave-css-unchanged, 'false')[1]

letex:store-debug d458e88

source

conf on create-ops

result

pipeline-step = 'epubtools/hierarchy'

active = $debug

base-uri = $debug-dir-uri

p:choose image-info

/epub-config/cover/@href

p:add-attribute resolve-href

If it is a relative URI, resolve it wrt the HTML source.

source

meta on create-ops

result

attribute-name = 'href'

match = '/epub-config/cover'

attribute-value = resolve-uri($href, base-uri())

letex:image-identify ii

source

result on resolve-href

result

href = /epub-config/cover/@href

p:sink sink1

source

result on ii

p:otherwise

p:identity i

source

 <c:error>No /epub-config/cover/@href given</c:error>      

result

p:sink sink1-5

source

result on i

letex:store-debug d458e177

source

result

pipeline-step = 'epubtools/create-ops/cover-image-info'

active = $debug

base-uri = $debug-dir-uri

p:sink sink2

source

result on d458e177

letex:store-debug d458e187

source

meta-with-uri-resolved-cover-href on image-info

result

pipeline-step = 'epubtools/epub-config'

active = $debug

base-uri = $debug-dir-uri

p:sink sink2a

source

result on d458e187

p:xslt attach-cover

If there is not yet a div with an id 'epub-cover-image-container', it will be inserted into the body as a first child.

source

source on create-ops

meta-with-uri-resolved-cover-href on image-info

report on image-info

stylesheet

p:document../xsl/attach-cover.xsl

result

css:expand css-expand

source

result on attach-cover

stylesheet

This stylesheet overwrites certain css:expand templates or variables. This is done because CSS3 isn't supported completely.

In that stylesheet text-decoration and other porperties can be changed to supported values. When CSS3 is supported it might be necessary to use this input port dynamically.

p:documenthttp://transpect.le-tex.de/css-expand/xsl/css2-1-parser.xsl

result

path-constraint = ''

prop-constraint = ''

debug = $debug

debug-dir-uri = $debug-dir-uri

letex:store-debug d458e250

source

result on css-expand

result

pipeline-step = 'epubtools/create-ops/expanded-css'

active = $debug

base-uri = $debug-dir-uri

css:generate css-generate

source

xml-representation on css-expand

result

cut-paths = $cut-paths

debug = $debug

debug-dir-uri = $debug-dir-uri

letex:store-debug d458e272

source

result on css-generate

result

pipeline-step = 'epubtools/create-ops/parse-css'

active = $debug

base-uri = $debug-dir-uri

p:sink sink3

source

result on d458e272

p:xslt strip-style-element

Remove style elements as their content has been parsed and will be re-serialized into the new stylesheet.css. Any links to CSS files are stripped as their content has also been parsed.

As a collateral, also strips @srcpath

source

result on attach-cover

stylesheet

p:document../xsl/strip-style-element.xsl

parameters

p:empty

result

letex:store-debug d458e300

source

result on strip-style-element

result

pipeline-step = 'epubtools/create-ops/strip-style'

extension = 'html'

active = $debug

base-uri = $debug-dir-uri

p:sink sink4

source

result on d458e300

p:xslt generate-filelist

source

result on strip-style-element

xml-representation on css-expand

stylesheet

p:document../xsl/extract-filerefs.xsl

result

letex:store-debug d458e331

source

result on generate-filelist

result

pipeline-step = 'epubtools/create-ops/filelist'

active = $debug

base-uri = $debug-dir-uri

p:viewport file-iteration

p:variable uri

(/c:file/@href, /c:file/@oebps-name)[1]

p:choose http-or-file

matches($uri, 'https?:')

p:identity d458e363

source

 <c:request method="GET"/>

result

p:add-attribute d458e374

source

result on d458e363

result

match = '/c:request'

attribute-name = 'href'

attribute-value = $uri

p:try http-request

p:group d458e381

p:http-request d458e385

source

result on d458e374

result

letex:store-debug d458e387

source

result on d458e385

result

pipeline-step = concat('epubtools/create-ops/http-requests/', c:file/@name)

active = $debug

base-uri = $debug-dir-uri

p:catch catch

error

p:identity d458e404

source

error on catch

result

p:sink sink5

source

p:add-attribute d458e417

source

current on file-iteration

result

attribute-name = 'query-hash'

match = '/*'

attribute-value = ''

p:hash hashing

source

result on d458e417

parameters

p:empty

result

algorithm = 'crc'

match = '@query-hash'

value = /*/@query-string

p:sink sink6

source

result on hashing

p:xslt apply-hash

source

result on hashing

result on http-request

parameters

p:empty

stylesheet

p:document../xsl/apply-hash.xsl

result

letex:store-debug d458e455

source

result on apply-hash

result

pipeline-step = concat('epubtools/create-ops/files/', c:file/@name)

active = $debug

base-uri = $debug-dir-uri

p:store store-http-resource

source

result on http-request

result

href = c:file/@target-filename

letex:store-debug d458e481

source

result on apply-hash

result

pipeline-step = concat('epubtools/create-ops/filelist-after-patch/', c:file/@name)

active = $debug

base-uri = $debug-dir-uri

p:sink d458e498

source

result on d458e481

matches($uri, $css-filename) and $use-unchanged-css-from-input eq 'false'

p:store store-generated-css

source

css on css-generate

result

method = 'text'

encoding = 'UTF-8'

href = concat( $targetdir, 'epub/OEBPS/', $css-filename)

p:otherwise

p:try try-copy

p:group d458e530

cxf:info file-exists

result

href = c:file/@local-href

p:for-each copy

result on file-exists

cxf:copy cp

result

fail-on-error = if ($terminate-on-error = 'yes') then 'true' else 'false'

target = c:file/@target-filename

href = c:file/@local-href

p:catch catch

error

letex:store-debug d458e576

source

error on catch

result

pipeline-step = 'epubtools/create-ops/copy-error'

active = $debug

base-uri = $debug-dir-uri

p:store dummy

source
<dummy>1</dummy>

result

method = 'text'

href = c:file/@target-filename

p:add-attribute is-text-file

source

current on file-iteration

result

attribute-name = 'media-type'

attribute-value = 'text/plain'

match = '/c:file'

p:add-attribute is-error

source

result on is-text-file

result

match = '/*'

attribute-name = 'error'

attribute-value = 'File not found (or copying failed for another reason)'

p:sink sink6-5

source

p:sink sink7

source

p:validate-with-relax-ng validate-metadata-conf

source

meta-with-uri-resolved-cover-href on copy-resources

schema

p:documenthttp://transpect.le-tex.de/epubtools/schema/metadata-conf/metadata-conf.rng

result

assert-valid = if ($terminate-on-error = 'yes') then 'true' else 'false'

letex:store-debug d458e635

source

result on validate-metadata-conf

result

pipeline-step = 'epubtools/create-ops/validate-metadata-conf'

extension = 'xml'

active = $debug

base-uri = $debug-dir-uri

p:sink sink-valhierarchy

source

result on d458e635

p:xslt patch-http-hrefs

source

html on copy-resources

result on copy-resources

parameters

p:empty

stylesheet

p:document../xsl/patch-http-hrefs.xsl

result

letex:store-debug d458e663

source

result on patch-http-hrefs

result

pipeline-step = 'epubtools/create-ops/pre-split'

extension = 'html'

active = $debug

base-uri = $debug-dir-uri

epub:html-splitter html-splitter

source

result on d458e663

conf

conf on create-ops

meta

meta-with-uri-resolved-cover-href on copy-resources

result

base-uri = $base-uri

target = $target

debug = $debug

debug-dir-uri = $debug-dir-uri

p:pack d458e690

source

result on copy-resources

alternate

files on html-splitter

result

wrapper = 'document'

wrapper-prefix = 'cx'

wrapper-namespace = 'http://xmlcalabash.com/ns/extensions'

p:filter d458e702

source

result on d458e690

result

select = '//c:file'

p:wrap-sequence wrap-file-uris

source

result on d458e702

result

wrapper = 'cx:document'

letex:store-debug d458e705

source

result on wrap-file-uris

result

pipeline-step = 'epubtools/create-ops/wrap-file-uris'

active = $debug

base-uri = $debug-dir-uri

p:sink sink10

source

result on d458e705

Used by