コンテンツへスキップ
Fumadocs

Negotiation

コンテンツネゴシエーションのためのユーティリティです。

概要

ミドルウェアをサポートする React フレームワークでは、Fumadocs の Negotiation API を使って基本的な機能を実装できます。 Waku では、src/middleware 内の Hono ミドルウェアで使用します。 Astro では、ミドルウェアで使用します。なお、Astro のミドルウェアはリクエスト時にレンダリングされるページでのみ実行されます。

Markdown の Accept 対応

Accept ヘッダーに応じて Markdown または HTML を返します。これにより、AIエージェントにとっての利便性を高められます。

proxy.ts
import { NextRequest, NextResponse } from 'next/server';
import { isMarkdownPreferred, rewritePath } from 'fumadocs-core/negotiation';

const { rewrite: rewriteLLM } = rewritePath('/docs/*path', '/llms.mdx/*path');

export default function proxy(request: NextRequest) {
  if (isMarkdownPreferred(request)) {
    const result = rewriteLLM(request.nextUrl.pathname);

    if (result) {
      return NextResponse.rewrite(new URL(result, request.nextUrl));
    }
  }

  return NextResponse.next();
}

How is this guide?

最終更新日