-
Notifications
You must be signed in to change notification settings - Fork 0
Fix fumadocs documentation links and add automated link checking with path remapping #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
9060f74
5043ae7
c3525ee
e259674
2983644
3b244c6
74ad59e
457430d
022196d
dfab762
eea0ba9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| name: Check Links | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| pull_request: | ||
| branches: | ||
| - main | ||
|
|
||
| jobs: | ||
| link-checker: | ||
| name: Check Documentation Links | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: read | ||
| issues: write | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Check links with lychee | ||
| uses: lycheeverse/lychee-action@v2 | ||
| with: | ||
| # Use configuration file for path remapping and settings | ||
| args: >- | ||
| --config lychee.toml | ||
| 'content/**/*.md' | ||
| 'content/**/*.mdx' | ||
| 'README.md' | ||
| # Fail the job if broken links are found | ||
| fail: true | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| - name: Create Issue on Failure | ||
| if: failure() | ||
| uses: actions/github-script@v7 | ||
| with: | ||
| script: | | ||
| github.rest.issues.create({ | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| title: '🔗 Broken links detected in documentation', | ||
| body: `Link checker found broken links in the documentation.\n\nPlease review the [workflow run](${context.payload.repository.html_url}/actions/runs/${context.runId}) for details.`, | ||
| labels: ['documentation', 'bug'] | ||
| }); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| # Lychee Link Checker Ignore Rules | ||
| # This file contains patterns for links that should be ignored during link checking | ||
|
|
||
| # Local development links | ||
| http://localhost* | ||
| http://127.0.0.1* | ||
|
|
||
| # Example/placeholder links | ||
| https://example.com | ||
| https://example.org | ||
| http://example.com | ||
| http://example.org | ||
|
|
||
| # Social media (prevents anti-bot false positives) | ||
| https://twitter.com* | ||
| https://x.com* | ||
|
|
||
| # Common false positives | ||
| mailto:* |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -698,7 +698,7 @@ const trainingExamples: NLQTrainingExample[] = [ | |||||||||
| ## Example Applications | ||||||||||
|
|
||||||||||
| ### 1. AI Support Assistant | ||||||||||
| [View Example](../examples/ai-support) | ||||||||||
| [View Example](/docs/guides/examples/ai-support) | ||||||||||
|
|
||||||||||
| **Features:** | ||||||||||
| - RAG knowledge base | ||||||||||
|
|
@@ -712,7 +712,7 @@ Customer → GPT-4 Agent → RAG (Pinecone) → Actions → ObjectQL | |||||||||
| ``` | ||||||||||
|
|
||||||||||
| ### 2. AI Data Analyst | ||||||||||
| [View Example](../examples/ai-analyst) | ||||||||||
| [View Example](/docs/guides/examples/ai-analyst) | ||||||||||
|
|
||||||||||
| **Features:** | ||||||||||
| - Natural language queries | ||||||||||
|
|
@@ -721,7 +721,7 @@ Customer → GPT-4 Agent → RAG (Pinecone) → Actions → ObjectQL | |||||||||
| - Query templates | ||||||||||
|
|
||||||||||
| ### 3. AI Code Generator | ||||||||||
| [View Example](../examples/ai-codegen) | ||||||||||
| [View Example](/docs/guides/examples/ai-codegen) | ||||||||||
|
|
||||||||||
| **Features:** | ||||||||||
| - Generate ObjectStack apps | ||||||||||
|
|
@@ -730,7 +730,7 @@ Customer → GPT-4 Agent → RAG (Pinecone) → Actions → ObjectQL | |||||||||
| - RAG for documentation | ||||||||||
|
|
||||||||||
| ### 4. AI Sales Assistant | ||||||||||
| [View Example](../examples/ai-sales) | ||||||||||
| [View Example](/docs/guides/examples/ai-sales) | ||||||||||
|
|
||||||||||
| **Features:** | ||||||||||
| - Lead qualification | ||||||||||
|
|
@@ -792,8 +792,8 @@ if (response.parseResult.confidence < 0.7) { | |||||||||
| ## Resources | ||||||||||
|
|
||||||||||
| - [ObjectStack Documentation](https://docs.objectstack.ai) | ||||||||||
| - [AI Protocol Reference](../packages/spec/src/ai) | ||||||||||
| - [Example Applications](../examples) | ||||||||||
| - [AI Protocol Reference](/docs/guides/packages/spec/src/ai) | ||||||||||
| - [Example Applications](/docs/guides/examples) | ||||||||||
|
Comment on lines
+795
to
+796
|
||||||||||
| - [AI Protocol Reference](/docs/guides/packages/spec/src/ai) | |
| - [Example Applications](/docs/guides/examples) | |
| - [AI Protocol Reference](/docs/references/ai/) | |
| - [Example Applications](https://github.com/objectstack/objectstack/tree/main/examples) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -166,12 +166,12 @@ const generated = await ai.generate({ | |
|
|
||
| See the following example implementations: | ||
|
|
||
| - [AI Sales Assistant](../../../examples/ai-sales/) | ||
| - [AI Support Agent](../../../examples/ai-support/) | ||
| - [AI Code Generator](../../../examples/ai-codegen/) | ||
| - [AI Analyst](../../../examples/ai-analyst/) | ||
| - [AI Sales Assistant](/docs/examples/ai-sales/) | ||
| - [AI Support Agent](/docs/examples/ai-support/) | ||
| - [AI Code Generator](/docs/examples/ai-codegen/) | ||
| - [AI Analyst](/docs/examples/ai-analyst/) | ||
|
|
||
| For complete documentation, see [AI_INTEGRATION_GUIDE.md](../../AI_INTEGRATION_GUIDE.md) | ||
| For complete documentation, see [AI_INTEGRATION_GUIDE.md](/docs/guides/AI_INTEGRATION_GUIDE.md) | ||
|
|
||
|
Comment on lines
+169
to
175
|
||
| --- | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -98,7 +98,7 @@ const authConfig = { | |||||
| - [ ] Audit logging enabled | ||||||
| - [ ] Regular security updates | ||||||
|
|
||||||
| For detailed information, see [AUTHENTICATION_STANDARD.md](../../../AUTHENTICATION_STANDARD.md) | ||||||
| For detailed information, see [AUTHENTICATION_STANDARD.md](/docs/AUTHENTICATION_STANDARD.md) | ||||||
|
||||||
| For detailed information, see [AUTHENTICATION_STANDARD.md](/docs/AUTHENTICATION_STANDARD.md) | |
| For detailed information, see [Authentication Standard](/docs/standards/authentication) |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -145,8 +145,8 @@ The following features are deprecated and will be removed in v2.0.0: | |||||||||
|
|
||||||||||
| If you encounter issues: | ||||||||||
|
|
||||||||||
| 1. Check the [CHANGELOG.md](../../CHANGELOG.md) | ||||||||||
| 2. Review [CONTRIBUTING.md](../../CONTRIBUTING.md) | ||||||||||
| 1. Check the [CHANGELOG.md](/docs/CHANGELOG.md) | ||||||||||
| 2. Review [CONTRIBUTING.md](/docs/CONTRIBUTING.md) | ||||||||||
|
Comment on lines
+148
to
+149
|
||||||||||
| 1. Check the [CHANGELOG.md](/docs/CHANGELOG.md) | |
| 2. Review [CONTRIBUTING.md](/docs/CONTRIBUTING.md) | |
| 1. Check the [CHANGELOG.md](https://github.com/objectstack/spec/blob/main/CHANGELOG.md) | |
| 2. Review [CONTRIBUTING.md](https://github.com/objectstack/spec/blob/main/CONTRIBUTING.md) |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -276,9 +276,9 @@ const indexes = [ | |||||||||||||||||
|
|
||||||||||||||||||
| ## Related Documentation | ||||||||||||||||||
|
|
||||||||||||||||||
| - [Field Types Guide](../../content/docs/guides/field-types.mdx) | ||||||||||||||||||
| - [Query Protocol Guide](../../packages/spec/QUERY_PROTOCOL_GUIDE.md) | ||||||||||||||||||
| - [Schema Definition Specification](../../content/docs/specifications/data/schema-definition.mdx) | ||||||||||||||||||
| - [Driver Interface](../../content/docs/references/system/DriverInterface.mdx) | ||||||||||||||||||
| - [Field Types Guide](/docs/guides/field-types.mdx) | ||||||||||||||||||
| - [Query Protocol Guide](/docs/packages/spec/QUERY_PROTOCOL_GUIDE.md) | ||||||||||||||||||
| - [Schema Definition Specification](/docs/specifications/data/schema-definition.mdx) | ||||||||||||||||||
| - [Driver Interface](/docs/references/system/DriverInterface.mdx) | ||||||||||||||||||
|
Comment on lines
+279
to
+282
|
||||||||||||||||||
| - [Field Types Guide](/docs/guides/field-types.mdx) | |
| - [Query Protocol Guide](/docs/packages/spec/QUERY_PROTOCOL_GUIDE.md) | |
| - [Schema Definition Specification](/docs/specifications/data/schema-definition.mdx) | |
| - [Driver Interface](/docs/references/system/DriverInterface.mdx) | |
| - [Field Types Guide](/docs/guides/field-types) | |
| - [Query Protocol Guide](https://github.com/objectstack/objectstack/blob/main/packages/spec/QUERY_PROTOCOL_GUIDE.md) | |
| - [Schema Definition Specification](/docs/specifications/data/schema-definition) | |
| - [Driver Interface](/docs/references/system/DriverInterface) |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -446,9 +446,9 @@ const datasource = { | |||||||||||||
|
|
||||||||||||||
| ## Related Documentation | ||||||||||||||
|
|
||||||||||||||
| - [Plugin Architecture](../../content/docs/concepts/plugin-architecture.mdx) | ||||||||||||||
| - [Kernel Architecture](../../content/docs/specifications/server/kernel-architecture.mdx) | ||||||||||||||
| - [Authentication Standard](../AUTHENTICATION_STANDARD.md) | ||||||||||||||
| - [System Protocol References](../../content/docs/references/system/) | ||||||||||||||
| - [Plugin Architecture](/docs/concepts/plugin-architecture.mdx) | ||||||||||||||
| - [Kernel Architecture](/docs/specifications/server/kernel-architecture.mdx) | ||||||||||||||
| - [Authentication Standard](/docs/specifications/AUTHENTICATION_STANDARD.md) | ||||||||||||||
|
Comment on lines
+449
to
+451
|
||||||||||||||
| - [Plugin Architecture](/docs/concepts/plugin-architecture.mdx) | |
| - [Kernel Architecture](/docs/specifications/server/kernel-architecture.mdx) | |
| - [Authentication Standard](/docs/specifications/AUTHENTICATION_STANDARD.md) | |
| - [Plugin Architecture](/docs/concepts/plugin-architecture) | |
| - [Kernel Architecture](/docs/specifications/server/kernel-architecture) | |
| - [Authentication Standard](/docs/standards/authentication) |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -359,9 +359,9 @@ const page = { | |||||||||||||
|
|
||||||||||||||
| ## Related Documentation | ||||||||||||||
|
|
||||||||||||||
| - [View Configuration Guide](../../content/docs/guides/view-configuration.mdx) | ||||||||||||||
| - [SDUI Protocol Specification](../../content/docs/specifications/ui/sdui-protocol.mdx) | ||||||||||||||
| - [Component Schema](../../content/docs/specifications/ui/component-schema.mdx) | ||||||||||||||
| - [UI Protocol References](../../content/docs/references/ui/) | ||||||||||||||
| - [View Configuration Guide](/docs/guides/view-configuration.mdx) | ||||||||||||||
| - [SDUI Protocol Specification](/docs/specifications/ui/sdui-protocol.mdx) | ||||||||||||||
| - [Component Schema](/docs/specifications/ui/component-schema.mdx) | ||||||||||||||
|
Comment on lines
+362
to
+364
|
||||||||||||||
| - [View Configuration Guide](/docs/guides/view-configuration.mdx) | |
| - [SDUI Protocol Specification](/docs/specifications/ui/sdui-protocol.mdx) | |
| - [Component Schema](/docs/specifications/ui/component-schema.mdx) | |
| - [View Configuration Guide](/docs/guides/view-configuration) | |
| - [SDUI Protocol Specification](/docs/specifications/ui/sdui-protocol) | |
| - [Component Schema](/docs/specifications/ui/component-schema) |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -269,7 +269,7 @@ Building a renderer for ObjectUI? Start here: | |||||
| Using ObjectUI to build interfaces? See: | ||||||
| - [View Configuration Guide](/docs/guides/view-configuration) | ||||||
| - [Theming Guide](/docs/guides/theming) | ||||||
| - [Dashboard Examples](/docs/tutorials/dashboards) | ||||||
| - [Dashboard Examples](/docs/specifications/ui/dashboard) | ||||||
|
||||||
| - [Dashboard Examples](/docs/specifications/ui/dashboard) | |
| - [Dashboard Examples](/docs/references/ui/analytics/Dashboard) |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -320,6 +320,6 @@ Response (200 OK): | |||||||||||||
|
|
||||||||||||||
| ## Related | ||||||||||||||
|
|
||||||||||||||
| - [Naming Conventions](./naming-conventions.md) | ||||||||||||||
| - [Error Handling](./error-handling.md) | ||||||||||||||
| - [REST API Specification](../../content/docs/specifications/server/rest-api.mdx) | ||||||||||||||
| - [Naming Conventions](/docs/standards/naming-conventions.md) | ||||||||||||||
| - [Error Handling](/docs/standards/error-handling.md) | ||||||||||||||
| - [REST API Specification](/docs/specifications/server/rest-api.mdx) | ||||||||||||||
|
Comment on lines
+323
to
+325
|
||||||||||||||
| - [Naming Conventions](/docs/standards/naming-conventions.md) | |
| - [Error Handling](/docs/standards/error-handling.md) | |
| - [REST API Specification](/docs/specifications/server/rest-api.mdx) | |
| - [Naming Conventions](/docs/standards/naming-conventions) | |
| - [Error Handling](/docs/standards/error-handling) | |
| - [REST API Specification](/docs/specifications/server/rest-api) |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -534,7 +534,7 @@ const authConfig: AuthConfig = { | |||||
|
|
||||||
| ## Examples | ||||||
|
|
||||||
| See [examples/auth-better-examples.ts](../examples/auth-better-examples.ts) for comprehensive usage examples including: | ||||||
| See [examples/auth-better-examples.ts](/docs/examples/auth-better-examples.ts) for comprehensive usage examples including: | ||||||
|
||||||
| See [examples/auth-better-examples.ts](/docs/examples/auth-better-examples.ts) for comprehensive usage examples including: | |
| See the [Better Auth reference implementation examples](https://better-auth.com/docs) for comprehensive usage examples including: |
Copilot
AI
Jan 23, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/docs/packages/spec/json-schema/AuthConfig.json is not a docs page under content/docs/, so it will 404 and fail lychee remapping. Consider linking to the existing docs reference page /docs/references/system/AuthConfig or to the GitHub file packages/spec/json-schema/AuthConfig.json.
| - [JSON Schema Reference](/docs/packages/spec/json-schema/AuthConfig.json) | |
| - [JSON Schema Reference](/docs/references/system/AuthConfig) |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -180,5 +180,5 @@ if (process.env.NODE_ENV === 'development') { | |||||||||
|
|
||||||||||
| ## Related | ||||||||||
|
|
||||||||||
| - [API Design Principles](./api-design.md) | ||||||||||
| - [Security Best Practices](../guides/security/best-practices.md) | ||||||||||
| - [API Design Principles](/docs/standards/api-design.md) | ||||||||||
| - [Security Best Practices](/docs/guides/security/best-practices.md) | ||||||||||
|
Comment on lines
+183
to
+184
|
||||||||||
| - [API Design Principles](/docs/standards/api-design.md) | |
| - [Security Best Practices](/docs/guides/security/best-practices.md) | |
| - [API Design Principles](/docs/standards/api-design) | |
| - [Security Best Practices](/docs/guides/advanced/security/best-practices) |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -78,4 +78,4 @@ const field = { | |||||
| | **Enum Values** | lowercase | `text`, `number`, `date` | | ||||||
| | **Constants** | UPPER_SNAKE_CASE | `MAX_LENGTH`, `DEFAULT_TIMEOUT` | | ||||||
|
|
||||||
| For complete details and validation patterns, see [CONTRIBUTING.md](../../CONTRIBUTING.md#naming-conventions). | ||||||
| For complete details and validation patterns, see [CONTRIBUTING.md](/docs/CONTRIBUTING.md#naming-conventions). | ||||||
|
||||||
| For complete details and validation patterns, see [CONTRIBUTING.md](/docs/CONTRIBUTING.md#naming-conventions). | |
| For complete details and validation patterns, see [CONTRIBUTING.md](/CONTRIBUTING.md#naming-conventions). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Create Issue on Failure” step will run on pull_request builds as well, which can spam issues and often fails on forks due to restricted
GITHUB_TOKENpermissions. Consider gating it to pushes onmainonly (e.g.if: failure() && github.event_name == 'push') or removingissues: writefor PR runs.