diff --git a/.github/workflows/publish-documentation.yml b/.github/workflows/publish-documentation.yml index 67fe7ee5..7b409d07 100644 --- a/.github/workflows/publish-documentation.yml +++ b/.github/workflows/publish-documentation.yml @@ -91,6 +91,11 @@ jobs: docfx metadata assembly-metadata.json mv temp ${{ env.friendly-version }} + - name: 'Snapshot guide for v${{ env.friendly-version }}' + shell: bash + run: | + cp -r api-reference/guide api-reference/${{ env.friendly-version }}/guide + - name: 'Discover all versions' id: discover-versions shell: bash @@ -116,7 +121,10 @@ jobs: cp api-reference/api-reference.json /tmp/api-reference.json for ver in $(echo "${{ steps.discover-versions.outputs.versions }}" | tr ',' ' '); do jq --arg ver "$ver" --arg group "v${ver}" \ - '.build.content += [{"dest": "", "files": ["*.yml"], "group": $group, "src": $ver, "rootTocPath": "~/toc.html"}] | + '.build.content += [ + {"dest": "", "files": ["*.yml"], "group": $group, "src": $ver, "rootTocPath": "~/toc.html"}, + {"dest": "guide", "files": ["*.{md,yml}"], "group": $group, "src": ($ver + "/guide"), "rootTocPath": "~/toc.html"} + ] | .build.groups = (.build.groups // {}) | .build.groups[$group] = {"dest": $ver}' \ /tmp/api-reference.json > /tmp/api-reference-new.json @@ -131,7 +139,7 @@ jobs: { echo "### YamlMime:TableOfContent" echo "- name: Guide" - echo " href: guide/" + echo " href: ${latest}/guide/introduction.html" echo "- name: Reference" echo " dropdown: true" echo " items:" @@ -145,6 +153,29 @@ jobs: done } > api-reference/toc.yml + - name: 'Inject latest version and released versions table into index.md' + shell: bash + run: | + latest="${{ steps.discover-versions.outputs.latest }}" + { + echo "## Released Versions" + echo "" + echo "| Version | Guide | API Reference |" + echo "|---------|-------|---------------|" + for ver in $(echo "${{ steps.discover-versions.outputs.versions }}" | tr ',' '\n' | sort -Vr); do + if [ "$ver" = "$latest" ]; then + label="v${ver} (latest)" + else + label="v${ver}" + fi + echo "| ${label} | [Guide](${ver}/guide/introduction.html) | [API Reference](${ver}/PolylineAlgorithm.html) |" + done + } > /tmp/versions_section.md + awk '/{versions_section}/{while((getline line < "/tmp/versions_section.md") > 0) print line; close("/tmp/versions_section.md"); next} {print}' \ + api-reference/index.md > /tmp/index.md + mv /tmp/index.md api-reference/index.md + sed -i "s|{version}|${latest}|g" api-reference/index.md + - name: 'Build documentation' shell: bash run: docfx build api-reference/api-reference.json diff --git a/api-reference/api-reference.json b/api-reference/api-reference.json index c5797921..bda258a4 100644 --- a/api-reference/api-reference.json +++ b/api-reference/api-reference.json @@ -8,8 +8,7 @@ { "files": [ "index.md", - "toc.yml", - "guide/*.{md,yml}" + "toc.yml" ], "exclude": [ "_docs/**" diff --git a/api-reference/docs-versioning/public/version-switcher.js b/api-reference/docs-versioning/public/version-switcher.js index 325a0531..31b2c842 100644 --- a/api-reference/docs-versioning/public/version-switcher.js +++ b/api-reference/docs-versioning/public/version-switcher.js @@ -53,7 +53,8 @@ '/' + targetVersion + '/' ); } else { - newPathname = window.location.pathname.replace(/\/$/, '') + '/' + targetVersion + '/'; + var siteRootPath = new URL(getSiteRoot(), window.location.href).pathname.replace(/\/$/, ''); + newPathname = siteRootPath + '/' + targetVersion + '/PolylineAlgorithm.html'; } window.location.pathname = newPathname; diff --git a/api-reference/index.md b/api-reference/index.md index 8c5b8d16..7be7e8fa 100644 --- a/api-reference/index.md +++ b/api-reference/index.md @@ -1,18 +1,20 @@ # PolylineAlgorithm API Reference Welcome! This documentation provides guides, configuration options, examples, and FAQs for the PolylineAlgorithm library. -For detailed class and method docs, see the [auto-generated API documentation](https://petesramek.github.io/polyline-algorithm-csharp/). +For detailed class and method docs, see the versioned [API Reference]({version}/PolylineAlgorithm.html). ## Contents -- [Quick Start Guide](./guide.md) -- [Configuration Options](./configuration.md) -- [Advanced Usage](./advanced.md) -- [Examples](./examples.md) -- [FAQ](./faq.md) +- [Introduction]({version}/guide/introduction.html) +- [Getting Started]({version}/guide/getting-started.html) +- [Configuration Options]({version}/guide/configuration.html) +- [Advanced Scenarios]({version}/guide/advanced-scenarios.html) +- [Samples]({version}/guide/sample.html) +- [FAQ]({version}/guide/faq.html) + +{versions_section} ## Links -- [API Reference Site](https://petesramek.github.io/polyline-algorithm-csharp/) -- [Contributing Guidelines](../CONTRIBUTING.md) -- [Changelog](./changelog.md) (if provided) +- [API Reference]({version}/PolylineAlgorithm.html) +- [Contributing Guidelines](https://github.com/petesramek/polyline-algorithm-csharp/blob/main/CONTRIBUTING.md)