From 4efbfff6192de27106b350c3fccfa255bdf45462 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Thu, 14 Aug 2025 15:43:47 -0400 Subject: [PATCH 1/9] fix: updated footer --- fern/footer-dist/output.js | 2 +- footer/src/FernFooter.tsx | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/fern/footer-dist/output.js b/fern/footer-dist/output.js index 254c2318..58163513 100644 --- a/fern/footer-dist/output.js +++ b/fern/footer-dist/output.js @@ -317,4 +317,4 @@ Error generating stack: `+o.message+` min-width: 200px; } } - `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"/learn/docs/getting-started/overview",className:"footer-link",children:"Docs"}),f.jsx("a",{href:"/learn/ask-fern",className:"footer-link",children:"Ask Fern"}),f.jsx("a",{href:"/learn/openapi/overview",className:"footer-link",children:"OpenAPI"}),f.jsx("a",{href:"/learn/fern-def/overview",className:"footer-link",children:"Fern Definition"}),f.jsx("a",{href:"/learn/cli-api-reference/cli-reference/overview",className:"footer-link",children:"CLI Reference"}),f.jsx("a",{href:"/learn/cli-api-reference/api-reference/overview",className:"footer-link",children:"API Reference"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"https://buildwithfern.com/learn/v2/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Eu="fern-footer",Ru=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Eu);n||(n=document.createElement("div"),n.setAttribute("id",Eu),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ru(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ru()}).observe(document.body,{childList:!0,subtree:!0})}); + `}),f.jsxs("footer",{className:"footer",children:[f.jsxs("div",{className:"footer-top",children:[f.jsxs("a",{className:"footer-logo",href:"https://buildwithfern.com",children:[f.jsx(N2,{className:"footer-logo-img dark:hidden"}),f.jsx(T2,{className:"footer-logo-img hidden dark:block"}),f.jsx(V2,{className:"footer-logo-frame dark:hidden"}),f.jsx(L2,{className:"footer-logo-frame hidden dark:block"})]}),f.jsxs("div",{className:"footer-status",children:[f.jsx(k2,{}),f.jsxs("a",{className:"soc2-badge",href:"https://security.buildwithfern.com/",children:[f.jsx(F2,{className:"soc2-badge-img"}),f.jsx("span",{className:"status-text",children:"Soc 2 Type II"})]})]})]}),f.jsxs("div",{className:"footer-links",children:[f.jsx("div",{className:"footer-bottom-text",children:" © 2025 Fern • Located in Brooklyn, NY "}),f.jsxs("div",{className:"footer-columns",children:[f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Documentation"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/sdks/overview/introduction",className:"footer-link",children:"SDKs"}),f.jsx("a",{href:"/learn/docs/getting-started/overview",className:"footer-link",children:"Docs"}),f.jsx("a",{href:"/learn/ask-fern",className:"footer-link",children:"Ask Fern"}),f.jsx("a",{href:"/learn/cli-api-reference/cli-reference/overview",className:"footer-link",children:"CLI Reference"}),f.jsx("a",{href:"/learn/cli-api-reference/api-reference/overview",className:"footer-link",children:"API Reference"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"API Definitions"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"/learn/api-definitions/openapi/overview",className:"footer-link",children:"OpenAPI"}),f.jsx("a",{href:"/learn/api-definitions/asyncapi/overview",className:"footer-link",children:"AsyncAPI"}),f.jsx("a",{href:"/learn/api-definitions/openrpc/overview",className:"footer-link",children:"OpenRPC"}),f.jsx("a",{href:"/learn/api-definitions/grpc/overview",className:"footer-link",children:"gRPC"}),f.jsx("a",{href:"/learn/api-definitions/ferndef/overview",className:"footer-link",children:"Fern Definition"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Resources"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://buildwithfern.com/blog",className:"footer-link",children:"Blog"}),f.jsx("a",{href:"learn/home#help",className:"footer-link",children:"Support"}),f.jsx("a",{href:"https://buildwithfern.com/pricing",className:"footer-link",children:"Pricing"}),f.jsx("a",{href:"https://buildwithfern.com/slack",className:"footer-link",children:"Slack"})]})]}),f.jsxs("div",{className:"footer-column",children:[f.jsx("h4",{className:"footer-column-title",children:"Company"}),f.jsxs("div",{className:"footer-column-links",children:[f.jsx("a",{href:"https://brandfetch.com/buildwithfern.com",className:"footer-link",children:"Brand Kit"}),f.jsx("a",{href:"https://buildwithfern.com/privacy-policy",className:"footer-link",children:"Privacy Policy"}),f.jsx("a",{href:"https://buildwithfern.com/terms-of-service",className:"footer-link",children:"Terms of Service"})]})]}),f.jsxs("div",{className:"footer-column-socials",children:[f.jsxs("a",{href:"https://github.com/fern-api/fern",className:"footer-link",children:[f.jsx(q2,{className:"footer-social-icon dark:hidden"}),f.jsx(W2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://x.com/buildwithfern",className:"footer-link",children:[f.jsx(S2,{className:"footer-social-icon dark:hidden"}),f.jsx(U2,{className:"footer-social-icon hidden dark:block"})]}),f.jsxs("a",{href:"https://www.linkedin.com/company/buildwithfern",className:"footer-link",children:[f.jsx(E2,{className:"footer-social-icon dark:hidden"}),f.jsx(R2,{className:"footer-social-icon hidden dark:block"})]})]})]})]})]})]}),Eu="fern-footer",Ru=async()=>{if(!document.getElementById("footer")){const t=document.createElement("div");t.setAttribute("id","fern-footer-wrapper"),t.setAttribute("data-react-component","true");let n=document.getElementById(Eu);n||(n=document.createElement("div"),n.setAttribute("id",Eu),document.body.appendChild(n)),n.insertBefore(t,n.firstChild),nf(t).render(f.jsx(gf.StrictMode,{children:f.jsx(B2,{})})),n&&(n.style.display="block")}};window.addEventListener("load",async()=>{await Ru(),new MutationObserver(async e=>{e.some(n=>n.type==="childList"&&!document.getElementById("fern-footer-wrapper"))&&await Ru()}).observe(document.body,{childList:!0,subtree:!0})}); diff --git a/footer/src/FernFooter.tsx b/footer/src/FernFooter.tsx index 778020e6..a1f6dfce 100644 --- a/footer/src/FernFooter.tsx +++ b/footer/src/FernFooter.tsx @@ -284,13 +284,22 @@ export const FernFooter: React.FC = () => { SDKs Docs Ask Fern - OpenAPI - Fern Definition CLI Reference API Reference +
+

API Definitions

+
+ OpenAPI + AsyncAPI + OpenRPC + gRPC + Fern Definition +
+
+

Resources

From 0ba536fbdb0032cf4240ba97ba22ca66bd40cac0 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Thu, 14 Aug 2025 23:58:30 -0400 Subject: [PATCH 2/9] fix: updated redirect --- fern/assets/styles.css | 40 +++++++++++++++++ fern/docs.yml | 10 ++--- fern/products/api-def/asyncapi-def.yml | 3 ++ fern/products/api-def/ferndef-def.yml | 3 ++ fern/products/api-def/grpc-def.yml | 3 ++ fern/products/api-def/openapi-def.yml | 3 ++ fern/products/api-def/openrpc-def.yml | 3 ++ .../products/api-def/pages/asyncapi-empty.mdx | 6 +++ fern/products/api-def/pages/ferndef-empty.mdx | 6 +++ fern/products/api-def/pages/grpc-empty.mdx | 6 +++ fern/products/api-def/pages/openapi-empty.mdx | 6 +++ fern/products/api-def/pages/openrpc-empty.mdx | 6 +++ fern/products/sdks/introduction.mdx | 44 ------------------- 13 files changed, 90 insertions(+), 49 deletions(-) create mode 100644 fern/products/api-def/asyncapi-def.yml create mode 100644 fern/products/api-def/ferndef-def.yml create mode 100644 fern/products/api-def/grpc-def.yml create mode 100644 fern/products/api-def/openapi-def.yml create mode 100644 fern/products/api-def/openrpc-def.yml create mode 100644 fern/products/api-def/pages/asyncapi-empty.mdx create mode 100644 fern/products/api-def/pages/ferndef-empty.mdx create mode 100644 fern/products/api-def/pages/grpc-empty.mdx create mode 100644 fern/products/api-def/pages/openapi-empty.mdx create mode 100644 fern/products/api-def/pages/openrpc-empty.mdx diff --git a/fern/assets/styles.css b/fern/assets/styles.css index cafa4f31..84d687d3 100644 --- a/fern/assets/styles.css +++ b/fern/assets/styles.css @@ -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; diff --git a/fern/docs.yml b/fern/docs.yml index 81c0430b..ef174505 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -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 diff --git a/fern/products/api-def/asyncapi-def.yml b/fern/products/api-def/asyncapi-def.yml new file mode 100644 index 00000000..a9bf88b4 --- /dev/null +++ b/fern/products/api-def/asyncapi-def.yml @@ -0,0 +1,3 @@ +navigation: + - page: AsyncAPI Definition Redirect Page + path: ./pages/asyncapi-empty.mdx \ No newline at end of file diff --git a/fern/products/api-def/ferndef-def.yml b/fern/products/api-def/ferndef-def.yml new file mode 100644 index 00000000..8cc096a7 --- /dev/null +++ b/fern/products/api-def/ferndef-def.yml @@ -0,0 +1,3 @@ +navigation: + - page: Fern Definition Redirect Page + path: ./pages/ferndef-empty.mdx \ No newline at end of file diff --git a/fern/products/api-def/grpc-def.yml b/fern/products/api-def/grpc-def.yml new file mode 100644 index 00000000..ad65bb46 --- /dev/null +++ b/fern/products/api-def/grpc-def.yml @@ -0,0 +1,3 @@ +navigation: + - page: gRPC Definition Redirect Page + path: ./pages/grpc-empty.mdx \ No newline at end of file diff --git a/fern/products/api-def/openapi-def.yml b/fern/products/api-def/openapi-def.yml new file mode 100644 index 00000000..931161d2 --- /dev/null +++ b/fern/products/api-def/openapi-def.yml @@ -0,0 +1,3 @@ +navigation: + - page: OpenAPI Definition Redirect Page + path: ./pages/openapi-empty.mdx \ No newline at end of file diff --git a/fern/products/api-def/openrpc-def.yml b/fern/products/api-def/openrpc-def.yml new file mode 100644 index 00000000..ad09f5ee --- /dev/null +++ b/fern/products/api-def/openrpc-def.yml @@ -0,0 +1,3 @@ +navigation: + - page: OpenRPC Definition Redirect Page + path: ./pages/openrpc-empty.mdx \ No newline at end of file diff --git a/fern/products/api-def/pages/asyncapi-empty.mdx b/fern/products/api-def/pages/asyncapi-empty.mdx new file mode 100644 index 00000000..ce8d9a62 --- /dev/null +++ b/fern/products/api-def/pages/asyncapi-empty.mdx @@ -0,0 +1,6 @@ +--- +title: AsyncAPI Definition Redirect Page +description: This is an empty page used to redirect to the AsyncAPI Definition pages. +--- + +This page is empty. Please visit the [AsyncAPI Definition](/api-definitions/asyncapi/overview) page for more information. \ No newline at end of file diff --git a/fern/products/api-def/pages/ferndef-empty.mdx b/fern/products/api-def/pages/ferndef-empty.mdx new file mode 100644 index 00000000..3e724c36 --- /dev/null +++ b/fern/products/api-def/pages/ferndef-empty.mdx @@ -0,0 +1,6 @@ +--- +title: Fern Definition Redirect Page +description: This is an empty page used to redirect to the Fern Definition pages. +--- + +This page is empty. Please visit the [Fern Definition](/api-definitions/ferndef/overview) page for more information. \ No newline at end of file diff --git a/fern/products/api-def/pages/grpc-empty.mdx b/fern/products/api-def/pages/grpc-empty.mdx new file mode 100644 index 00000000..5c515348 --- /dev/null +++ b/fern/products/api-def/pages/grpc-empty.mdx @@ -0,0 +1,6 @@ +--- +title: gRPC Definition Redirect Page +description: This is an empty page used to redirect to the gRPC Definition pages. +--- + +This page is empty. Please visit the [gRPC Definition](/api-definitions/grpc/overview) page for more information. \ No newline at end of file diff --git a/fern/products/api-def/pages/openapi-empty.mdx b/fern/products/api-def/pages/openapi-empty.mdx new file mode 100644 index 00000000..34787423 --- /dev/null +++ b/fern/products/api-def/pages/openapi-empty.mdx @@ -0,0 +1,6 @@ +--- +title: OpenAPI Definition Redirect Page +description: This is an empty page used to redirect to the OpenAPI Definition pages. +--- + +This page is empty. Please visit the [OpenAPI Definition](/api-definitions/openapi/overview) page for more information. \ No newline at end of file diff --git a/fern/products/api-def/pages/openrpc-empty.mdx b/fern/products/api-def/pages/openrpc-empty.mdx new file mode 100644 index 00000000..2e110f76 --- /dev/null +++ b/fern/products/api-def/pages/openrpc-empty.mdx @@ -0,0 +1,6 @@ +--- +title: OpenRPC Definition Redirect Page +description: This is an empty page used to redirect to the OpenRPC Definition pages. +--- + +This page is empty. Please visit the [OpenRPC Definition](/api-definitions/openrpc/overview) page for more information. \ No newline at end of file diff --git a/fern/products/sdks/introduction.mdx b/fern/products/sdks/introduction.mdx index 48a04b75..72d2bc1a 100644 --- a/fern/products/sdks/introduction.mdx +++ b/fern/products/sdks/introduction.mdx @@ -3,50 +3,6 @@ title: SDKs Overview description: Generate idiomatic SDKs in multiple programming languages --- - -
{/* Dashed Pattern - Left Side */}
From c4d96fe06d8ade2f016c646fe57e9c325e4de4a2 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Fri, 15 Aug 2025 10:20:57 -0400 Subject: [PATCH 3/9] fix: updated redirect --- fern/docs.yml | 15 +++++++++++++++ fern/products/api-def/asyncapi-def.yml | 3 ++- fern/products/api-def/ferndef-def.yml | 3 ++- fern/products/api-def/grpc-def.yml | 3 ++- fern/products/api-def/openapi-def.yml | 3 ++- fern/products/api-def/openrpc-def.yml | 3 ++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index cfcaaf3f..99c63064 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -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 diff --git a/fern/products/api-def/asyncapi-def.yml b/fern/products/api-def/asyncapi-def.yml index a9bf88b4..b02b5621 100644 --- a/fern/products/api-def/asyncapi-def.yml +++ b/fern/products/api-def/asyncapi-def.yml @@ -1,3 +1,4 @@ navigation: - page: AsyncAPI Definition Redirect Page - path: ./pages/asyncapi-empty.mdx \ No newline at end of file + path: ./pages/asyncapi-empty.mdx + slug: empty-page \ No newline at end of file diff --git a/fern/products/api-def/ferndef-def.yml b/fern/products/api-def/ferndef-def.yml index 8cc096a7..54be8303 100644 --- a/fern/products/api-def/ferndef-def.yml +++ b/fern/products/api-def/ferndef-def.yml @@ -1,3 +1,4 @@ navigation: - page: Fern Definition Redirect Page - path: ./pages/ferndef-empty.mdx \ No newline at end of file + path: ./pages/ferndef-empty.mdx + slug: empty-page \ No newline at end of file diff --git a/fern/products/api-def/grpc-def.yml b/fern/products/api-def/grpc-def.yml index ad65bb46..9cec7f27 100644 --- a/fern/products/api-def/grpc-def.yml +++ b/fern/products/api-def/grpc-def.yml @@ -1,3 +1,4 @@ navigation: - page: gRPC Definition Redirect Page - path: ./pages/grpc-empty.mdx \ No newline at end of file + path: ./pages/grpc-empty.mdx + slug: empty-page \ No newline at end of file diff --git a/fern/products/api-def/openapi-def.yml b/fern/products/api-def/openapi-def.yml index 931161d2..61e6da0e 100644 --- a/fern/products/api-def/openapi-def.yml +++ b/fern/products/api-def/openapi-def.yml @@ -1,3 +1,4 @@ navigation: - page: OpenAPI Definition Redirect Page - path: ./pages/openapi-empty.mdx \ No newline at end of file + path: ./pages/openapi-empty.mdx + slug: empty-page \ No newline at end of file diff --git a/fern/products/api-def/openrpc-def.yml b/fern/products/api-def/openrpc-def.yml index ad09f5ee..9d8fe8c5 100644 --- a/fern/products/api-def/openrpc-def.yml +++ b/fern/products/api-def/openrpc-def.yml @@ -1,3 +1,4 @@ navigation: - page: OpenRPC Definition Redirect Page - path: ./pages/openrpc-empty.mdx \ No newline at end of file + path: ./pages/openrpc-empty.mdx + slug: empty-page \ No newline at end of file From 698a2f0487b080e5c5096337897920edba7dba03 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Fri, 15 Aug 2025 10:24:40 -0400 Subject: [PATCH 4/9] fix: removed double redirects --- fern/docs.yml | 72 +++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index 99c63064..bd5ccdbb 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -476,44 +476,44 @@ redirects: # API DEFINITION REDIRECTS # ============================================================================ - # API Definition OpenAPI specific redirects first - - source: /learn/api-definition/openapi/endpoints/:slug* - destination: /learn/openapi-definition/endpoints/:slug* - permanent: true - - source: /learn/api-definition/openapi/extensions/:slug* - destination: /learn/openapi-definition/extensions/:slug* - permanent: true - - source: /learn/api-definition/openapi/frameworks/:slug* - destination: /learn/openapi-definition/frameworks/:slug* - permanent: true - - source: /learn/api-definition/openapi/:slug* - destination: /learn/openapi-definition/:slug* - permanent: true - - source: /learn/openapi-definition/extensions/webhooks - destination: /learn/openapi-definition/endpoints/webhooks - permanent: true + # # API Definition OpenAPI specific redirects first + # - source: /learn/api-definition/openapi/endpoints/:slug* + # destination: /learn/openapi-definition/endpoints/:slug* + # permanent: true + # - source: /learn/api-definition/openapi/extensions/:slug* + # destination: /learn/openapi-definition/extensions/:slug* + # permanent: true + # - source: /learn/api-definition/openapi/frameworks/:slug* + # destination: /learn/openapi-definition/frameworks/:slug* + # permanent: true + # - source: /learn/api-definition/openapi/:slug* + # destination: /learn/openapi-definition/:slug* + # permanent: true + # - source: /learn/openapi-definition/extensions/webhooks + # destination: /learn/openapi-definition/endpoints/webhooks + # permanent: true # API Definition Fern specific redirects first - - source: /learn/api-definition/fern/endpoints/:slug* - destination: /learn/fern-definition/endpoints/:slug* - permanent: true - - source: /learn/api-definition/fern/api-yml/:slug* - destination: /learn/fern-definition/api-yml/:slug* - permanent: true - - source: /learn/api-definition/fern/:slug* - destination: /learn/fern-definition/:slug* - permanent: true - - # API Definition Introduction redirects - - source: /learn/api-definition/introduction/what-is-an-api-definition - destination: /learn/openapi-definition/overview - 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 - permanent: true + # - source: /learn/api-definition/fern/endpoints/:slug* + # destination: /learn/fern-definition/endpoints/:slug* + # permanent: true + # - source: /learn/api-definition/fern/api-yml/:slug* + # destination: /learn/fern-definition/api-yml/:slug* + # permanent: true + # - source: /learn/api-definition/fern/:slug* + # destination: /learn/fern-definition/:slug* + # permanent: true + + # # API Definition Introduction redirects + # - source: /learn/api-definition/introduction/what-is-an-api-definition + # destination: /learn/openapi-definition/overview + # 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 + # permanent: true # ============================================================================ # ASK FERN (AI SEARCH) REDIRECTS From 915a6a4410d8245ea2459ed1c1ad62978ec42965 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Fri, 15 Aug 2025 10:28:51 -0400 Subject: [PATCH 5/9] fix: removed double redirects --- fern/docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fern/docs.yml b/fern/docs.yml index bd5ccdbb..1173afca 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -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* From 6d8b95a1b382a27cd558a95c2ce64a583b9d9e41 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Fri, 15 Aug 2025 13:03:21 -0400 Subject: [PATCH 6/9] fix: fouc --- fern/products/sdks/introduction.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fern/products/sdks/introduction.mdx b/fern/products/sdks/introduction.mdx index 72d2bc1a..bcbb2c2b 100644 --- a/fern/products/sdks/introduction.mdx +++ b/fern/products/sdks/introduction.mdx @@ -51,7 +51,7 @@ description: Generate idiomatic SDKs in multiple programming languages Arrow right light
-
-
-
-
-
-
+
v
From 47f7a77f0f08212284137cb73b97e78d5103d45f Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Fri, 15 Aug 2025 13:13:22 -0400 Subject: [PATCH 7/9] fix: fouc --- fern/docs.yml | 63 ++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index 1173afca..c60737b6 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -480,43 +480,40 @@ redirects: # ============================================================================ # # API Definition OpenAPI specific redirects first - # - source: /learn/api-definition/openapi/endpoints/:slug* - # destination: /learn/openapi-definition/endpoints/:slug* - # permanent: true - # - source: /learn/api-definition/openapi/extensions/:slug* - # destination: /learn/openapi-definition/extensions/:slug* - # permanent: true - # - source: /learn/api-definition/openapi/frameworks/:slug* - # destination: /learn/openapi-definition/frameworks/:slug* - # permanent: true - # - source: /learn/api-definition/openapi/:slug* - # destination: /learn/openapi-definition/:slug* - # permanent: true - # - source: /learn/openapi-definition/extensions/webhooks - # destination: /learn/openapi-definition/endpoints/webhooks - # permanent: true + - source: /learn/api-definition/openapi/endpoints/:slug* + destination: /learn/api-definitions/openapi/endpoints/:slug* + permanent: true + - source: /learn/api-definition/openapi/extensions/:slug* + destination: /learn/api-definitions/openapi/extensions/:slug* + permanent: true + - source: /learn/api-definition/openapi/frameworks/:slug* + destination: /learn/api-definitions/openapi/frameworks/:slug* + permanent: true + - source: /learn/api-definition/openapi/:slug* + destination: /learn/api-definitions/openapi/:slug* + permanent: true + - source: /learn/openapi-definition/extensions/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* - # permanent: true - # - source: /learn/api-definition/fern/api-yml/:slug* - # destination: /learn/fern-definition/api-yml/:slug* - # permanent: true - # - source: /learn/api-definition/fern/:slug* - # destination: /learn/fern-definition/:slug* - # permanent: true + - source: /learn/api-definition/fern/endpoints/:slug* + destination: /learn/api-definitions/ferndef/endpoints/:slug* + permanent: true + - source: /learn/api-definition/fern/api-yml/:slug* + destination: /learn/api-definitions/ferndef/api-yml/:slug* + permanent: true + - source: /learn/api-definition/fern/:slug* + destination: /learn/api-definitions/ferndef/:slug* + permanent: true # # API Definition Introduction redirects - # - source: /learn/api-definition/introduction/what-is-an-api-definition - # destination: /learn/openapi-definition/overview - # 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 - # permanent: true + - source: /learn/api-definition/introduction/what-is-an-api-definition + destination: /learn/api-definitions/overview/what-is-an-api-definition + permanent: true + - source: /learn/api-definition/introduction/what-is-the-fern-folder + destination: /learn/api-definitions/overview/project-structure + permanent: true # ============================================================================ # ASK FERN (AI SEARCH) REDIRECTS From 95d85581f6512f867150d65b6f7e10ba82419736 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 19 Aug 2025 15:12:01 -0400 Subject: [PATCH 8/9] fix: hidden pages --- fern/products/api-def/asyncapi-def.yml | 3 ++- fern/products/api-def/ferndef-def.yml | 3 ++- fern/products/api-def/grpc-def.yml | 3 ++- fern/products/api-def/openapi-def.yml | 3 ++- fern/products/api-def/openrpc-def.yml | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/fern/products/api-def/asyncapi-def.yml b/fern/products/api-def/asyncapi-def.yml index b02b5621..c1c5be20 100644 --- a/fern/products/api-def/asyncapi-def.yml +++ b/fern/products/api-def/asyncapi-def.yml @@ -1,4 +1,5 @@ navigation: - page: AsyncAPI Definition Redirect Page path: ./pages/asyncapi-empty.mdx - slug: empty-page \ No newline at end of file + slug: empty-page + hidden: true \ No newline at end of file diff --git a/fern/products/api-def/ferndef-def.yml b/fern/products/api-def/ferndef-def.yml index 54be8303..bed9d2a5 100644 --- a/fern/products/api-def/ferndef-def.yml +++ b/fern/products/api-def/ferndef-def.yml @@ -1,4 +1,5 @@ navigation: - page: Fern Definition Redirect Page path: ./pages/ferndef-empty.mdx - slug: empty-page \ No newline at end of file + slug: empty-page + hidden: true \ No newline at end of file diff --git a/fern/products/api-def/grpc-def.yml b/fern/products/api-def/grpc-def.yml index 9cec7f27..78ebba9d 100644 --- a/fern/products/api-def/grpc-def.yml +++ b/fern/products/api-def/grpc-def.yml @@ -1,4 +1,5 @@ navigation: - page: gRPC Definition Redirect Page path: ./pages/grpc-empty.mdx - slug: empty-page \ No newline at end of file + slug: empty-page + hidden: true \ No newline at end of file diff --git a/fern/products/api-def/openapi-def.yml b/fern/products/api-def/openapi-def.yml index 61e6da0e..58212716 100644 --- a/fern/products/api-def/openapi-def.yml +++ b/fern/products/api-def/openapi-def.yml @@ -1,4 +1,5 @@ navigation: - page: OpenAPI Definition Redirect Page path: ./pages/openapi-empty.mdx - slug: empty-page \ No newline at end of file + slug: empty-page + hidden: true \ No newline at end of file diff --git a/fern/products/api-def/openrpc-def.yml b/fern/products/api-def/openrpc-def.yml index 9d8fe8c5..709201f4 100644 --- a/fern/products/api-def/openrpc-def.yml +++ b/fern/products/api-def/openrpc-def.yml @@ -1,4 +1,5 @@ navigation: - page: OpenRPC Definition Redirect Page path: ./pages/openrpc-empty.mdx - slug: empty-page \ No newline at end of file + slug: empty-page + hidden: true \ No newline at end of file From 3338db01c3ea689f4740734f564adb17b471bab0 Mon Sep 17 00:00:00 2001 From: Kapil Gowru Date: Tue, 19 Aug 2025 16:25:06 -0400 Subject: [PATCH 9/9] fix: home hidden --- fern/products/home/home.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fern/products/home/home.yml b/fern/products/home/home.yml index ee29ac74..c7593de6 100644 --- a/fern/products/home/home.yml +++ b/fern/products/home/home.yml @@ -1,3 +1,4 @@ navigation: - page: Home - path: ./pages/welcome.mdx \ No newline at end of file + path: ./pages/welcome.mdx + hidden: true \ No newline at end of file