From 8b892fa3a4e8ece7556c7e0cc2a8743792567f35 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Thu, 11 Apr 2024 11:51:32 +0100 Subject: [PATCH 1/2] Add docfx infrastructure --- .config/dotnet-tools.json | 12 +++++ .gitmodules | 3 ++ docs/.gitignore | 1 + docs/api/.gitignore | 3 ++ docs/articles/toc.yml | 1 + docs/bonsai | 1 + docs/docfx.json | 83 +++++++++++++++++++++++++++++ docs/favicon.ico | Bin 0 -> 113038 bytes docs/filter.yml | 4 ++ docs/index.md | 3 ++ docs/logo.svg | 96 ++++++++++++++++++++++++++++++++++ docs/template/public/main.css | 1 + docs/template/public/main.js | 13 +++++ docs/toc.yml | 4 ++ 14 files changed, 225 insertions(+) create mode 100644 .config/dotnet-tools.json create mode 100644 .gitmodules create mode 100644 docs/.gitignore create mode 100644 docs/api/.gitignore create mode 100644 docs/articles/toc.yml create mode 160000 docs/bonsai create mode 100644 docs/docfx.json create mode 100644 docs/favicon.ico create mode 100644 docs/filter.yml create mode 100644 docs/index.md create mode 100644 docs/logo.svg create mode 100644 docs/template/public/main.css create mode 100644 docs/template/public/main.js create mode 100644 docs/toc.yml diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..723b0f9 --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "docfx": { + "version": "2.76.0", + "commands": [ + "docfx" + ] + } + } +} \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c8ffa76 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "docs/bonsai"] + path = docs/bonsai + url = https://github.com/bonsai-rx/docfx-tools diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..c08f9ad --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +_site \ No newline at end of file diff --git a/docs/api/.gitignore b/docs/api/.gitignore new file mode 100644 index 0000000..918dd88 --- /dev/null +++ b/docs/api/.gitignore @@ -0,0 +1,3 @@ +# auto-generated files +*.yml +.manifest diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml new file mode 100644 index 0000000..ef45d5b --- /dev/null +++ b/docs/articles/toc.yml @@ -0,0 +1 @@ +- href: ../index.md \ No newline at end of file diff --git a/docs/bonsai b/docs/bonsai new file mode 160000 index 0000000..8e93a91 --- /dev/null +++ b/docs/bonsai @@ -0,0 +1 @@ +Subproject commit 8e93a91590cdb751e7dc878d09ae9605cd9263f4 diff --git a/docs/docfx.json b/docs/docfx.json new file mode 100644 index 0000000..c3824f9 --- /dev/null +++ b/docs/docfx.json @@ -0,0 +1,83 @@ +{ + "metadata": [ + { + "src": [ + { + "src": "../src", + "files": [ + "**/*.csproj" + ] + } + ], + "dest": "api", + "filter": "filter.yml" + } + ], + "build": { + "content": [ + { + "files": [ + "**/*.{md,yml}" + ], + "exclude": [ + "_site/**", + "bonsai/**", + "filter.yml" + ] + } + ], + "resource": [ + { + "files": [ + "logo.svg", + "favicon.ico", + "images/**", + "workflows/**" + ] + } + ], + "output": "_site", + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "template": [ + "default", + "modern", + "bonsai/template", + "template" + ], + "globalMetadata": { + "_appName": "Bonsai - GUI", + "_appTitle": "Bonsai.Gui", + "_enableNewTab": true, + "_enableSearch": true, + "pdf": false, + "_appFooter": "© 2024 Bonsai Foundation CIC and Contributors. Made with docfx", + "_gitContribute": { + "repo": "https://github.com/bonsai-rx/gui", + "branch": "main", + "apiSpecFolder": "docs/apidoc" + } + }, + "markdownEngineName": "markdig", + "markdownEngineProperties": { + "markdigExtensions": [ + "attributes", + "customcontainers" + ] + }, + "xref": [ + "https://bonsai-rx.org/docs/xrefmap.yml", + "https://horizongir.github.io/ZedGraph/xrefmap.yml", + "https://horizongir.github.io/reactive/xrefmap.yml" + ] + } +} \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5387c2df21da5a4d5118dd88f7c2604f72d47d7b GIT binary patch literal 113038 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 + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/template/public/main.css b/docs/template/public/main.css new file mode 100644 index 0000000..ee56505 --- /dev/null +++ b/docs/template/public/main.css @@ -0,0 +1 @@ +@import "workflow.css"; \ No newline at end of file diff --git a/docs/template/public/main.js b/docs/template/public/main.js new file mode 100644 index 0000000..fa1294e --- /dev/null +++ b/docs/template/public/main.js @@ -0,0 +1,13 @@ +import WorkflowContainer from "./workflow.js" + +export default { + defaultTheme: 'light', + iconLinks: [{ + icon: 'github', + href: 'https://github.com/bonsai-rx/gui', + title: 'GitHub' + }], + start: () => { + WorkflowContainer.init(); + } +} \ No newline at end of file diff --git a/docs/toc.yml b/docs/toc.yml new file mode 100644 index 0000000..902f309 --- /dev/null +++ b/docs/toc.yml @@ -0,0 +1,4 @@ +- name: Manual + href: articles/ +- name: Reference + href: api/ \ No newline at end of file From 66f39b60b1eb0e5c34bcea562457c8863e5a503e Mon Sep 17 00:00:00 2001 From: glopesdev Date: Thu, 11 Apr 2024 11:55:42 +0100 Subject: [PATCH 2/2] Automatically build package documentation --- .github/workflows/docs.yml | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..528d61f --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,43 @@ +# Builds and publishes the documentation website to gh-pages branch +name: Build docs + +on: + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4.1.1 + with: + submodules: true + + - name: Setup .NET Core SDK + uses: actions/setup-dotnet@v4.0.0 + with: + dotnet-version: 8.x + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v2 + + - name: Restore NuGet Packages + run: msbuild -t:restore src\Bonsai.Gui.sln + + - name: Setup DocFX + run: dotnet tool restore + + - name: Build Documentation + run: dotnet docfx docs/docfx.json + + - name: Checkout gh-pages + uses: actions/checkout@v4.1.1 + with: + ref: gh-pages + path: gh-pages + - name: Publish to github pages + uses: peaceiris/actions-gh-pages@v3.9.3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/_site + force_orphan: true \ No newline at end of file