diff --git a/docs/.gitignore b/docs/.gitignore index 0428fdd82..cccef790c 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,3 +1,3 @@ node_modules/ build/ -package-list.json \ No newline at end of file +package-lock.json \ No newline at end of file diff --git a/docs/make.jl b/docs/make.jl index d5f291c2b..cc68efa12 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -50,7 +50,7 @@ makedocs(; repo = "github.com/asinghvi17/GeometryOps.jl", ), pages=[ - "Home" => "index.md", + "Introduction" => "introduction.md", "API Reference" => "api.md", "Source code" => literate_pages, ], diff --git a/docs/src/index.md b/docs/src/index.md index 323014f76..2c5890c53 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,8 +1,47 @@ -```@meta -CurrentModule = GeometryOps -``` - -# GeometryOps.jl +```@raw html +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: "GeometryOps.jl" + text: "" + tagline: Blazing fast geometry operations in pure Julia + image: + src: /logo.png + alt: GeometryOps + actions: + - theme: brand + text: Introduction + link: /introduction + - theme: alt + text: View on Github + link: https://github.com/asinghvi17/GeometryOps.jl + - theme: alt + text: API Reference + link: /api + +features: + - icon: Julia code + title: Pure Julia code + details: Fast, understandable, extensible functions + link: /introduction + - icon: + title: Literate programming + details: Documented source code with examples! + link: /source/methods/clipping/cut + - icon: + title: Full integration with GeoInterface + details: Use any GeoInterface.jl-compatible geometry + link: https://juliageo.org/GeoInterface.jl/stable +--- + + +

+ +
+ +

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries. @@ -12,18 +51,8 @@ Most of the usecases are driven by GIS and similar Earth data workflows, so this We welcome contributions, either as pull requests or discussion on issues! -## Main concepts - -### The `apply` paradigm - -!!! note - See the [Primitive Functions](@ref) page for more information on this. -The `apply` function allows you to decompose a given collection of geometries down to a certain level, and then operate on it. +
-Functionally, it's similar to `map` in the way you apply it to geometries. - -### What's this `GeoInterface.Wrapper` thing? - -Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type. +``` diff --git a/docs/src/introduction.md b/docs/src/introduction.md new file mode 100644 index 000000000..9548e686e --- /dev/null +++ b/docs/src/introduction.md @@ -0,0 +1,26 @@ +# Introduction + + +GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries. + +The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them [GeoInterface.jl](https://github.com/JuliaGeo/GeoInterface.jl)-compatible. We seem to be focusing primarily on 2/2.5D geometries for now. + +Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space. + +We welcome contributions, either as pull requests or discussion on issues! + +## Main concepts + +### The `apply` paradigm + +!!! note + See the [Primitive Functions](/source/primitives) page for more information on this. + +The `apply` function allows you to decompose a given collection of geometries down to a certain level, and then operate on it. + +Functionally, it's similar to `map` in the way you apply it to geometries. + +### What's this `GeoInterface.Wrapper` thing? + +Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type. +