export function formatDate(dateString: string): string { const date = new Date(dateString); const months = [ 'ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie' ]; return `${date.getDate()} ${months[date.getMonth()]} ${date.getFullYear()}`; } export function formatRelativeDate(dateString: string): string { const date = new Date(dateString); const now = new Date(); const diffTime = Math.abs(now.getTime() - date.getTime()); const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); if (diffDays === 0) return 'astăzi'; if (diffDays === 1) return 'ieri'; if (diffDays < 7) return `acum ${diffDays} zile`; if (diffDays < 30) return `acum ${Math.floor(diffDays / 7)} săptămâni`; if (diffDays < 365) return `acum ${Math.floor(diffDays / 30)} luni`; return `acum ${Math.floor(diffDays / 365)} ani`; } export function generateExcerpt(content: string, maxLength = 160): string { const text = content .replace(/^---[\s\S]*?---/, '') .replace(/!\[.*?\]\(.*?\)/g, '') .replace(/\[([^\]]+)\]\([^\)]+\)/g, '$1') .replace(/[#*`]/g, '') .trim(); if (text.length <= maxLength) return text; const truncated = text.slice(0, maxLength); const lastSpace = truncated.lastIndexOf(' '); return truncated.slice(0, lastSpace) + '...'; } export function generateSlug(title: string): string { const romanianMap: Record = { 'ă': 'a', 'â': 'a', 'î': 'i', 'ș': 's', 'ț': 't', 'Ă': 'a', 'Â': 'a', 'Î': 'i', 'Ș': 's', 'Ț': 't' }; return title .split('') .map(char => romanianMap[char] || char) .join('') .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/^-+|-+$/g, ''); }