Commit 75d34e31 authored by MRodz's avatar MRodz Committed by mrodzis
Browse files

Add first draft for 3.21.14 transpositions

parent 0dd9e07f
......@@ -438,3 +438,35 @@ declare
function teisimple-test:analyze-overwritten($node as element(*)) {
fontane-simple:transform($node)
};
(: 3.21.13 ADDITIONS :)
declare
%test:name("Additions")
%test:args("<add xmlns=""http://www.tei-c.org/ns/1.0"">en</add>")
%test:assertEquals("en")
%test:args("<line xmlns=""http://www.tei-c.org/ns/1.0"" style=""margin-left:1.3cm""><mod xmlns=""http://www.tei-c.org/ns/1.0"" type=""subst""><del xmlns=""http://www.tei-c.org/ns/1.0""><seg xmlns=""http://www.tei-c.org/ns/1.0"" style=""text-decoration:line-through"">Mari</seg>a</del><add xmlns=""http://www.tei-c.org/ns/1.0"" place=""below"" style=""margin-left:0.2cm"">die büßende</add></mod> Magdalena</line>")
%test:assertEquals("die büßende", " Magdalena")
%test:args("<addSpan xmlns=""http://www.tei-c.org/ns/1.0"" spanTo=""#C07_1r_s"" place=""interlinear""/>")
%test:assertEmpty
%test:args("<add xmlns=""http://www.tei-c.org/ns/1.0"" type=""edited_text"" subtype=""interlinear"" place=""above"" corresp=""#C07_62v_a"">I.</add>")
%test:assertEquals("<add xmlns=""http://www.tei-c.org/ns/1.0"" type=""edited_text"" subtype=""interlinear"" place=""above"" corresp=""#C07_62v_a"">I.</add>")
function teisimple-test:analyze-additions($node as element(*)) {
fontane-simple:transform($node)
};
(: 3.21.14 TRANSPOSITIONS :)
declare
%test:args("<zone xmlns=""http://www.tei-c.org/ns/1.0""><line xmlns=""http://www.tei-c.org/ns/1.0"" style=""margin-left:1.0cm"">Domina, eine Priorin, <add xmlns=""http://www.tei-c.org/ns/1.0"" place=""above"" style=""margin-left:0.1cm"" xml:id=""D11_24r_c"">und einen</add></line><line xmlns=""http://www.tei-c.org/ns/1.0"" style=""margin-left:1.0cm""><seg xmlns=""http://www.tei-c.org/ns/1.0"" xml:id=""D11_24r_e"">Kloſterhauptmann<surplus xmlns=""http://www.tei-c.org/ns/1.0"">,</surplus></seg> <metamark xmlns=""http://www.tei-c.org/ns/1.0"" function=""transposition"" corresp=""#D11_24r_d"" target=""#D11_24r_c"" rend=""looped_arc(pos-left)""/><seg xmlns=""http://www.tei-c.org/ns/1.0"" xml:id=""D11_24r_d"">Praepoſiti</seg></line><line xmlns=""http://www.tei-c.org/ns/1.0"" style=""margin-left:1.0cm""><del><seg xmlns=""http://www.tei-c.org/ns/1.0"" style=""text-decoration:line-through"">und</seg></del></line><listTranspose xmlns=""http://www.tei-c.org/ns/1.0""><transpose xmlns=""http://www.tei-c.org/ns/1.0""><ptr xmlns=""http://www.tei-c.org/ns/1.0"" target=""#D11_24r_d""/><ptr xmlns=""http://www.tei-c.org/ns/1.0"" target=""#D11_24r_c #D11_24r_e""/></transpose></listTranspose></zone>")
%test:assertEquals("Domina, eine Priorin, ", "Praepositi", "und einen", "Klosterhauptmann")
%test:args("<zone xmlns=""http://www.tei-c.org/ns/1.0""><line xmlns=""http://www.tei-c.org/ns/1.0"" type=""item"" xml:id=""D06_Vv_a"">8. <metamark xmlns=""http://www.tei-c.org/ns/1.0"" function=""transpostion"" target=""#D06_Vv_b"" rend=""s-shaped""/>Die 16. Huſaren.</line><zone xmlns=""http://www.tei-c.org/ns/1.0"" xml:id=""D06_Vv_2""><line xmlns=""http://www.tei-c.org/ns/1.0"" type=""item"">9. Zum Thee.</line><line xmlns=""http://www.tei-c.org/ns/1.0"" type=""item"">10. Mitternacht.</line></zone><listTranspose xmlns=""http://www.tei-c.org/ns/1.0""><transpose xmlns=""http://www.tei-c.org/ns/1.0""><ptr xmlns=""http://www.tei-c.org/ns/1.0"" target=""#D06_Vv_2""/><ptr xmlns=""http://www.tei-c.org/ns/1.0"" target=""#D06_Vv_a""/></transpose></listTranspose><anchor xmlns=""http://www.tei-c.org/ns/1.0"" xml:id=""D06_Vv_b""/><line xmlns=""http://www.tei-c.org/ns/1.0"" type=""item"">11. <mod xmlns=""http://www.tei-c.org/ns/1.0""><del xmlns=""http://www.tei-c.org/ns/1.0"">Ein</del><add xmlns=""http://www.tei-c.org/ns/1.0"">Noch</add></mod> <add xmlns=""http://www.tei-c.org/ns/1.0"">ein</add> „ernſthaftes“ Kapitel.</line></zone>")
%test:assertEquals("<item xmlns=""http://www.tei-c.org/ns/1.0"">9. Zum Thee.</item>", "<item xmlns=""http://www.tei-c.org/ns/1.0"">10. Mitternacht.</item>", "<item xmlns=""http://www.tei-c.org/ns/1.0"">8. Die 16. Huſaren.</item>", "<item xmlns=""http://www.tei-c.org/ns/1.0"">11. Noch ein „ernſthaftes“ Kapitel.</item>")
function teisimple-test:analyze-transposition($node as element(*)) {
fontane-simple:transform($node)
};
......@@ -71,11 +71,13 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
case text()
return
$node
case element(tei:graphic)
return
element tei:graphic {
$node/@*
}
case element(tei:del) return
if($node/parent::tei:restore) then
fontane-simple:transform($node/node())
......@@ -83,12 +85,14 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
fontane-simple:transform($node/descendant::tei:restore)
else
()
case element(tei:restore) return
if(count($node/child::*) = 1 and $node/child::tei:del
and $node/ancestor::tei:del) then
()
else
fontane-simple:transform($node/node())
case element(tei:retrace) return
if($node/@rend) then
element tei:seg {
......@@ -97,16 +101,47 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
}
else
fontane-simple:transform($node/node())
case element(tei:add) return
if($node/@type = "edited_text") then
$node
else if(not($node/@xml:id)) then
fontane-simple:transform($node/node())
else if(fontane-simple:is-transposed($node)) then
let $corresp := //tei:metamark[matches(@target, $node/@xml:id)]
let $bla := console:log($corresp)
return
(fontane-simple:transform($corresp/node()),
fontane-simple:transform($node/node()))
else
fontane-simple:transform($node/node())
case element(tei:addSpan) return
if($node/@type = "edited_text") then
$node
else
()
case element(tei:fw)
return
()
case element(tei:line)
return
if(count($node/*) = 1 and $node/child::tei:fw)
then
()
else
if(count($node/*) = 1 and $node/child::tei:fw) then
()
else if(not($node/@type = "item")) then
fontane-simple:transform($node/node())
else if($node/@type = "item" and not($node/@xml:id)) then
element tei:item {
fontane-simple:transform($node/node())
}
else if($node/@type = "item"
and fontane-simple:is-transposed($node)) then
()
else
fontane-simple:transform($node/node())
case element(tei:handShift)
return
(: tei:handShift without @new denote the duct of the current
......@@ -131,6 +166,7 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
case element(tei:stamp)
return
()
case element(tei:seg)
return
if(count($node/*) = 1 and $node/child::tei:stamp)
......@@ -149,6 +185,7 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
()
else
fontane-simple:transform($node/node())
case element(tei:surface)
return
if(matches($node/@n, "cover"))
......@@ -205,11 +242,13 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
fontane-simple:transform($node/node())
else
()
case element(tei:gap)
return
element tei:gap {
$node/@*
}
case element(tei:metamark) return
if($node/@function = "integrate"
or $node/@function = "authorial_note") then
......@@ -223,6 +262,11 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
}
else
()
(: TODO: check if correct :)
case element(tei:surplus) return
()
case element(tei:zone) return
if(matches($node/@style, "border-style:solid")
and not(matches($node/@style, "border-radius"))
......@@ -244,8 +288,13 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
$node/@xml:id,
fontane-simple:transform($node/node())
}
else if(not($node/@xml:id)) then
fontane-simple:transform($node/node())
else if($node/@xml:id and fontane-simple:is-transposed($node)) then
()
else
fontane-simple:transform($node/node())
case element(tei:figure) return
if(count($node/child::*) = 1 and $node/child::tei:figDesc) then
(: genealogy lines probably shouldn't be displayed, but I still have to
......@@ -288,10 +337,19 @@ declare function fontane-simple:transform($nodes as node()*) as node()* {
()
else
$node
case element(tei:figDesc) return
$node
case element(tei:ref) return
$node
case element(tei:ptr) return
let $target-id := substring-after($node/@target, "#")
let $target := $node/ancestor::tei:TEI//*[matches(@xml:id, $target-id)]
let $stripped-target := fontane-simple:strip-element($target)
let $stripped := console:log($stripped-target)
return fontane-simple:transform($stripped-target)
default return
fontane-simple:transform($node/node())
};
......@@ -307,4 +365,20 @@ declare function fontane-simple:is-hand-contemporary($hand as xs:string) as xs:b
true()
else
false()
};
declare function fontane-simple:is-transposed($node as node()) as xs:boolean {
let $root := $node/ancestor::tei:TEI
return
if($root//tei:ptr[contains(@target, $node/@xml:id)]) then
true()
else
false()
};
declare function fontane-simple:strip-element($node as node()) {
element {$node/name()} {
$node/@type,
fontane-simple:transform($node/node())
}
};
\ No newline at end of file
......@@ -1662,23 +1662,23 @@
die eigentliche thüringiſche
Geſchichte, in die
<tei:item>
Ludwig der Sp<tei:seg style="text-decoration:underline">ring</tei:seg>er
,
,</tei:item>
<tei:item>
Ludwig der Eiſ<tei:seg style="text-decoration:underline">erne</tei:seg>
,
,</tei:item>
<tei:item>
Ludwig der
<tei:seg style="text-decoration:underline">Mild</tei:seg>e
,
,</tei:item>
......@@ -1696,13 +1696,13 @@
) und
<tei:item>
Heinrich <tei:handShift script="Latn"/>Raspe<tei:handShift script="Latf"/>
. †
1247
.
.</tei:item>
<tei:handShift script="standard"/>
......@@ -2966,30 +2966,30 @@
<tei:handShift script="Latn"/>
<tei:item>
<ref target="#C07_60v_9">A.</ref>
<tei:handShift script="Latf"/>
Augerau
.
.</tei:item>
<tei:handShift script="Latn"/>
<tei:item>
<ref target="#C07_60v_10">B.</ref>
<tei:handShift script="Latf"/>
Lannes
.
.</tei:item>
<tei:handShift script="Latn"/>
<tei:item>
<ref target="#C07_60v_11">C.</ref>
<tei:handShift script="Latn"/>Soult<tei:handShift script="Latf"/>
.
.</tei:item>
<tei:handShift script="Latn"/>
......@@ -3003,15 +3003,15 @@
<tei:handShift script="Latn"/>
<tei:item>
Hohenlohe<tei:handShift script="Latf"/>
in Front vor
14 Heiligen
.
.</tei:item>
<tei:handShift script="Latn"/>
<tei:item>
Rüchel
......@@ -3019,7 +3019,7 @@
Weimar
nach
Kapellendorf
.
.</tei:item>
<tei:handShift script="Latn"/>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment