Date: Wed, 29 Apr 2026 02:10:11 -0400
Subject: [PATCH 06/10] =?UTF-8?q?=F0=9F=93=9D=20Description=20fetching?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/theme/DocCard/index.tsx | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/src/theme/DocCard/index.tsx b/src/theme/DocCard/index.tsx
index cfba9f8ac8..c29a3b2775 100644
--- a/src/theme/DocCard/index.tsx
+++ b/src/theme/DocCard/index.tsx
@@ -3,6 +3,7 @@ import clsx from "clsx";
import Link from "@docusaurus/Link";
import {
useDocById,
+ useDocsVersion,
findFirstSidebarItemLink,
} from "@docusaurus/plugin-content-docs/client";
import type {
@@ -34,6 +35,31 @@ function useCategoryItemsPlural() {
);
}
+function getStringCustomProp(
+ customProps: PropSidebarItemCategory["customProps"],
+ key: string,
+): string | undefined {
+ const value = customProps?.[key];
+ return typeof value === "string" ? value : undefined;
+}
+
+function getCategoryIndexDocIds(href: string | undefined): string[] {
+ if (!href || !isInternalUrl(href)) {
+ return [];
+ }
+
+ const [pathname] = href.split(/[?#]/);
+ const pathSegments = pathname.replace(/^\/+|\/+$/g, "").split("/");
+ const docsSegmentIndex = pathSegments.indexOf("docs");
+ const docPathSegments =
+ docsSegmentIndex >= 0
+ ? pathSegments.slice(docsSegmentIndex + 1)
+ : pathSegments;
+ const docPath = docPathSegments.join("/");
+
+ return docPath ? [`${docPath}/README`, `${docPath}/index`, docPath] : [];
+}
+
function CardContainer({
className,
href,
@@ -92,6 +118,10 @@ function CardLayout({
function CardCategory({ item }: { item: PropSidebarItemCategory }): ReactNode {
const href = findFirstSidebarItemLink(item);
const categoryItemsPlural = useCategoryItemsPlural();
+ const { docs } = useDocsVersion();
+ const categoryIndexDoc = getCategoryIndexDocIds(item.href).find(
+ (docId) => docs[docId],
+ );
if (!href) {
return null;
@@ -99,7 +129,8 @@ function CardCategory({ item }: { item: PropSidebarItemCategory }): ReactNode {
const description =
item.description ??
- item.customProps?.description ??
+ getStringCustomProp(item.customProps, "description") ??
+ docs[categoryIndexDoc ?? ""]?.description ??
categoryItemsPlural(item.items.length);
return (
From 9dc03d556019b74b4924387bccc60e59bfa3a078 Mon Sep 17 00:00:00 2001
From: "john.xlm" <60260750+JFWooten4@users.noreply.github.com>
Date: Wed, 29 Apr 2026 02:11:37 -0400
Subject: [PATCH 07/10] =?UTF-8?q?=E2=9A=A0=EF=B8=8F=20Actionable=20errors?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/theme/DocCard/index.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/theme/DocCard/index.tsx b/src/theme/DocCard/index.tsx
index c29a3b2775..d71d323b52 100644
--- a/src/theme/DocCard/index.tsx
+++ b/src/theme/DocCard/index.tsx
@@ -165,6 +165,6 @@ export default function DocCard({ item }: Props): ReactNode {
case "category":
return ;
default:
- throw new Error(`unknown item type ${JSON.stringify(item)}`);
+ throw new Error(`Unknown DocCard item type: ${item.type}`);
}
}
From a08d9ab1242e7277c728ba7d760a4248d5f02134 Mon Sep 17 00:00:00 2001
From: "john.xlm" <60260750+JFWooten4@users.noreply.github.com>
Date: Wed, 29 Apr 2026 02:19:30 -0400
Subject: [PATCH 08/10] =?UTF-8?q?=F0=9F=93=9D=20Clean=20meta?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../analytics/hubble/analyst-guide/optimizing-queries.mdx | 2 +-
.../contract-development/storage/_category_.json | 8 ++++++++
docs/tokens/how-to-issue-an-asset.mdx | 2 +-
3 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 docs/learn/fundamentals/contract-development/storage/_category_.json
diff --git a/docs/data/analytics/hubble/analyst-guide/optimizing-queries.mdx b/docs/data/analytics/hubble/analyst-guide/optimizing-queries.mdx
index 5f73d739e9..59cb2d811a 100644
--- a/docs/data/analytics/hubble/analyst-guide/optimizing-queries.mdx
+++ b/docs/data/analytics/hubble/analyst-guide/optimizing-queries.mdx
@@ -3,7 +3,7 @@ title: "Optimizing Queries"
sidebar_position: 30
---
-Hubble has terabytes of data to explore—that’s a lot of data! With access to so much data at your fingertips, it is crucial to performance-tune your queries.
+Hubble has terabytes of data to explore—that’s a lot of data! With access to so much data at your fingertips, it is crucial to performance-tune your queries.
One of the strengths of BigQuery is also its pitfall: you have access to tremendous compute capabilities, but you pay for what you use. If you fine-tune your queries, you will have access to powerful insights at the fraction of the cost of maintaining a data warehouse yourself. It is, however, easy to incur burdensome costs if you are not careful.
diff --git a/docs/learn/fundamentals/contract-development/storage/_category_.json b/docs/learn/fundamentals/contract-development/storage/_category_.json
new file mode 100644
index 0000000000..e0748c9e35
--- /dev/null
+++ b/docs/learn/fundamentals/contract-development/storage/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Storage",
+ "position": 10,
+ "link": {
+ "type": "doc",
+ "id": "learn/fundamentals/contract-development/storage/README"
+ }
+}
diff --git a/docs/tokens/how-to-issue-an-asset.mdx b/docs/tokens/how-to-issue-an-asset.mdx
index f184b07984..9b9dfd0a1c 100644
--- a/docs/tokens/how-to-issue-an-asset.mdx
+++ b/docs/tokens/how-to-issue-an-asset.mdx
@@ -367,7 +367,7 @@ You can also create a market directly from the issuing account and issue tokens
:::danger
-This section details how to lock your account with the purpose of limiting the supply of your issued asset. However, locking your account means you’ll never be able to do anything with it ever again—whether that’s adjusting signers, changing the home domain, claiming any held XLM, or any other operation. Your account will be completely frozen.
+This section details how to lock your account with the purpose of limiting the supply of your issued asset. However, locking your account means you’ll never be able to do anything with it ever again—whether that’s adjusting signers, changing the home domain, claiming any held XLM, or any other operation. Your account will be completely frozen.
:::
From 6c7e368de01cf438182fb43316fff105506fc76c Mon Sep 17 00:00:00 2001
From: "john.xlm" <60260750+JFWooten4@users.noreply.github.com>
Date: Wed, 29 Apr 2026 02:20:22 -0400
Subject: [PATCH 09/10] =?UTF-8?q?=F0=9F=8E=AF=20Target=20=E2=89=A5elements?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/theme/DocCard/styles.module.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/theme/DocCard/styles.module.scss b/src/theme/DocCard/styles.module.scss
index eabaa3fed7..ae93f8d665 100644
--- a/src/theme/DocCard/styles.module.scss
+++ b/src/theme/DocCard/styles.module.scss
@@ -14,7 +14,7 @@
box-shadow: 0 3px 6px 0 rgb(0 0 0 / 20%);
}
-.cardContainer *:last-child {
+.cardContainer > :last-child {
margin-bottom: 0;
}
From 32408f5b9430e0d2622691e5bd8148b56dd45336 Mon Sep 17 00:00:00 2001
From: "john.xlm" <60260750+JFWooten4@users.noreply.github.com>
Date: Wed, 29 Apr 2026 02:31:59 -0400
Subject: [PATCH 10/10] SEO nit
---
docs/learn/fundamentals/contract-development/storage/README.mdx | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/learn/fundamentals/contract-development/storage/README.mdx b/docs/learn/fundamentals/contract-development/storage/README.mdx
index 84004720be..d7e9f2b032 100644
--- a/docs/learn/fundamentals/contract-development/storage/README.mdx
+++ b/docs/learn/fundamentals/contract-development/storage/README.mdx
@@ -1,6 +1,7 @@
---
title: Storage
sidebar_position: 10
+description: Learn how smart contracts store and access data on Stellar, including persistent state and archival behavior.
---
import DocCardList from "@theme/DocCardList";