NoteDetailPage
These templates include the full document shell. Each variant is shown in a separate frame (same URL as “open alone”).
Default
Open alone →WideWithNoindex
Open alone →---import type { BacklinkSource } from '../../lib/internal-links/backlink-graph'import '../../styles/link-open-graph-preview.css'import Base from './Base.astro'import MarkdownBlock from '../2_organisms/MarkdownBlock.astro'import PostHeader from '../2_organisms/PostHeader.astro'import Backlinks from '../2_organisms/Backlinks.astro'
interface OpenGraphProps { url: string imageUrl: string imageAlt: string ogTitle: string ogDescription?: string}
interface Props { title: string /** Document meta description; omit when not needed (e.g. some gallery fixtures). */ description?: string noindex: boolean canonicalHref?: string copyablePostId?: string githubEditHref?: string openGraph?: OpenGraphProps width?: 'default' | 'wide' | 'full' /** Real pages use `Date` from content; Storybook static prerender fixtures may use ISO strings. */ publishedAt: Date | string tags: string[] /** Pages pass a `Map`; Storybook static args serialize to a plain object — both are supported. */ tagCounts: Map<string, number> | Record<string, number> postId: string backlinks: BacklinkSource[]}
const { title, description, noindex, canonicalHref, copyablePostId, githubEditHref, openGraph, width = 'default', publishedAt, tags, tagCounts, postId, backlinks,} = Astro.props---
<Base title={title} description={description} noindex={noindex} width={width} canonicalHref={canonicalHref} copyablePostId={copyablePostId} githubEditHref={githubEditHref} openGraph={openGraph}> <article> <PostHeader title={title} postType="note" publishedAt={publishedAt} tags={tags} tagCounts={tagCounts} postId={postId} secret={noindex} class="mb-1" /> <MarkdownBlock> <slot /> </MarkdownBlock> <Backlinks sources={backlinks} /> </article></Base>