fumadocs-article-importer

Fumadocs Article Importer

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fumadocs-article-importer" with this command: npx skills add foreveryh/deeptoai-skills/foreveryh-deeptoai-skills-fumadocs-article-importer

Fumadocs Article Importer

Import external articles into a Fumadocs project with tri-language support (en, zh, fr), auto-classification, and proper MDX formatting.

Prerequisites

  • Fumadocs project initialized

  • Jina API Key configured (必需)

  • curl installed for article fetch and image downloads

  • Write access to content/docs/ and public/images/

Configuration

Jina API Key 配置(必需)

Step 1: 获取 API Key

  • 访问 https://jina.ai/reader

  • 注册/登录账号

  • 在 Dashboard 生成 API Key(格式:jina_xxxxxxxxxxxx )

Step 2: 配置到环境变量

编辑 ~/.clawdbot/moltbot.json :

{ "env": { "JINA_API_KEY": "jina_你的API_KEY" } }

或添加到 ~/.openclaw/.env :

JINA_API_KEY=jina_你的API_KEY

Step 3: 验证配置

测试 API 可用性

curl -s "https://r.jina.ai/https://example.com"
-H "Authorization: Bearer $JINA_API_KEY" | head -20

Workflow

Step 1: Get Article Info

Ask user:

  • Article URL

  • Target languages (default: en, zh, fr)

  • Image strategy (default: auto)

Step 2: Fetch Article Content

使用 Jina Reader API(curl 方式):

获取文章内容(Markdown 格式)

curl -s "https://r.jina.ai/{article_url}"
-H "Authorization: Bearer ${JINA_API_KEY}"
-o /tmp/article.md

检查获取结果

if [ ! -s /tmp/article.md ]; then echo "❌ 文章获取失败" exit 1 fi

echo "✅ 文章内容已获取" head -20 /tmp/article.md

提取图片 URL:

从 Markdown 中提取所有图片 URL

grep -oE 'https://[^)]+.(png|jpg|jpeg|webp|gif)' /tmp/article.md > /tmp/images.txt

统计图片数量

IMAGE_COUNT=$(wc -l < /tmp/images.txt) echo "📊 发现 ${IMAGE_COUNT} 张图片"

尝试提取发布日期(可选):

使用 Jina 的日期检测 API

curl -s "https://r.jina.ai/{article_url}"
-H "Authorization: Bearer ${JINA_API_KEY}"
-H "X-With-Generated-Summary: true"
| grep -oE 'Published:.|Updated:.' || echo "日期未找到"

Step 3: Generate Slug

Create URL-friendly slug from title:

  • Lowercase, hyphens for spaces

  • Remove special characters

  • Example: "Building Agents with Skills" → building-agents-with-skills

Step 4: Process Images

图片下载和重命名(重要!):

创建图片目录

mkdir -p public/images/docs/{slug}

下载图片(使用安全的文件名)

i=1 while IFS= read -r img_url; do

使用 img01.png, img02.png 格式(避免连字符+数字)

printf -v filename "img%02d.png" $i

echo "下载: $img_url → $filename" curl -s -o "public/images/docs/{slug}/$filename" "$img_url"

更新 Markdown 中的图片引用

sed -i "s|$img_url|/images/docs/{slug}/$filename|g" /tmp/article.md

((i++)) done < /tmp/images.txt

echo "✅ 已下载 $((i-1)) 张图片"

图片文件名规则(重要!):

❌ 错误:img-1.png, img-10.png(MDX 会解析 -1, -10 为表达式) ✅ 正确:img01.png, img10.png, openclaw01.png(无连字符)

Step 5: Classify Article

Classify into one of 8 categories (see references/classification-rules.md ):

Category Description

development

Coding, APIs, frameworks

ai-ml

AI/ML topics, LLMs

tools

Developer tools, CLIs

best-practices

Patterns, methodologies

architecture

System design, infrastructure

testing

Testing, QA

security

Security practices

general

Everything else

Step 6: Create MDX Files

For each language, create MDX file:

English: content/docs/en/{category}/{slug}.mdx

Chinese: content/docs/zh/{category}/{slug}.mdx

French: content/docs/fr/{category}/{slug}.mdx

Frontmatter template (see assets/frontmatter-template.yaml ):


title: {translated_title} description: {translated_description} author: {original_author} date: {publication_date} lang: {en|zh|fr} category: {category}

Step 7: Translate Content

Use article-translator skill to translate:

  • Title and description

  • Article body (preserving code blocks, MDX syntax)

  • Image alt text

Key rules:

  • Keep code blocks unchanged

  • Preserve MDX component syntax

  • Add space after bold in Chinese/Korean

Step 8: Update Navigation

Update content/docs/{lang}/meta.json :

{ "title": "{Category Title}", "pages": ["existing-page", "{new-slug}"] }

See references/meta-json-best-practices.md for details.

Step 9: Generate Illustration (Optional)

Use philosophical-illustrator skill to create cover image:

Generate an 800x450px SVG illustration for: {article_title} Theme: {category}

Save to: public/images/docs/{slug}/cover.svg

Step 10: Validate and Report

  • Verify all files created correctly

  • Check MDX syntax compiles

  • Verify image paths resolve

  • Report summary to user

Output Structure

content/docs/ ├── en/{category}/{slug}.mdx ├── zh/{category}/{slug}.mdx └── fr/{category}/{slug}.mdx

public/images/docs/{slug}/ ├── image1.png ├── image2.png └── cover.svg (optional)

Error Handling

Error Solution

No images extracted Verify withAllImages: true was used

CORS failure Switch to download strategy

Translation failed Check article-translator skill is available

Slug conflict Append date suffix: {slug}-2024-01-15

References

  • references/classification-rules.md

  • Category classification rules

  • references/fumadocs-components.md

  • Available MDX components

  • references/meta-json-best-practices.md

  • Navigation configuration

  • references/jina-mcp-setup.md

  • Jina MCP configuration

  • assets/frontmatter-template.yaml

  • Frontmatter template

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

skill-article-writer

No summary provided by upstream source.

Repository SourceNeeds Review
General

mdx-article-publisher

No summary provided by upstream source.

Repository SourceNeeds Review
General

article-translator

No summary provided by upstream source.

Repository SourceNeeds Review
General

philosophical-illustrator

No summary provided by upstream source.

Repository SourceNeeds Review