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; order (no default) sets the sidebar order
fields: { body: "body" },
// Extra query parameters: filters[...], sort
params: { "filters[section][$eq]": "sdk" },
}),
],
},
});
API टोकन STRAPI_API_TOKEN एनवायरनमेंट वेरिएबल से लिया जाता है और bearer टोकन के रूप में भेजा जाता है। एंट्रियाँ populate=* के साथ फ़ेच की जाती हैं, ताकि इमेज के साथ उनके URL भी आएँ। इसे सीमित करने के लिए आप populate सेट कर सकते हैं। Blocks फ़ील्ड में सापेक्ष अपलोड पाथ (/uploads/x.png) को url के आधार पर रिज़ॉल्व किया जाता है। Markdown फ़ील्ड जैसी लिखी गई है, वैसी ही आगे जाती है, इसलिए उसमें सापेक्ष पाथ आपकी डॉक्यूमेंटेशन साइट के सापेक्ष ही रहता है और काम नहीं करता: Markdown फ़ील्ड में पूर्ण (absolute) इमेज URL का उपयोग करें, जैसा कि Strapi का Markdown एडिटर उन्हें डालता है। केवल प्रकाशित एंट्रियाँ इम्पोर्ट की जाती हैं — --preview ड्राफ़्ट का अनुरोध करता है (Strapi 5 पर status=draft, Strapi 4 पर publicationState=preview)। इसके साथ, जो दस्तावेज़ कभी प्रकाशित नहीं हुआ है, उसे draft: true के साथ स्टेज किया जाता है, जबकि प्रकाशित दस्तावेज़ के लिए उसके नवीनतम ड्राफ़्ट का प्रीव्यू दिखाया जाता है।
डॉक्यूमेंटेशन वेबसाइट के प्रबंधन के लिए Strapi का उपयोग करें गाइड में यह पूरी प्रक्रिया शुरू से अंत तक बताई गई है: एडिटर Strapi में प्रकाशित करते हैं, हर बार प्रकाशित करने पर स्टैटिक साइट फिर से बिल्ड होती है, और ड्राफ़्ट प्रोडक्शन से बाहर रखे जाते हैं।