diff --git a/src/inc/lib.mjs b/src/inc/lib.mjs index 1e88765..3a93894 100644 --- a/src/inc/lib.mjs +++ b/src/inc/lib.mjs @@ -102,8 +102,14 @@ export default new class { // Build suffix with query params let suffix = env.strict ? '?strict=1' : ''; + // mainDisplay: decoded for human-readable display (e.g. div.location) + // main: keeps percent-encoding for use in href attributes + let mainDisplay = tmp; + try { mainDisplay = decodeURIComponent(tmp); } catch (_) {} + return { main: tmp, + mainDisplay, path: env.path ? env.path : '', suffix: suffix }; diff --git a/src/inc/routeinc/f0cklib.mjs b/src/inc/routeinc/f0cklib.mjs index c43f1cb..49c4712 100644 --- a/src/inc/routeinc/f0cklib.mjs +++ b/src/inc/routeinc/f0cklib.mjs @@ -306,6 +306,7 @@ export default { // Override link for title searches — pagination must use the /tag/title:... prefix if (isTitleSearch && titleQuery) { link.main = `/tag/title:${encodeURIComponent(titleQuery)}/`; + link.mainDisplay = `/tag/title:${titleQuery}/`; link.path = 'p/'; link.suffix = ''; } @@ -314,6 +315,7 @@ export default { if (userHallObj && userHallOwner) { const ownerName = userHallObj.owner_name || userHallOwner; link.main = `/user/${encodeURIComponent(ownerName)}/hall/${encodeURIComponent(userHallObj.slug)}/`; + link.mainDisplay = `/user/${ownerName}/hall/${userHallObj.slug}/`; link.path = 'p/'; link.suffix = ''; } @@ -590,10 +592,18 @@ export default { ? await db`select uh.name, uh.slug from user_halls uh join user_halls_assign uha on uha.hall_id = uh.id where uha.item_id = ${itemid} and uh.user_id = ${user_id}` : []; const link = lib.genLink({ user, tag, hall: (hall && typeof hall === 'object') ? hall.slug : hall, mime, type: fav ? 'favs' : 'uploads', path: '', strict: false }); + // Override link for title searches — pagination must use the /tag/title:... prefix + if (isTitleSearch && titleQuery) { + link.main = `/tag/title:${encodeURIComponent(titleQuery)}/`; + link.mainDisplay = `/tag/title:${titleQuery}/`; + link.path = ''; + link.suffix = ''; + } // Override link for user hall context if (userHallObj && userHallOwner) { const ownerName = userHallObj.owner_name || userHallOwner; link.main = `/user/${encodeURIComponent(ownerName)}/hall/${encodeURIComponent(userHallObj.slug)}/`; + link.mainDisplay = `/user/${ownerName}/hall/${userHallObj.slug}/`; link.path = ''; link.suffix = ''; } diff --git a/views/item-partial-legacy.html b/views/item-partial-legacy.html index 1fff846..76511a6 100644 --- a/views/item-partial-legacy.html +++ b/views/item-partial-legacy.html @@ -6,7 +6,7 @@