diff --git a/packages/starlight-ghostcms/index.ts b/packages/starlight-ghostcms/index.ts index 3a9e8938..d0db6c5d 100644 --- a/packages/starlight-ghostcms/index.ts +++ b/packages/starlight-ghostcms/index.ts @@ -29,6 +29,10 @@ export default function starlightGhostCMS(userConfig?: StarlightGhostConfig): St pattern: '/blog', entrypoint: '@matthiesenxyz/starlight-ghostcms/routes/index.astro' }) + injectRoute({ + pattern: '/blog/[slug]', + entrypoint: '@matthiesenxyz/starlight-ghostcms/routes/[slug].astro' + }) updateConfig({ vite: { diff --git a/packages/starlight-ghostcms/package.json b/packages/starlight-ghostcms/package.json index cbd59096..2ce56d3d 100644 --- a/packages/starlight-ghostcms/package.json +++ b/packages/starlight-ghostcms/package.json @@ -46,6 +46,7 @@ "./overrides/Sidebar.astro": "./src/overrides/Sidebar.astro", "./overrides/SiteTitle.astro": "./src/overrides/SiteTitle.astro", "./routes/index.astro": "./src/routes/index.astro", + "./routes/[slug].astro": "./src/routes/[slug].astro", "./schema": "./src/schemas/config.ts" }, "scripts": { diff --git a/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro b/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro index 03368b8a..80c0151b 100644 --- a/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro +++ b/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro @@ -5,26 +5,19 @@ import type { Props } from '@astrojs/starlight/props' import { isAnyBlogPostPage } from '../utils/page' import Metadata from '../components/Metadata.astro' import type { Post } from '../schemas/posts' -import { getSluggedPost } from '../utils/api' const isBlogPost = isAnyBlogPostPage(Astro.props.slug) let blogEntry: Post | undefined = undefined -if (isBlogPost) { - const post = await getSluggedPost(Astro.props.slug) - blogEntry = post.post -} --- {isBlogPost && blogEntry ? : null} -
{isBlogPost && blogEntry?.plaintext}
{ isBlogPost && blogEntry ? ( ) : null } diff --git a/packages/starlight-ghostcms/src/overrides/Sidebar.astro b/packages/starlight-ghostcms/src/overrides/Sidebar.astro index 206f2115..9e091e04 100644 --- a/packages/starlight-ghostcms/src/overrides/Sidebar.astro +++ b/packages/starlight-ghostcms/src/overrides/Sidebar.astro @@ -35,7 +35,7 @@ const blogSidebar: Props['sidebar'] = isBlog attrs: {}, badge: undefined, href: `/blog/${blogEntry.slug}`, - isCurrent: isBlogPostPage(Astro.props.slug, blogEntry.slug), + isCurrent: isBlogPostPage(Astro.props.slug, `blog/${blogEntry.slug}`), label: blogEntry.title, type: 'link', })), diff --git a/packages/starlight-ghostcms/src/routes/[slug].astro b/packages/starlight-ghostcms/src/routes/[slug].astro new file mode 100644 index 00000000..0bec7f81 --- /dev/null +++ b/packages/starlight-ghostcms/src/routes/[slug].astro @@ -0,0 +1,64 @@ +--- +//import type { InferGetStaticPropsType } from 'astro' +import config from 'virtual:starlight-ghost-config' +import { Image } from "astro:assets"; +import Page from '../components/Page.astro' +import Posts from '../components/Posts.astro' +//import PrevNextLinks from '../components/PrevNextLinks.astro' +import { getPageProps } from '../utils/page' +import { getAllPosts } from '../utils/api' +import Metadata from '../components/Metadata.astro' + + +export async function getStaticPaths() { + const entries = await getAllPosts(); + return entries.map((post) => ({ + params: { slug: post.slug }, + props: { post, slug:post.slug }, + })); +} + +const { post } = Astro.props +const pageProps = getPageProps(post.title) +--- + + + {config.supportGhost && ( +
Powered by Ghost
+ )} + +
+ + {post.feature_image && ( +
+ {post.feature_image_alt?post.feature_image_alt:""} +
+ +
+
+ )} +
+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/packages/starlight-ghostcms/src/routes/index.astro b/packages/starlight-ghostcms/src/routes/index.astro index a7ed6c2d..dea5b647 100644 --- a/packages/starlight-ghostcms/src/routes/index.astro +++ b/packages/starlight-ghostcms/src/routes/index.astro @@ -8,10 +8,8 @@ import Posts from '../components/Posts.astro' import { getPageProps } from '../utils/page' import { getAllPosts } from '../utils/api' -export const prerender = true const entries = await getAllPosts(); - //const { entries, nextLink, prevLink } = Astro.props const pageProps = getPageProps(config.title) @@ -28,22 +26,12 @@ const pageProps = getPageProps(config.title) \ No newline at end of file