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

Sanity

sanity() सोर्स के माध्यम से किसी Sanity dataset से दस्तावेज़ प्राप्त करें — एक GROQ क्वेरी दस्तावेज़ों का चयन करती है और उनकी Portable Text बॉडी Markdown में परिवर्तित हो जाती है।

अंतर्निहित sanity() एडैप्टर एक GROQ क्वेरी चलाता है। यह प्रत्येक दस्तावेज़ के फ़ील्ड्स को फ्रंटमैटर में और उसकी Portable Text बॉडी को Markdown में मैप करता है। अगर बॉडी किसी Markdown स्ट्रिंग फ़ील्ड में है, तो वह जैसी लिखी है वैसी ही आगे जाती है। केवल एक अपवाद है: जो लिंक वेब, मेल, फ़ोन या सापेक्ष पता नहीं है (उदाहरण के लिए, कोई javascript: URL), उसका केवल लेबल रखा जाता है। यह एडैप्टर @sanity/client को अपनी रनटाइम डिपेंडेंसी के रूप में घोषित करता है। यह एक वैकल्पिक peer डिपेंडेंसी है, इसलिए इसे केवल तभी इंस्टॉल करें जब आप इस सोर्स का उपयोग करते हों।

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

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      sanity({
        prefix: "guides",
        projectId: "abc123",
        dataset: "production",
        query: `*[_type == "guide"]`,
        // Field paths default to title / slug.current / body / _updatedAt
        fields: { slug: "slug.current", body: "content" },
      }),
    ],
  },
});

किसी निजी dataset के लिए रीड टोकन SANITY_TOKEN एनवायरनमेंट वेरिएबल से लिया जाता है। एडैप्टर इसे घोषित करता है, इसलिए इसके सेट न होने पर blume dev और blume build चेतावनी देते हैं। सार्वजनिक dataset इसके बिना भी काम करता है। टोकन के बिना किसी निजी dataset की क्वेरी करने पर Sanity कोई त्रुटि नहीं देता, बल्कि कोई दस्तावेज़ नहीं लौटाता। इसलिए जब किसी क्वेरी को कुछ नहीं मिलता और टोकन सेट नहीं होता, तो सोर्स एक BLUME_MISSING_SECRET चेतावनी जोड़ता है, जो यही बताती है। --preview के अंतर्गत एडैप्टर previewDrafts perspective के साथ ड्राफ़्ट पढ़ता है। @sanity/client 8 के अनुसार इस perspective का नाम बदलकर drafts कर दिया गया है। पुराना नाम अब भी काम करता है, और @sanity/client 6 केवल पुराना नाम ही स्वीकार करता है। कस्टम Portable Text ब्लॉक टाइप्स, इंजन के serializers विकल्प के माध्यम से Blume कंपोनेंट्स में मैप होते हैं। यह विकल्प तब उपलब्ध होता है जब आप sanitySource को सीधे बनाते हैं और उसे custom() में पास करते हैं। serializers सेट करने पर सोर्स के पेज MDX के रूप में लिखे जाते हैं। इससे serializer द्वारा लौटाया गया कोई भी कंपोनेंट या डायरेक्टिव रेंडर हो जाता है।

डेवलपर दस्तावेज़ीकरण के लिए Sanity को CMS के रूप में उपयोग करें गाइड इस पूरी प्रक्रिया को शुरू से अंत तक समझाती है। इसमें संपादक Sanity Studio में लिखते हैं, जबकि डेवलपर Markdown को Git में रखते हैं, और ड्राफ़्ट केवल सुरक्षित प्रीव्यू में दिखाई देते हैं।

अंतिम अपडेट

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