GEO Wiki Pro User Manual
Complete user manual for GEO Wiki Pro, covering every page and feature with button-level detail
# GEO Wiki Pro User Manual
This document provides a detailed guide to all features and operations in GEO Wiki Pro, covering every button and interactive element.
---
## 1. Homepage
The homepage consists of multiple configurable blocks that administrators can freely arrange.
### 1.1 Top Navigation Bar (NavHeader)
The navigation bar is visible on all pages.

| Button/Element | Location | Action |
|----------------|----------|--------|
| **Logo / Site Name** | Left | Click to return to homepage |
| **Hamburger Menu** ☰ | Left (mobile) | Toggle mobile sidebar |
| **Search Bar** | Center | Opens global search modal (shortcut: `Cmd+K` / `Ctrl+K`) |
| **Theme Toggle** 🌙/☀️ | Right | Switch between light and dark mode |
| **Language Selector** | Right | Opens dropdown: 中文 / EN / 日本語 |
| **Login/Admin Button** | Right | Shows "Login" when unauthenticated (goes to /login); shows "Admin" when authenticated (goes to /admin) |
### 1.2 Hero Block
The Hero block is the banner area at the top of the homepage.

| Element | Description |
|---------|-------------|
| **Logo Icon** | Site logo, configurable visibility |
| **Main Title** | Site headline, e.g., "Welcome to GEO Wiki Pro" |
| **Subtitle** | Site description |
| **"Quick Start" Card** | Click "View Product Overview" to jump to the getting-started doc |
| **"Let AI Understand" Card** | Click "Copy" to copy `/api/v1/llms.txt` content to clipboard for ChatGPT/Claude/DeepSeek |
### 1.3 Categories Block

| Element | Action |
|---------|--------|
| **Category Cards** | Click to navigate to the category page, showing category name and article count |
### 1.4 Featured / Recent Documents Block

| Element | Action |
|---------|--------|
| **Document Cards** | Click to navigate to the document detail page |
| **"View All Documents" Button** | Navigates to the full document list page |
### 1.5 FAQ Block

| Element | Action |
|---------|--------|
| **FAQ Q&A Cards** | Click to jump to the FAQ document at the corresponding anchor |
| **"View All FAQ" Button** | Navigates to the full FAQ page |
### 1.6 Back to Top Button

| Element | Action |
|---------|--------|
| **Back to Top Button** ↑ | Appears after scrolling 400px; click to smoothly scroll to page top |
---
## 2. Global Search (SearchModal)
Open by clicking the search bar or pressing `Cmd+K` / `Ctrl+K`.

| Element | Action |
|---------|--------|
| **Search Input** | Type keywords for real-time fuzzy search of document titles and content |
| **ESC Badge** | Press `Esc` to close the search modal |
| **Category Quick Links** | Click to navigate directly to the category page |
| **Search Result Items** | Click to navigate to the document detail page |
| **↑ ↓ Keyboard Navigation** | Use arrow keys to move through results |
| **Enter to Open** | Press `Enter` to open the currently selected result |
| **Backdrop Click** | Click outside the search box to close |
| **No Results Message** | Shows "No documents found for [query]. Try other keywords or browse categories" |
---
## 3. Login Page
Access `/login` to reach the login page.

### 3.1 Login Form
| Button/Element | Action |
|----------------|--------|
| **Username Input** | Enter admin or editor username |
| **Password Input** | Enter password |
| **"Forgot Password?" Link** | Opens info modal: "Please contact the system administrator to reset your password" |
| **"Login" Button** | Submits the form; on success, shows captcha popup |
| **"Contact Admin" Link** | Opens info modal: "Please contact the system administrator to create a new account" |
### 3.2 Captcha Popup
After login validation, a captcha appears.

| Button/Element | Action |
|----------------|--------|
| **Emoji Grid (3×3)** | Click the correct emoji to verify; auto-submits on click |
| **"Cancel" Button** | Closes captcha and resets login state |
| **Error Message** | Shows when verification fails |
### 3.3 First Login
When logging in with the default password, a password change reminder appears.

| Button/Element | Action |
|----------------|--------|
| **Current Password** | Enter the default password |
| **New Password** | Enter new password (min 8 chars, with uppercase, lowercase, and numbers) |
| **Confirm New Password** | Re-enter new password |
| **"Confirm" Button** | Submits the change |
| **"Skip" Button** | Skips for now; can be changed later from the user menu |
---
## 4. Document Detail Page (DocPage)
Access `/docs/:slug` to view a single document.

### 4.1 Breadcrumb Navigation
| Element | Action |
|---------|--------|
| **Home Icon** | Return to homepage |
| **Category Name** | Navigate to the category page |
| **Document Title** | Current location (not clickable) |
### 4.2 Document Content Area
| Element | Action |
|---------|--------|
| **Document Title** | Displayed |
| **Document Description** | Shown as summary |
| **Notice Banner** | If the category has a notice, a colored banner appears at the top |
| **Markdown Content** | Rendered document body |
| **Code Block "Copy" Button** | Copies code block content to clipboard |
| **Images** | Click to view fullscreen (Lightbox) |
| **YouTube/Bilibili Embeds** | Embedded video players |
| **3D Model Embeds** | Embedded 3D model viewers |
| **Tag Links** | Click to navigate to the corresponding category |
| **Author Info** | Shows avatar initial, name, and date of last editor |
| **"Last Updated"** | Shows document last update time |
### 4.3 Right Sidebar TOC (SubSidebar)

| Button/Element | Action |
|----------------|--------|
| **Category Name** | Shows current category |
| **Collapse/Expand Button** | Collapses or expands the sidebar |
| **Document Link List** | Shows all documents in the current category; click to switch |
| **TOC Toggle Arrow** | Expands or collapses the heading table of contents |
| **TOC Heading Links** | Click to scroll to the corresponding heading in the document |
### 4.4 Document Feedback
Feedback functionality at the bottom of documents.

| Button/Element | Action |
|----------------|--------|
| **"Helpful" Button** | Click to mark the document as helpful; can add comments and email |
| **"Needs Improvement" Button** | Click to mark the document as needing improvement; can add suggestions |
| **Message Textarea** | Enter feedback content (optional) |
| **Email Input** | Enter email (optional) |
| **"Skip" Button** | Cancel feedback |
| **"Submit Feedback" Button** | Submit feedback to the admin panel |
| **Thank You Message** | Shows confirmation after submission |
### 4.5 Guestbook
If the admin has enabled guestbook functionality, it appears at the bottom of documents.

| Button/Element | Action |
|----------------|--------|
| **"Leave Comment" Button** | Expands the comment form |
| **Nickname Input** | Enter comment nickname |
| **Email Input** | Enter email (optional) |
| **Comment Textarea** | Enter comment content |
| **"Skip" Button** | Collapses the comment form |
| **"Submit Comment" Button** | Submits the comment (requires admin approval before display) |
| **Existing Comments List** | Shows approved comments (avatar, nickname, date, content) |
---
## 5. Category Page (CategoryPage)
Access `/category/:slug` to view documents in a category.

| Element | Action |
|---------|--------|
| **Breadcrumb: Home** | Return to homepage |
| **Breadcrumb: Category Name** | Current location |
| **Category Name** | Displayed as main heading |
| **Category Description** | Displayed as subheading |
| **Document List** | Click document title to navigate to detail page |
---
## 6. All Documents List Page (DocsListPage)
Access `/docs` to view all documents.

| Element | Action |
|---------|--------|
| **Page Title "All Documents"** | Displayed |
| **Document Count** | Shows "N documents total" |
| **Featured Badge** | Featured documents show "Featured" tag |
| **Document List Items** | Click to navigate to document detail page |
---
## 7. Admin Panel
Admins and editors can access the panel after login. Go to `/admin`.
### 7.1 Admin Sidebar
The sidebar contains the following navigation items:
| Navigation Item | Path | Description |
|-----------------|------|-------------|
| **Dashboard** | `/admin/dashboard` | Overview stats and quick actions |
| **Documents** | `/admin/docs` | Document CRUD |
| **Categories** | `/admin/categories` | Category management and sorting |
| **Tags** | `/admin/tags` | Tag management |
| **Feedback** | `/admin/feedback` | User feedback and guestbook management |
| **Media** | `/admin/media` | File upload and management |
| **GEO Dashboard** | `/admin/geo` | GEO optimization scoring |
| **AI Crawler Analytics** | `/admin/crawlers` | AI crawler visit statistics |
| **GEO Report** | `/admin/geo-report` | GEO tracking report |
| **Homepage Layout** | `/admin/homepage-layout` | Homepage block arrangement |
| **Users** | `/admin/users` | Admin/editor account management |
| **Settings** | `/admin/settings` | Global site configuration |
### 7.2 Admin Top Bar

| Button/Element | Action |
|----------------|--------|
| **Hamburger Menu** (mobile) | Toggle sidebar |
| **Notification Bell** 🔔 | Opens notification dropdown |
| **User Menu** | Opens dropdown menu |
| ↳ **Settings** | Navigate to settings page |
| ↳ **Change Password** | Opens password change modal |
| ↳ **Logout** | Logs out, returns to homepage |
---
## 8. Dashboard (AdminOverview)
Path: `/admin/dashboard`

### 8.1 Stat Cards
| Card | Action |
|------|--------|
| **Documents** | Click to navigate to document management |
| **Categories** | Click to navigate to category management |
| **Tags** | Click to navigate to tag management |
| **Feedback** | Click to navigate to feedback management |
### 8.2 Quick Actions
| Button | Action |
|--------|--------|
| **"New Document"** | Navigate to the document editor |
| **"GEO Dashboard"** | Navigate to the GEO dashboard |
| **"Settings"** | Navigate to the settings page |
---
## 9. Document Management (AdminDashboard)
Path: `/admin/docs`

### 9.1 Toolbar
| Button/Element | Action |
|----------------|--------|
| **"+ New Document" Button** | Navigate to the document editor |
| **Search Input** | Filter documents by title or slug |
| **Category Filter Dropdown** | Filter by category |
| **Document Count** | Shows "N total, M shown" |
| **Sort Tip** | After selecting a category: "Drag the ⋮⋮ icon to reorder" |
### 9.2 Document Table
| Column | Description |
|--------|-------------|
| **Sort** ⋮⋮ | Drag icon to reorder (requires category selection) |
| **Title** | Document title |
| **Category** | Document category |
| **Actions** | Edit and delete buttons |
### 9.3 Row Actions
| Button | Action |
|--------|--------|
| **Edit** ✏️ | Navigate to the document editor |
| **Delete** 🗑️ | Shows confirmation dialog, then deletes |
---
## 10. Document Editor (AdminEditor)
Path: `/admin/docs/new` or `/admin/docs/edit/:slug`
This is the core content creation page with rich editing and AI optimization tools.

### 10.1 Top Action Bar
| Button/Element | Action |
|----------------|--------|
| **Page Title** | "New Document" or "Edit Document" |
| **"Show Preview" / "Hide Preview" Button** | Toggle right preview panel visibility |
| **"Version History" Button** | Expand version history dropdown to view and restore versions |
| **"Translate" Dropdown** | Expand translation options |
| ↳ **Translate to English** | Translate title, description, content to English and save |
| ↳ **Translate to Chinese** | Translate to Chinese and save |
| ↳ **Translate to Japanese** | Translate to Japanese and save |
| **"AI Analyze" Button** | Run GEO optimization analysis on content; shows score and suggestions |
| **"Cancel" Button** | Return to document management |
| **"Save Document" Button** | Save the current document |
### 10.2 Meta Information Form
| Field | Description |
|-------|-------------|
| **Title** (required) | Document title |
| **Slug** (required) | URL identifier (not editable in edit mode) |
| **Category** (dropdown) | Document category |
| **Author** | Document author |
| **Tags** | Press `Enter` or comma to add; click × to remove |
| **Description** | Short summary for GEO/SEO; "AI Analyze" button can auto-generate |
| **Notice** | Optional notice text displayed at the top of the article |
### 10.3 Rich Text Editor (RichEditor)
CodeMirror-based editor with full Markdown support.

Toolbar buttons from left to right:
| Button | Icon | Function | Syntax |
|--------|------|----------|--------|
| **Bold** | **B** | Bold selected text | `**text**` |
| **Italic** | *I* | Italicize selected text | `*text*` |
| **Heading 1** | H1 | Insert heading 1 | `# Title` |
| **Heading 2** | H2 | Insert heading 2 | `## Title` |
| **Heading 3** | H3 | Insert heading 3 | `### Title` |
| **Divider** | — | Insert horizontal rule | `---` |
| **Code Block** | </> | Insert code block (27 languages) | ` ``` lang ` |
| **Tabbed Code Block** | 📑 | Insert multi-language tabbed code block | `:::code-tab` |
| **Quote** | ❝ | Insert blockquote | `> quote` |
| **Unordered List** | • | Insert unordered list | `- item` |
| **Ordered List** | 1. | Insert ordered list | `1. item` |
| **Task List** | ☐ | Insert task list | `- [ ] task` |
| **Link** | 🔗 | Insert hyperlink | `[text](URL)` |
| **Image** | 🖼️ | Insert image | `` |
| **Table** | 📊 | Insert Markdown table skeleton | `\| col1 \| col2 \|` |
| **Grid Layout** | ⊞ | Choose 2-column or 3-column layout | `:::grid[2]` |
| **Video** | 🎬 | Embed YouTube/Bilibili video | `:::video[Title](url):::` |
| **3D Model** | 🧊 | Embed 3D model viewer | `:::model[Title](url):::` |
| **Media Upload** | ⬆️ | Open media upload panel | — |
**Additional Editor Features:**
- Drag and drop files onto the editor to upload directly
- Editor cursor position syncs with preview scroll
- Code block insertion opens a language picker (JavaScript, Python, Go, Rust, etc.)
### 10.4 Preview Panel
| Element | Description |
|---------|-------------|
| **Live Preview** | Right panel renders Markdown content in real-time |
### 10.5 AI GEO Optimization Panel
Opens when clicking the "AI Analyze" button.

| Element | Description |
|---------|-------------|
| **GEO Score** | Current document's GEO optimization score |
| **Suggestion List** | Specific improvement suggestions (description, tags, content length, etc.) |
| **Detected Topics** | AI-identified document topics |
| **"Expand" / "Collapse" Button** | Toggle suggestion details |
| **"Insert Optimization" Button** | Append suggestions to document end |
| **"Replace Full Text" Button** | Replace entire content with AI-optimized version |
### 10.6 Translation Feature
Click "Translate" to translate the document to another language.

| Element | Description |
|---------|-------------|
| **Translation Status Badges** | Shows status per language: NEW / ✅ (exists) |
| **Missing Translation Warning** | "Missing English/Chinese version, recommend generating" |
| **Translation Confirmation** | "Will translate title, description, notice, and all content. Continue?" |
### 10.7 Version History

| Element | Action |
|---------|--------|
| **Version List** | Shows historical version numbers |
| **"Restore" Button** | Click to restore to a specific version; confirms: "Restore to vX?" |
### 10.8 Bottom Actions
| Button | Action |
|--------|--------|
| **"Cancel" Button** | Return to document management (prompts if unsaved changes) |
| **"Save Document" Button** | Saves document; category and tags auto-sync to other language versions |
---
## 11. Category Management (AdminCategories)
Path: `/admin/categories`

### 11.1 Add Category
| Button/Element | Action |
|----------------|--------|
| **"Add New Category" Button** | Toggle add form visibility |
| **Category Name (Chinese)** | Enter Chinese category name |
| **Category Name (English)** | Enter English category name |
| **Category Name (Japanese)** | Enter Japanese category name |
| **Category Slug** | Auto-generated from Chinese name; editable |
| **Icon Picker** 📷 | Opens icon selection modal |
| **Chinese Description** | Optional Chinese description |
| **English Description** | Optional English description |
| **Japanese Description** | Optional Japanese description |
| **"+ Add Category" Button** | Submit to create category |
### 11.2 Category Table
| Column | Description |
|--------|-------------|
| **Drag Sort** ⋮⋮ | Drag to reorder categories |
| **Icon** | Category icon |
| **Name** | Category name |
| **Slug** | Category slug |
| **Doc Count** | Number of documents in this category |
| **Actions** | Edit and delete buttons |
### 11.3 Row Actions
| Button | Action |
|--------|--------|
| **Edit** | Enter inline edit mode; click "Save" when done |
| **Delete** | Opens delete confirmation modal |
### 11.4 Icon Picker Modal

| Element | Action |
|---------|--------|
| **23 Icon Buttons** | Click to select category icon |
| **Close Button** | Close the modal |
---
## 12. Tag Management (AdminTags)
Path: `/admin/tags`
| Button/Element | Action |
|----------------|--------|
| **"Add Tag" Button** | Toggle add form |
| **Tag Name Input** | Enter tag name |
| **Tag Slug Input** | Enter tag slug |
| **"Save" Button** | Create tag |
| **"Cancel" Button** | Hide form |
| **Tag List** | Shows all tags with name and slug |
| **"Delete" Button** | Opens confirmation: "Are you sure? This cannot be undone." |
---
## 13. Feedback Management (AdminFeedback)
Path: `/admin/feedback`

### 13.1 Tab Switching
| Button | Action |
|--------|--------|
| **Feedback Tab** | Switch to user feedback view |
| **Guestbook Tab** | Switch to guestbook management view |
| **"Refresh" Button** | Reload all data |
| **Guestbook Toggle** | Enable/disable guestbook functionality |
### 13.2 Feedback View
| Sub-tabs | Description |
|----------|-------------|
| **Improvements** | Shows feedback marked "Needs Improvement" |
| **Helpful** | Shows feedback marked "Helpful" |
Each feedback card:
| Button/Element | Action |
|----------------|--------|
| **Expand/Collapse** | View feedback details |
| **"Promote to Comment" Button** | Publish helpful feedback as a guestbook comment (requires admin approval) |
### 13.3 Guestbook Management
| Button/Element | Action |
|----------------|--------|
| **Comment List** | Shows all comments with avatar, nickname, date, content |
| **Status Badge** | "Approved" / "Pending" |
| **"Approve" Button** | Approve comment for public display |
| **"Pending" Button** | Set comment back to pending status |
| **"Delete" Button** | Delete comment (with confirmation) |
| **"From Feedback" Badge** | Shows if the comment originated from feedback |
---
## 14. Media Management (AdminMedia)
Path: `/admin/media`

### 14.1 Upload Area
| Button/Element | Action |
|----------------|--------|
| **"Upload File" Button** | Opens file picker |
| **Drag-and-Drop Zone** | Drop files here to upload |
| **"Browse Files" Link** | Opens file picker |
| **Save Directory Input** | Set subdirectory for uploads |
| **Upload Progress** | Shows uploading status |
**Supported Formats**: JPG, PNG, GIF, WebP, max 50MB
### 14.2 File Table
| Column | Description |
|--------|-------------|
| **File** | Filename and URL |
| **Type** | MIME type |
| **Size** | File size |
| **Date** | Upload date |
| **Actions** | Copy URL and delete buttons |
### 14.3 File Actions
| Button | Action |
|--------|--------|
| **Image Thumbnail** | Click to open fullscreen preview (Lightbox) |
| **"Copy URL" Button** | Copy file URL to clipboard |
| **"Delete" Button** | Opens confirmation: "Confirm delete XX? This cannot be undone." |
---
## 15. GEO Dashboard (GeoDashboard)
Path: `/admin/geo`

### 15.1 Overview Cards
| Card | Description |
|------|-------------|
| **Average GEO Score** | Average optimization score across all documents |
| **Total Documents** | Document count and category count |
| **llms.txt** | Status: Active/Disabled, indexed document count |
| **Sitemap** | Status: Active/Disabled, URL count |
### 15.2 Charts
| Chart | Description |
|-------|-------------|
| **Score Distribution** | Bar chart showing document count per score range |
| **Content Coverage** | Progress bars showing description/tags/long content percentages |
### 15.3 Top Opportunities
Lists the most common failing checks for priority improvement.
### 15.4 Category Breakdown Table
| Column | Description |
|--------|-------------|
| **Category** | Category name |
| **Documents** | Number of docs |
| **Average Score** | Category average GEO score |
| **Score Bar** | Visual progress bar |
### 15.5 Document Score Table
| Column | Description |
|--------|-------------|
| **Document** | Document title |
| **Score** | GEO score |
| **Description/Tags/Content** | Check results |
| **Checks** | Passed check count |
| **Edit** | Click to go to editor |
**Score Levels**: Excellent / Good / Fair / Needs Work
---
## 16. AI Crawler Analytics (CrawlerDashboard)
Path: `/admin/crawlers`

### 16.1 Overview Cards
| Card | Description |
|------|-------------|
| **Total Visits** | Total AI crawler visit count |
| **Unique Crawlers** | Number of distinct crawlers |
| **Top Crawler** | Most active crawler name |
### 16.2 Daily Activity
30-day bar chart showing daily AI crawler visit trends.
### 16.3 Crawler Breakdown
| Column | Description |
|--------|-------------|
| **Crawler** | User-Agent name |
| **Provider** | AI provider badge (ChatGPT, Claude, etc.) |
| **Visits** | Total visit count |
| **Progress Bar** | Proportion of total visits |
| **Last Seen** | Most recent visit time |
### 16.4 Top Paths
URL paths ranked by visit count.
### 16.5 Recent Visits
| Column | Description |
|--------|-------------|
| **Crawler** | Visiting crawler name |
| **Provider** | AI provider |
| **Path** | URL path visited |
| **Time** | Visit timestamp |
---
## 17. GEO Report (GeoReport)
Path: `/admin/geo-report`

### 17.1 Visit Metrics
| Metric | Description |
|--------|-------------|
| **Total Visits** | Total AI crawler visit count |
| **Daily Average** | Average daily visits |
| **Trend Change** | Up/Down/Flat + percentage |
### 17.2 AI Model Coverage
Grid showing each AI model's coverage status:
| Model Info | Description |
|------------|-------------|
| **Model Name** | ChatGPT, Claude, Gemini, etc. |
| **Coverage Status** | "Indexed" / "Not Indexed" badge |
| **Visits** | Visit count from this model |
| **Last Seen** | Most recent visit time |
### 17.3 Top Content
List of most-cited documents ranked by citation count.
### 17.4 Optimization Tips
| Tip | Description |
|-----|-------------|
| **Submit site to AI model indexing services** | Help AI models discover your site |
| **Ensure /llms.txt is accessible** | AI crawlers use this file to understand your site |
| **Add JSON-LD structured data** | Improve AI comprehension |
| **Write FAQ and use cases** | Increase probability of AI citation |
---
## 18. Homepage Layout Management (AdminHomepageLayout)
Path: `/admin/homepage-layout`

### 18.1 Block List
| Button/Element | Action |
|----------------|--------|
| **Drag Sort** ⋮⋮ | Drag to reorder blocks |
| **Show/Hide Toggle** | Toggle block visibility on the frontend |
| **Delete Button** 🗑️ | Remove the block |
| **Expand/Collapse** ▼ | Show/hide detailed block configuration |
### 18.2 Bottom Actions
| Button | Action |
|--------|--------|
| **"+ Add Block" Button** | Choose block type and add (Hero/Categories/Featured/Recent/FAQ) |
| **"Reset to Default" Button** | Restore default layout (requires confirmation) |
| **"💾 Save Layout" Button** | Save current layout configuration |
### 18.3 Hero Block Config
| Setting | Description |
|---------|-------------|
| **Main Title (zh/en)** | Customize Hero area title |
| **Subtitle (zh/en)** | Customize Hero area subtitle |
| **Show Logo** | Toggle logo visibility |
| **Quick Start Button** | Toggle quick start card |
| **AI Prompt Button** | Toggle AI prompt card |
| **Card Ratio** | Slider to adjust card width ratio |
| **Card Order** | Switch left/right order of cards |
| **Quick Start Config** | Title, description, button text, link |
| **AI Prompt Config** | Title, description, button text, background color |
### 18.4 Categories Block Config
| Setting | Description |
|---------|-------------|
| **Columns** | 1/2/3/4 column layout |
| **Show Count** | Toggle article count display |
| **Title** | Custom block title |
| **Selected Categories** | Check categories to display (all if none selected) |
### 18.5 Featured / Recent Config
| Setting | Description |
|---------|-------------|
| **Block Title** | Custom title |
| **Columns** | 1/2/3/4 column layout |
| **Limit** | Maximum documents to display |
| **View All** | Toggle "View All" link visibility |
| **Featured Docs** (Featured only) | Manually select documents to display |
### 18.6 FAQ Config
| Setting | Description |
|---------|-------------|
| **Block Title** | Custom title |
| **Display Limit** | Maximum FAQ items |
| **Source Document** | Document slug for FAQ data |
| **View All** | Toggle "View All" link |
| **Q&A List** | Manually add Q&A pairs (empty = read from source doc) |
| **"+ Add Q&A" Button** | Add a new Q&A pair |
---
## 19. User Management (AdminUsers)
Path: `/admin/users`

### 19.1 Add User
| Button/Element | Action |
|----------------|--------|
| **"New User" Button** | Toggle add form |
| **Username Input** | Enter new username |
| **Password Input** | Enter initial password |
| **Role Dropdown** | Select role: Admin / Editor |
| **Password Hint** | "Min 8 chars with uppercase, lowercase, and numbers. Users must change password on first login." |
| **"Create" Button** | Create user |
### 19.2 User Table
| Column | Description |
|--------|-------------|
| **Username** | Login name |
| **Role** | Admin / Editor |
| **Created** | Account creation date |
| **Password Status** | "Pending" if using default password |
| **Actions** | Edit, reset password, delete buttons |
### 19.3 User Actions
| Button | Action |
|--------|--------|
| **"Edit" Button** | Enter inline edit mode; modify role |
| **Role Dropdown** | Select new role |
| **"Save" Button** | Save role change |
| **"Cancel" Button** | Cancel editing |
| **"Reset Password" Button** | Opens reset password modal |
| **"Delete" Button** | Opens delete confirmation modal |
**Note**: The current logged-in user cannot delete their own account or change their own role. The current user's row shows a "Current" badge.
### 19.4 Reset Password Modal

| Element | Description |
|---------|-------------|
| **Confirmation** | "Reset password for user XX?" |
| **"Reset Password" Button** | Generates a random temporary password |
| **New Password Display** | Shows generated password (copyable) |
| **Warning** | "Clicking reset will generate a random temporary password." |
| **"Close" Button** | Close modal |
---
## 20. Settings Page (AdminSettings)
Path: `/admin/settings`
Settings are divided into 6 sections, each saved independently.

### 20.1 Branding
| Setting | Description |
|---------|-------------|
| **Site Name** | Enter site name |
| **Site Description** | Enter site description |
| **Logo** | Shows current logo preview |
| **"Upload Logo" Button** | Select image file to upload |
| **Primary Color** | Color picker + text input with live preview |
| **Reset Color Button** | Restore default #2563EB |
| **Default Language** | Dropdown: Chinese / English / Japanese |
| **Footer Text** | Enter footer display text |
| **"Save Settings" Button** | Save branding settings |
### 20.2 Homepage
| Setting | Description |
|---------|-------------|
| **Hero Title (zh/en)** | Customize homepage Hero area title |
| **Hero Subtitle (zh/en)** | Customize homepage Hero area subtitle |
| **"Save Settings" Button** | Save homepage settings |
### 20.3 General
| Setting | Description |
|---------|-------------|
| **Site URL** | Enter full site URL |
| **Supported AI Models** | Enter AI model list |
| **"Save Settings" Button** | Save general settings |
### 20.4 AI & GEO
| Setting | Description |
|---------|-------------|
| **LLM Provider** | Dropdown: OpenAI / Anthropic / DeepSeek / MiniMax / Custom |
| **API Key** | Enter LLM API key |
| **Model** | Enter model name |
| **Base URL** | Enter API base URL |
| **"Test Connection" Button** | Test LLM API connectivity |
| **Auto GEO** | Toggle: auto-generate JSON-LD for all documents |
| **Enable /llms.txt** | Toggle: generate AI-friendly document index |
| **Enable Sitemap** | Toggle: auto-generate sitemap.xml |
| **Enable Guestbook** | Toggle: show guestbook on document pages |
| **"Rebuild GEO Data" Button** | Rebuild all GEO structured data |
| **"Save Settings" Button** | Save AI & GEO settings |
**Note**: Can also be configured via environment variables `LLM_PROVIDER` / `LLM_API_KEY`.
### 20.5 LLMs.txt Configuration
| Setting | Description |
|---------|-------------|
| **Contact Email** | Enter contact email |
| **Contact URL** | Enter contact page link (optional) |
| **Show API Docs** | Toggle: include API info in llms.txt |
| **Exclude Categories** | Enter category slugs to exclude (comma-separated) |
| **Exclude Documents** | Enter document slugs to exclude (comma-separated) |
| **"Preview llms.txt" Link** | Opens llms.txt preview in new tab |
| **"Save Settings" Button** | Save LLMs.txt configuration |
### 20.6 Advanced
| Setting | Description |
|---------|-------------|
| **Custom Head HTML** | Enter HTML to inject into all pages' `<head>` (for analytics, custom meta tags, etc.) |
| **"AI Optimize" Button** | Use AI to automatically optimize the Head HTML |
| **"Save Settings" Button** | Save advanced settings |
---
## 21. Media Upload Panel (ImageUploader)
Opens when clicking the "Media Upload" button in the document editor.

### 21.1 Upload Area
| Button/Element | Action |
|----------------|--------|
| **Drag-and-Drop Zone** | Drop files here to upload |
| **Save Directory** | Set subdirectory for uploads |
| **"Click to Select File"** | Opens file picker |
| **Upload Progress** | Shows uploading status |
| **Error Messages** | File too large (>50MB) / Upload failed / Network error |
### 21.2 Uploaded Files
| Button/Element | Action |
|----------------|--------|
| **File Thumbnails** | Shows uploaded files |
| **"Click to Insert" Button** | Inserts file URL into editor |
| **"Collapse" Button** | Folds the file list |
### 21.3 Media Action Buttons
| Button | Action |
|--------|--------|
| **Insert Image** | Insert Markdown image syntax |
| **Embed YouTube** | Insert YouTube embed code |
| **Embed Bilibili** | Insert Bilibili embed code |
| **Embed 3D Model** | Insert 3D model viewer code |
| **Browse Existing Files** | Open existing file browser |
| **Insert File** | Insert file reference |
---
## 22. 404 Page
Displayed when accessing a non-existent path.

| Element | Description |
|---------|-------------|
| **404 Heading** | Large display |
| **Description** | "Page not found. Please return to the homepage to continue browsing." |
| **"Back to Homepage" Button** | Click to return to homepage |
---
## Appendix A: Keyboard Shortcuts
| Shortcut | Function |
|----------|----------|
| `Cmd+K` / `Ctrl+K` | Open global search |
| `Esc` | Close search modal / popups |
| `↑` `↓` | Navigate through search results |
| `Enter` | Open selected search result |
## Appendix B: Role Permissions
| Feature | Admin | Editor |
|---------|-------|--------|
| View documents | ✅ | ✅ |
| Create/edit documents | ✅ | ✅ |
| Delete documents | ✅ | ❌ |
| Manage categories | ✅ | ❌ |
| Manage tags | ✅ | ❌ |
| Manage feedback & guestbook | ✅ | ❌ |
| Manage media | ✅ | ✅ |
| Manage users | ✅ | ❌ |
| Modify settings | ✅ | ❌ |
| GEO Dashboard | ✅ | ❌ |
| Homepage layout | ✅ | ❌ |
## Appendix C: Supported Languages
| Language | Code | Notes |
|----------|------|-------|
| 中文 | `zh` | Default language |
| English | `en` | English |
| 日本語 | `jp` | Japanese |
## Appendix D: File Upload Limits
| Item | Limit |
|------|-------|
| Max file size | 50MB |
| Supported formats | JPG, PNG, GIF, WebP, PDF, DOC, DOCX, STEP, STP |
| Storage location | `public/media/` |