Skip to content

Commit 35f1fe1

Browse files
Copilothotlong
andcommitted
Fix remaining broken links and add lychee.toml configuration
Addressed code review feedback and @hotlong's request: 1. Fixed API reference link in plugin-markdown.mdx: - Changed /docs/reference/api → /docs/reference/api/core 2. Fixed all remaining links in docs/index.md to include /docs/ prefix: - CLI Guide, Installation Guide - All "Getting Started" section links - All "Components" section links - All "Core Concepts", "Plugins", "Reference" links - All "Architecture", "Ecosystem", "Support" links - All "Community" section links - All CTA buttons at the end 3. Created lychee.toml configuration: - Maps Next.js routes (/docs/*) to filesystem paths (docs/*.mdx) - Handles both .md and .mdx extensions - Handles index files (/docs/components/ → docs/components/index.mdx) - Configures excludes for localhost, example.com, social media 4. Updated check-links.yml workflow: - Now loads lychee.toml configuration - Scans docs/**/*.{md,mdx} and README.md - Removed content/**/*.{md,mdx} (doesn't exist at root) Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 609631b commit 35f1fe1

File tree

4 files changed

+92
-39
lines changed

4 files changed

+92
-39
lines changed

.github/workflows/check-links.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@ jobs:
1616
- name: Check links with Lychee
1717
uses: lycheeverse/lychee-action@v1
1818
with:
19-
# Scan all markdown files in content directories and README
19+
# Scan all markdown files in docs directory and README
2020
args: |
2121
--verbose
2222
--no-progress
23-
--exclude-path .git
24-
--exclude-path node_modules
25-
'content/**/*.md'
26-
'content/**/*.mdx'
23+
--config lychee.toml
2724
'docs/**/*.md'
2825
'docs/**/*.mdx'
2926
'README.md'

docs/index.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ cd my-admin
145145
objectui dev
146146
```
147147

148-
[**📖 CLI Guide →**](/guide/cli/getting-started)
148+
[**📖 CLI Guide →**](/docs/guide/cli/getting-started)
149149

150150
### Option B: React Library
151151

@@ -173,66 +173,66 @@ function App() {
173173
}
174174
```
175175

176-
[**📖 Installation Guide →**](/guide/installation)
176+
[**📖 Installation Guide →**](/docs/guide/installation)
177177

178178
---
179179

180180
## Documentation Structure
181181

182182
### 📘 Getting Started
183183
Start here if you're new to ObjectUI
184-
- [Quick Start](/guide/quick-start)
185-
- [Installation](/guide/installation)
186-
- [Showcase](/guide/showcase)
184+
- [Quick Start](/docs/guide/quick-start)
185+
- [Installation](/docs/guide/installation)
186+
- [Showcase](/docs/guide/showcase)
187187

188188
### 🧩 Components
189189
Browse all available components
190-
- [Component Gallery](/components/)
191-
- [Form Components](/components/form/)
192-
- [Layout Components](/components/layout/)
190+
- [Component Gallery](/docs/components/)
191+
- [Form Components](/docs/components/form/)
192+
- [Layout Components](/docs/components/layout/)
193193

194194
### 💡 Core Concepts
195195
Understand how ObjectUI works
196-
- [Schema Rendering](/concepts/schema-rendering)
197-
- [Expressions](/concepts/expressions)
198-
- [Data Sources](/concepts/data-source)
196+
- [Schema Rendering](/docs/concepts/schema-rendering)
197+
- [Expressions](/docs/concepts/expressions)
198+
- [Data Sources](/docs/concepts/data-source)
199199

200200
### 🔌 Plugins
201201
Extend ObjectUI with plugins
202-
- [Plugin System](/concepts/plugins)
203-
- [Charts Plugin](/plugins/plugin-charts)
204-
- [Kanban Plugin](/plugins/plugin-kanban)
202+
- [Plugin System](/docs/concepts/plugins)
203+
- [Charts Plugin](/docs/plugins/plugin-charts)
204+
- [Kanban Plugin](/docs/plugins/plugin-kanban)
205205

206206
### 📚 Reference
207207
Detailed API documentation
208-
- [Core API](/reference/api/core)
209-
- [React API](/reference/api/react)
210-
- [Protocol Specifications](/reference/protocol/overview)
208+
- [Core API](/docs/reference/api/core)
209+
- [React API](/docs/reference/api/react)
210+
- [Protocol Specifications](/docs/reference/protocol/overview)
211211

212212
### 🏗️ Architecture
213213
For contributors and advanced users
214-
- [System Architecture](/architecture/architecture)
215-
- [Project Structure](/architecture/project-structure)
216-
- [Component Specs](/architecture/component)
214+
- [System Architecture](/docs/architecture/architecture)
215+
- [Project Structure](/docs/architecture/project-structure)
216+
- [Component Specs](/docs/architecture/component)
217217

218218
### 🌐 Ecosystem
219219
Integration and deployment
220-
- [ObjectQL Integration](/ecosystem/objectql)
221-
- [API Integration](/ecosystem/api)
222-
- [Deployment Guide](/ecosystem/deployment/showcase-deployment)
220+
- [ObjectQL Integration](/docs/ecosystem/objectql)
221+
- [API Integration](/docs/ecosystem/api)
222+
- [Deployment Guide](/docs/ecosystem/deployment/showcase-deployment)
223223

224224
### 🆘 Support
225225
Get help when you need it
226-
- [FAQ](/faq) - Common questions
227-
- [Troubleshooting](/troubleshooting) - Problem solving
228-
- [Security](/security) - Security best practices
229-
- [Migration](/migration/from-objectstack) - Migration guides
226+
- [FAQ](/docs/faq) - Common questions
227+
- [Troubleshooting](/docs/troubleshooting) - Problem solving
228+
- [Security](/docs/security) - Security best practices
229+
- [Migration](/docs/migration/from-objectstack) - Migration guides
230230

231231
### 🤝 Community
232232
Contribute and collaborate
233-
- [Contributing](/community/contributing)
234-
- [Roadmap](/community/roadmap)
235-
- [Best Practices](/community/best-practices)
233+
- [Contributing](/docs/community/contributing)
234+
- [Roadmap](/docs/community/roadmap)
235+
- [Best Practices](/docs/community/best-practices)
236236

237237
---
238238

@@ -241,8 +241,8 @@ Contribute and collaborate
241241
Stop writing repetitive UI code. Start building with ObjectUI.
242242

243243
<div style="display: flex; gap: 1rem; margin-top: 2rem;">
244-
<a href="/guide/quick-start" style="padding: 0.75rem 1.5rem; background: #3b82f6; color: white; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">Get Started →</a>
245-
<a href="/components/" style="padding: 0.75rem 1.5rem; border: 1px solid #3b82f6; color: #3b82f6; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">View Components</a>
246-
<a href="/guide/showcase" style="padding: 0.75rem 1.5rem; border: 1px solid #6b7280; color: #6b7280; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">Try Showcase</a>
244+
<a href="/docs/guide/quick-start" style="padding: 0.75rem 1.5rem; background: #3b82f6; color: white; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">Get Started →</a>
245+
<a href="/docs/components/" style="padding: 0.75rem 1.5rem; border: 1px solid #3b82f6; color: #3b82f6; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">View Components</a>
246+
<a href="/docs/guide/showcase" style="padding: 0.75rem 1.5rem; border: 1px solid #6b7280; color: #6b7280; border-radius: 0.5rem; text-decoration: none; font-weight: 600;">Try Showcase</a>
247247
</div>
248248

docs/plugins/plugin-markdown.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ npm install our-package
189189
2. Configure your settings
190190
3. Start building!
191191
192-
For more information, see the [API Reference](/docs/reference/api).
192+
For more information, see the [API Reference](/docs/reference/api/core).
193193
`,
194194
className: 'prose prose-lg max-w-none'
195195
}

lychee.toml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Lychee configuration file for ObjectUI documentation link checking
2+
# This configuration enables checking internal fumadocs links by mapping
3+
# Next.js routes (e.g., /docs/guide) to filesystem paths (e.g., docs/guide.mdx)
4+
5+
# Maximum number of concurrent requests
6+
max_concurrency = 10
7+
8+
# Timeout for each request (in seconds)
9+
timeout = 20
10+
11+
# Number of retries per request
12+
max_retries = 3
13+
14+
# Accept any valid status code (2xx, 3xx)
15+
accept = [200, 204, 206, 301, 302, 303, 307, 308]
16+
17+
# Exclude patterns - files and URLs to skip
18+
exclude = [
19+
# Local development URLs
20+
"http://localhost*",
21+
"https://localhost*",
22+
23+
# Example and placeholder URLs
24+
"https://example.com",
25+
"http://example.com",
26+
27+
# Social media (anti-scraping)
28+
"https://twitter.com*",
29+
"https://x.com*",
30+
31+
# GitHub specific patterns that may cause false positives
32+
"https://github.com/.*/compare/*",
33+
"https://github.com/.*/commit/*",
34+
]
35+
36+
# Path remapping for fumadocs internal links
37+
# Maps Next.js routes to actual file paths
38+
[[remap]]
39+
# Map /docs/* links to docs/*.mdx or docs/*.md files
40+
pattern = "^/docs/(.*)$"
41+
replace = "file://./docs/$1.mdx"
42+
43+
[[remap]]
44+
# Also try .md extension if .mdx doesn't exist
45+
pattern = "^/docs/(.*)$"
46+
replace = "file://./docs/$1.md"
47+
48+
[[remap]]
49+
# Handle index files (e.g., /docs/components/ -> docs/components/index.mdx)
50+
pattern = "^/docs/(.*)/+$"
51+
replace = "file://./docs/$1/index.mdx"
52+
53+
# Cache configuration
54+
[cache]
55+
# Don't use cache to ensure fresh results
56+
max_age = "0s"

0 commit comments

Comments
 (0)