Improve LightRAG knowledge search locator alignment

This commit is contained in:
lix-2026
2026-06-08 20:35:49 +08:00
parent 9551d4c1dc
commit 0e8b03daf8
28 changed files with 5769 additions and 140 deletions
@@ -270,12 +270,27 @@ import {
const resourceHrefFromUrlState = (rootUri, path, title) => {
const fileUrl = localFileOpenUrl(rootUri, path);
if (!fileUrl) return '';
if (/\.pdf$/i.test(String(title || path || ''))) {
const name = String(title || path || '');
if (/\.pdf$/i.test(name)) {
const url = new URL('/pdf-preview', window.location.origin);
url.searchParams.set('fileUrl', fileUrl);
url.searchParams.set('fileName', title || path);
return url.toString();
}
const officeMatch = name.match(/\.([a-z0-9]+)$/i);
const officeType = officeMatch ? officeMatch[1].toLowerCase() : '';
if (['doc', 'docx', 'odt', 'rtf', 'xls', 'xlsx', 'ods', 'csv', 'ppt', 'pptx', 'odp'].indexOf(officeType) >= 0) {
const url = new URL('/office-preview', window.location.origin);
url.searchParams.set('fileUrl', fileUrl);
url.searchParams.set('fileName', title || path);
url.searchParams.set('fileType', officeType);
const workspaceId = currentWebShellWorkspaceId();
const sourceKind = currentWebShellSourceKind() || 'local_folder';
if (workspaceId) url.searchParams.set('workspaceId', workspaceId);
if (sourceKind) url.searchParams.set('sourceKind', sourceKind);
if (rootUri) url.searchParams.set('rootUri', rootUri);
return url.toString();
}
return fileUrl;
};
const applyDocumentEvidenceLocatorFromUrl = (root) => {
@@ -337,6 +352,7 @@ import {
bbox: url.searchParams.get('bbox') || undefined,
sourceMapPath: String(url.searchParams.get('sourceMapPath') || '').trim(),
blockId: String(url.searchParams.get('blockId') || '').trim(),
evidenceText: String(url.searchParams.get('evidenceText') || '').trim(),
lineRange: url.searchParams.get('lineRange') || null,
charRange: url.searchParams.get('charRange') || null,
};