استخدام الاقتراحات

يتيح محرر مستندات Google للمتعاونين إجراء الاقتراحات التعديلات المؤجلة فعليًا في انتظار الموافقة.

عند استخدام documents.get لجلب محتوى المستند، فقد يتضمن المحتوى لم يتم حله الاقتراحات. للتحكّم في كيفية تمثيل documents.get للاقتراحات، استخدِم اختيارية SuggestionsViewMode . تتوفّر شروط الفلتر التالية مع هذه المَعلمة:

  • الحصول على محتوى باستخدام SUGGESTIONS_INLINE، بحيث يكون النص في انتظار الحذف أو يظهر الإدخال في المستند.
  • احصل على المحتوى كمعاينة مع قبول جميع الاقتراحات.
  • احصل على المحتوى كمعاينة للمحتوى بدون أي اقتراحات وبكل الاقتراحات. مرفوض.

في حال عدم توفير SuggestionsViewMode، ستستخدم واجهة برمجة تطبيقات "مستندات Google" واجهة برمجة تطبيقات الإعداد المناسب لامتيازات المستخدم الحالي.

الاقتراحات مؤشرات

أحد أسباب أهمية SuggestionsViewMode هو أن الفهارس في حسب ما إذا كانت هناك اقتراحات أم لا، كما هو موضح أدناه.

محتوى يتضمن اقتراحات محتوى بدون اقتراحات
{
 "tabs": [
  {
   "documentTab": {
    "body": {
     "content": [
      {
       "startIndex": 1,
       "endIndex": 31,
       "paragraph": {
        "elements": [
         {
          "startIndex": 1,
          "endIndex": 31,
          "textRun": {
           "content": "Text preceding the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 31,
       "endIndex": 51,
       "paragraph": {
        "elements": [
         {
          "startIndex": 31,
          "endIndex": 50,
          "textRun": {
           "content": "Suggested insertion",
           "suggestedInsertionIds": [
            "suggest.vcti8ewm4mww"
           ],
           "textStyle": {}
          }
         },
         {
          "startIndex": 50,
          "endIndex": 51,
          "textRun": {
           "content": "\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 51,
       "endIndex": 81,
       "paragraph": {
        "elements": [
         {
          "startIndex": 51,
          "endIndex": 81,
          "textRun": {
           "content": "Text following the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      }
     ]
    }
   }
  }
 ]
},

{
 "tabs": [
  {
   "documentTab": {
    "body": {
     "content": [
      {
       "startIndex": 1,
       "endIndex": 31,
       "paragraph": {
        "elements": [
         {
          "startIndex": 1,
          "endIndex": 31,
          "textRun": {
           "content": "Text preceding the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 31,
       "endIndex": 32,
       "paragraph": {
        "elements": [
         {
          "startIndex": 31,
          "endIndex": 32,
          "textRun": {
           "content": "\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      },
      {
       "startIndex": 32,
       "endIndex": 62,
       "paragraph": {
        "elements": [
         {
          "startIndex": 32,
          "endIndex": 62,
          "textRun": {
           "content": "Text following the suggestion\n",
           "textStyle": {}
          }
         }
        ],
        "paragraphStyle": {
         "namedStyleType": "NORMAL_TEXT",
         "direction": "LEFT_TO_RIGHT"
        }
       }
      }
     ]
    }
   }
  }
 ]
},

في الرد أعلاه، الفقرة التي تحتوي على السطر "النص الذي يلي اقتراح" تعرض الفرق عند استخدام SuggestionsViewMode. مع تم ضبط القيمة على SUGGESTIONS_INLINE، قيمة startIndex ParagraphElement يبدأ الساعة 51 وتوقف خط endIndex عند 81. بدون اقتراحات، تتراوح قيمة startIndex وendIndex بين 32 و62.

الحصول على محتوى بدون اقتراحات

يعرض نموذج الرمز الجزئي التالي كيفية الحصول على مستند كمعاينة باستخدام تم رفض كل الاقتراحات (إن توفّرت) من خلال ضبط SuggestionsViewMode إلى PREVIEW_WITHOUT_SUGGESTIONS.

Java

final string SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS";
Document doc =
    service
        .documents()
        .get(DOCUMENT_ID)
        .setIncludeTabsContent(true)
        .setSuggestionsViewMode(SUGGEST_MODE)
        .execute();

Python

SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"
result = (
  service.documents()
  .get(
      documentId=DOCUMENT_ID,
      includeTabsContent=True,
      suggestionsViewMode=SUGGEST_MODE,
  )
  .execute()
)

إنّ حذف المَعلمة SuggestionsViewMode يعادل توفير DEFAULT_FOR_CURRENT_ACCESS كقيمة للمعلَمة.

اقتراحات الأنماط

يمكن أن تحتوي المستندات أيضًا على اقتراحات النمط. هذه تغييرات مقترحة على والتنسيق والعرض التقديمي، بدلاً من إجراء تغييرات في المحتوى.

وعلى عكس عمليات إدراج النص أو حذفه، لا تعوض المؤشرات — على الرغم من أنها قد تقسم TextRun إلى أصغر ولكن أضف فقط تعليقات توضيحية حول تغيير النمط المقترح.

أحد هذه التعليقات التوضيحية هو SuggestedTextStyle, والتي تتكوّن من جزأين:

  • السمة textStyle التي تصف كيفية تصميم النص بعد الاقتراح يتغير، لكنه لا يذكر ما تغير.

  • textStyleSuggestionState، الذي يشير إلى كيفية تغيير الاقتراح حقول textStyle.

يمكنك الاطّلاع على ذلك في الاستخراج التالي لعلامة تبويب المستند، والذي يتضمن تغيير النمط المقترح:

[01] "paragraph": {
[02]    "elements": [
[03]        {
[04]            "endIndex": 106,
[05]            "startIndex": 82,
[06]            "textRun": {
[07]                "content": "Some text that does not ",
[08]                "textStyle": {}
[09]            }
[10]        },
[11]        {
[12]            "endIndex": 115,
[13]            "startIndex": 106,
[14]            "textRun": {
[15]                "content": "initially",
[16]                "suggestedTextStyleChanges": {
[17]                    "suggest.xymysbs9zldp": {
[18]                        "textStyle": {
[19]                            "backgroundColor": {},
[20]                            "baselineOffset": "NONE",
[21]                            "bold": true,
[22]                            "fontSize": {
[23]                                "magnitude": 11,
[24]                                "unit": "PT"
[25]                            },
[26]                            "foregroundColor": {
[27]                                "color": {
[28]                                    "rgbColor": {}
[29]                                }
[30]                            },
[31]                            "italic": false,
[32]                            "smallCaps": false,
[33]                            "strikethrough": false,
[34]                            "underline": false
[35]                        },
[36]                        "textStyleSuggestionState": {
[37]                            "boldSuggested": true,
[38]                            "weightedFontFamilySuggested": true
[39]                        }
[40]                    }
[41]                },
[42]                "textStyle": {
[43]                    "italic": true
[44]                }
[45]            }
[46]        },
[47]        {
[48]            "endIndex": 143,
[49]            "startIndex": 115,
[50]            "textRun": {
[51]                "content": " contain any boldface text.\n",
[52]                "textStyle": {}
[53]            }
[54]        }
[55]    ],
[56]    "paragraphStyle": {
[57]        "direction": "LEFT_TO_RIGHT",
[58]        "namedStyleType": "NORMAL_TEXT"
[59]    }
[60] }

في النموذج أعلاه، تتكون الفقرة من 3 عمليات تشغيل نصية، بدءًا من الأسطر 6، 14 و50. افحص جزء النص الأوسط:

  • السطر 16: هناك كائن suggestedTextStyleChanges.
  • السطر 18: يحدّد textStyle تنسيقات مختلفة.
  • السطر 36: يخبرك textStyleSuggestionState بأن الجزء العريض فقط من هذه المواصفات كانت الاقتراح.
  • السطر 42: النمط المائل لمسار النص هذا هو جزء من المستند الحالي (ولن يتأثر بالاقتراح).

ويتم فقط تضمين ميزات النمط التي تم ضبطها على true في textStyleSuggestionState. للاقتراح.