From be5b4b82cd1f478e329878dd7b1b0ddc1d477bf1 Mon Sep 17 00:00:00 2001
From: bwbohl <b.w.bohl@gmail.com>
Date: Thu, 19 Dec 2024 09:54:33 +0100
Subject: [PATCH] getLinkTarget.xql: replace MEI fallback with global fallback

---
 add/data/xql/getLinkTarget.xql | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/add/data/xql/getLinkTarget.xql b/add/data/xql/getLinkTarget.xql
index ff128ea2f..3fc56f48e 100644
--- a/add/data/xql/getLinkTarget.xql
+++ b/add/data/xql/getLinkTarget.xql
@@ -192,10 +192,18 @@ declare function local:getWindowTitle($doc as node()+, $type as xs:string) as xs
     (: HTML :)
     else if ($type = 'html') then
         ($doc//head/data(title))
+    
+    else if($type = 'unknown') then
+    
+        let $eventualTitleContainers := ($doc//mei:titleStmt, $doc/tei:titleStmt)
+        let $eventualTitles := (
+            for $et in $eventualTitleContainers return
+                eutil:getLocalizedTitle($eventualTitleContainers[1], $lang),
+            for $t in $doc//*:title return
+                $t => normalize-space()
+        )
         
-    (: MEI fallback if no title is found :)
-    else if (exists($doc//mei:mei) and exists(($doc//mei:titleStmt)[1])) then
-        (eutil:getLocalizedTitle(($doc//mei:titleStmt)[1], $lang))
+        return $eventualTitles[1]
     
     else
         (string('unknown'))
-- 
GitLab