214e9733d0
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>
79 lines
2.6 KiB
Plaintext
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>
|