import { cloudflareImageUrl, nsMerge } from 'shared/utils.mjs' // Components import { MdxWrapper } from 'shared/components/wrappers/mdx.mjs' import { Lightbox } from 'shared/components/lightbox.mjs' import { ImageWrapper } from 'shared/components/wrappers/img.mjs' import { TimeAgo, ns as timeagoNs } from 'shared/components/timeago/index.mjs' import { useTranslation } from 'next-i18next' import { FrontmatterHead } from './docs.mjs' import { BaseLayout, BaseLayoutLeft, BaseLayoutProse, BaseLayoutRight, BaseLayoutWide, } from 'shared/components/base-layout.mjs' import { NavLinks, Breadcrumbs, MainSections, ns as navNs, } from 'shared/components/navigation/sitenav.mjs' import { Toc, ns as tocNs } from 'shared/components/mdx/toc.mjs' import { PrevNext } from 'shared/components/prev-next.mjs' import { Tag } from 'shared/components/tag.mjs' export const ns = nsMerge(navNs, tocNs, 'docs') /** checks for a slug that isn't a post, to prevent a prev or next button to it */ const isEndSlug = (slug) => slug.split('/').length === 1 const PostMeta = ({ frontmatter, t }) => (
{frontmatter.designs?.map((design) => ( {design} ))}
By{' '} {frontmatter.author || frontmatter.maker || 'FIXME: No displayname'}
) const PostImage = ({ imgId, frontmatter }) => (
{frontmatter.caption}
) const PostContent = ({ mdx, dir }) => (
) /** layout for a page that displays a blog, showcase or newsletter */ export const PostLayout = ({ mdx, slug, frontmatter, imgId, locale, type, dir }) => { const { t } = useTranslation(ns) return (

{frontmatter.title}

) }