Files
wiki/fork-config.json.example
Wayne Sutton 3c9feb071b feat: Make semantic search optional and disabled by default
- Add SemanticSearchConfig interface with enabled toggle to siteConfig.ts
- Default semantic search to disabled (enabled: false) to avoid blocking forks without OPENAI_API_KEY
- Update SearchModal.tsx to conditionally show mode toggle based on config
- Update sync-posts.ts to skip embedding generation when disabled
- Add semantic search toggle to Dashboard config generator
- Update FORK_CONFIG.md with Semantic Search Configuration section
- Update fork-config.json.example with semanticSearch option
- Update docs-semantic-search.md with enable/disable instructions
- Update changelog and documentation

When disabled (default):
- Search modal shows only keyword search (no mode toggle)
- Embedding generation skipped during sync
- No OpenAI API key required

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:22:50 -08:00

188 lines
4.7 KiB
JSON

{
"siteName": "Your Site Name",
"siteTitle": "Your Tagline",
"siteDescription": "A one-sentence description of your site.",
"siteUrl": "https://yoursite.netlify.app",
"siteDomain": "yoursite.netlify.app",
"githubUsername": "yourusername",
"githubRepo": "your-repo-name",
"contactEmail": "you@example.com",
"creator": {
"name": "Your Name",
"twitter": "https://x.com/yourhandle",
"linkedin": "https://www.linkedin.com/in/yourprofile/",
"github": "https://github.com/yourusername"
},
"bio": "Write markdown, sync from the terminal. Your content is instantly available to browsers, LLMs, and AI agents.",
"gitHubRepoConfig": {
"owner": "yourusername",
"repo": "your-repo-name",
"branch": "main",
"contentPath": "public/raw"
},
"logoGallery": {
"enabled": true,
"title": "Built with",
"scrolling": false,
"maxItems": 4
},
"gitHubContributions": {
"enabled": true,
"showYearNavigation": true,
"linkToProfile": true,
"title": "GitHub Activity"
},
"visitorMap": {
"enabled": true,
"title": "Live Visitors"
},
"blogPage": {
"enabled": true,
"showInNav": true,
"title": "Blog",
"description": "All posts from the blog, sorted by date.",
"order": 2
},
"postsDisplay": {
"showOnHome": true,
"showOnBlogPage": true,
"homePostsLimit": 5,
"homePostsReadMore": {
"enabled": true,
"text": "Read more blog posts",
"link": "/blog"
}
},
"featuredViewMode": "cards",
"showViewToggle": true,
"theme": "tan",
"fontFamily": "serif",
"homepage": {
"type": "default",
"slug": null,
"originalHomeRoute": "/home"
},
"rightSidebar": {
"enabled": true,
"minWidth": 1135
},
"footer": {
"enabled": true,
"showOnHomepage": true,
"showOnPosts": true,
"showOnPages": true,
"showOnBlogPage": true,
"defaultContent": "Built with [Convex](https://convex.dev) for real-time sync and deployed on [Netlify](https://netlify.com)."
},
"socialFooter": {
"enabled": true,
"showOnHomepage": true,
"showOnPosts": true,
"showOnPages": true,
"showOnBlogPage": true,
"showInHeader": true,
"socialLinks": [
{
"platform": "github",
"url": "https://github.com/yourusername/your-repo-name"
},
{
"platform": "twitter",
"url": "https://x.com/yourhandle"
},
{
"platform": "linkedin",
"url": "https://www.linkedin.com/in/yourprofile/"
}
],
"copyright": {
"siteName": "Your Site Name",
"showYear": true
}
},
"aiChat": {
"enabledOnWritePage": false,
"enabledOnContent": false
},
"aiDashboard": {
"enableImageGeneration": true,
"defaultTextModel": "claude-sonnet-4-20250514",
"textModels": [
{ "id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4", "provider": "anthropic" },
{ "id": "gpt-4o", "name": "GPT-4o", "provider": "openai" },
{ "id": "gemini-2.0-flash", "name": "Gemini 2.0 Flash", "provider": "google" }
],
"imageModels": [
{ "id": "gemini-2.0-flash-exp-image-generation", "name": "Nano Banana", "provider": "google" },
{ "id": "imagen-3.0-generate-002", "name": "Nano Banana Pro", "provider": "google" }
]
},
"newsletter": {
"enabled": false,
"agentmail": {
"inbox": "newsletter@mail.agentmail.to"
},
"signup": {
"home": {
"enabled": false,
"position": "above-footer",
"title": "Stay Updated",
"description": "Get new posts delivered to your inbox."
},
"blogPage": {
"enabled": false,
"position": "above-footer",
"title": "Subscribe",
"description": "Get notified when new posts are published."
},
"posts": {
"enabled": false,
"position": "below-content",
"title": "Enjoyed this post?",
"description": "Subscribe for more updates."
}
}
},
"contactForm": {
"enabled": false,
"title": "Get in Touch",
"description": "Send us a message and we'll get back to you."
},
"newsletterAdmin": {
"enabled": false,
"showInNav": false
},
"newsletterNotifications": {
"enabled": false,
"newSubscriberAlert": false,
"weeklyStatsSummary": false
},
"weeklyDigest": {
"enabled": false,
"dayOfWeek": 0,
"subject": "Weekly Digest"
},
"statsPage": {
"enabled": true,
"showInNav": true
},
"mcpServer": {
"enabled": true,
"endpoint": "/mcp",
"publicRateLimit": 50,
"authenticatedRateLimit": 1000,
"requireAuth": false
},
"imageLightbox": {
"enabled": true
},
"dashboard": {
"enabled": true,
"requireAuth": false
},
"semanticSearch": {
"enabled": false
}
}