Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions fern/assets/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,46 @@ a[href*="changelog"] svg {
.sdks-homepage {
position: relative;

.changelog-button {
display: flex;
padding: 0.25rem 0.5rem;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
transition: background-color 0.15s ease-in-out;
position: relative;
height: 2rem;
text-decoration: none !important;

img {
flex-shrink: 0;
width: 16px;
height: 16px;
position: relative;
}

div {
font-size: 1rem;
white-space: nowrap;
max-width: 0;
opacity: 0;
overflow: hidden;
transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
width: 0;
}

&:hover {
gap: 0.25rem;
background-color: var(--grayscale-a3);

div {
max-width: 200px;
opacity: 1;
width: fit-content;
}
}
}

.dashed-pattern-left {
position: absolute;
left: -4rem;
Expand Down
55 changes: 35 additions & 20 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,31 +57,31 @@ products:
slug: api-definitions

- display-name: OpenAPI
path: ./products/api-def/api-def.yml
path: ./products/api-def/openapi-def.yml
icon: fa-regular fa-book
image: ./images/product-switcher/openapi-definition-light.png
slug: openapi-definition

- display-name: AsyncAPI
path: ./products/api-def/api-def.yml
path: ./products/api-def/asyncapi-def.yml
icon: fa-regular fa-bolt
image: ./images/product-switcher/asyncapi-light.png
slug: asyncapi-definition

- display-name: OpenRPC
path: ./products/api-def/api-def.yml
path: ./products/api-def/openrpc-def.yml
icon: fa-regular fa-code
image: ./images/product-switcher/openrpc-light.png
slug: openrpc-definition

- display-name: gRPC
path: ./products/api-def/api-def.yml
path: ./products/api-def/grpc-def.yml
icon: fa-regular fa-plug
image: ./images/product-switcher/grpc-light.png
slug: grpc-definition

- display-name: Fern Definition
path: ./products/api-def/api-def.yml
path: ./products/api-def/ferndef-def.yml
icon: fa-regular fa-seedling
image: ./images/product-switcher/fern-definition-light.png
slug: fern-definition
Expand Down Expand Up @@ -411,6 +411,9 @@ redirects:
- source: /learn/docs/content/visual-editor
destination: /learn/docs/writing-content/visual-editor
permanent: true
- source: /learn/docs/writing-content/code-blocks
destination: /learn/docs/writing-content/components/code-blocks
permanent: true

- source: /learn/docs/getting-started/changelog/:slug*
destination: /learn/docs/changelog/:slug*
Expand Down Expand Up @@ -476,43 +479,40 @@ redirects:
# API DEFINITION REDIRECTS
# ============================================================================

# API Definition OpenAPI specific redirects first
# # API Definition OpenAPI specific redirects first
- source: /learn/api-definition/openapi/endpoints/:slug*
destination: /learn/openapi-definition/endpoints/:slug*
destination: /learn/api-definitions/openapi/endpoints/:slug*
permanent: true
- source: /learn/api-definition/openapi/extensions/:slug*
destination: /learn/openapi-definition/extensions/:slug*
destination: /learn/api-definitions/openapi/extensions/:slug*
permanent: true
- source: /learn/api-definition/openapi/frameworks/:slug*
destination: /learn/openapi-definition/frameworks/:slug*
destination: /learn/api-definitions/openapi/frameworks/:slug*
permanent: true
- source: /learn/api-definition/openapi/:slug*
destination: /learn/openapi-definition/:slug*
destination: /learn/api-definitions/openapi/:slug*
permanent: true
- source: /learn/openapi-definition/extensions/webhooks
destination: /learn/openapi-definition/endpoints/webhooks
destination: /learn/api-definitions/openapi/endpoints/webhooks
permanent: true

# API Definition Fern specific redirects first
- source: /learn/api-definition/fern/endpoints/:slug*
destination: /learn/fern-definition/endpoints/:slug*
destination: /learn/api-definitions/ferndef/endpoints/:slug*
permanent: true
- source: /learn/api-definition/fern/api-yml/:slug*
destination: /learn/fern-definition/api-yml/:slug*
destination: /learn/api-definitions/ferndef/api-yml/:slug*
permanent: true
- source: /learn/api-definition/fern/:slug*
destination: /learn/fern-definition/:slug*
destination: /learn/api-definitions/ferndef/:slug*
permanent: true

# API Definition Introduction redirects
# # API Definition Introduction redirects
- source: /learn/api-definition/introduction/what-is-an-api-definition
destination: /learn/openapi-definition/overview
destination: /learn/api-definitions/overview/what-is-an-api-definition
permanent: true
- source: /learn/api-definition/introduction/what-is-the-fern-folder
destination: /learn/sdks/overview/quickstart
permanent: true
- source: /learn/api-definition/introduction/:slug*
destination: /learn/openapi-definition/overview
destination: /learn/api-definitions/overview/project-structure
permanent: true

# ============================================================================
Expand Down Expand Up @@ -573,6 +573,21 @@ redirects:
# ============================================================================
# API REFERENCE REDIRECTS
# ============================================================================
- source: /learn/openapi-definition/empty-page
destination: /learn/api-definitions/openapi/overview
permanent: true
- source: /learn/asyncapi-definition/empty-page
destination: /learn/api-definitions/asyncapi/overview
permanent: true
- source: /learn/openrpc-definition/empty-page
destination: /learn/api-definitions/openrpc/overview
permanent: true
- source: /learn/grpc-definition/empty-page
destination: /learn/api-definitions/grpc/overview
permanent: true
- source: /learn/fern-definition/empty-page
destination: /learn/api-definitions/ferndef/overview
permanent: true
- source: /learn/openapi-definition/:slug*
destination: /learn/api-definitions/openapi/:slug*
permanent: true
Expand Down
4 changes: 4 additions & 0 deletions fern/products/api-def/asyncapi-def.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
navigation:
- page: AsyncAPI Definition Redirect Page
path: ./pages/asyncapi-empty.mdx
slug: empty-page
4 changes: 4 additions & 0 deletions fern/products/api-def/ferndef-def.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
navigation:
- page: Fern Definition Redirect Page
path: ./pages/ferndef-empty.mdx
slug: empty-page
4 changes: 4 additions & 0 deletions fern/products/api-def/grpc-def.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
navigation:
- page: gRPC Definition Redirect Page
path: ./pages/grpc-empty.mdx
slug: empty-page
4 changes: 4 additions & 0 deletions fern/products/api-def/openapi-def.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
navigation:
- page: OpenAPI Definition Redirect Page
path: ./pages/openapi-empty.mdx
slug: empty-page
4 changes: 4 additions & 0 deletions fern/products/api-def/openrpc-def.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
navigation:
- page: OpenRPC Definition Redirect Page
path: ./pages/openrpc-empty.mdx
slug: empty-page
6 changes: 6 additions & 0 deletions fern/products/api-def/pages/asyncapi-empty.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: AsyncAPI Definition Redirect Page
description: This is an empty page used to redirect to the AsyncAPI Definition pages.
---

<Warning>This page is empty. Please visit the [AsyncAPI Definition](/api-definitions/asyncapi/overview) page for more information.</Warning>
6 changes: 6 additions & 0 deletions fern/products/api-def/pages/ferndef-empty.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Fern Definition Redirect Page
description: This is an empty page used to redirect to the Fern Definition pages.
---

<Warning>This page is empty. Please visit the [Fern Definition](/api-definitions/ferndef/overview) page for more information.</Warning>
6 changes: 6 additions & 0 deletions fern/products/api-def/pages/grpc-empty.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: gRPC Definition Redirect Page
description: This is an empty page used to redirect to the gRPC Definition pages.
---

<Warning>This page is empty. Please visit the [gRPC Definition](/api-definitions/grpc/overview) page for more information.</Warning>
6 changes: 6 additions & 0 deletions fern/products/api-def/pages/openapi-empty.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: OpenAPI Definition Redirect Page
description: This is an empty page used to redirect to the OpenAPI Definition pages.
---

<Warning>This page is empty. Please visit the [OpenAPI Definition](/api-definitions/openapi/overview) page for more information.</Warning>
6 changes: 6 additions & 0 deletions fern/products/api-def/pages/openrpc-empty.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: OpenRPC Definition Redirect Page
description: This is an empty page used to redirect to the OpenRPC Definition pages.
---

<Warning>This page is empty. Please visit the [OpenRPC Definition](/api-definitions/openrpc/overview) page for more information.</Warning>
56 changes: 6 additions & 50 deletions fern/products/sdks/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,6 @@ title: SDKs Overview
description: Generate idiomatic SDKs in multiple programming languages
---

<style>
{`
.changelog-button {
display: flex;
padding: 0.25rem 0.5rem;
align-items: center;
justify-content: center;
border-radius: 0.5rem;
transition: background-color 0.15s ease-in-out;
position: relative;
height: 2rem;
text-decoration: none !important;

img {
flex-shrink: 0;
width: 16px;
height: 16px;
position: relative;
}

div {
font-size: 1rem;
white-space: nowrap;
max-width: 0;
opacity: 0;
overflow: hidden;
transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
width: 0;
}

&:hover {
gap: 0.25rem;
background-color: var(--grayscale-a3);

div {
max-width: 200px;
opacity: 1;
width: fit-content;
}
}
}
`}
</style>

<div className="sdks-homepage">
{/* Dashed Pattern - Left Side */}
<div className="dashed-pattern-left">
Expand Down Expand Up @@ -95,7 +51,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-python.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/python/changelog">
Expand All @@ -120,7 +76,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-go.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/go/changelog">
Expand All @@ -145,7 +101,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-java.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/java/changelog">
Expand All @@ -170,7 +126,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-csharp.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/csharp/changelog">
Expand All @@ -195,7 +151,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-php.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/php/changelog">
Expand All @@ -220,7 +176,7 @@ description: Generate idiomatic SDKs in multiple programming languages
<img src="./images/arrow-right-white.svg" alt="Arrow right light" className="arrow-right hidden dark:block m-0" noZoom />
</div>
<div class="flex items-center gap-2">
<div class="text-(color:--grayscale-a12) text-body text-base font-light">
<div class="text-(color:--grayscale-a10) text-body text-base font-light">
v<Markdown src="/snippets/version-number-ruby.mdx"/>
</div>
<a class="changelog-button text-(color:--grayscale-a12) text-body text-base font-light" href="/sdks/generators/ruby/changelog">
Expand Down