diff --git a/.github/workflows/publish-documentation.yml b/.github/workflows/publish-documentation.yml index 3bc4fdbb..85d8f21a 100644 --- a/.github/workflows/publish-documentation.yml +++ b/.github/workflows/publish-documentation.yml @@ -139,7 +139,7 @@ jobs: { echo "### YamlMime:TableOfContent" echo "- name: Guide" - echo " href: ${latest}/guide/introduction.html" + echo " href: ${latest}/guide/getting-started.html" echo "- name: API Reference" echo " href: ${latest}/PolylineAlgorithm.html" } > api-reference/toc.yml @@ -159,7 +159,7 @@ jobs: else label="v${ver}" fi - echo "| ${label} | [Guide](${ver}/guide/introduction.html) | [API Reference](${ver}/PolylineAlgorithm.html) |" + echo "| ${label} | [Guide](${ver}/guide/getting-started.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}' \ diff --git a/api-reference/docs-versioning/public/version-switcher.js b/api-reference/docs-versioning/public/version-switcher.js index c727a818..47324298 100644 --- a/api-reference/docs-versioning/public/version-switcher.js +++ b/api-reference/docs-versioning/public/version-switcher.js @@ -13,7 +13,7 @@ function getSiteRoot() { var meta = document.querySelector('meta[name="docfx:rel"]'); - return meta ? meta.getAttribute('content') : './'; + return meta ? (meta.getAttribute('content') || './') : './'; } var VERSION_PATTERN = /\/\d+(\.\d+)*\//; @@ -83,7 +83,7 @@ ); } else { var siteRootPath = new URL(getSiteRoot(), window.location.href).pathname.replace(/\/$/, ''); - newPathname = siteRootPath + '/' + targetVersion + '/PolylineAlgorithm.html'; + newPathname = siteRootPath + '/' + targetVersion + '/guide/getting-started.html'; } window.location.pathname = newPathname; diff --git a/api-reference/guide/toc.yml b/api-reference/guide/toc.yml index 985c0293..015a9943 100644 --- a/api-reference/guide/toc.yml +++ b/api-reference/guide/toc.yml @@ -1,6 +1,4 @@ -- name: Introduction - href: introduction.md -- name: Getting Started +- name: Getting Started href: getting-started.md - name: Configuration href: configuration.md diff --git a/api-reference/index.md b/api-reference/index.md index 7be7e8fa..1a0ca08e 100644 --- a/api-reference/index.md +++ b/api-reference/index.md @@ -1,20 +1,33 @@ -# PolylineAlgorithm API Reference +# PolylineAlgorithm for .NET -Welcome! This documentation provides guides, configuration options, examples, and FAQs for the PolylineAlgorithm library. -For detailed class and method docs, see the versioned [API Reference]({version}/PolylineAlgorithm.html). +Welcome to **PolylineAlgorithm for .NET**, a modern library for Google-compliant polyline encoding and decoding with strong input validation, extensible API design, and robust performance. -## Contents +## What is PolylineAlgorithm? -- [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) +PolylineAlgorithm provides tools for encoding a sequence of geographic coordinates into a compact string format used by Google Maps and other mapping platforms, and for decoding those strings back into coordinates. Its simple API and thorough documentation make it suitable for .NET Core, .NET 5+, and any framework supporting `netstandard2.1`. + +## Key Benefits + +- **Standards compliance**: Implements Google's Encoded Polyline Algorithm as specified +- **Immutable, strongly-typed objects**: Guarantees reliability and thread safety +- **Extensible**: Custom coordinate/polyline support via abstract base classes and interfaces +- **Robust input validation**: Throws descriptive exceptions for out-of-range or malformed input +- **Configuration and logging**: Advanced options and integration with `ILoggerFactory` +- **Benchmarked and tested**: Includes unit and performance tests + +## Getting Started + +Install via the .NET CLI: + +```shell +dotnet add package PolylineAlgorithm +``` + +Then explore the versioned guide and API reference below to learn more. {versions_section} ## Links -- [API Reference]({version}/PolylineAlgorithm.html) - [Contributing Guidelines](https://github.com/petesramek/polyline-algorithm-csharp/blob/main/CONTRIBUTING.md) +- [Report an Issue](https://github.com/petesramek/polyline-algorithm-csharp/issues)