सामग्री पर जाएँ
Blume
Esc
↑↓नेविगेट↵खोलें⌘Jप्रीव्यू

Strapi

strapi() source के साथ Strapi content type को उसके REST API के माध्यम से पढ़ें, और Strapi 4 तथा Strapi 5 दोनों पर Blocks बॉडी को Markdown में बदलें।

बिल्ट-इन strapi() एडेप्टर Strapi REST API (/api/<pluralApiId>) के माध्यम से एक content type पढ़ता है और प्रत्येक एंट्री की Blocks बॉडी को Markdown में बदलता है: पैराग्राफ़, हेडिंग, सूचियाँ, उद्धरण, कोड ब्लॉक, इमेज और लिंक। Markdown rich text फ़ील्ड जैसी लिखी गई है, वैसी ही आगे जाती है, केवल एक अपवाद के साथ: जो लिंक वेब, मेल, फ़ोन या सापेक्ष पता नहीं है, उसका केवल लेबल रखा जाता है। Strapi 5 के रिस्पॉन्स जैसे हैं वैसे ही पढ़े जाते हैं। Strapi 4 के attributes एनवेलप को फ़्लैट कर दिया जाता है, ताकि दोनों पर वही फ़ील्ड पाथ काम करें। आपको कुछ भी इंस्टॉल करने की आवश्यकता नहीं है।

import { defineConfig } from "blume";
import { filesystem, strapi } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      strapi({
        prefix: "guides",
        url: "https://cms.example.com",
        contentType: "guides",
        // locale: "en"
        // Field paths default to title / description / slug / content / updatedAt
        fields: { body: "body" },
        // Extra query parameters: filters[...], sort
        params: { "filters[section][$eq]": "sdk" },
      }),
    ],
  },
});

API टोकन STRAPI_API_TOKEN एनवायरनमेंट वेरिएबल से लिया जाता है और bearer टोकन के रूप में भेजा जाता है। एंट्रियाँ populate=* के साथ फ़ेच की जाती हैं, ताकि इमेज के साथ उनके URL भी आएँ। इसे सीमित करने के लिए आप populate सेट कर सकते हैं। सापेक्ष अपलोड पाथ (/uploads/x.png) को url के आधार पर रिज़ॉल्व किया जाता है। केवल प्रकाशित एंट्रियाँ इम्पोर्ट की जाती हैं — --preview ड्राफ़्ट का अनुरोध करता है (Strapi 5 पर status=draft, Strapi 4 पर publicationState=preview)। इसके साथ, जो दस्तावेज़ कभी प्रकाशित नहीं हुआ है, उसे draft: true के साथ स्टेज किया जाता है, जबकि प्रकाशित दस्तावेज़ के लिए उसके नवीनतम ड्राफ़्ट का प्रीव्यू दिखाया जाता है।

अंतिम अपडेट 28 सितंबर 2026

क्या यह पेज सहायक था?