feat: add opentags
All checks were successful
Deploy to SFTP Server / build (push) Successful in 4m0s
All checks were successful
Deploy to SFTP Server / build (push) Successful in 4m0s
This commit is contained in:
parent
19a703367d
commit
6aa6ddabb0
13
src/components/MetaTags.astro
Normal file
13
src/components/MetaTags.astro
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
interface Props {
|
||||
title: string;
|
||||
cover: string;
|
||||
}
|
||||
---
|
||||
|
||||
<meta property="og:title" content={Astro.props.title} />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={Astro.url} />
|
||||
<meta property="og:image" content={Astro.props.cover} />
|
||||
<meta property="og:description" content="Max Richters personal blog" />
|
||||
<meta property="og:site_name" content="Max Richter" />
|
@ -6,10 +6,12 @@ import { useTranslations } from "@i18n/utils";
|
||||
interface Props {
|
||||
title: string;
|
||||
width?: "full" | "compact";
|
||||
image?: string;
|
||||
}
|
||||
const t = useTranslations(Astro.url);
|
||||
|
||||
const { title } = Astro.props;
|
||||
|
||||
import "./theme.css";
|
||||
import "./global.css";
|
||||
---
|
||||
@ -21,6 +23,7 @@ import "./global.css";
|
||||
<meta name="description" content="Astro description" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="props" content={JSON.stringify(Astro.props)} />
|
||||
<link rel="sitemap" href="/sitemap-index.xml" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<script
|
||||
is:inline
|
||||
@ -60,7 +63,7 @@ import "./global.css";
|
||||
]}
|
||||
/>
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<!-- <meta http-equiv="refresh" content="0;url=/" /> -->
|
||||
<slot name="meta-tags" />
|
||||
<title>{title}</title>
|
||||
<script is:inline>
|
||||
(function () {
|
||||
|
@ -9,11 +9,12 @@ type Props = MarkdownLayoutProps<{
|
||||
date: Date;
|
||||
links?: string[][];
|
||||
toc?: boolean;
|
||||
cover?: string;
|
||||
}>;
|
||||
|
||||
const { frontmatter, headings } = Astro.props;
|
||||
const t = useTranslations(Astro.url);
|
||||
const { title, url, date: dateString, links, toc } = frontmatter;
|
||||
const { title, url, date: dateString, links, toc, cover } = frontmatter;
|
||||
const collection = url?.split("/")[2];
|
||||
const date = new Date(dateString);
|
||||
const path = useTranslatedPath(Astro.url);
|
||||
@ -22,7 +23,7 @@ const path = useTranslatedPath(Astro.url);
|
||||
const backlinkContent = t(`nav.${collection}`).toLowerCase();
|
||||
---
|
||||
|
||||
<Layout title={title}>
|
||||
<Layout title={title} image={cover}>
|
||||
<div class="top-info flex items-center place-content-between m-y-2">
|
||||
<a class="flex items-center gap-1 opacity-50" href={path("/" + collection)}
|
||||
><span class="i-tabler-arrow-left"></span>
|
||||
|
@ -2,6 +2,7 @@
|
||||
import { getCollection, render } from "astro:content";
|
||||
import { getLocale } from "astro-i18n-aut";
|
||||
import { filterCollection, parseSlug } from "@i18n/utils";
|
||||
import MetaTags from "@components/MetaTags.astro";
|
||||
|
||||
const locale = getLocale(Astro.url);
|
||||
|
||||
@ -31,4 +32,5 @@ if (!page) {
|
||||
const { Content } = await render(page);
|
||||
---
|
||||
|
||||
<MetaTags title={page.data.title} cover={page.data.cover?.src} />
|
||||
<Content />
|
||||
|
@ -2,6 +2,7 @@
|
||||
import { getCollection, render } from "astro:content";
|
||||
import { getLocale } from "astro-i18n-aut";
|
||||
import { filterCollection, parseSlug } from "@i18n/utils";
|
||||
import MetaTags from "@components/MetaTags.astro";
|
||||
|
||||
const locale = getLocale(Astro.url);
|
||||
|
||||
@ -31,4 +32,5 @@ if (!page) {
|
||||
const { Content } = await render(page);
|
||||
---
|
||||
|
||||
<MetaTags title={page.data.title} cover={page.data.cover?.src} />
|
||||
<Content />
|
||||
|
@ -2,6 +2,7 @@
|
||||
import { getCollection, render } from "astro:content";
|
||||
import { getLocale } from "astro-i18n-aut";
|
||||
import { filterCollection, parseSlug } from "@i18n/utils";
|
||||
import MetaTags from "@components/MetaTags.astro";
|
||||
|
||||
const locale = getLocale(Astro.url);
|
||||
|
||||
@ -31,4 +32,5 @@ if (!page) {
|
||||
const { Content } = await render(page);
|
||||
---
|
||||
|
||||
<MetaTags title={page.data.title} cover={page.data.cover?.src} />
|
||||
<Content />
|
||||
|
13
src/pages/robots.txt.ts
Normal file
13
src/pages/robots.txt.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import type { APIRoute } from 'astro';
|
||||
|
||||
const getRobotsTxt = (sitemapURL: URL) => `
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: ${sitemapURL.href}
|
||||
`;
|
||||
|
||||
export const GET: APIRoute = ({ site }) => {
|
||||
const sitemapURL = new URL('sitemap-index.xml', site);
|
||||
return new Response(getRobotsTxt(sitemapURL));
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user