Fumadocs

Python

从 Python 生成文档

实验性

Python docgen 支持仍处于实验阶段,请谨慎使用。

设置

npm install fumadocs-python shiki

生成文档

首先安装 Python 命令,我们需要它来从您的 Python 包中收集文档。

pip install ./node_modules/fumadocs-python

将文档生成 为 JSON:

fumapy-generate your-package-name
# for example
fumapy-generate httpx

使用以下脚本将 JSON 转换为 MDX:

scripts/generate-docs.mjs
import { rimraf } from 'rimraf';
import * as Python from 'fumadocs-python';
import * as fs from 'node:fs/promises';

// JSON 输出文件路径
const jsonPath = './httpx.json';

async function generate() {
  const out = 'content/docs/(api)';
  // 清理之前的输出
  await rimraf(out);

  const content = JSON.parse((await fs.readFile(jsonPath)).toString());
  const converted = Python.convert(content, {
    baseUrl: '/docs',
  });

  await Python.write(converted, {
    outDir: out,
  });
}

void generate();

小心

虽然大多数 docgens 使用 Markdown 或 reStructuredText,但 Fumadocs 使用 MDX。 在运行前,确保您的文档在 MDX 语法中有效。

MDX 组件

添加组件。

import defaultMdxComponents from 'fumadocs-ui/mdx';
import type { MDXComponents } from 'mdx/types';
import * as Python from 'fumadocs-python/components';

export function getMDXComponents(components?: MDXComponents): MDXComponents {
  return {
    ...defaultMdxComponents,
    ...Python,
    ...components,
  };
}

添加样式:

Tailwind CSS
@import 'tailwindcss';
@import 'fumadocs-ui/css/neutral.css';
@import 'fumadocs-ui/css/preset.css';
@import 'fumadocs-python/preset.css';

How is this guide?

Last updated on