2026-01-13 14:49:19 +01:00

27 lines
1.0 KiB
TypeScript

import { parsePresentationProfileJson, type PresentationProfileData } from './profileJson'
export function readPresentationProfileData(jsonTag: string | undefined, content: string): PresentationProfileData | null {
if (jsonTag) {
return parsePresentationProfileJson(jsonTag)
}
// Backward compatibility: invisible format (with zero-width characters)
const invisibleJsonMatch = content.match(/[\u200B\u200C]\[Metadata JSON\][\u200B\u200C]\n[\u200B\u200C](.+)[\u200B\u200C]$/s)
if (invisibleJsonMatch?.[1]) {
try {
const cleanedJson = invisibleJsonMatch[1].replace(/[\u200B\u200C\u200D\u200E\u200F]/g, '').trim()
return parsePresentationProfileJson(cleanedJson)
} catch (invisibleJsonError) {
console.error('Error parsing profile JSON from invisible content:', invisibleJsonError)
}
}
// Backward compatibility: visible format
const jsonMatch = content.match(/\[Metadata JSON\]\n(.+)$/s)
if (jsonMatch?.[1]) {
return parsePresentationProfileJson(jsonMatch[1].trim())
}
return null
}