diff --git a/documentation/Gemfile b/documentation/Gemfile index f63a769..7b7dc81 100644 --- a/documentation/Gemfile +++ b/documentation/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" gem "jekyll", "~> 4.3" -gem "jekyll-theme-chirpy", "~> 7.2" +gem "just-the-docs" group :jekyll_plugins do gem "jekyll-sitemap" diff --git a/documentation/Gemfile.lock b/documentation/Gemfile.lock index 51f3282..03d2c39 100644 --- a/documentation/Gemfile.lock +++ b/documentation/Gemfile.lock @@ -43,27 +43,22 @@ GEM safe_yaml (~> 1.0) terminal-table (>= 1.8, < 4.0) webrick (~> 1.7) - jekyll-archives (2.3.0) - jekyll (>= 3.6, < 5.0) jekyll-include-cache (0.2.1) jekyll (>= 3.7, < 5.0) - jekyll-paginate (1.1.0) jekyll-sass-converter (3.1.0) sass-embedded (~> 1.75) jekyll-seo-tag (2.9.0) jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) - jekyll-theme-chirpy (7.5.0) - jekyll (~> 4.3) - jekyll-archives (~> 2.2) - jekyll-include-cache (~> 0.2) - jekyll-paginate (~> 1.1) - jekyll-seo-tag (~> 2.8) - jekyll-sitemap (~> 1.4) jekyll-watch (2.2.1) listen (~> 3.0) json (2.19.8) + just-the-docs (0.12.0) + jekyll (>= 3.8.5) + jekyll-include-cache + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -102,7 +97,7 @@ DEPENDENCIES jekyll (~> 4.3) jekyll-seo-tag (~> 2.8) jekyll-sitemap - jekyll-theme-chirpy (~> 7.2) + just-the-docs BUNDLED WITH 2.4.10 diff --git a/documentation/_config.yml b/documentation/_config.yml index 7b41904..bdcc571 100644 --- a/documentation/_config.yml +++ b/documentation/_config.yml @@ -1,10 +1,9 @@ -theme: jekyll-theme-chirpy +theme: just-the-docs # ------------------------- # Site metadata # ------------------------- title: "Project Middleware" -tagline: A Kotlin/Ktor middleware for transforming and mapping external API responses description: >- ProjectMiddleware is an API transformation layer that lets clients register mapping rules, call external APIs, and receive clean transformed responses — @@ -17,36 +16,15 @@ lang: en timezone: America/Sao_Paulo # ------------------------- -# Author +# Just-the-Docs settings # ------------------------- -github: - username: "LeonardoBai12" +color_scheme: dark +search_enabled: true +heading_anchors: true -social: - name: "Leonardo Bai" - email: "lb.io.dev@gmail.com" - links: - - https://github.com/LeonardoBai12 - -# ------------------------- -# Theme preferences -# ------------------------- -theme_mode: # leave blank to follow system default; or "light" / "dark" - -avatar: "/assets/images/middleware-icon.jpg" - -toc: true - -# ------------------------- -# Analytics (optional) -# ------------------------- -google_analytics: - id: "" - -# ------------------------- -# SEO -# ------------------------- -google_site_verification: "" +aux_links: + "GitHub": + - "https://github.com/LeonardoBai12/ProjectMiddleware" # ------------------------- # Jekyll build settings diff --git a/documentation/about/index.md b/documentation/about/index.md index cc8f66a..662f6df 100644 --- a/documentation/about/index.md +++ b/documentation/about/index.md @@ -1,10 +1,11 @@ --- -layout: page +layout: default title: About the Creator +nav_order: 7 ---
diff --git a/documentation/api-reference/index.md b/documentation/api-reference/index.md
index fcd1164..d784395 100644
--- a/documentation/api-reference/index.md
+++ b/documentation/api-reference/index.md
@@ -1,6 +1,7 @@
---
-layout: page
+layout: default
title: KDoc Reference
+nav_order: 6
---
The KDoc reference is auto-generated from the source code on every push to `main` using [Dokka](https://github.com/Kotlin/dokka). It documents all public and internal declarations across every module.
diff --git a/documentation/ecosystem/index.md b/documentation/ecosystem/index.md
index 5530617..443ce16 100644
--- a/documentation/ecosystem/index.md
+++ b/documentation/ecosystem/index.md
@@ -1,6 +1,7 @@
---
-layout: page
+layout: default
title: Ecosystem
+nav_order: 5
---
ProjectMiddleware is the backend engine of a small ecosystem of services and apps designed to work together. Each piece has a single responsibility and evolves independently.
@@ -13,7 +14,7 @@ ProjectMiddleware is the backend engine of a small ecosystem of services and app
A **Kotlin Multiplatform** client application for Android and iOS that provides a visual interface for creating, previewing, and managing mapped routes — all powered by ProjectMiddleware on the backend.
-{: width="80" style="border-radius:12px; margin-bottom:0.5rem;"}
+{: width="80" style="border-radius:12px; margin-bottom:0.5rem;"}
### What it does
diff --git a/documentation/endpoints/index.md b/documentation/endpoints/index.md
index 9602158..8e10bcb 100644
--- a/documentation/endpoints/index.md
+++ b/documentation/endpoints/index.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Endpoints Overview
+nav_order: 4
+has_children: true
---
All endpoints are served under the base URL of the deployed middleware instance. Authentication with the middleware itself uses HTTP Basic Auth on all routes.
diff --git a/documentation/endpoints/postman.md b/documentation/endpoints/postman.md
index 26d9379..50f9e5b 100644
--- a/documentation/endpoints/postman.md
+++ b/documentation/endpoints/postman.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Postman Collection
+parent: Endpoints Overview
+nav_order: 1
---
The ProjectMiddleware Postman collection contains ready-to-use requests for all endpoints, with pre-filled examples for route creation, preview, and calling mapped routes.
diff --git a/documentation/getting-started/index.md b/documentation/getting-started/index.md
new file mode 100644
index 0000000..986f074
--- /dev/null
+++ b/documentation/getting-started/index.md
@@ -0,0 +1,10 @@
+---
+layout: default
+title: Getting Started
+nav_order: 3
+has_children: true
+---
+
+# Getting Started
+
+Learn how to register mapping rules, call external APIs, and receive transformed responses through ProjectMiddleware.
diff --git a/documentation/getting-started/mapping-request/index.md b/documentation/getting-started/mapping-request/index.md
index 5ddef3a..6f01c0c 100644
--- a/documentation/getting-started/mapping-request/index.md
+++ b/documentation/getting-started/mapping-request/index.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Mapping Request
+parent: Getting Started
+nav_order: 1
---
`POST /v1/mapping` registers a new mapped route. The middleware validates the mapping rules, makes a live test call to the external API, stores the route on success, and returns the UUID-based path to use for all future calls.
diff --git a/documentation/getting-started/mapping-rules/index.md b/documentation/getting-started/mapping-rules/index.md
index edf3296..69c9a52 100644
--- a/documentation/getting-started/mapping-rules/index.md
+++ b/documentation/getting-started/mapping-rules/index.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Mapping Rules
+parent: Getting Started
+nav_order: 2
---
Mapping rules define how the middleware transforms an external API's JSON response into your desired output shape. They are provided as the `rulesAsString` field when creating a mapped route.
diff --git a/documentation/getting-started/preview-route/index.md b/documentation/getting-started/preview-route/index.md
index 0a2d8ad..6acb65c 100644
--- a/documentation/getting-started/preview-route/index.md
+++ b/documentation/getting-started/preview-route/index.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Preview Route
+parent: Getting Started
+nav_order: 3
---
`POST /v1/preview` lets you test mapping rules against a sample response body **without** registering a permanent route or making any outbound calls. Use it to iterate on your `rulesAsString` until the output looks exactly right.
diff --git a/documentation/index.md b/documentation/index.md
index 42f65ee..27020e5 100644
--- a/documentation/index.md
+++ b/documentation/index.md
@@ -1,6 +1,7 @@
---
-layout: page
-title: ProjectMiddleware
+layout: home
+title: Home
+nav_order: 1
---
**ProjectMiddleware** is a Kotlin/Ktor API transformation service. It acts as a middleware layer: clients register mapping rules that define how to call an external API and how to transform its JSON response. Mapped routes are then served dynamically via UUID-based paths.
diff --git a/documentation/overview/index.md b/documentation/overview/index.md
index 71286ce..bd712cb 100644
--- a/documentation/overview/index.md
+++ b/documentation/overview/index.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: How It Works
+nav_order: 2
+has_children: true
---
ProjectMiddleware sits between your client application and any external API. You define the transformation rules once, and the middleware handles all subsequent calls — including authentication, field mapping, and response shaping.
diff --git a/documentation/overview/key-features.md b/documentation/overview/key-features.md
index 0ecccc6..f191a69 100644
--- a/documentation/overview/key-features.md
+++ b/documentation/overview/key-features.md
@@ -1,6 +1,8 @@
---
-layout: page
+layout: default
title: Key Features
+parent: How It Works
+nav_order: 1
---
## Flexible field mapping