- Section index pages ([section]/page.tsx): shows folder tree + flat doc list - Folder index pages: [section]/[...slug]/page.tsx detects folder paths and renders subfolder + document listing instead of 404 - Sidebar tree: hierarchical grouping from flat doc slugs, folder icons (📁) with proper indentation per depth level - DocForm v2: parent folder dropdown (populated from existing folders), slug input for leaf name, resolved path display - Core helpers: extractFoldersForSection + classifyPath exported from @mcpedia/core - CTF writeup reorganized: pwn-100 ret2win moved into pwn/ subfolder - _index.md folder intro pages for ctf/ and defcon-quals-2024/ - STANDARD_KEYS includes extraFields to avoid badge duplication
- Add extra_fields JSONB column to documents table (migration 0003) - CreateDocInput/UpdateDocInput: extraFields?: Record<string, string> - parseFile: extracts non-standard frontmatter keys as extraFields - stringifyFile: writes extraFields dynamically to YAML frontmatter - toMeta: spreads extraFields from DB row into DocumentMeta - DocForm: '+ Add field' UI for content creators to add any metadata - API routes: splitPayload() separates standard vs custom fields - Doc page: CustomFieldBadges dynamically renders any custom field - Add db:migrate / db:push scripts + deploy workflow migration step - Add CTF writeup template (content/writeups/ctf/template/) - Add sample DEF CON writeup with event/challenge/category/difficulty/points - Add @tailwindcss/typography for table rendering (prose classes) - Add remark-gfm for GitHub Flavored Markdown table parsing