--- const { schema, page, globals, post, title, description, artist, movie, movies, show, tv, book, books, genre, year, } = Astro.props; const fullUrl = `${globals.url}${page.url}`; let pageTitle = globals.site_name; let pageDescription = globals.site_description; let ogImage = `${globals.cdn_url}${globals.avatar}`; switch (schema) { case "blog": pageTitle = post?.title || pageTitle; pageDescription = post?.description || pageDescription; ogImage = `${globals.cdn_url}${post?.image}`; break; case "music": case "music-index": case "music-period": pageTitle = schema === "music" ? `Music / ${page.title}` : "Music"; if (schema === "music") { ogImage = `${globals.cdn_url}${page?.image}`; } else if (schema === "music-index") { ogImage = `${globals.cdn_url}${movies?.week?.artists[0]?.grid?.image}`; } else if (schema === "music-period") { ogImage = `${globals.cdn_url}${page?.image}`; } break; case "artist": pageTitle = `Artists / ${artist?.name}`; pageDescription = artist?.description || pageDescription; ogImage = `${globals.cdn_url}${artist?.image}`; break; case "genre": pageTitle = `Music / ${genre?.name}`; pageDescription = genre?.description || pageDescription; ogImage = `${globals.cdn_url}${genre?.artists[0]?.image}`; break; case "book": pageTitle = `Books / ${book?.title} by ${book?.author}`; pageDescription = book?.review || book?.description || pageDescription; ogImage = `${globals.cdn_url}${book?.image}`; break; case "books": pageTitle = "Books"; const overviewBook = books?.all?.find((b) => b.status === "started"); ogImage = `${globals.cdn_url}${overviewBook?.image}`; break; case "books-year": const bookYear = year?.data?.find((b) => b.status === "finished"); ogImage = `${globals.cdn_url}${bookYear?.image}`; break; case "movie": pageTitle = `Movies / ${movie?.title}`; if (movie?.rating) { pageTitle += ` (${movie.rating})`; } pageDescription = movie?.review || movie?.description || pageDescription; ogImage = `${globals.cdn_url}${movie?.backdrop}`; break; case "favorite-movies": pageTitle = "Favorite movies"; const favoriteMovie = movies?.favorites?.[0]; ogImage = `${globals.cdn_url}${favoriteMovie?.backdrop}`; break; case "show": pageTitle = `Show / ${show?.title}`; pageDescription = show?.review || show?.description || pageDescription; ogImage = `${globals.cdn_url}${show?.backdrop}`; break; case "favorite-shows": pageTitle = "Favorite shows"; const favoriteShow = tv?.favorites?.[0]; ogImage = `${globals.cdn_url}${favoriteShow?.backdrop}`; break; case "watching": pageTitle = "Watching"; const overviewMovie = movies?.recentlyWatched?.[0]; ogImage = `${globals.cdn_url}${overviewMovie?.backdrop}`; break; case "page": pageTitle = page?.title || pageTitle; pageDescription = page?.description || pageDescription; break; default: break; } if (title) pageTitle = title; if (description) pageDescription = description; if (pageTitle !== globals.site_name && schema !== "blog") pageTitle = `${pageTitle} / ${globals.site_name}`; const escapedPageDescription = pageDescription?.replace( /["'<>&]/g, (c) => ({ '"': """, "'": "'", "<": "<", ">": ">", "&": "&", })[c] ) || ""; ---