Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 15 additions & 32 deletions .github/workflows/shared-release-publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,55 +20,38 @@ concurrency:
jobs:
build:
name: Build Docs
runs-on: windows-latest
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: ${{ inputs.checkout_ref != '' && inputs.checkout_ref || github.ref }}

- name: Setup .NET
uses: actions/setup-dotnet@v5
- name: Setup Node
uses: actions/setup-node@v6
with:
dotnet-version: |
8.x
9.x
10.x

- name: Install DocFX
shell: pwsh
run: |
dotnet tool install --global docfx --version 2.78.5
"$env:USERPROFILE\.dotnet\tools" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

- name: Install Doxygen
shell: pwsh
run: choco install doxygen.install -y --no-progress

- name: Generate API Metadata
run: docfx metadata docs/docfx.json
node-version: 20
cache: npm
cache-dependency-path: |
package-lock.json
docs/package-lock.json

- name: Generate C++ Docs
shell: pwsh
run: ./docs/scripts/update-cpp-api.ps1 -Required
- name: Install Docusaurus Dependencies
shell: bash
run: npm ci --prefix docs

- name: Build Docs Site
shell: pwsh
run: |
$logPath = Join-Path $env:RUNNER_TEMP "docfx-build.log"
docfx build docs/docfx.json 2>&1 | Tee-Object -FilePath $logPath
if (Select-String -Path $logPath -Pattern '^\s*[1-9][0-9]* warning\(s\)' -Quiet) {
throw "DocFX reported warnings."
}
- name: Build Docusaurus Site
shell: bash
run: npm run docs:build

- name: Setup Pages
uses: actions/configure-pages@v6

- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v4
with:
path: docs/_site
path: docs/build

deploy:
name: Deploy Docs
Expand Down
69 changes: 11 additions & 58 deletions .github/workflows/shared-testing-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,52 +31,18 @@ jobs:
with:
ref: ${{ inputs.checkout_ref != '' && inputs.checkout_ref || env.TARGET_SHA }}

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
8.x
9.x
10.x

- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 24

- name: Cache .NET Tools & NuGet
uses: actions/cache@v5
with:
path: |
~/.nuget/packages
~/.dotnet/tools
key: dotnet-tools-${{ runner.os }}-docfx-2.78.5
restore-keys: |
dotnet-tools-${{ runner.os }}-docfx-

- name: Add Tools Path
run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH

- name: Install DocFX if needed
run: |
set -euo pipefail
REQUIRED_VERSION=2.78.5

INSTALLED_VERSION=$(dotnet tool list --global | awk '$1=="docfx"{print $2}')
if [ "$INSTALLED_VERSION" = "$REQUIRED_VERSION" ]; then
echo "DocFX $REQUIRED_VERSION already installed, skipping install."
elif [ -n "$INSTALLED_VERSION" ]; then
echo "DocFX version mismatch ($INSTALLED_VERSION), reinstalling..."
dotnet tool update --global docfx --version $REQUIRED_VERSION
else
echo "DocFX not found, installing..."
dotnet tool install --global docfx --version $REQUIRED_VERSION
fi
node-version: 20
cache: npm
cache-dependency-path: |
package-lock.json
docs/package-lock.json

- name: Install Deps
uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: doxygen
- name: Install Docusaurus Dependencies
shell: bash
run: npm ci --prefix docs

- name: Set Docs Pending
env:
Expand All @@ -93,22 +59,9 @@ jobs:
target-url: ${{ format('{0}/{1}/actions/runs/{2}', github.server_url, github.repository, github.run_id) }}
allow-status-422: 'true'

- name: Generate API Metadata
run: docfx metadata docs/docfx.json

- name: Generate C++ Docs
shell: pwsh
run: ./docs/scripts/update-cpp-api.ps1 -Required

- name: Build Docs
- name: Build Docusaurus Docs
shell: bash
run: |
set -euo pipefail

docfx build docs/docfx.json 2>&1 | tee /tmp/docfx-build.log
if grep -Eq '^[[:space:]]*[1-9][0-9]* warning\(s\)' /tmp/docfx-build.log; then
exit 1
fi
run: npm run docs:build

- name: Complete Docs Check
if: always()
Expand All @@ -124,4 +77,4 @@ jobs:
target-url: ${{ format('{0}/{1}/actions/runs/{2}', github.server_url, github.repository, github.run_id) }}
job-status: ${{ job.status }}
success-description: Docs validation finished successfully
failure-description: Docs validation failed due to warnings or errors
failure-description: Docs validation failed
8 changes: 0 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -354,11 +354,3 @@ healthchecksdb
/examples/InfiniFrameExample.WebApp.Vue/wwwroot/
/tests/InfiniFrameTests.Playwright/wwwroot/

# DocFX generated outputs
/docs/_site/
/docs/api/*.yml
/docs/api/toc.yml
/docs/api/.manifest
/docs/api/cs/
/docs/api/cpp/native-cpp-reference.md
/docs/.doxygen/
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,44 +135,47 @@ dotnet tool run infiniframe-pack publish src/MyApp/MyApp.csproj --rid win-x64
## Documentation

- [Docs Home](https://docs.infiniframe.dev/)
- [Getting Started](https://docs.infiniframe.dev/articles/guides/getting-started.html) — Installation, first app,
- [Getting Started](https://docs.infiniframe.dev/guides/getting-started) — Installation, first app,
platform requirements

### Guides

- [Core Window](https://docs.infiniframe.dev/articles/guides/core-window.html) — Builder pattern, configuration, events,
- [Core Window](https://docs.infiniframe.dev/guides/core-window) — Builder pattern, configuration, events,
messaging
- [Blazor WebView](https://docs.infiniframe.dev/articles/guides/blazor-webview.html) — Hosting a full Blazor app in a
- [Blazor WebView](https://docs.infiniframe.dev/guides/blazor-webview) — Hosting a full Blazor app in a
native window
- [Web Server](https://docs.infiniframe.dev/articles/guides/web-server.html) — ASP.NET Core + native window integration
- [Custom Window Chrome](https://docs.infiniframe.dev/articles/guides/custom-window-chrome.html) — Chromeless windows
- [Web Server](https://docs.infiniframe.dev/guides/web-server) — ASP.NET Core + native window integration
- [Custom Window Chrome](https://docs.infiniframe.dev/guides/custom-window-chrome) — Chromeless windows
with Blazor components
- [JavaScript Interop](https://docs.infiniframe.dev/articles/guides/javascript-interop.html) — Communicating between JS
- [JavaScript Interop](https://docs.infiniframe.dev/guides/javascript-interop) — Communicating between JS
and C#

### API Reference

- [Native C++ API Guide](https://docs.infiniframe.dev/articles/cpp/native-cpp-api.html)
- [Native C++ API Reference (Generated)](https://docs.infiniframe.dev/api/cpp/native-cpp-reference.html)
- [Generated C# API Reference](https://docs.infiniframe.dev/api/cs/)
- [Native C++ API Guide](https://docs.infiniframe.dev/cpp/native-cpp-api)
- [API Reference Hub](https://docs.infiniframe.dev/api)

### Migration

- [Breaking Changes vs Photino.NET](https://docs.infiniframe.dev/articles/concepts/breaking-changes-from-photino.html) —
- [Breaking Changes vs Photino.NET](https://docs.infiniframe.dev/migration/breaking-changes-from-photino) —
API, namespace, event system, and behavioral differences from the original Photino projects

### Build Docs Locally

Requirements:

- `docfx` (required)
- `Doxygen` (required for generated C++ API reference)
- `Node.js`/`npm` (required for `npx moxygen` during C++ API reference generation)
- `Node.js`/`npm` (required)

Run:

```powershell
.\docs\scripts\serve-docs.ps1
npm run docs:dev
```

Build static site:

```powershell
npm run docs:build
```

## Platform Requirements
Expand Down
Binary file modified assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.docusaurus
build
node_modules
2 changes: 0 additions & 2 deletions docs/api/cpp/toc.yml

This file was deleted.

2 changes: 0 additions & 2 deletions docs/articles/concepts/toc.yml

This file was deleted.

4 changes: 0 additions & 4 deletions docs/articles/cpp/toc.yml

This file was deleted.

2 changes: 0 additions & 2 deletions docs/articles/csharp/toc.yml

This file was deleted.

14 changes: 0 additions & 14 deletions docs/articles/guides/toc.yml

This file was deleted.

68 changes: 0 additions & 68 deletions docs/docfx.json

This file was deleted.

16 changes: 16 additions & 0 deletions docs/docs/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
id: api
slug: /api
title: API Reference
---

InfiniFrame API documentation is currently maintained inline in Docusaurus.

- Managed API guidance:
- [Core Window Guide](guides/core-window.md)
- [Blazor WebView Guide](guides/blazor-webview.md)
- [Web Server Guide](guides/web-server.md)
- Native API guidance:
- [Native C++ API Guide](cpp/native-cpp-api.md)

This keeps the API docs simple and versionless by design.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Native C++ API

InfiniFrame native API documentation is hosted inside DocFX as conceptual reference and is sourced from the native headers and Doxygen-style comments under `src/InfiniFrame.Native`.
InfiniFrame native API documentation is maintained directly in Docusaurus and sourced from the native headers and comments under `src/InfiniFrame.Native`.

## Core headers

Expand All @@ -27,6 +27,4 @@ InfiniFrame native API documentation is hosted inside DocFX as conceptual refere

- `Exports.cpp`: exported C ABI used by the managed layer.

For detailed behavior, see source comments in the files above. This page is maintained in DocFX to keep C++ documentation and C# documentation in one navigation model.

For generated member-level C++ reference, see [Native C++ API Reference (Generated)](../../api/cpp/native-cpp-reference.md).
For detailed behavior, see source comments in the files above.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -187,4 +187,4 @@ The start URL is automatically read from `ASPNETCORE_URLS` or the `urls` configu
- [Core Window Guide](core-window.md) — Window events, messaging, dialogs, custom schemes
- [Blazor Guide](blazor-webview.md) — DI, file providers, component configuration
- [Web Server Guide](web-server.md) — ASP.NET Core pipeline, DI access, graceful shutdown
- Generated C# API Reference (`docs/api`, via `docfx metadata`) — Complete member-level reference
- [API Reference](../api.md) — Central API navigation and language-specific guides
File renamed without changes.
File renamed without changes.
14 changes: 14 additions & 0 deletions docs/docs/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
id: intro
slug: /
title: InfiniFrame Documentation
---

InfiniFrame documentation is organized into Guides, Concepts, and API references for both managed and native layers.

## Sections

- [Guides](guides/getting-started.md)
- [Packaging Tool Guide](guides/pack-tool.md)
- [Migration Notes](migration/breaking-changes-from-photino.md)
- [API References](api.md)
Loading
Loading