Files
radio.org.tr/src/layouts/Layout.astro
T
Buğra Canata 214e9733d0 Performance & SEO optimization + Google login for CMS
Performance:
- Enable image optimization (Image: true, SVG: true)
- 429MB saved with WebP conversion

SEO:
- Add JSON-LD structured data (Organization & FAQ schemas)
- Add keywords and author metadata
- Update robots.txt with sitemap reference
- Add alt text to OpenGraph images

CMS:
- Enable Google OAuth login for admin panel
- Add logo to admin login page

Fixes:
- Update Telegram link to @ym1ktc on homepage

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-17 16:23:11 +03:00

79 lines
2.6 KiB
Plaintext

---
import '~/assets/styles/tailwind.css';
import { I18N } from 'astrowind:config';
import CommonMeta from '~/components/common/CommonMeta.astro';
import Favicons from '~/components/Favicons.astro';
import CustomStyles from '~/components/CustomStyles.astro';
import ApplyColorMode from '~/components/common/ApplyColorMode.astro';
import Metadata from '~/components/common/Metadata.astro';
import SiteVerification from '~/components/common/SiteVerification.astro';
import Analytics from '~/components/common/Analytics.astro';
import BasicScripts from '~/components/common/BasicScripts.astro';
import OrganizationSchema from '~/components/structured-data/OrganizationSchema.astro';
// Comment the line below to disable View Transitions
import { ClientRouter } from 'astro:transitions';
import type { MetaData as MetaDataType } from '~/types';
export interface Props {
metadata?: MetaDataType;
}
const { metadata = {} } = Astro.props;
const { language, textDirection } = I18N;
---
<!doctype html>
<html lang={language} dir={textDirection} class="2xl:text-[20px]">
<head>
<CommonMeta />
<Favicons />
<CustomStyles />
<ApplyColorMode />
<Metadata {...metadata} />
<SiteVerification />
<Analytics />
<OrganizationSchema />
<!-- Netlify Identity for Decap CMS -->
<script is:inline src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
<!-- Comment the line below to disable View Transitions -->
<ClientRouter fallback="swap" />
</head>
<body class="antialiased text-default bg-page tracking-tight">
<slot />
<BasicScripts />
<!-- Netlify Identity initialization -->
<script is:inline>
if (window.netlifyIdentity) {
window.netlifyIdentity.on('init', (user) => {
// Check if we're on a page that needs authentication handling
const currentPath = window.location.pathname;
const hasAuthTokens = window.location.hash.includes('confirmation_token') ||
window.location.hash.includes('recovery_token') ||
window.location.hash.includes('invite_token');
// If we have auth tokens and we're not on the auth page, redirect to auth page
if (hasAuthTokens && currentPath !== '/auth') {
window.location.href = '/auth' + window.location.hash;
return;
}
if (!user) {
window.netlifyIdentity?.on('login', () => {
document.location.href = '/admin/';
});
}
});
}
</script>
</body>
</html>