टेक्स्ट स्ट्रक्चर और स्टाइल

Slides API में, टेक्स्ट को आकारों या टेबल सेल में रखा जा सकता है. टेक्स्ट में बदलाव करने और उसे स्टाइल देने से पहले, आपको उसका स्ट्रक्चर और स्टाइल बनाने का तरीका समझना होगा.

इस पेज पर बताया गया है कि Slides API में टेक्स्ट को कैसे दिखाया जाता है.

टेक्स्ट एलिमेंट के क्रम

किसी शेप या टेबल सेल में मौजूद टेक्स्ट, TextElement स्ट्रक्चर के क्रम से बना होता है. यह क्रम, टेक्स्ट के स्ट्रक्चर को दिखाता है. यह क्रम, टेक्स्ट के शुरू से लेकर आखिर तक दिखने के क्रम में होता है.

उदाहरण के लिए, इस स्लाइड का कॉन्टेंट देखें—यह कॉन्टेंट एक टेक्स्ट बॉक्स में मौजूद है:

किसी सिंपल स्लाइड का स्क्रीनशॉट

ऊपर दी गई स्लाइड में एक टेक्स्ट बॉक्स है. इसके text फ़ील्ड में टेक्स्ट एलिमेंट का क्रम होता है, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है:

टेक्स्ट एलिमेंट का क्रम दिखाने वाला डायग्राम

ज़्यादा सटीक तरीके से, टेक्स्ट का यह क्रम Slides API में इस तरह दिखाया गया है:

"textElements": [ {
    "endIndex": 224,
    "paragraphMarker": { "style": {} }
  }, {
    "endIndex": 130,
    "textRun": { "content": "Li lingues differe in li grammatica e li vocabules. Omnicos directe al desirabilite de un nov ", "style": {} }
  }, {
    "endIndex": 143,
    "startIndex": 130,
    "textRun": { "content": "lingua franca", "style": { "italic": True } }
  }, {
    "endIndex": 224,
    "startIndex": 143,
    "textRun": { "content": ": solmen va esser necessi far:\n", "style": {} }
  }, {
    "endIndex": 243,
    "startIndex": 224,
    "paragraphMarker": {
      "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "direction": "LEFT_TO_RIGHT", "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
      "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
  }, {
    "endIndex": 243,
    "startIndex": 224,
    "textRun": { "content": "uniform grammatica\n", "style": {} }
  }, {
    "endIndex": 257,
    "startIndex": 243,
    "paragraphMarker": {
        "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "direction": "LEFT_TO_RIGHT", "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
        "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
}, {
    "endIndex": 257,
    "startIndex": 243,
    "textRun": { "content": "Pronunciation\n", "style": {} }
}, {
    "endIndex": 277,
    "startIndex": 257,
    "paragraphMarker": {
        "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
        "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
}, {
    "endIndex": 277,
    "startIndex": 257,
    "textRun": { "content": "plu sommun paroles.\n", "style": {} }
}, {
    "endIndex": 500,
    "startIndex": 277,
    "paragraphMarker": { "style": {} }
}, {
    "endIndex": 500,
    "startIndex": 277,
    "textRun": { "content": "Ka swu thefognay, tay waddeant varpa u inzo.\n", "style": {} }
}]

TextElement कॉन्टेंट

हर टेक्स्ट एलिमेंट में शून्य पर आधारित शुरू होने का इंडेक्स और खत्म होने का इंडेक्स होता है. इनसे, पेज एलिमेंट के पूरे टेक्स्ट में एलिमेंट की जगह के बारे में पता चलता है. साथ ही, इनमें इनमें से किसी एक तरह का टेक्स्ट ऑब्जेक्ट भी होता है:

टेक्स्ट का टाइप ब्यौरा
ParagraphMarker यह टेक्स्ट एलिमेंट, नए पैराग्राफ़ की शुरुआत को दिखाता है. टेक्स्ट एलिमेंट के शुरू और खत्म होने के इंडेक्स से, पैराग्राफ़ के पूरे स्पैन के बारे में पता चलता है. इसमें पैराग्राफ़ को खत्म करने वाला न्यू लाइन वर्ण भी शामिल होता है. एक पैराग्राफ़, कभी दूसरे पैराग्राफ़ के साथ ओवरलैप नहीं होता. पैराग्राफ़ हमेशा नई लाइन वाले वर्ण पर खत्म होते हैं. इसलिए, किसी आकार या टेबल सेल के टेक्स्ट कॉन्टेंट के आखिर में हमेशा नई लाइन होती है.

पैराग्राफ़, बुलेट वाली या नंबर वाली सूचियों में शामिल हो सकते हैं. अगर ऐसा है, तो ParagraphMarker.bullet फ़ील्ड के कॉन्टेंट में एक सूची आईडी शामिल होता है. यह आईडी, सूची के उस एलिमेंट का रेफ़रंस देता है जो TextElement क्रम के साथ TextContent में मौजूद होता है. एक ही लॉजिकल लिस्ट में मौजूद पैराग्राफ़, एक ही सूची आईडी का रेफ़रंस देंगे.
TextRun यह टेक्स्ट एलिमेंट, टेक्स्ट की एक ऐसी स्ट्रिंग दिखाता है जिसमें सभी टेक्स्ट की स्टाइल एक जैसी होती है. टेक्स्ट रन कभी भी पैराग्राफ़ की सीमाओं को पार नहीं करते: भले ही, एक पैराग्राफ़ के आखिर में मौजूद टेक्स्ट की स्टाइल, अगले पैराग्राफ़ के शुरुआती टेक्स्ट की स्टाइल जैसी ही हो, फिर भी कॉन्टेंट को अलग-अलग टेक्स्ट रन बनाने के लिए, न्यू लाइन वर्ण के बाद बांटा जाता है.

अगर आपको पेज एलिमेंट में पूरी टेक्स्ट स्ट्रिंग को प्रोसेस करना है, तो सभी टेक्स्ट एलिमेंट को दोहराएं और सभी टेक्स्ट रन में मिली स्ट्रिंग को जोड़ें.
AutoText ऑटोटेक्स्ट का मतलब टेक्स्ट में उन जगहों से है जो कॉन्टेक्स्ट के हिसाब से डाइनैमिक तौर पर बदलती हैं. Slides में, इसका इस्तेमाल टेक्स्ट में मौजूदा स्लाइड नंबर दिखाने के लिए किया जाता है.

टेक्स्ट कॉन्टेंट में बदलाव करना

Slides API का इस्तेमाल करके टेक्स्ट में बदलाव करने के लिए, आपको सभी ज़रूरी टेक्स्ट एलिमेंट को साफ़ तौर पर बनाने की ज़रूरत नहीं है. इसके बजाय, टेक्स्ट पर वैसे ही काम किया जा सकता है जैसे कि आपने Slides एडिटर में किया था: टेक्स्ट डालकर, रेंज मिटाकर, और रेंज पर स्टाइल अपडेट करके. ये कार्रवाइयां, आपके बदलावों को दिखाने के लिए ज़रूरत के हिसाब से ParagraphMarker और TextRun एलिमेंट को अपने-आप बनाती हैं.

टेक्स्ट डालना

batchUpdate करने के लिए किए गए कॉल में, InsertTextRequest अनुरोध का इस्तेमाल करके, किसी इंडेक्स में टेक्स्ट डाला जा सकता है. इस तरीके के insertionIndex फ़ील्ड से पता चलता है कि टेक्स्ट कहां डालना है. टेक्स्ट एलिमेंट में मौजूद, शुरू और खत्म इंडेक्स फ़ील्ड का इस्तेमाल करके, इस इंडेक्स का हिसाब लगाया जा सकता है.

टेक्स्ट डालने से कुछ ऐसे साइड इफ़ेक्ट होते हैं जो Slides एडिटर के व्यवहार को दिखाते हैं:

  • न्यू लाइन वर्ण डालने पर, अपने-आप एक नया पैराग्राफ़ बन जाता है. साथ ही, एक ParagraphMarker टेक्स्ट एलिमेंट बन जाता है, जो न्यू लाइन के इंडेक्स से शुरू होता है और अगली न्यू लाइन पर खत्म होता है. पैराग्राफ़ का स्टाइल, मौजूदा पैराग्राफ़ से नए पैराग्राफ़ में कॉपी हो जाता है. इसमें बुलेट और सूची की जानकारी भी शामिल होती है.
  • डाले गए वर्णों की स्टाइल अपने-आप तय होती है. आम तौर पर, डाले गए वर्णों की स्टाइल वही होती है जो डालने के इंडेक्स में मौजूद थी. इस वजह से, आम तौर पर टेक्स्ट को उस इंडेक्स में मौजूद TextRun में डाला जाता है. UpdateTextStyle अनुरोध का इस्तेमाल करके, इस स्टाइल को बाद में अपडेट किया जा सकता है.

टेक्स्ट मिटाना

batchUpdate के लिए किए गए कॉल में, DeleteTextRequest मैसेज का इस्तेमाल करके, टेक्स्ट की कोई रेंज मिटाई जा सकती है. टेक्स्ट मिटाने के लिए, कुछ बातों का ध्यान रखना ज़रूरी है:

  • अगर किसी पैराग्राफ़ की सीमा के पार जाकर टेक्स्ट मिटाया जाता है, तो दोनों पैराग्राफ़ मर्ज हो जाते हैं. साथ ही, दोनों पैराग्राफ़ को अलग करने वाला ParagraphMarker टेक्स्ट एलिमेंट भी मिट जाता है.
  • मर्ज किए गए नए पैराग्राफ़ में, पैराग्राफ़ की एक ऐसी स्टाइल का इस्तेमाल किया जाएगा जो Slides एडिटर में मौजूद पैराग्राफ़ की स्टाइल से मेल खाती हो.
  • अगर मिटाने की रेंज में टेक्स्ट रन शामिल है, तो टेक्स्ट रन का पूरा कॉन्टेंट मिट जाता है. साथ ही, टेक्स्ट रन भी मिट जाता है.
  • अगर मिटाए जाने वाले डेटा में AutoText एलिमेंट शामिल है, तो AutoText एलिमेंट मिट जाता है.

टेक्स्ट स्टाइल अपडेट करना

स्लाइड में टेक्स्ट का रेंडर किया गया रूप, टेक्स्ट स्टाइल की प्रॉपर्टी से तय होता है:

  • इंडेंटेशन, अलाइनमेंट, और बुलेट ग्लिफ़ जैसी पैराग्राफ़ स्टाइल, पैराग्राफ़ मार्कर पर मौजूद प्रॉपर्टी से तय की जाती हैं.
  • बोल्ड, इटैलिक, और अंडरलाइन जैसी वर्ण स्टाइल, अलग-अलग टेक्स्ट रन की प्रॉपर्टी से तय होती हैं.

वर्ण का स्टाइल अपडेट करना

batchUpdate के लिए किए गए कॉल में, UpdateTextStyleRequest मैसेज का इस्तेमाल करके, वर्ण स्टाइल अपडेट की जा सकती हैं.

टेक्स्ट के अन्य ऑपरेशन की तरह ही, वर्ण स्टाइल को टेक्स्ट की किसी रेंज पर लागू किया जाता है. साथ ही, ज़रूरत के हिसाब से नए TextRun ऑब्जेक्ट अपने-आप बन जाते हैं.

कुछ वर्ण स्टाइल सेट करने पर, Slides एडिटर में मौजूद स्टाइल के हिसाब से, उनसे मिलती-जुलती अन्य स्टाइल अपने-आप अपडेट हो जाती हैं. उदाहरण के लिए, लिंक जोड़ने पर, टेक्स्ट के फ़ोरग्राउंड रंग और अंडरलाइन प्रॉपर्टी अपने-आप बदल जाती हैं. ज़्यादा जानकारी के लिए, TextStyle के रेफ़रंस दस्तावेज़ देखें.

पैराग्राफ़ की स्टाइल अपडेट करना

batchUpdate कॉल में, UpdateParagraphStyleRequest मैसेज का इस्तेमाल करके पैराग्राफ़ की स्टाइल अपडेट की जा सकती हैं.

Slides API में, CreateParagraphBulletsRequest का इस्तेमाल किया जा सकता है. यह फ़ंक्शन, बिंदु वाली और नंबर वाली सूचियां बनाने के लिए, Slides एडिटर में बिंदु के प्रीसेट की सुविधा की तरह काम करता है. इसी तरह, DeleteParagraphBulletsRequest, पैराग्राफ़ में मौजूद सभी बुलेट पॉइंट हटा देता है.

इनहेरिट की गई स्टाइल

कुछ आकार, प्लेसहोल्डर के तौर पर जाने जाते हैं. ये आकार, पैरंट आकार से टेक्स्ट स्टाइल इनहेरिट कर सकते हैं: आकार इनहेरिट करने के बारे में ज़्यादा जानने के लिए, प्लेसहोल्डर देखें.

इस सेक्शन में बताया गया है कि स्टाइल इनहेरिटेंस की सुविधा, स्लाइड में दिखने वाले फ़ाइनल और रेंडर किए गए टेक्स्ट स्टाइल को बनाने के लिए कैसे काम करती है.

प्लेसहोल्डर में स्टाइल का प्रतिनिधित्व

प्लेसहोल्डर सेक्शन में बताया गया है कि पैरंट और चाइल्ड शेप के बीच इनहेरिटेंस कैसे काम करता है. टेक्स्ट स्टाइल को इनहेरिट करने की सुविधा, इनहेरिटेंस मॉडल में मौजूद अन्य सुविधाओं की मदद से मैनेज की जाती है:

  • ParagraphMaker टेक्स्ट एलिमेंट की प्रॉपर्टी से पैराग्राफ़ की फ़ॉर्मैटिंग तय होती है.
  • TextRun टेक्स्ट एलिमेंट की प्रॉपर्टी से, वर्ण फ़ॉर्मैट तय होता है.
  • पैरंट प्लेसहोल्डर के कॉन्टेंट में, ऐसे आठ ParagraphMarker/TextRun जोड़े होते हैं, ताकि सूची के आठ लेवल नेस्ट किए जा सकें.
  • चाइल्ड प्लेसहोल्डर, अपनी पैरंट प्रॉपर्टी के टेक्स्ट कॉन्टेंट में मौजूद इन टेक्स्ट एलिमेंट से, अपनी डिफ़ॉल्ट टेक्स्ट प्रॉपर्टी इनहेरिट करता है.

नीचे दिए गए डायग्राम में, इन रिलेशनशिप को विज़ुअलाइज़ करने का एक तरीका दिखाया गया है:

टेक्स्ट प्रॉपर्टी इनहेरिट करने वाले चाइल्ड शेप का डायग्राम

पैरंट शेप में मौजूद पहला ParagraphMarker/TextRun, इनहेरिट किए गए टेक्स्ट की ज़्यादातर स्टाइल तय करता है. बाकी सात पेयर में मौजूद स्टाइल का असर, सिर्फ़ गहरे लेवल पर नेस्ट किए गए बुलेट लेवल पर मौजूद पैराग्राफ़ पर पड़ता है:

पैरंट टेक्स्ट एलिमेंट पेयर चाइल्ड फ़ॉर्मैटिंग, जिसे यह कंट्रोल करता है
पहला ParagraphMarker
पहला TextRun
लेवल 0 (सबसे बाहरी) सूची के पैराग्राफ़ और सूची के पैराग्राफ़ के अलावा बाकी सभी पैराग्राफ़ की टेक्स्ट स्टाइल.
दूसरा ParagraphMarker
दूसरा TextRun
बाकी बचे (नेस्ट किए गए) सूची के लेवल 1 से 7 की टेक्स्ट स्टाइल
तीसरा ParagraphMarker
तीसरा TextRun
चौथा ParagraphMarker
चौथा TextRun
पांचवां ParagraphMarker
पांचवां TextRun
छठा ParagraphMarker
छठा TextRun
सातवां ParagraphMarker
सातवां TextRun
आठवां ParagraphMarker
आठवां TextRun

टेक्स्ट एलिमेंट के इन पेयर को ऐक्सेस करने के लिए, textElements फ़ील्ड में उनके साफ़ तौर पर दिए गए इंडेक्स का इस्तेमाल करें. इस बारे में नीचे दिए गए स्निपेट में बताया गया है. इसमें लेवल 0 और नॉन-लिस्ट पैराग्राफ़ के लिए, डिफ़ॉल्ट (इनहेरिट की जा सकने वाली) स्टाइल सेट करने के बारे में बताया गया है:

"text": {
  "textElements": [  {
     "startIndex": 0,
     "endIndex": 1,
     "paragraphMarker": {
       "style": {  "alignment": "START",  ...  },
       "bullet": {  "nestingLevel": 0,  ...  }
     }
   },{
     "startIndex": 0,
     "endIndex": 1,
     "textRun": {
       "content": "\n",
       "style": {  "foregroundColor": {  "opaqueColor": {  "themeColor": "DARK1"  }  },  }
     }
   },{
     ...
   } ]
 }

ध्यान दें कि पैरंट शेप के TextRun के content फ़ील्ड में हमेशा एक नया लाइन वर्ण होता है.

इनहेरिट की गई स्टाइल को बदला जा सकता है

चाइल्ड शेप, अपने कॉन्टेंट में ParagraphMarker और TextRun एलिमेंट पर स्टाइल की प्रॉपर्टी तय कर सकता है. स्थानीय तौर पर तय की गई ये प्रॉपर्टी, अपने स्थानीय दायरे में इनहेरिट की गई किसी भी प्रॉपर्टी को बदल देंगी. जिन एलिमेंट में कोई स्टाइल नहीं बताई गई है वे पैरंट से इनहेरिट की गई स्टाइल का इस्तेमाल करेंगे.

चाइल्ड शेप से स्टाइल की साफ़ तौर पर सेट की गई प्रॉपर्टी हटाने पर, वह पैरंट से इनहेरिट हो जाएगी. ऐसा इसलिए होगा, क्योंकि अब वह प्रॉपर्टी सेट नहीं होगी.

उदाहरण

ऊपर दिए गए डायग्राम में दिखाए गए इनहेरिटेंस के हिसाब से, मान लें कि आकार ParentPlaceholder में यह टेक्स्ट कॉन्टेंट है:

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {"alignment": "START", ...},
        "bullet": {"nestingLevel": 0, ...}
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, }
        ...
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {"alignment": "END", ...},
        "bullet": {"nestingLevel": 1, ...}
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "LIGHT1"} }, ...}
      }
    },
   ...
  ]
}

मान लें कि आकार ChildPlaceholder में यह टेक्स्ट कॉन्टेंट है:

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {},
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "This is my first paragraph\n",
        "style": {},
      }
      ...
    },
    {  "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {},
        "bullet": {
          "nestingLevel": 1,
          "listId": "someListId",
          "glyph": "●"
        }
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "This paragraph is in a list\n",
        "style": {},
        ...
      }
    }
  ]
}

इस वजह से, नीचे दिए गए पैराग्राफ़ में बताए गए नतीजे मिलते हैं.

सामान्य पैराग्राफ़ के लिए स्टाइल इनहेरिटेंस

चाइल्ड शेप का पहला पैराग्राफ़, जिसमें "यह मेरा पहला पैराग्राफ़ है" टेक्स्ट शामिल है, एक साधारण पैराग्राफ़ है (यह सूची में नहीं है). इसके टेक्स्ट कॉन्टेंट में कोई भी एलिमेंट, किसी भी स्टाइल प्रॉपर्टी की जानकारी नहीं देता है. इसलिए, यह अपने पैरंट से सभी वर्ण और पैराग्राफ़ स्टाइल इनहेरिट करता है. इस वजह से, रेंडरिंग इस तरह की होती है:

  • टेक्स्ट: "यह मेरा पहला पैराग्राफ़ है", रेंडर किया गया टेक्स्ट है. टेक्स्ट को कभी भी इनहेरिट नहीं किया जाता.
  • अलाइनमेंट: टेक्स्ट को START अलाइनमेंट के साथ रेंडर किया जाता है. इसे पैरंट के पहले ParagraphMarker से इनहेरिट किया जाता है.
  • फ़ोरग्राउंड का रंग: टेक्स्ट को DARK1 फ़ोरग्राउंड रंग के साथ रेंडर किया जाता है. यह रंग, पैरंट के पहले TextRun से इनहेरिट किया जाता है.

सूची वाले पैराग्राफ़ के लिए स्टाइल इनहेरिटेंस

अगला पैराग्राफ़, नेस्टिंग लेवल 1 पर बुलेट वाली सूची में है. इसमें "यह पैराग्राफ़ किसी सूची में है" टेक्स्ट शामिल है. इसकी वजह यह है कि उससे जुड़े ParagraphMarker के bullet फ़ील्ड को इस लेवल पर सेट किया गया है. इस वजह से, यह पैरंट में नेस्टिंग लेवल 1 से टेक्स्ट और पैराग्राफ़ स्टाइल इनहेरिट करता है. इससे, यह रेंडरिंग दिखती है:

  • टेक्स्ट: "यह पैराग्राफ़ किसी सूची में है", रेंडर किया गया टेक्स्ट है. टेक्स्ट को कभी भी इनहेरिट नहीं किया जाता.
  • अलाइनमेंट: टेक्स्ट को "END" अलाइनमेंट के साथ रेंडर किया गया है. इसे पैरंट के दूसरे ParagraphMarker से इनहेरिट किया गया है.
  • फ़ोरग्राउंड का रंग: टेक्स्ट को LIGHT1 टेक्स्ट फ़ोरग्राउंड रंग के साथ रेंडर किया जाता है, जो पैरंट के दूसरे TextRun से इनहेरिट किया जाता है.

टेक्स्ट और पैराग्राफ़ स्टाइल को अपडेट करने और इनहेरिट करने के बीच इंटरैक्शन

चाइल्ड शेप में सेट नहीं की गई टेक्स्ट स्टाइल, अपने पैरंट से वैल्यू इनहेरिट करेंगी. चाइल्ड में सेट की गई टेक्स्ट स्टाइल, कुछ स्थानीय दायरे में पैरंट वैल्यू को "ओवरराइड" कर देंगी.

चाइल्ड शेप की टेक्स्ट स्टाइल को अनसेट करने के लिए, UpdateTextStyleRequest का इस्तेमाल किया जा सकता है. इससे, उसमें स्थानीय बदलाव नहीं होगा और वह पैरंट शेप से अपनी स्टाइल इनहेरिट कर लेगा. इसके अलावा, पैरंट से इनहेरिट की गई वैल्यू से मैच करने के लिए, चाइल्ड की टेक्स्ट स्टाइल को अपडेट करने पर, स्टाइल अपने-आप अनसेट हो जाती है, ताकि वह इनहेरिट की गई वैल्यू का इस्तेमाल कर सके.

अपडेट करने के तुरंत बाद, टेक्स्ट के विज़ुअल पर इसका कोई असर नहीं पड़ता. हालांकि, अगर बाद में पैरंट प्लेसहोल्डर में पैराग्राफ़ या टेक्स्ट स्टाइल को अपडेट किया जाता है, तो इसका असर पड़ सकता है. इनहेरिटेंस का यह व्यवहार, Slides एडिटर के व्यवहार से मेल खाता है. इसलिए, एपीआई के साथ काम करने से पहले, स्टाइल में किए गए बदलावों के नतीजों को आज़माया जा सकता है.

उदाहरण

ChildPlaceholder और ParentPlaceholder के लिए, पिछले उदाहरण में दी गई परिभाषाओं पर विचार करें.

अब मान लें कि आपने यह UpdateTextStyleRequest सबमिट किया है:

{ "updateTextStyle": {
    "objectId": "ChildPlaceholder",
    "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, },
    "textRange": { "type": "ALL" },
    "fields": "foregroundColor"
  }
}

इस अनुरोध में, फ़ील्ड मास्क का इस्तेमाल करके, ChildPlaceholder के सभी टेक्स्ट के लिए DARK1 foregroundColor सेट करने की कोशिश की गई है. इससे यह तय किया जा सकता है कि सिर्फ़ एलिमेंट के फ़ोरग्राउंड का रंग बदलना चाहिए. इस अनुरोध के ये नतीजे होंगे:

  • पहला पैराग्राफ़: नया foregroundColor, इनहेरिट किए गए foregroundColor से मैच करता है. इसलिए, इस स्टाइल में कोई बदलाव नहीं होता और यह अब भी इनहेरिट होता है.
  • दूसरा पैराग्राफ़: नया foregroundColor, इनहेरिट किए गए foregroundColor से मेल नहीं खाता. इसलिए, दूसरे पैराग्राफ़ के फ़ोरग्राउंड का रंग, DARK1 पर अपडेट किया गया है.

ChildPlaceholder का टेक्स्ट कॉन्टेंट अब यह है:

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {},
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "This is my first paragraph\n",
        "style": {},
      }
      ...
    },
    { "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {},
        "bullet": {"nestingLevel": 1, "listId": "someListId", "glyph": "●" }
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "This paragraph is in a list\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, },
        ...
      }
    }
  ]
}

बुलेट ग्लिफ़ टेक्स्ट स्टाइल

सामान्य टेक्स्ट की तरह, बुलेट ग्लिफ़ में भी एक टेक्स्ट स्टाइल होती है. इससे यह तय होता है कि ग्लिफ़ को कैसे रेंडर किया जाए. इन टेक्स्ट स्टाइल में सीधे तौर पर, Slides API का इस्तेमाल करके बदलाव नहीं किया जा सकता. हालांकि, अगर किसी पैराग्राफ़ को अपडेट करने के लिए, UpdateTextStyleRequest का इस्तेमाल किया जाता है, जिसमें बुलेट शामिल है, तो Slides API, बुलेट ग्लिफ़ की टेक्स्ट स्टाइल को मैच करने के लिए अपडेट करता है.

बुलेट ग्लिफ़ टेक्स्ट स्टाइल, सामान्य टेक्स्ट स्टाइल से अलग इनहेरिटेंस हैरारकी का पालन करते हैं.

  1. किसी नेस्टिंग लेवल पर मौजूद बुलेट, सबसे पहले बुलेट के List ऑब्जेक्ट में मौजूद NestingLevel.bullet_style फ़ील्ड में सेट किए गए TextStyle से इनहेरिट करता है.
  2. इसके बाद, यह अपने पैरंट प्लेसहोल्डर के List में मौजूद मिलते-जुलते NestingLevel.bullet_style से इनहेरिट करता है.
  3. आखिर में, यह बाकी बचे पैरंट प्लेसहोल्डर ऑब्जेक्ट से इनहेरिट करने की कोशिश करता है.