mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-11 20:08:57 +00:00
update: dashbaord siteconfig and Ask AI documentation alignment
This commit is contained in:
@@ -1232,6 +1232,56 @@ Requires `rightSidebar: true` and `siteConfig.aiChat.enabledOnContent: true`.
|
||||
|
||||
---
|
||||
|
||||
## Ask AI Configuration
|
||||
|
||||
Enable an Ask AI header chat button that opens a modal for asking questions about site content. Uses RAG (Retrieval Augmented Generation) with streaming responses.
|
||||
|
||||
### In fork-config.json
|
||||
|
||||
```json
|
||||
{
|
||||
"askAI": {
|
||||
"enabled": true,
|
||||
"defaultModel": "claude-sonnet-4-20250514",
|
||||
"models": [
|
||||
{ "id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4", "provider": "anthropic" },
|
||||
{ "id": "gpt-4o", "name": "GPT-4o", "provider": "openai" }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Manual Configuration
|
||||
|
||||
In `src/config/siteConfig.ts`:
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true, // Enable Ask AI header button
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
**Requirements:**
|
||||
|
||||
- `semanticSearch.enabled: true` for content retrieval
|
||||
- `OPENAI_API_KEY` in Convex for embeddings
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM (depending on selected model)
|
||||
|
||||
**Features:**
|
||||
|
||||
- Header button opens a chat modal
|
||||
- Retrieves relevant content using semantic search
|
||||
- Streaming responses with markdown rendering
|
||||
- Multi-model selector (Claude Sonnet 4, GPT-4o)
|
||||
- Conversation history within session
|
||||
|
||||
---
|
||||
|
||||
## Posts Display Configuration
|
||||
|
||||
Control where posts appear and limit homepage display.
|
||||
|
||||
9
TASK.md
9
TASK.md
@@ -4,10 +4,17 @@
|
||||
|
||||
## Current Status
|
||||
|
||||
v2.16.1 ready. Docs layout scrollbar hiding for cleaner UI.
|
||||
v2.16.2 ready. Ask AI configuration documentation alignment.
|
||||
|
||||
## Completed
|
||||
|
||||
- [x] Ask AI documentation alignment (v2.16.2)
|
||||
- [x] Added `askAI` config to `fork-config.json.example`
|
||||
- [x] Added Ask AI Configuration section to `FORK_CONFIG.md`
|
||||
- [x] Added Ask AI (header chat) section to `docs-dashboard.md`
|
||||
- [x] Added Ask AI (header chat) section to `how-to-use-the-markdown-sync-dashboard.md`
|
||||
- [x] Updated changelog.md, task.md, changelog-page.md
|
||||
|
||||
- [x] Docs layout scrollbar hiding (v2.16.1)
|
||||
- [x] Hidden scrollbars on left sidebar, right sidebar, and main docs content
|
||||
- [x] Added body:has(.docs-layout) to prevent page-level scrolling
|
||||
|
||||
15
changelog.md
15
changelog.md
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [2.16.2] - 2026-01-10
|
||||
|
||||
### Added
|
||||
|
||||
- Ask AI configuration documentation alignment
|
||||
- Added `askAI` config to `fork-config.json.example` with enabled, defaultModel, and models fields
|
||||
- Added Ask AI Configuration section to `FORK_CONFIG.md` with fork-config.json and manual configuration examples
|
||||
- Added Ask AI (header chat) section to `docs-dashboard.md` with configuration and requirements
|
||||
- Added Ask AI (header chat) section to `how-to-use-the-markdown-sync-dashboard.md` with step-by-step setup
|
||||
|
||||
### Technical
|
||||
|
||||
- `fork-config.json.example` now includes askAI config matching siteConfig.ts structure
|
||||
- All dashboard documentation now includes Ask AI feature alongside AI Agent and AI Dashboard sections
|
||||
|
||||
## [2.16.1] - 2026-01-10
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -276,6 +276,17 @@ The JSON config file supports additional options:
|
||||
},
|
||||
"imageLightbox": {
|
||||
"enabled": true
|
||||
},
|
||||
"semanticSearch": {
|
||||
"enabled": false
|
||||
},
|
||||
"askAI": {
|
||||
"enabled": false,
|
||||
"defaultModel": "claude-sonnet-4-20250514",
|
||||
"models": [
|
||||
{ "id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4", "provider": "anthropic" },
|
||||
{ "id": "gpt-4o", "name": "GPT-4o", "provider": "openai" }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -306,6 +317,10 @@ These are optional. If you omit them, the script uses sensible defaults. See `fo
|
||||
|
||||
**Image Lightbox**: Click-to-magnify functionality for images in blog posts and pages. Images open in full-screen overlay when clicked.
|
||||
|
||||
**Semantic Search**: AI-powered search using OpenAI embeddings. Requires `OPENAI_API_KEY` in Convex. When disabled, only keyword search is available.
|
||||
|
||||
**Ask AI**: Header chat button for RAG-based Q&A about your site content. Requires `semanticSearch.enabled: true` and `OPENAI_API_KEY` for embeddings, plus `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM.
|
||||
|
||||
For detailed configuration instructions, see `FORK_CONFIG.md`.
|
||||
|
||||
## After configuring
|
||||
|
||||
@@ -97,6 +97,39 @@ The dashboard includes a dedicated AI chat section separate from the Write page.
|
||||
|
||||
The AI Agent uses Anthropic Claude API and requires `ANTHROPIC_API_KEY` in your Convex environment variables. Chat history is stored per-session in Convex.
|
||||
|
||||
## Ask AI (header chat)
|
||||
|
||||
The Ask AI feature adds a chat button to your site header that lets visitors ask questions about your content. It uses RAG (Retrieval Augmented Generation) to find relevant content and provide AI-powered answers.
|
||||
|
||||
**To enable Ask AI:**
|
||||
|
||||
1. Enable semantic search in `siteConfig.ts`:
|
||||
|
||||
```typescript
|
||||
semanticSearch: {
|
||||
enabled: true,
|
||||
},
|
||||
```
|
||||
|
||||
2. Configure Ask AI:
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true,
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
3. Set required environment variables in Convex:
|
||||
- `OPENAI_API_KEY` for embeddings
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM
|
||||
|
||||
When enabled, a chat button appears in the header. Clicking it opens a modal where visitors can ask questions. The AI retrieves relevant content from your posts and pages, then generates answers with source citations.
|
||||
|
||||
## Newsletter management
|
||||
|
||||

|
||||
|
||||
@@ -11,6 +11,30 @@ docsSectionOrder: 4
|
||||
|
||||
All notable changes to this project.
|
||||
|
||||
## v2.16.2
|
||||
|
||||
Released January 10, 2026
|
||||
|
||||
**Ask AI documentation alignment**
|
||||
|
||||
Aligned Ask AI configuration across all config and documentation files. The Ask AI feature (header chat with RAG) is now properly documented alongside AI Agent and AI Dashboard features.
|
||||
|
||||
**Changes:**
|
||||
|
||||
- Added `askAI` config to `fork-config.json.example`
|
||||
- Added Ask AI Configuration section to `FORK_CONFIG.md`
|
||||
- Added Ask AI (header chat) section to `docs-dashboard.md`
|
||||
- Added Ask AI (header chat) section to `how-to-use-the-markdown-sync-dashboard.md`
|
||||
|
||||
**Files changed:**
|
||||
|
||||
- `fork-config.json.example` - Added askAI config block
|
||||
- `FORK_CONFIG.md` - Added Ask AI Configuration section
|
||||
- `content/pages/docs-dashboard.md` - Added Ask AI documentation
|
||||
- `content/blog/how-to-use-the-markdown-sync-dashboard.md` - Added Ask AI setup guide
|
||||
|
||||
---
|
||||
|
||||
## v2.16.1
|
||||
|
||||
Released January 10, 2026
|
||||
|
||||
@@ -442,3 +442,39 @@ The `npm run sync` command only syncs markdown text content. Images are deployed
|
||||
|
||||
- **Homepage logo:** Configured via `logo` in `siteConfig.ts`. Set to `null` to hide.
|
||||
- **Inner page logo:** Configured via `innerPageLogo` in `siteConfig.ts`. Shows on blog page, posts, and static pages. Desktop: top left corner. Mobile: top right corner (smaller). Set `enabled: false` to hide on inner pages while keeping homepage logo.
|
||||
|
||||
### AI features
|
||||
|
||||
Configure AI-powered features in `src/config/siteConfig.ts`:
|
||||
|
||||
**Semantic Search:**
|
||||
|
||||
```typescript
|
||||
semanticSearch: {
|
||||
enabled: true, // Requires OPENAI_API_KEY in Convex
|
||||
},
|
||||
```
|
||||
|
||||
When enabled, users can toggle between keyword and semantic search in the search modal (Cmd+K). Semantic search finds content by meaning using OpenAI embeddings.
|
||||
|
||||
**Ask AI (header chat):**
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true,
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
Adds a chat button to the header for RAG-based Q&A about your content. Requirements:
|
||||
- `semanticSearch.enabled: true`
|
||||
- `OPENAI_API_KEY` in Convex (for embeddings)
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` (for the LLM)
|
||||
|
||||
**AI Dashboard:**
|
||||
|
||||
The Dashboard includes a multi-model AI Agent with chat and image generation. See [Dashboard](/docs-dashboard) for configuration details.
|
||||
|
||||
@@ -165,6 +165,40 @@ The Dashboard includes a dedicated AI Agent section with tab-based UI for Chat a
|
||||
|
||||
**Note:** Only configure the API keys for models you want to use. If a key is not set, users see a helpful setup message when they try to use that model.
|
||||
|
||||
### Ask AI (header chat)
|
||||
|
||||
The Ask AI feature adds a chat button to the site header. Visitors can ask questions about your content and get AI-powered answers with source citations.
|
||||
|
||||
**Configuration:**
|
||||
|
||||
In `src/config/siteConfig.ts`:
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true, // Enable Ask AI header button
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
**Requirements:**
|
||||
|
||||
- `semanticSearch.enabled: true` for content retrieval
|
||||
- `OPENAI_API_KEY` in Convex for embeddings
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM
|
||||
|
||||
**Features:**
|
||||
|
||||
- Header button opens a chat modal
|
||||
- Uses RAG (Retrieval Augmented Generation) to find relevant content
|
||||
- Streaming responses with markdown rendering
|
||||
- Multi-model selector
|
||||
- Source citations linking to relevant posts/pages
|
||||
- Conversation history within session
|
||||
|
||||
### Newsletter management
|
||||
|
||||
All Newsletter Admin features integrated into the Dashboard:
|
||||
|
||||
@@ -186,6 +186,14 @@
|
||||
"twitter": {
|
||||
"site": "@yourhandle",
|
||||
"creator": "@yourhandle"
|
||||
},
|
||||
"askAI": {
|
||||
"enabled": false,
|
||||
"defaultModel": "claude-sonnet-4-20250514",
|
||||
"models": [
|
||||
{ "id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4", "provider": "anthropic" },
|
||||
{ "id": "gpt-4o", "name": "GPT-4o", "provider": "openai" }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,30 @@ Date: 2026-01-10
|
||||
|
||||
All notable changes to this project.
|
||||
|
||||
## v2.16.2
|
||||
|
||||
Released January 10, 2026
|
||||
|
||||
**Ask AI documentation alignment**
|
||||
|
||||
Aligned Ask AI configuration across all config and documentation files. The Ask AI feature (header chat with RAG) is now properly documented alongside AI Agent and AI Dashboard features.
|
||||
|
||||
**Changes:**
|
||||
|
||||
- Added `askAI` config to `fork-config.json.example`
|
||||
- Added Ask AI Configuration section to `FORK_CONFIG.md`
|
||||
- Added Ask AI (header chat) section to `docs-dashboard.md`
|
||||
- Added Ask AI (header chat) section to `how-to-use-the-markdown-sync-dashboard.md`
|
||||
|
||||
**Files changed:**
|
||||
|
||||
- `fork-config.json.example` - Added askAI config block
|
||||
- `FORK_CONFIG.md` - Added Ask AI Configuration section
|
||||
- `content/pages/docs-dashboard.md` - Added Ask AI documentation
|
||||
- `content/blog/how-to-use-the-markdown-sync-dashboard.md` - Added Ask AI setup guide
|
||||
|
||||
---
|
||||
|
||||
## v2.16.1
|
||||
|
||||
Released January 10, 2026
|
||||
|
||||
@@ -433,4 +433,40 @@ The `npm run sync` command only syncs markdown text content. Images are deployed
|
||||
**Logo options:**
|
||||
|
||||
- **Homepage logo:** Configured via `logo` in `siteConfig.ts`. Set to `null` to hide.
|
||||
- **Inner page logo:** Configured via `innerPageLogo` in `siteConfig.ts`. Shows on blog page, posts, and static pages. Desktop: top left corner. Mobile: top right corner (smaller). Set `enabled: false` to hide on inner pages while keeping homepage logo.
|
||||
- **Inner page logo:** Configured via `innerPageLogo` in `siteConfig.ts`. Shows on blog page, posts, and static pages. Desktop: top left corner. Mobile: top right corner (smaller). Set `enabled: false` to hide on inner pages while keeping homepage logo.
|
||||
|
||||
### AI features
|
||||
|
||||
Configure AI-powered features in `src/config/siteConfig.ts`:
|
||||
|
||||
**Semantic Search:**
|
||||
|
||||
```typescript
|
||||
semanticSearch: {
|
||||
enabled: true, // Requires OPENAI_API_KEY in Convex
|
||||
},
|
||||
```
|
||||
|
||||
When enabled, users can toggle between keyword and semantic search in the search modal (Cmd+K). Semantic search finds content by meaning using OpenAI embeddings.
|
||||
|
||||
**Ask AI (header chat):**
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true,
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
Adds a chat button to the header for RAG-based Q&A about your content. Requirements:
|
||||
- `semanticSearch.enabled: true`
|
||||
- `OPENAI_API_KEY` in Convex (for embeddings)
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` (for the LLM)
|
||||
|
||||
**AI Dashboard:**
|
||||
|
||||
The Dashboard includes a multi-model AI Agent with chat and image generation. See [Dashboard](/docs-dashboard) for configuration details.
|
||||
@@ -157,6 +157,40 @@ The Dashboard includes a dedicated AI Agent section with tab-based UI for Chat a
|
||||
|
||||
**Note:** Only configure the API keys for models you want to use. If a key is not set, users see a helpful setup message when they try to use that model.
|
||||
|
||||
### Ask AI (header chat)
|
||||
|
||||
The Ask AI feature adds a chat button to the site header. Visitors can ask questions about your content and get AI-powered answers with source citations.
|
||||
|
||||
**Configuration:**
|
||||
|
||||
In `src/config/siteConfig.ts`:
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true, // Enable Ask AI header button
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
**Requirements:**
|
||||
|
||||
- `semanticSearch.enabled: true` for content retrieval
|
||||
- `OPENAI_API_KEY` in Convex for embeddings
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM
|
||||
|
||||
**Features:**
|
||||
|
||||
- Header button opens a chat modal
|
||||
- Uses RAG (Retrieval Augmented Generation) to find relevant content
|
||||
- Streaming responses with markdown rendering
|
||||
- Multi-model selector
|
||||
- Source citations linking to relevant posts/pages
|
||||
- Conversation history within session
|
||||
|
||||
### Newsletter management
|
||||
|
||||
All Newsletter Admin features integrated into the Dashboard:
|
||||
|
||||
@@ -266,6 +266,17 @@ The JSON config file supports additional options:
|
||||
},
|
||||
"imageLightbox": {
|
||||
"enabled": true
|
||||
},
|
||||
"semanticSearch": {
|
||||
"enabled": false
|
||||
},
|
||||
"askAI": {
|
||||
"enabled": false,
|
||||
"defaultModel": "claude-sonnet-4-20250514",
|
||||
"models": [
|
||||
{ "id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4", "provider": "anthropic" },
|
||||
{ "id": "gpt-4o", "name": "GPT-4o", "provider": "openai" }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -296,6 +307,10 @@ These are optional. If you omit them, the script uses sensible defaults. See `fo
|
||||
|
||||
**Image Lightbox**: Click-to-magnify functionality for images in blog posts and pages. Images open in full-screen overlay when clicked.
|
||||
|
||||
**Semantic Search**: AI-powered search using OpenAI embeddings. Requires `OPENAI_API_KEY` in Convex. When disabled, only keyword search is available.
|
||||
|
||||
**Ask AI**: Header chat button for RAG-based Q&A about your site content. Requires `semanticSearch.enabled: true` and `OPENAI_API_KEY` for embeddings, plus `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM.
|
||||
|
||||
For detailed configuration instructions, see `FORK_CONFIG.md`.
|
||||
|
||||
## After configuring
|
||||
|
||||
@@ -88,6 +88,39 @@ The dashboard includes a dedicated AI chat section separate from the Write page.
|
||||
|
||||
The AI Agent uses Anthropic Claude API and requires `ANTHROPIC_API_KEY` in your Convex environment variables. Chat history is stored per-session in Convex.
|
||||
|
||||
## Ask AI (header chat)
|
||||
|
||||
The Ask AI feature adds a chat button to your site header that lets visitors ask questions about your content. It uses RAG (Retrieval Augmented Generation) to find relevant content and provide AI-powered answers.
|
||||
|
||||
**To enable Ask AI:**
|
||||
|
||||
1. Enable semantic search in `siteConfig.ts`:
|
||||
|
||||
```typescript
|
||||
semanticSearch: {
|
||||
enabled: true,
|
||||
},
|
||||
```
|
||||
|
||||
2. Configure Ask AI:
|
||||
|
||||
```typescript
|
||||
askAI: {
|
||||
enabled: true,
|
||||
defaultModel: "claude-sonnet-4-20250514",
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4", provider: "anthropic" },
|
||||
{ id: "gpt-4o", name: "GPT-4o", provider: "openai" },
|
||||
],
|
||||
},
|
||||
```
|
||||
|
||||
3. Set required environment variables in Convex:
|
||||
- `OPENAI_API_KEY` for embeddings
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` for the LLM
|
||||
|
||||
When enabled, a chat button appears in the header. Clicking it opens a modal where visitors can ask questions. The AI retrieves relevant content from your posts and pages, then generates answers with source citations.
|
||||
|
||||
## Newsletter management
|
||||
|
||||

|
||||
|
||||
@@ -250,7 +250,7 @@ export interface TwitterConfig {
|
||||
creator?: string; // @username for default content creator
|
||||
}
|
||||
|
||||
// Ask AI configuration (Kapa-style header chat)
|
||||
// Ask AI configuration (header chat for RAG-based Q&A)
|
||||
// Enables a header button that opens a chat modal for asking questions about site content
|
||||
// Uses RAG (Retrieval Augmented Generation) with streaming responses
|
||||
export interface AskAIConfig {
|
||||
@@ -792,7 +792,7 @@ export const siteConfig: SiteConfig = {
|
||||
enabled: true, // Set to true to enable semantic search (requires OPENAI_API_KEY)
|
||||
},
|
||||
|
||||
// Ask AI configuration (Kapa-style header chat)
|
||||
// Ask AI configuration (header chat for RAG-based Q&A)
|
||||
// Requires semanticSearch.enabled: true for content retrieval
|
||||
// Requires OPENAI_API_KEY (for embeddings) and ANTHROPIC_API_KEY or OPENAI_API_KEY (for LLM)
|
||||
askAI: {
|
||||
|
||||
@@ -13602,7 +13602,7 @@ body:has(.docs-layout) {
|
||||
|
||||
/* ===========================================
|
||||
Ask AI Modal Styles
|
||||
Kapa-style header chat for RAG-based Q&A
|
||||
Header chat for RAG-based Q&A
|
||||
=========================================== */
|
||||
|
||||
/* Ask AI Button in header */
|
||||
|
||||
Reference in New Issue
Block a user