Browse Source

DocFX API文档生成指南

黄中银 1 week ago
parent
commit
7895e6233f
55 changed files with 229 additions and 99 deletions
  1. 0 4
      .gitignore
  2. 5 4
      buildTools/build-docfx.ps1
  3. 149 0
      docs/DocFX API文档生成指南.md
  4. 2 0
      docs/docfx/.gitignore
  5. 5 4
      docs/docfx/docfx.json
  6. 1 1
      docs/docfx/index.md
  7. 0 0
      docs/docfx/toc.yml
  8. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.BubblingChange.html
  9. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.IBubblingChangeNotifier.html
  10. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.NodeChangeKind.html
  11. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.html
  12. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.CollectionAdapters.html
  13. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.IMultiValueStore.html
  14. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.ObservableCollectionAdapter.html
  15. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.html
  16. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.ChangeNodeBase.html
  17. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.IChangeNode.html
  18. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.html
  19. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.ChangeDataflowPipeline.html
  20. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.RxDataflowBridge.html
  21. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.html
  22. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.CompositeEventFilter.FilterMode.html
  23. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.CompositeEventFilter.html
  24. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.FrequencyBasedEventFilter.html
  25. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.IChangeEventFilter.html
  26. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.PathBasedEventFilter.html
  27. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.PropertyBasedEventFilter.html
  28. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.html
  29. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Nito.NitoAsyncContextEnvironment.html
  30. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Nito.html
  31. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.ChangeBubblingMetrics.html
  32. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.ChangeBubblingPerformanceMetrics.html
  33. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.EventTypeStatistics.html
  34. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.html
  35. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.BubblingChangeMessage.html
  36. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.ChangeMessenger.html
  37. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.html
  38. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.ConcurrentBagBubblingNode-1.html
  39. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.ConcurrentDictionaryBubblingNode-2.html
  40. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.html
  41. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.DictionaryBubblingNode-2.html
  42. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.ListBubblingNode-1.html
  43. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.html
  44. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.ISnapshotSerializable.html
  45. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.MultiValueSnapshot.html
  46. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.MultiValueSnapshotService.html
  47. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.NodeSnapshot.html
  48. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.SnapshotSerializer.html
  49. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.TreeSnapshotService.html
  50. 1 1
      docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.html
  51. 1 1
      docs/site/public/api-reference/index.html
  52. 0 3
      docs/site/public/api-reference/index.json
  53. 11 24
      docs/site/public/api-reference/logo.svg
  54. 5 15
      docs/site/public/api-reference/manifest.json
  55. 7 0
      docs/文档站点部署指南.md

+ 0 - 4
.gitignore

@@ -406,7 +406,3 @@ FodyWeavers.xsd
 *.sln.iml
 NuGet_Apq_Key.txt
 nul
-
-# DocFX 中间文件
-/api/
-# docs/site/public/api-reference/

+ 5 - 4
buildTools/build-docfx.ps1

@@ -33,13 +33,14 @@ if (-not $docfxInstalled) {
 Write-ColorText '  DocFX 工具就绪' 'Green'
 Write-Host ''
 
-# 切换到项目根目录
-Push-Location $RootDir
+# 切换到 DocFX 目录
+$DocfxDir = Join-Path $RootDir 'docs\docfx'
+Push-Location $DocfxDir
 
 try {
     # 生成元数据
     Write-ColorText '生成 API 元数据...' 'Cyan'
-    docfx metadata docfx.json
+    docfx metadata
     if ($LASTEXITCODE -ne 0) {
         Write-ColorText '  元数据生成失败' 'Red'
         exit 1
@@ -54,7 +55,7 @@ try {
 
     # 构建文档站点
     Write-ColorText '构建文档站点...' 'Cyan'
-    docfx build docfx.json
+    docfx build
     if ($LASTEXITCODE -ne 0) {
         Write-ColorText '  站点构建失败' 'Red'
         exit 1

+ 149 - 0
docs/DocFX API文档生成指南.md

@@ -0,0 +1,149 @@
+# DocFX API 文档生成指南
+
+本文档介绍如何使用 DocFX 生成 Apq.ChangeBubbling 的 API 参考文档。
+
+## 前置条件
+
+- .NET SDK 8.0 或更高版本
+- DocFX 工具
+
+## 安装 DocFX
+
+```bash
+dotnet tool install -g docfx
+```
+
+验证安装:
+
+```bash
+docfx --version
+```
+
+## 生成文档
+
+在 `docs/docfx` 目录执行:
+
+```bash
+cd docs/docfx
+
+# 生成 API 元数据(从源代码提取 XML 注释)
+docfx metadata
+
+# 构建 HTML 文档
+docfx build
+```
+
+或者一步完成:
+
+```bash
+cd docs/docfx
+docfx
+```
+
+## 配置说明
+
+DocFX 配置文件位于 `docs/docfx/docfx.json`:
+
+### metadata 配置
+
+| 配置项 | 值 | 说明 |
+|--------|-----|------|
+| `src.files` | `Apq.ChangeBubbling.csproj` | 源项目文件 |
+| `dest` | `api/` | 元数据输出目录 |
+| `properties.TargetFramework` | `net10.0` | 目标框架 |
+| `namespaceLayout` | `flattened` | 命名空间扁平化显示 |
+| `memberLayout` | `samePage` | 成员在同一页面显示 |
+
+### build 配置
+
+| 配置项 | 值 | 说明 |
+|--------|-----|------|
+| `output` | `docs/site/public/api-reference` | 文档输出目录 |
+| `template` | `default`, `modern` | 使用的模板 |
+| `globalMetadata._appTitle` | `Apq.ChangeBubbling API` | 站点标题 |
+| `globalMetadata._enableSearch` | `true` | 启用搜索功能 |
+
+## 输出目录结构
+
+```
+docs/site/public/api-reference/
+├── api/                    # API 文档页面
+│   ├── index.html         # API 首页
+│   ├── toc.html           # 目录
+│   └── Apq.ChangeBubbling.*.html  # 各命名空间/类型页面
+├── public/                 # 静态资源
+│   ├── docfx.min.js
+│   └── main.css
+├── index.html             # 文档首页
+├── toc.html               # 顶级目录
+└── logo.svg               # Logo(来自 docs/site/public/logo.svg)
+```
+
+## 目录结构
+
+DocFX 相关文件位于 `docs/docfx/` 目录:
+
+```
+docs/docfx/
+├── docfx.json             # DocFX 配置文件
+├── index.md               # 文档首页内容
+├── toc.yml                # 顶级目录配置
+└── api/                   # 生成的 API 元数据(自动生成)
+```
+
+## 与 VitePress 集成
+
+生成的 DocFX 文档会自动集成到 VitePress 站点:
+
+- 访问路径:`/api-reference/api/index.html`
+- 在 VitePress 侧边栏中显示为 "DocFX API 文档 ↗"
+- 点击后在新窗口中打开
+
+## 自定义文档
+
+### 添加 API 首页内容
+
+编辑 `docs/docfx/index.md` 文件:
+
+```markdown
+# Apq.ChangeBubbling API 参考
+
+欢迎使用 Apq.ChangeBubbling API 文档。
+
+## 快速导航
+
+- [API 参考](api/index.md) - 完整的 API 文档
+```
+
+### 添加 Logo
+
+Logo 文件使用 `docs/site/public/logo.svg`,DocFX 构建时会自动复制到输出目录。
+
+## 常见问题
+
+### Q: 文档生成失败,提示编译错误
+
+确保项目可以正常编译:
+
+```bash
+dotnet build
+```
+
+### Q: XML 注释没有显示
+
+检查项目文件是否启用了 XML 文档生成:
+
+```xml
+<PropertyGroup>
+  <GenerateDocumentationFile>true</GenerateDocumentationFile>
+</PropertyGroup>
+```
+
+### Q: 如何更新文档
+
+每次代码变更后,重新执行 `docfx` 命令即可更新文档。
+
+## 参考链接
+
+- [DocFX 官方文档](https://dotnet.github.io/docfx/)
+- [DocFX GitHub](https://github.com/dotnet/docfx)

+ 2 - 0
docs/docfx/.gitignore

@@ -0,0 +1,2 @@
+# DocFX 生成的 API 元数据目录
+/api/

+ 5 - 4
docfx.json → docs/docfx/docfx.json

@@ -5,7 +5,7 @@
       "src": [
         {
           "files": ["Apq.ChangeBubbling/Apq.ChangeBubbling.csproj"],
-          "src": "."
+          "src": "../.."
         }
       ],
       "dest": "api",
@@ -32,10 +32,11 @@
     ],
     "resource": [
       {
-        "files": ["images/**"]
+        "files": ["logo.svg"],
+        "src": "../site/public"
       }
     ],
-    "output": "docs/site/public/api-reference",
+    "output": "../site/public/api-reference",
     "template": ["default", "modern"],
     "globalMetadata": {
       "_appTitle": "Apq.ChangeBubbling API",
@@ -43,7 +44,7 @@
       "_appFooter": "Apq.ChangeBubbling - 变更冒泡事件库",
       "_enableSearch": true,
       "_disableContribution": true,
-      "_appLogoPath": "images/logo.svg"
+      "_appLogoPath": "logo.svg"
     },
     "fileMetadata": {},
     "postProcessors": [],

+ 1 - 1
index.md → docs/docfx/index.md

@@ -4,7 +4,7 @@
 
 ## 快速导航
 
-- [API 参考](api/index.md) - 完整的 API 文档
+- [API 参考](api/) - 完整的 API 文档
 
 ## 关于
 

+ 0 - 0
toc.yml → docs/docfx/toc.yml


+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.BubblingChange.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.IBubblingChangeNotifier.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.NodeChangeKind.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Abstractions.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.CollectionAdapters.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.IMultiValueStore.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.ObservableCollectionAdapter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Collections.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.ChangeNodeBase.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.IChangeNode.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Core.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.ChangeDataflowPipeline.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.RxDataflowBridge.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Dataflow.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.CompositeEventFilter.FilterMode.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.CompositeEventFilter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.FrequencyBasedEventFilter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.IChangeEventFilter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.PathBasedEventFilter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.PropertyBasedEventFilter.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.EventFiltering.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Nito.NitoAsyncContextEnvironment.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Nito.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.ChangeBubblingMetrics.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.ChangeBubblingPerformanceMetrics.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.EventTypeStatistics.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Infrastructure.Performance.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.BubblingChangeMessage.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.ChangeMessenger.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Messaging.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.ConcurrentBagBubblingNode-1.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.ConcurrentDictionaryBubblingNode-2.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.Concurrent.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.DictionaryBubblingNode-2.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.ListBubblingNode-1.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Nodes.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.ISnapshotSerializable.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.MultiValueSnapshot.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.MultiValueSnapshotService.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.NodeSnapshot.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.SnapshotSerializer.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.TreeSnapshotService.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/api/Apq.ChangeBubbling.Snapshot.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="../index.html">
-            <img id="logo" class="svg" src="../images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="../logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

+ 1 - 1
docs/site/public/api-reference/index.html

@@ -44,7 +44,7 @@
       <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
         <div class="container-xxl flex-nowrap">
           <a class="navbar-brand" href="index.html">
-            <img id="logo" class="svg" src="images/logo.svg" alt="Apq.ChangeBubbling">
+            <img id="logo" class="svg" src="logo.svg" alt="Apq.ChangeBubbling">
             Apq.ChangeBubbling
           </a>
           <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">

File diff suppressed because it is too large
+ 0 - 3
docs/site/public/api-reference/index.json


+ 11 - 24
docs/site/public/api-reference/logo.svg

@@ -1,25 +1,12 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
- width="38.000000pt" height="38.000000pt" viewBox="0 0 172.000000 172.000000"
- preserveAspectRatio="xMidYMid meet">
-<metadata>
-Created by Docfx
-</metadata>
-<g transform="translate(0.000000,172.000000) scale(0.100000,-0.100000)"
-fill="#dddddd" stroke="none">
-<path d="M230 1359 c0 -18 11 -30 44 -48 80 -42 81 -45 81 -441 0 -400 -1
--404 -79 -436 -36 -15 -46 -24 -46 -43 0 -23 2 -24 61 -17 34 3 88 6 120 6
-l59 0 0 495 0 495 -82 0 c-46 0 -100 3 -120 6 -35 6 -38 5 -38 -17z"/>
-<path d="M618 1373 l-118 -4 0 -493 0 -494 154 -7 c181 -9 235 -3 313 34 68
-33 168 130 207 202 75 136 75 384 1 536 -71 145 -234 240 -399 231 -23 -1 -94
--4 -158 -5z m287 -119 c68 -24 144 -101 176 -179 22 -54 24 -75 24 -210 0
--141 -2 -153 -26 -206 -36 -76 -89 -132 -152 -160 -45 -21 -68 -24 -164 -24
--71 0 -116 4 -123 11 -22 22 -31 175 -28 463 2 208 6 293 15 302 32 32 188 33
-278 3z"/>
-<path d="M1170 1228 c75 -104 110 -337 76 -508 -21 -100 -56 -178 -105 -233
-l-36 -41 34 20 c75 43 160 133 198 212 37 75 38 78 38 191 -1 129 -18 191 -75
-270 -28 38 -136 131 -153 131 -4 0 6 -19 23 -42z"/>
-</g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
+  <defs>
+    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
+      <stop offset="0%" style="stop-color:#6366f1;stop-opacity:1" />
+      <stop offset="100%" style="stop-color:#8b5cf6;stop-opacity:1" />
+    </linearGradient>
+  </defs>
+  <rect x="8" y="8" width="112" height="112" rx="16" fill="url(#grad1)"/>
+  <text x="64" y="85" font-family="Arial, sans-serif" font-size="64" font-weight="bold" fill="white" text-anchor="middle">B</text>
+  <circle cx="96" cy="32" r="12" fill="white" opacity="0.9"/>
+  <path d="M90 32 L96 26 L96 38 Z" fill="#6366f1"/>
 </svg>

+ 5 - 15
docs/site/public/api-reference/manifest.json

@@ -1,5 +1,5 @@
 {
-  "source_base_path": "C:/ApqGitee/Apq.ChangeBubbling",
+  "source_base_path": "C:/ApqGitee/Apq.ChangeBubbling/docs/docfx",
   "xrefmap": "xrefmap.yml",
   "files": [
     {
@@ -11,11 +11,11 @@
       }
     },
     {
-      "type": "Conceptual",
-      "source_relative_path": "README.md",
+      "type": "Resource",
+      "source_relative_path": "../site/public/logo.svg",
       "output": {
-        ".html": {
-          "relative_path": "README.html"
+        "resource": {
+          "relative_path": "logo.svg"
         }
       },
       "version": ""
@@ -622,16 +622,6 @@
       "Title": "Apq.ChangeBubbling.Snapshot",
       "Summary": null
     },
-    {
-      "type": "Conceptual",
-      "source_relative_path": "api/index.md",
-      "output": {
-        ".html": {
-          "relative_path": "api/index.html"
-        }
-      },
-      "version": ""
-    },
     {
       "type": "Toc",
       "source_relative_path": "api/toc.yml",

+ 7 - 0
docs/文档站点部署指南.md

@@ -16,9 +16,16 @@ cd docs/site
 npm install
 ```
 
+### 生成 DocFX API 文档
+
+在启动开发服务器之前,需要先生成 DocFX API 文档。
+
+详细步骤请参考 [DocFX API文档生成指南](DocFX%20API文档生成指南.md)。
+
 ### 启动开发服务器
 
 ```bash
+cd docs/site
 npm run dev
 ```
 

Some files were not shown because too many files changed in this diff