Skip to content

Commit 16e28e0

Browse files
committed
[feature] Switch to new TEI to Markdown, and Markdown to TEI conversions using XSLT
1 parent 23bfa0b commit 16e28e0

2 files changed

Lines changed: 19 additions & 407 deletions

File tree

src/main/xar-resources/services/get-rec.xql

Lines changed: 7 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -34,92 +34,6 @@ declare variable $local:github as xs:string? := rh:request-param("github");
3434
declare variable $local:exist-collection-path as xs:string := rh:request-param("eXistCollection", concat($config:app-root, "/data"));
3535

3636

37-
(: Recurse through child nodes :)
38-
declare function local:markdown($nodes as node()*, $labels as element(labels)?) as item()* {
39-
for $node in $nodes
40-
return
41-
typeswitch($node)
42-
43-
case processing-instruction()
44-
return
45-
$node
46-
47-
case comment()
48-
return
49-
$node
50-
51-
case text()
52-
return
53-
normalize-space($node)
54-
55-
case element(tei:p)
56-
return
57-
if ($node[parent::tei:quote] or $node[parent::tei:summary] or $node[parent::tei:note] or $node[parent::tei:desc] or $node[parent::tei:ab]) then
58-
if ($node[following-sibling::tei:p]) then
59-
(
60-
local:markdown($node/node(), $labels),
61-
"

"
62-
)
63-
else
64-
local:markdown($node/node(), $labels)
65-
else
66-
local:passthru($node, $labels)
67-
68-
case element(tei:lb)
69-
return
70-
"
"
71-
72-
case element(tei:em)
73-
return
74-
(
75-
"*",
76-
local:markdown($node/node(), $labels),
77-
"*"
78-
)
79-
80-
case element(tei:relation)
81-
return
82-
if ($node[exists((@active, @mutual, @passive))]) then
83-
element {node-name($node)} {
84-
$node/@*[not(local-name(.) = ('active', 'mutual', 'passive'))],
85-
for $ref in tokenize($node/@active, " ")[. ne ""]
86-
let $label := $labels/label[@ref eq $ref]/text/text()
87-
return
88-
<tei:active ref="{$ref}">{$label}</tei:active>
89-
,
90-
for $ref in tokenize($node/@mutual, " ")[. ne ""]
91-
let $label := $labels/label[@ref eq $ref]/text/text()
92-
return
93-
<tei:mutual ref="{$ref}">{$label}</tei:mutual>
94-
,
95-
for $ref in tokenize($node/@passive, " ")[. ne ""]
96-
let $label := $labels/label[@ref eq $ref]/text/text()
97-
return
98-
<tei:passive ref="{$ref}">{$label}</tei:passive>
99-
,
100-
local:markdown($node/node(), $labels)
101-
}
102-
103-
else
104-
local:passthru($node, $labels)
105-
106-
case element()
107-
return
108-
local:passthru($node, $labels)
109-
110-
default
111-
return
112-
local:markdown($node/node(), $labels)
113-
};
114-
115-
(: Recurse through child nodes :)
116-
declare function local:passthru($node as node()*, $labels as element(labels)?) as item()* {
117-
element {node-name($node)} {
118-
$node/@*,
119-
local:markdown($node/node(), $labels)
120-
}
121-
};
122-
12337
(:~
12438
: Given the a node from a TEI document, we first extract the refs from all descendant tei:relation active, mutual, or passive attributes.
12539
: Secondly, for each ref we try and find a TEI document in the database whose tei:idno matches the ref,
@@ -250,4 +164,10 @@ else
250164
let $data := local:get-data()
251165
let $labels := local:get-labels($data)
252166
return
253-
local:markdown($data, $labels)
167+
fn:transform(map {
168+
"stylesheet-node": doc("/db/apps/manuForma/services/tei-to-manuforma-form.xslt"),
169+
"source-node": $data,
170+
"stylesheet-params": map {
171+
xs:QName('labels'): $labels
172+
}
173+
})

0 commit comments

Comments
 (0)