Skip to content
Snippets Groups Projects
Commit 055c439b authored by Michelle Rodzis's avatar Michelle Rodzis
Browse files

Remove flag for print, logging and counting for rdg position

In order to improve performance we only determine the rdg position during
the HTML creation in bdn-SADE/modules/critical.xqm since it's not necessary
elsewhere.
parent adc59ce1
No related branches found
No related tags found
No related merge requests found
......@@ -20,7 +20,6 @@ import module namespace config = "http://bdn-edition.de/intermediate_format/conf
declare option exist:serialize "method=xml media-type=text/xml omit-xml-declaration=no indent=no";
declare variable $ifweb:replace-whitespace := true();
declare variable $ifweb:print := false();
declare function ifweb:main($resource as xs:string) as xs:string? {
let $doc := doc($config:sade-data || $resource)
......@@ -32,7 +31,7 @@ declare function ifweb:main($resource as xs:string) as xs:string? {
declare function ifweb:transform($doc as node()*, $filename as xs:string)
as node()* {
let $preprocessed-data := pre:preprocessing($doc/tei:TEI, $ifweb:replace-whitespace, $ifweb:print)
let $preprocessed-data := pre:preprocessing($doc/tei:TEI, $ifweb:replace-whitespace)
let $intermediate-format := ident:walk($preprocessed-data, ())
let $store := xmldb:store($config:sade-data, $filename, $intermediate-format)
......@@ -41,14 +40,6 @@ as node()* {
declare function ifweb:complete-xml($author as xs:string, $xml as node()*)
as node()* {
let $log-dir :=
if(xmldb:collection-available($config:app-root || "/logs")) then
$config:app-root || "/logs"
else
xmldb:create-collection($config:app-root, "logs")
let $log-name := "log.xml"
let $create := xmldb:store($log-dir, $log-name, <root/>)
let $filename := $author || "-full-if.xml"
return ifweb:transform($xml, $filename)
};
......@@ -61,7 +52,7 @@ as node()* {
declare function ifweb:transform-split-xml($xml as node()*, $filename as xs:string,
$dir as xs:string) {
let $preprocessed-data := pre:preprocessing($xml/*, $ifweb:replace-whitespace, $ifweb:print)
let $preprocessed-data := pre:preprocessing($xml/*, $ifweb:replace-whitespace)
let $intermediate-format := ident:walk($preprocessed-data, ())
let $content :=
if(count($intermediate-format) gt 1) then
......
......@@ -106,11 +106,11 @@ declare function pre:preprocessing-textNode
: @author Uwe Sikora
:)
declare function pre:default-element
( $node as node(), $recursive-function as node()* ) as item()* {
( $node as node(), $recursive-function as node()* ) as element()* {
let $following-node := $node/following-sibling::node()[1]
let $following-sibling := $node/following-sibling::*[1]
return
(element{$node/name()}{
element{$node/name()}{
$node/@*,
(if($following-node[matches(., "[\s\n\r\t]") and normalize-space(.) = ""]
and $following-sibling[self::ref or self::app or self::hi or self::bibl
......@@ -122,9 +122,7 @@ declare function pre:default-element
attribute {"break-after"}{"yes"}
else ()),
$recursive-function
},
update insert $node into doc("/db/apps/interformat/logs/log.xml")/*
)
}
};
......@@ -140,7 +138,7 @@ declare function pre:default-element
: @author Uwe Sikora
:)
declare function pre:preprocessing
($nodes as node()*, $replace-whitespace as xs:boolean, $print as xs:boolean)
($nodes as node()*, $replace-whitespace as xs:boolean)
as item()* {
for $node in $nodes
......@@ -162,11 +160,11 @@ declare function pre:preprocessing
case element(TEI) return (
element{$node/name()}{
$node/@*,
pre:preprocessing($node/node(), $replace-whitespace, $print),
pre:preprocessing($node/node(), $replace-whitespace),
element{"editorial-notes"}{
for $editorial-note in $node//note[@type eq "editorial-commentary"]
return
pre:default-element( $editorial-note, pre:preprocessing($editorial-note/node(), $replace-whitespace, $print) )
pre:default-element( $editorial-note, pre:preprocessing($editorial-note/node(), $replace-whitespace) )
}
}
)
......@@ -174,11 +172,17 @@ declare function pre:preprocessing
case element(teiHeader) return ( $node )
case element(div) return (
if ($node[@type = 'section-group']) then (
pre:preprocessing($node/node(), $replace-whitespace, $print)
if ($node[@type = "section-group"]) then (
pre:preprocessing($node/node(), $replace-whitespace)
)
else if($node[@type]) then
element{$node/name()}{
$node/@*,
attribute {"id"}{ generate-id($node)},
pre:preprocessing($node/node(), $replace-whitespace)
}
else (
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace, $print) )
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace) )
)
)
......@@ -187,52 +191,21 @@ declare function pre:preprocessing
element{$node/name()}{
$node/@*,
attribute {"id"}{ generate-id($node)},
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
case element(rdg) return (
(: on the website we need a counter for every tei:rdg that goes
into the critical apparatus. to save time in the internal area
of the page we decided to put all counting here and saving it in
@app-id instead of doing it on the fly. :)
if ($node[@type = ("v", "pp", "pt")] and not($print)) then (
let $current-div-no :=
count($node/ancestor::div[1]/preceding::div[@type = "section"])
+ 1
let $app-count :=
count($node/ancestor::app[ancestor::div[1] = $node/ancestor::div[1]
and not(rdg[@type = "ptl" or @type = "ppl"])
and rdg[@type = "v" or @type = "pt" or @type = "pp"]])
+ count($node/preceding::app[ancestor::div[1] = $node/ancestor::div[1]
and not(count(rdg) = 1
and rdg[@type = "ptl" or @type = "ppl"])
and rdg[@type = "v" or @type = "pt" or @type = "pp"]])
+ 1
let $app-id :=
if($node/@xml:id) then
$node/@xml:id
else
"app-" || $current-div-no || "-" || $app-count
return
element {$node/name()} {
$node/@*,
attribute {"app-id"}{$app-id},
attribute {"id"}{ generate-id($node)},
pre:preprocessing($node/node(), $replace-whitespace, $print)
}
)
else
element{$node/name()}{
$node/@*,
attribute {"id"}{ generate-id($node)},
pre:preprocessing($node/node(), $replace-whitespace, $print)
}
element{$node/name()}{
$node/@*,
attribute {"id"}{ generate-id($node)},
pre:preprocessing($node/node(), $replace-whitespace)
}
)
case element(note) return (
if ( $node[@type != "editorial-commentary"] or $node[ not(@type) ] ) then (
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace, $print) )
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace) )
) else ( )
)
......@@ -274,11 +247,11 @@ declare function pre:preprocessing
if($node[@rend = 'right-aligned' or @rend = 'center-aligned']) then(
element {'aligned'} {
$node/@*,
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
else (
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace, $print) )
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace) )
)
)
......@@ -286,33 +259,33 @@ declare function pre:preprocessing
if($node[@type = 'item']) then(
element {'item'} {
$node/@*[name() != 'type'],
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
else if($node[@type = 'head']) then(
element {'head'} {
$node/@*[name() != 'type'],
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
else if($node[@type = 'row']) then(
element {'row'} {
$node/@*[name() != 'type'],
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
else if($node[@type = 'cell']) then(
element {'row'} {
$node/@*[name() != 'type'],
pre:preprocessing($node/node(), $replace-whitespace, $print)
pre:preprocessing($node/node(), $replace-whitespace)
}
)
else (
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace, $print) )
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace) )
)
)
default return (
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace, $print) )
pre:default-element( $node, pre:preprocessing($node/node(), $replace-whitespace) )
)
};
......@@ -14,10 +14,9 @@ declare variable $resource-uri := request:get-parameter("resource", ("/db/apps/i
declare variable $uri := request:get-parameter("uri", ());
declare variable $mode := request:get-parameter("mode", ());
declare variable $replace-whitespace := true();
declare variable $print := true();
let $doc := ifutils:get-resource($resource-uri)
let $preprocessed-data := pre:preprocessing($doc/tei:TEI, $replace-whitespace, $print)
let $preprocessed-data := pre:preprocessing($doc/tei:TEI, $replace-whitespace)
let $intermediate-format := ident:walk($preprocessed-data, ())
let $store := if ($mode = "store") then (
let $filename := concat(replace($resource-uri, '.+/(.+)$', '$1'), ".out")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment