RLS policies implementeren, Demo auth flow

This commit is contained in:
colinislit
2025-11-15 23:59:38 +01:00
parent b1cfb339a2
commit 99804656d7
49 changed files with 5841 additions and 123 deletions

View File

@@ -0,0 +1,62 @@
/**
* Markdown Parser Utility
*
* Simple markdown parser for converting manifesto.md content
* to React components with proper typography.
*
* This is a lightweight parser for basic markdown features:
* - Paragraphs
* - Line breaks
* - Basic formatting (bold, italic)
*/
export interface ParsedMarkdown {
paragraphs: string[]
metadata?: Record<string, string>
}
/**
* Parse markdown content into structured format
* Splits content by double line breaks into paragraphs
*/
export function parseMarkdown(markdown: string): ParsedMarkdown {
// Split by double line breaks or single line breaks followed by empty line
const paragraphs = markdown
.split(/\n\s*\n/)
.map((para) => para.trim())
.filter((para) => para.length > 0)
return {
paragraphs,
}
}
/**
* Convert markdown paragraphs to ManifestoSection format
* This allows markdown content to be used with existing components
*/
export function markdownToSections(markdown: string): Array<{
id: string
type: 'paragraph'
content: string
}> {
const parsed = parseMarkdown(markdown)
return parsed.paragraphs.map((content, index) => ({
id: `paragraph-${index + 1}`,
type: 'paragraph' as const,
content: content.trim(),
}))
}
/**
* Simple markdown renderer for inline formatting
* Converts **bold** and *italic* to HTML
*/
export function renderMarkdownInline(text: string): string {
return text
.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
.replace(/\*(.+?)\*/g, '<em>$1</em>')
.replace(/`(.+?)`/g, '<code>$1</code>')
}