// Extend the PageData type with the properties we need
// Extend the PageData type with the properties we need
interface ExtendedPageData extends PageData {
interface ExtendedPageData extends PageData {
waitable: Promise<any>;
waitable: Promise<any>;
publicationType: string;
publicationType: string;
indexEvent: NDKEvent;
indexEvent: NDKEvent;
parser: any;
}
}
let {data} = $props<{data: ExtendedPageData}>();
let {data} = $props<{data: ExtendedPageData}>();
// Get publication metadata for OpenGraph tags
let title = $derived(data.indexEvent?.getMatchingTags('title')[0]?.[1] || data.parser?.getIndexTitle(data.parser?.getRootIndexId()) || 'Alexandria Publication');
let currentUrl = $page.url.href;
// Get image and summary from the event tags if available
// If image unavailable, use the Alexandria default pic.
let image = $derived(data.indexEvent?.getMatchingTags('image')[0]?.[1] || '/screenshots/old_books.jpg');
let summary = $derived(data.indexEvent?.getMatchingTags('summary')[0]?.[1] || 'Alexandria is a digital library, utilizing Nostr events for curated publications and wiki pages.');