From e4dacbaf09720da9b65549bfad0c7450cea3292f Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 1 Sep 2026 19:11:18 +0200 Subject: [PATCH] Rejoin detached clinical citations --- public/js/assistant/citations.js | 1 + test/assistant-citations.test.js | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/public/js/assistant/citations.js b/public/js/assistant/citations.js index bc9cfd0..8677e5b 100644 --- a/public/js/assistant/citations.js +++ b/public/js/assistant/citations.js @@ -96,6 +96,7 @@ function formatCitationCluster(nums) { export function normalizeMarkdownText(text) { return stripOrphanMarkdownMarkers(normalizeTableSourceCitationCells(String(text || '') .replace(/\r\n/g, '\n') + .replace(/([^\n])\n+\s*(\[(?:\d+\s*,\s*)*\d+\])\s*(?:\n+\s*([.,;:]))?(?=\s*(?:\n|$))/g, '$1 $2$3') .replace(/([.!?])\s*[-–—]\s+(\*\*)?/g, '$1\n- $2') .replace(/(:)\s*[-–—]\s+(\*\*)?/g, '$1\n- $2') .replace(/([.!?])\s+(\d+\.\s+[A-Z][A-Za-z][^\n]{0,80})/g, '$1\n$2') diff --git a/test/assistant-citations.test.js b/test/assistant-citations.test.js index 6a5d58b..e6aedaf 100644 --- a/test/assistant-citations.test.js +++ b/test/assistant-citations.test.js @@ -112,6 +112,13 @@ test('does not turn citation-delimited prose into a list', async () => { assert.doesNotMatch(html, /