github fuma-nama/fumadocs fumadocs-typescript@5.5.0

latest release: fumadocs-openapi@12.4.1
4 hours ago

Index tables by row

Structured data records each table row as a Markdown table of its header row and itself, instead of a record per cell. Type tables from auto-type-table record a row for each prop instead of the TypeTable element. Re-sync your search indexes to pick them up.

  • remarkStructure() defaults types to table instead of tableCell.
  • tableRowToStructuredData() from fumadocs-core/search creates the structured data of a table row, typeTableToStructuredData() from fumadocs-typescript of a type table.
  • Search hooks group the rows of a table into a table item, <SearchDialogList /> renders it with Table, <SearchDialogListTable /> by default.
  • Algolia and Orama Cloud link to the anchor of every record, like the props of type tables.
  • Orama Cloud searches title, section and content by default, set params.properties to search other fields.
  • remarkStructure() of Sätteri records the data.structuredData of nodes in place of the nodes.

Fix images in descriptions, show the OAuth redirect URI

  • Images in Markdown of API pages, like the description of an operation, and in descriptions of <AutoTypeTable /> props no longer crash the page with "Element type is invalid".
  • The OAuth panel of the playground shows the redirect_uri of the authorization code and implicit flows, with a button to copy it: the oauthRedirectUrl route when set, otherwise the current page.
  • The Authorize row of OAuth schemes in the playground is one button, filling the row.

Fix #3661, #3663

Markdown and search records from the authored source

remarkLLMs() and remarkStructure() of fumadocs-core slice their Markdown from the authored source like Sätteri, instead of stringifying the syntax tree. It is much faster, Markdown is no longer escaped or reformatted, and local images keep their addresses. Re-sync your search indexes to pick up the new records.

  • Plugins record the Markdown of content they replace with replaceSource() or embedSource() from fumadocs-core/mdx-plugins/stringifier, in place of data._stringify, and add search records with data.structuredData. Nodes they insert otherwise are left out. A namespace limits an edit to the stringifiers of that namespace, like search for search records.
  • Search records are always Markdown, also in Sätteri. filterElement replaces stringify.filterElement, it chooses the JSX elements kept as HTML tags (File, TypeTable, Callout and Card by default) that search dialogs render as components. Other elements and links are replaced by their content, images are removed, and an element on one line is recorded like a paragraph.
  • Removed defaultStringifier() (use createStringifier()), StringifyOptions, allowedMdxAttributes, filterMdxAttributes, placeholder() (use mdxAsPlaceholder), and the stringify and mdast-util-to-markdown options of both plugins.
  • Included content goes through the plugins like the document's own, Sätteri includes .md files as Markdown.
  • <auto-files> shows its files in a code block, auto-type-table its props in a Markdown table, created by typeTableToMarkdown() from fumadocs-typescript.
  • remarkShow() and fileGenerator() of fumadocs-docgen record their Markdown, generators receive the file to do the same.
  • Records of fumadocs-obsidian resolve wikilinks, and leave comments, block IDs, callout markers and embeds out. Comments are removed before parsing, so they no longer split a paragraph.
  • Pages of fumadocs-python compile from their MDX, so they have Markdown and search records.
  • fumadocs-mdx, fumadocs-docgen and fumadocs-obsidian require fumadocs-core 16.17.0.

Fix #3662

Don't miss a new fumadocs release

NewReleases is sending notifications on new releases.