svelte-markdown-pages
Version:
Build and render markdown-based content with distributed navigation for Svelte projects
1 lines • 65 kB
Source Map (JSON)
{"version":3,"sources":["../src/types.ts","../src/builder/parser.ts","../src/builder/builder.ts","../src/builder/static-generator.ts","../src/renderer/navigation.ts","../src/renderer/content.ts","../src/renderer/components.ts"],"names":["z","readFileSync","readdirSync","join","statSync","existsSync","relative","mkdirSync","dirname","writeFileSync","marked","NavigationTree"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from \"zod\";\n\nexport const DocItemTypeSchema = z.enum([\"section\", \"page\"]);\n\nexport const DocItemSchema = z.object({\n name: z.string().min(1),\n type: DocItemTypeSchema,\n label: z.string().min(1),\n collapsed: z.boolean().optional(),\n url: z.string().url().optional()\n});\n\nexport const IndexSchema = z.object({\n items: z.array(DocItemSchema)\n});\n\nexport type DocItem = z.infer<typeof DocItemSchema>;\nexport type IndexFile = z.infer<typeof IndexSchema>;\n\n// Navigation tree types\nexport interface NavigationItem extends DocItem {\n path?: string;\n items?: NavigationItem[];\n parent?: NavigationItem | undefined;\n}\n\nexport interface NavigationTree {\n items: NavigationItem[];\n}\n\n// Build output types\nexport interface BuildOptions {\n appOutput?: string;\n websiteOutput?: string;\n staticOutput?: string;\n includeContent?: boolean;\n autoDiscover?: boolean; // Enable auto-discovery when .index.json is missing\n}\n\nexport interface BuildResult {\n navigation: NavigationTree;\n content?: Record<string, string> | undefined;\n pages?: Array<{\n path: string;\n content: string;\n html: string;\n }> | undefined;\n}\n\n// Content processing types\nexport interface ContentProcessor {\n process(content: string): string;\n}\n\nexport interface ContentProcessorOptional {\n process(content: string): string;\n}\n\nexport interface StaticPageOptions {\n title?: string;\n baseUrl?: string;\n css?: string;\n js?: string;\n}\n\nexport interface StaticSiteResult {\n pages: Array<{\n path: string;\n content: string;\n html: string;\n }>;\n index?: {\n path: string;\n html: string;\n } | undefined;\n}","import { readFileSync, readdirSync, statSync, existsSync } from 'fs';\nimport { join, relative } from 'path';\nimport { IndexSchema, NavigationItem, NavigationTree, DocItem } from '../types.js';\n\nexport class ParserError extends Error {\n constructor(message: string, public filePath?: string) {\n super(message);\n this.name = 'ParserError';\n }\n}\n\nexport interface ParseOptions {\n basePath?: string;\n validateFiles?: boolean;\n autoDiscover?: boolean;\n}\n\nexport function parseIndexFile(filePath: string): DocItem[] {\n try {\n const content = readFileSync(filePath, 'utf-8');\n const data = JSON.parse(content);\n const result = IndexSchema.safeParse(data);\n \n if (!result.success) {\n throw new ParserError(\n `Invalid .index.json format: ${result.error.message}`,\n filePath\n );\n }\n \n return result.data.items;\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n \n if (error instanceof SyntaxError) {\n throw new ParserError(\n `Invalid JSON in .index.json: ${error.message}`,\n filePath\n );\n }\n \n throw new ParserError(\n `Failed to read .index.json: ${error instanceof Error ? error.message : 'Unknown error'}`,\n filePath\n );\n }\n}\n\n/**\n * Auto-discovers content in a directory when no .index.json is present\n */\nfunction autoDiscoverContent(dirPath: string): DocItem[] {\n try {\n const items = readdirSync(dirPath, { withFileTypes: true });\n const discoveredItems: DocItem[] = [];\n \n // Filter and sort items\n const markdownFiles = items\n .filter(item => item.isFile() && item.name.endsWith('.md'))\n .map(item => ({ ...item, name: item.name.slice(0, -3) })) // Remove .md extension\n .sort((a, b) => a.name.localeCompare(b.name));\n \n const directories = items\n .filter(item => item.isDirectory() && !item.name.startsWith('.'))\n .sort((a, b) => a.name.localeCompare(b.name));\n \n // Add markdown files as pages, but exclude index.md and README.md\n for (const file of markdownFiles) {\n // Skip index.md and README.md as they will be handled as section roots\n if (file.name.toLowerCase() !== 'index' && file.name.toLowerCase() !== 'readme') {\n discoveredItems.push({\n name: file.name,\n type: 'page',\n label: generateLabel(file.name)\n });\n }\n }\n \n // Add directories as sections\n for (const dir of directories) {\n discoveredItems.push({\n name: dir.name,\n type: 'section',\n label: generateLabel(dir.name)\n });\n }\n \n return discoveredItems;\n } catch (error) {\n throw new ParserError(\n `Failed to auto-discover content in directory: ${error instanceof Error ? error.message : 'Unknown error'}`,\n dirPath\n );\n }\n}\n\n/**\n * Generates a human-readable label from a filename/directory name\n */\nfunction generateLabel(name: string): string {\n return name\n .replace(/[-_]/g, ' ') // Replace hyphens and underscores with spaces\n .replace(/\\b\\w/g, l => l.toUpperCase()) // Capitalize first letter of each word\n .trim();\n}\n\n/**\n * Checks if a directory has an .index.json file\n */\nfunction hasIndexFile(dirPath: string): boolean {\n try {\n const indexPath = join(dirPath, '.index.json');\n return statSync(indexPath).isFile();\n } catch {\n return false;\n }\n}\n\nexport function buildNavigationTree(\n contentPath: string,\n options: ParseOptions = {}\n): NavigationTree {\n const { basePath = contentPath, validateFiles = true, autoDiscover = true } = options;\n \n try {\n if (!statSync(contentPath).isDirectory()) {\n throw new ParserError(`Content path is not a directory: ${contentPath}`);\n }\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(`Content path does not exist: ${contentPath}`, contentPath);\n }\n \n const rootIndexPath = join(contentPath, '.index.json');\n let rootItems: DocItem[];\n \n // Check if .index.json exists\n const hasIndex = hasIndexFile(contentPath);\n \n if (hasIndex) {\n // Use existing .index.json\n try {\n rootItems = parseIndexFile(rootIndexPath);\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(`Root .index.json not found: ${rootIndexPath}`, rootIndexPath);\n }\n } else if (autoDiscover) {\n // Auto-discover content\n rootItems = autoDiscoverContent(contentPath);\n } else {\n // Auto-discovery disabled and no .index.json\n throw new ParserError(`Root .index.json not found: ${rootIndexPath}`, rootIndexPath);\n }\n \n const navigationItems: NavigationItem[] = [];\n \n for (const item of rootItems) {\n const navigationItem = processNavigationItem(\n item,\n contentPath,\n basePath,\n validateFiles,\n autoDiscover\n );\n navigationItems.push(navigationItem);\n }\n \n return { items: navigationItems };\n}\n\nfunction processNavigationItem(\n item: DocItem,\n currentPath: string,\n basePath: string,\n validateFiles: boolean,\n autoDiscover: boolean\n): NavigationItem {\n const navigationItem: NavigationItem = { ...item };\n \n if (item.type === 'section') {\n const sectionPath = join(currentPath, item.name);\n \n // Check if section has .index.json\n if (hasIndexFile(sectionPath)) {\n // Use existing .index.json\n const sectionIndexPath = join(sectionPath, '.index.json');\n \n if (validateFiles) {\n try {\n if (!statSync(sectionIndexPath).isFile()) {\n throw new ParserError(\n `Section .index.json not found: ${sectionIndexPath}`,\n sectionIndexPath\n );\n }\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(\n `Section .index.json not found: ${sectionIndexPath}`,\n sectionIndexPath\n );\n }\n }\n \n try {\n const sectionItems = parseIndexFile(sectionIndexPath);\n navigationItem.items = sectionItems.map(subItem =>\n processNavigationItem(subItem, sectionPath, basePath, validateFiles, autoDiscover)\n );\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(\n `Failed to process section ${item.name}: ${error instanceof Error ? error.message : 'Unknown error'}`,\n sectionIndexPath\n );\n }\n } else if (autoDiscover) {\n // Auto-discover section content\n try {\n const sectionItems = autoDiscoverContent(sectionPath);\n navigationItem.items = sectionItems.map(subItem =>\n processNavigationItem(subItem, sectionPath, basePath, validateFiles, autoDiscover)\n );\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(\n `Failed to auto-discover section ${item.name}: ${error instanceof Error ? error.message : 'Unknown error'}`,\n sectionPath\n );\n }\n } else {\n // Auto-discovery disabled and no .index.json\n const sectionIndexPath = join(sectionPath, '.index.json');\n throw new ParserError(\n `Section .index.json not found: ${sectionIndexPath}`,\n sectionIndexPath\n );\n }\n \n // Check for index.md or README.md as section root (for all sections)\n const indexPath = join(sectionPath, 'index.md');\n const readmePath = join(sectionPath, 'README.md');\n const readmeLowerPath = join(sectionPath, 'readme.md');\n \n let sectionRootPath: string | undefined;\n \n // Priority: index.md > README.md > readme.md\n if (validateFiles) {\n // When validating files, check each one individually\n try {\n if (statSync(indexPath).isFile()) {\n sectionRootPath = indexPath;\n }\n } catch {\n // index.md doesn't exist, try README.md\n try {\n if (statSync(readmePath).isFile()) {\n sectionRootPath = readmePath;\n }\n } catch {\n // README.md doesn't exist, try readme.md\n try {\n if (statSync(readmeLowerPath).isFile()) {\n sectionRootPath = readmeLowerPath;\n }\n } catch {\n // readme.md doesn't exist, continue without section root\n }\n }\n }\n } else {\n // If not validating files, just check if they exist\n if (existsSync(indexPath)) {\n sectionRootPath = indexPath;\n } else if (existsSync(readmePath)) {\n sectionRootPath = readmePath;\n } else if (existsSync(readmeLowerPath)) {\n sectionRootPath = readmeLowerPath;\n }\n }\n \n\n \n if (sectionRootPath) {\n navigationItem.path = relative(basePath, sectionRootPath);\n }\n } else if (item.type === 'page') {\n const pagePath = join(currentPath, `${item.name}.md`);\n const relativePath = relative(basePath, pagePath);\n \n if (validateFiles) {\n try {\n if (!statSync(pagePath).isFile()) {\n throw new ParserError(\n `Page markdown file not found: ${pagePath}`,\n pagePath\n );\n }\n } catch (error) {\n if (error instanceof ParserError) {\n throw error;\n }\n throw new ParserError(\n `Page markdown file not found: ${pagePath}`,\n pagePath\n );\n }\n }\n \n navigationItem.path = relativePath;\n }\n \n return navigationItem;\n}\n\nexport function validateContentStructure(contentPath: string, options: ParseOptions = {}): void {\n const { autoDiscover = true } = options;\n const errors: string[] = [];\n \n function validateDirectory(dirPath: string, depth = 0): void {\n if (depth > 10) {\n errors.push(`Maximum directory depth exceeded: ${dirPath}`);\n return;\n }\n \n const indexPath = join(dirPath, '.index.json');\n \n // Check if .index.json exists\n if (hasIndexFile(dirPath)) {\n // Validate using .index.json\n try {\n const items = parseIndexFile(indexPath);\n \n for (const item of items) {\n if (item.type === 'section') {\n const sectionPath = join(dirPath, item.name);\n \n try {\n if (!statSync(sectionPath).isDirectory()) {\n errors.push(`Section directory not found: ${sectionPath}`);\n continue;\n }\n } catch (error) {\n errors.push(`Section directory not found: ${sectionPath}`);\n continue;\n }\n \n validateDirectory(sectionPath, depth + 1);\n } else if (item.type === 'page') {\n const pagePath = join(dirPath, `${item.name}.md`);\n \n try {\n if (!statSync(pagePath).isFile()) {\n errors.push(`Page markdown file not found: ${pagePath}`);\n }\n } catch (error) {\n errors.push(`Page markdown file not found: ${pagePath}`);\n }\n }\n }\n } catch (error) {\n errors.push(`Failed to parse ${indexPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n } else if (autoDiscover) {\n // Validate auto-discovered content\n try {\n const items = autoDiscoverContent(dirPath);\n \n for (const item of items) {\n if (item.type === 'section') {\n const sectionPath = join(dirPath, item.name);\n \n try {\n if (!statSync(sectionPath).isDirectory()) {\n errors.push(`Section directory not found: ${sectionPath}`);\n continue;\n }\n } catch (error) {\n errors.push(`Section directory not found: ${sectionPath}`);\n continue;\n }\n \n validateDirectory(sectionPath, depth + 1);\n } else if (item.type === 'page') {\n const pagePath = join(dirPath, `${item.name}.md`);\n \n try {\n if (!statSync(pagePath).isFile()) {\n errors.push(`Page markdown file not found: ${pagePath}`);\n }\n } catch (error) {\n errors.push(`Page markdown file not found: ${pagePath}`);\n }\n }\n }\n } catch (error) {\n errors.push(`Failed to auto-discover content in ${dirPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n } else {\n // Auto-discovery disabled and no .index.json\n errors.push(`Missing .index.json: ${indexPath}`);\n return;\n }\n }\n \n validateDirectory(contentPath);\n \n if (errors.length > 0) {\n throw new ParserError(\n `Content structure validation failed:\\n${errors.join('\\n')}`,\n contentPath\n );\n }\n}","import { readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { marked } from 'marked';\nimport { buildNavigationTree, validateContentStructure } from './parser.js';\nimport { BuildOptions, BuildResult, NavigationTree, ContentProcessor } from '../types.js';\n\nexport class BuilderError extends Error {\n constructor(message: string, public filePath?: string) {\n super(message);\n this.name = 'BuilderError';\n }\n}\n\nexport interface ContentBundle {\n [path: string]: string;\n}\n\nexport async function buildPages(\n contentPath: string,\n options: BuildOptions = {}\n): Promise<BuildResult> {\n try {\n // Validate content structure\n validateContentStructure(contentPath, { autoDiscover: options.autoDiscover });\n \n // Build navigation tree\n const navigation = buildNavigationTree(contentPath, { autoDiscover: options.autoDiscover });\n \n // Bundle markdown content if requested\n let content: ContentBundle | undefined;\n if (options.includeContent !== false) {\n content = bundleMarkdownContent(navigation, contentPath);\n }\n \n // Write outputs\n if (options.appOutput) {\n await writeAppOutput(navigation, content, options.appOutput);\n }\n \n if (options.websiteOutput) {\n await writeWebsiteOutput(navigation, options.websiteOutput);\n }\n \n return {\n navigation,\n content: content || undefined\n };\n } catch (error) {\n if (error instanceof BuilderError) {\n throw error;\n }\n \n throw new BuilderError(\n `Build failed: ${error instanceof Error ? error.message : 'Unknown error'}`,\n contentPath\n );\n }\n}\n\nfunction bundleMarkdownContent(\n navigation: NavigationTree,\n basePath: string\n): ContentBundle {\n const content: ContentBundle = {};\n \n function processItems(items: NavigationTree['items']): void {\n for (const item of items) {\n if (item.type === 'page' && item.path) {\n const filePath = join(basePath, item.path);\n try {\n const markdownContent = readFileSync(filePath, 'utf-8');\n content[item.path] = markdownContent;\n } catch (error) {\n throw new BuilderError(\n `Failed to read markdown file: ${error instanceof Error ? error.message : 'Unknown error'}`,\n filePath\n );\n }\n } else if (item.items) {\n processItems(item.items);\n }\n }\n }\n \n processItems(navigation.items);\n return content;\n}\n\nasync function writeAppOutput(\n navigation: NavigationTree,\n content: ContentBundle | undefined,\n outputPath: string\n): Promise<void> {\n try {\n mkdirSync(dirname(outputPath), { recursive: true });\n \n // Write navigation\n const navigationPath = join(outputPath, 'navigation.json');\n writeFileSync(navigationPath, JSON.stringify(navigation, null, 2));\n \n // Write content if available\n if (content) {\n const contentPath = join(outputPath, 'content.json');\n writeFileSync(contentPath, JSON.stringify(content, null, 2));\n }\n } catch (error) {\n throw new BuilderError(\n `Failed to write app output: ${error instanceof Error ? error.message : 'Unknown error'}`,\n outputPath\n );\n }\n}\n\nasync function writeWebsiteOutput(\n navigation: NavigationTree,\n outputPath: string\n): Promise<void> {\n try {\n mkdirSync(dirname(outputPath), { recursive: true });\n \n const navigationPath = join(outputPath, 'navigation.json');\n writeFileSync(navigationPath, JSON.stringify(navigation, null, 2));\n } catch (error) {\n throw new BuilderError(\n `Failed to write website output: ${error instanceof Error ? error.message : 'Unknown error'}`,\n outputPath\n );\n }\n}\n\nexport function processMarkdown(\n content: string,\n processor?: ContentProcessor\n): string {\n if (processor) {\n content = processor.process(content);\n }\n \n return marked(content);\n}\n\nexport function generateStaticPages(\n navigation: NavigationTree,\n basePath: string,\n options: {\n processor?: ContentProcessor;\n pageOptions?: {\n title?: string;\n baseUrl?: string;\n css?: string;\n js?: string;\n };\n } = {}\n): Array<{\n path: string;\n content: string;\n html: string;\n}> {\n const pages: Array<{\n path: string;\n content: string;\n html: string;\n }> = [];\n \n function processItems(items: NavigationTree['items']): void {\n for (const item of items) {\n if (item.type === 'page' && item.path) {\n const filePath = join(basePath, item.path);\n try {\n const markdownContent = readFileSync(filePath, 'utf-8');\n const htmlContent = processMarkdown(markdownContent, options.processor);\n const fullHtml = generateHTMLPage(htmlContent, item.label, options.pageOptions);\n \n pages.push({\n path: item.path.replace(/\\.md$/, '.html'),\n content: markdownContent,\n html: fullHtml\n });\n } catch (error) {\n throw new BuilderError(\n `Failed to process page ${item.path}: ${error instanceof Error ? error.message : 'Unknown error'}`,\n filePath\n );\n }\n } else if (item.items) {\n processItems(item.items);\n }\n }\n }\n \n processItems(navigation.items);\n return pages;\n}\n\nfunction generateHTMLPage(\n content: string,\n title: string,\n options: {\n title?: string;\n baseUrl?: string;\n css?: string;\n js?: string;\n } = {}\n): string {\n const pageTitle = options.title || title;\n const baseUrl = options.baseUrl || '';\n const css = options.css || '';\n const js = options.js || '';\n \n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${pageTitle}</title>\n <base href=\"${baseUrl}\">\n ${css ? `<style>${css}</style>` : ''}\n</head>\n<body>\n <div class=\"content\">\n ${content}\n </div>\n ${js ? `<script>${js}</script>` : ''}\n</body>\n</html>`;\n}","import { writeFileSync, mkdirSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { buildNavigationTree, validateContentStructure } from './parser.js';\nimport { generateStaticPages, processMarkdown } from './builder.js';\nimport { ContentProcessor, StaticPageOptions } from '../types.js';\n\nexport class StaticGeneratorError extends Error {\n constructor(message: string, public filePath?: string) {\n super(message);\n this.name = 'StaticGeneratorError';\n }\n}\n\nexport interface StaticSiteOptions {\n title?: string;\n baseUrl?: string;\n css?: string;\n js?: string;\n processor?: ContentProcessor;\n includeIndex?: boolean;\n indexTitle?: string;\n autoDiscover?: boolean;\n}\n\nexport interface StaticSiteResult {\n pages: Array<{\n path: string;\n content: string;\n html: string;\n }>;\n index?: {\n path: string;\n html: string;\n };\n}\n\nexport async function generateStaticSite(\n contentPath: string,\n outputPath: string,\n options: StaticSiteOptions = {}\n): Promise<StaticSiteResult> {\n try {\n // Validate content structure\n validateContentStructure(contentPath, { autoDiscover: options.autoDiscove