mirror of
https://github.com/zenlm/zen-blog.git
synced 2026-11-02 17:28:53 +00:00
- Replace Hugo static site generator with Next.js 15 + fumadocs-mdx - Convert 71 blog posts from Hugo format to MDX/MD - Convert Hugo shortcodes (figure, button, video, example, fullwidth) to MDX components (Figure, LinkButton, Video, Fullwidth) - Add remark-math + rehype-katex for LaTeX math rendering - Copy JSON case files to public/cases/ for reference - Update branding for Zen LM (site-nav, footer, metadata) - Static export for Cloudflare Pages deployment - Chinese (.zh.md) translations deferred for future migration
40 lines
1016 B
TypeScript
40 lines
1016 B
TypeScript
import React from 'react'
|
|
import { cn } from '@/lib/utils'
|
|
|
|
interface AdsPlaceholderProps {
|
|
className?: string
|
|
size?: 'small' | 'medium' | 'large'
|
|
title?: string
|
|
}
|
|
|
|
export function AdsPlaceholder({
|
|
className,
|
|
size = 'medium',
|
|
title = "Advertisement"
|
|
}: AdsPlaceholderProps) {
|
|
const sizeClasses = {
|
|
small: 'h-32',
|
|
medium: 'h-48',
|
|
large: 'h-64'
|
|
}
|
|
|
|
return (
|
|
<div
|
|
className={cn(
|
|
'border border-dashed border-border rounded-lg flex items-center justify-center bg-muted/30',
|
|
sizeClasses[size],
|
|
className
|
|
)}
|
|
>
|
|
<div className="text-center space-y-2">
|
|
<div className="text-xs font-medium text-muted-foreground uppercase tracking-wide">
|
|
{title}
|
|
</div>
|
|
<div className="text-xs text-muted-foreground/70">
|
|
300 x 250
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|