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 }) => (