--- import "../styles/flowbite.css" import "../styles/global.css" import "../styles/custom.scss" import { LANGUAGES_PROD } from "config/config.js" import config from "@/config/config.json" import { plainify } from "@/base/strings.js" import { AstroSeo } from "@astrolib/seo" import { item_keywords } from '@/base/seo.js' import StructuredData from './head/ArticleStructuredData.astro' import Hreflang from '@/components/polymech/hreflang.astro' import { IComponentConfig } from "@polymech/commons" export interface Props { title?: string; meta_title?: string; description?: string; image?: string; noindex?: boolean; canonical?: string; view: string; path: string; frontmatter?: { title?: string; description?: string; keywords?: string[]; images?: { url: string; alt?: string }[]; }; } const env = import.meta.env const { frontmatter, view, path } = Astro.props as Props; const item: IComponentConfig = frontmatter as IComponentConfig || {} const { url } = Astro.request const REDIRECT = false const _url = Astro.url const canonicalUrl = _url.origin const canonicalURL = new URL(Astro.url.pathname, Astro.site) const hreflangs = LANGUAGES_PROD.filter((lang)=>lang!==Astro.currentLocale).map((lang) => ({ lang, url: `${canonicalUrl}/${lang}/${view}/${path}`, })) const image = item?.image || config.site.image const image_url = image.src const image_alt = image.alt const title = item?.title as string || config.site.title || "" const description = item?.description as string || config.metadata.description const keywords = await item_keywords(item, Astro.currentLocale) const tracking = config?.tracking?.googleAnalytics || 'G-RW6Q6EG3J0' --- {tracking && ( )}