diff --git a/fern/apis/docs-yml/definition/docs.yml b/fern/apis/docs-yml/definition/docs.yml index cfb23242f93..834634810ec 100644 --- a/fern/apis/docs-yml/definition/docs.yml +++ b/fern/apis/docs-yml/definition/docs.yml @@ -1058,6 +1058,10 @@ types: slug: optional icon: optional hidden: optional + page-size: + type: optional + docs: | + The number of changelog entries to display per page. If not specified, all entries are displayed on a single page. # skip-slug: optional # skip-slug is not needed for changelog SectionConfiguration: diff --git a/packages/cli/cli/versions.yml b/packages/cli/cli/versions.yml index 476286251c2..702501efcb7 100644 --- a/packages/cli/cli/versions.yml +++ b/packages/cli/cli/versions.yml @@ -1,4 +1,12 @@ # yaml-language-server: $schema=../../../fern-versions-yml.schema.json +- version: 3.64.0 + changelogEntry: + - summary: | + Add `page-size` configuration option for changelog navigation items. This allows users to control how many changelog entries are displayed per page. If not specified, all entries are displayed on a single page. + type: feat + createdAt: "2026-02-04" + irVersion: 63 + - version: 3.63.0 changelogEntry: - summary: | diff --git a/packages/cli/configuration-loader/src/docs-yml/parseDocsConfiguration.ts b/packages/cli/configuration-loader/src/docs-yml/parseDocsConfiguration.ts index 43ee859b03f..f3e77a84345 100644 --- a/packages/cli/configuration-loader/src/docs-yml/parseDocsConfiguration.ts +++ b/packages/cli/configuration-loader/src/docs-yml/parseDocsConfiguration.ts @@ -1088,6 +1088,7 @@ async function convertNavigationItem({ icon: resolveIconPath(rawConfig.icon, absolutePathToConfig), title: rawConfig.title ?? DEFAULT_CHANGELOG_TITLE, slug: rawConfig.slug, + pageSize: rawConfig.pageSize, viewers: parseRoles(rawConfig.viewers), orphaned: rawConfig.orphaned, featureFlags: convertFeatureFlag(rawConfig.featureFlag) diff --git a/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts b/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts index eccdda856e5..38f7420cbbc 100644 --- a/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts +++ b/packages/cli/configuration/src/docs-yml/ParsedDocsConfiguration.ts @@ -370,6 +370,7 @@ export declare namespace DocsNavigationItem { icon: string | AbsoluteFilePath | undefined; hidden: boolean | undefined; slug: string | undefined; + pageSize: number | undefined; } export interface PythonDocsSection { diff --git a/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/ChangelogConfiguration.ts b/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/ChangelogConfiguration.ts index 4c63f6346a6..9b67cb947c9 100644 --- a/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/ChangelogConfiguration.ts +++ b/packages/cli/configuration/src/docs-yml/schemas/sdk/api/resources/docs/types/ChangelogConfiguration.ts @@ -8,4 +8,6 @@ export interface ChangelogConfiguration extends FernDocsConfig.WithPermissions, slug?: string; icon?: string; hidden?: boolean; + /** The number of changelog entries to display per page. If not specified, all entries are displayed on a single page. */ + pageSize?: number; } diff --git a/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/ChangelogConfiguration.ts b/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/ChangelogConfiguration.ts index 4244932db26..8e0e6758e87 100644 --- a/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/ChangelogConfiguration.ts +++ b/packages/cli/configuration/src/docs-yml/schemas/sdk/serialization/resources/docs/types/ChangelogConfiguration.ts @@ -17,6 +17,7 @@ export const ChangelogConfiguration: core.serialization.ObjectSchema< slug: core.serialization.string().optional(), icon: core.serialization.string().optional(), hidden: core.serialization.boolean().optional(), + pageSize: core.serialization.property("page-size", core.serialization.number().optional()), }) .extend(WithPermissions) .extend(WithFeatureFlags); @@ -28,5 +29,6 @@ export declare namespace ChangelogConfiguration { slug?: string | null; icon?: string | null; hidden?: boolean | null; + "page-size"?: number | null; } } diff --git a/packages/cli/docs-resolver/src/ChangelogNodeConverter.ts b/packages/cli/docs-resolver/src/ChangelogNodeConverter.ts index 0fa264375c9..b09b6926d3a 100644 --- a/packages/cli/docs-resolver/src/ChangelogNodeConverter.ts +++ b/packages/cli/docs-resolver/src/ChangelogNodeConverter.ts @@ -18,6 +18,7 @@ interface ConvertOptions { icon?: string; hidden?: boolean; slug?: string; + pageSize?: number; viewers?: APIV1Write.RoleId[]; orphaned?: boolean; // skipUrlSlug?: boolean; @@ -119,6 +120,7 @@ export class ChangelogNodeConverter { children: changelogYears, overviewPageId, noindex, + pageSize: opts.pageSize, authed: undefined, viewers: opts.viewers, orphaned: opts.orphaned, diff --git a/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts b/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts index 0a8add890fb..3c22b543b7d 100644 --- a/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts +++ b/packages/cli/docs-resolver/src/DocsDefinitionResolver.ts @@ -1498,7 +1498,8 @@ export class DocsDefinitionResolver { icon: this.resolveIconFileId(item.icon), viewers: item.viewers, hidden: hideChildren || item.hidden, - slug: item.slug + slug: item.slug, + pageSize: item.pageSize }); }