From 6a9bbb5b2270a64c9486f5a51f85c767bc810abd Mon Sep 17 00:00:00 2001 From: LeonardoBai12 <69223422+LeonardoBai12@users.noreply.github.com> Date: Thu, 25 Jun 2026 00:23:05 -0300 Subject: [PATCH 1/2] feat: switch documentation site from Chirpy to Just-the-Docs Replaces the blog-style Chirpy theme with the documentation-focused Just-the-Docs theme. Adds nav hierarchy via front matter (parent, nav_order, has_children) and creates the Getting Started parent page that was missing for the mapping-request/rules/preview-route sections. Co-Authored-By: Claude Sonnet 4.6 --- documentation/Gemfile | 2 +- documentation/Gemfile.lock | 17 +++------ documentation/_config.yml | 38 ++++--------------- documentation/about/index.md | 3 +- documentation/api-reference/index.md | 3 +- documentation/ecosystem/index.md | 3 +- documentation/endpoints/index.md | 4 +- documentation/endpoints/postman.md | 4 +- documentation/getting-started/index.md | 10 +++++ .../getting-started/mapping-request/index.md | 4 +- .../getting-started/mapping-rules/index.md | 4 +- .../getting-started/preview-route/index.md | 4 +- documentation/index.md | 5 ++- documentation/overview/index.md | 4 +- documentation/overview/key-features.md | 4 +- 15 files changed, 55 insertions(+), 54 deletions(-) create mode 100644 documentation/getting-started/index.md 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..bf9122d 100644 --- a/documentation/about/index.md +++ b/documentation/about/index.md @@ -1,6 +1,7 @@ --- -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..ac9416c 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. 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 From 71394c085cd5347ab2d1b07e22b1e0071c0631ba Mon Sep 17 00:00:00 2001 From: LeonardoBai12 <69223422+LeonardoBai12@users.noreply.github.com> Date: Thu, 25 Jun 2026 00:31:57 -0300 Subject: [PATCH 2/2] fix: use site.baseurl prefix on image paths for local and GitHub Pages compatibility Co-Authored-By: Claude Sonnet 4.6 --- documentation/about/index.md | 2 +- documentation/ecosystem/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/about/index.md b/documentation/about/index.md index bf9122d..662f6df 100644 --- a/documentation/about/index.md +++ b/documentation/about/index.md @@ -5,7 +5,7 @@ nav_order: 7 ---
- Leonardo Bai diff --git a/documentation/ecosystem/index.md b/documentation/ecosystem/index.md index ac9416c..443ce16 100644 --- a/documentation/ecosystem/index.md +++ b/documentation/ecosystem/index.md @@ -14,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. -![Playground icon](/assets/images/middleware-playground-icon.png){: width="80" style="border-radius:12px; margin-bottom:0.5rem;"} +![Playground icon]({{ site.baseurl }}/assets/images/middleware-playground-icon.png){: width="80" style="border-radius:12px; margin-bottom:0.5rem;"} ### What it does