Önerilerle çalışma

Google Dokümanlar, ortak çalışanların onay bekleyen ertelenen düzenlemeler olarak işlev gören öneriler yapmasına olanak tanır.

Belge içeriğini almak için documents.get yöntemini kullandığınızda içerik, çözülmemiş öneriler içerebilir. documents.get'ün önerileri nasıl temsil ettiğini kontrol etmek için isteğe bağlı SuggestionsViewMode parametresini kullanın. Bu parametreyle aşağıdaki filtre koşulları kullanılabilir:

  • İçeriği SUGGESTIONS_INLINE ile alın. Böylece, silinmeyi veya eklenmeyi bekleyen metin dokümanda görünür.
  • Tüm önerilerin kabul edildiği bir önizleme olarak içerik alın.
  • Tüm öneriler reddedilerek içeriği önizleme olarak öneri olmadan alın.

SuggestionsViewMode sağlamazsanız Google Dokümanlar API'si, mevcut kullanıcının ayrıcalıklarına uygun varsayılan bir ayar kullanır.

Öneriler ve dizinler

SuggestionsViewMode değerinin önemli olmasının bir nedeni, yanıttaki dizinlerin, aşağıda gösterildiği gibi öneri olup olmadığına bağlı olarak değişebilmesidir.

Öneri içeren içerikler Öneri içermeyen içerikler
{
 "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"
        }
       }
      }
     ]
    }
   }
  }
 ]
},

Yukarıdaki yanıtta, "Önerinin ardından gelen metin" satırını içeren paragrafta SuggestionsViewMode kullanıldığındaki fark gösterilmektedir. Değer SUGGESTIONS_INLINE olarak ayarlandığında, ParagraphElement için startIndex 51'den başlar ve endIndex 81'de durur. Öneriler olmadan startIndex ve endIndex aralığı 32-62'dir.

Öneriler olmadan içerik alma

Aşağıdaki kısmi kod örneğinde, SuggestionsViewMode parametresi PREVIEW_WITHOUT_SUGGESTIONS olarak ayarlanarak bir dokümanın tüm önerilerin reddedildiği (varsa) bir önizlemesi nasıl alınacağı gösterilmektedir.

JavaPython

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

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

SuggestionsViewMode parametresinin atlanması, parametre değeri olarak DEFAULT_FOR_CURRENT_ACCESS sağlanmasına eşdeğerdir.

Stil önerileri

Dokümanlar stil önerileri de içerebilir. Bunlar, içerikte değil, biçimlendirme ve sunumda önerilen değişikliklerdir.

Metin ekleme veya silme işlemlerinin aksine, bunlar dizinleri etkilemez (TextRun'yi daha küçük parçalara ayırabilirler) ancak önerilen stil değişikliğiyle ilgili ek açıklamalar ekler.

Bu tür ek açıklamalardan biri, 2 bölümden oluşan SuggestedTextStyle'dir:

  • Önerilen değişiklikten sonra metnin nasıl biçimlendirildiğini açıklayan ancak neyin değiştiğini belirtmeyen textStyle.

  • Öneri, textStyle alanlarının nasıl değiştirildiğini belirten textStyleSuggestionState.

Bu durumu, önerilen bir stil değişikliği içeren aşağıdaki doküman sekmesi özözünde görebilirsiniz:

[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] }

Yukarıdaki örnekte paragraf, 6., 14. ve 50. satırlardan başlayan 3 metin satırından oluşur. Ortadaki metin satırını inceleyin:

  • 16. satır: suggestedTextStyleChanges nesnesi var.
  • 18. satır: textStyle, çeşitli biçimlendirmeleri belirtir.
  • 36. satır: textStyleSuggestionState, bu spesifikasyonun yalnızca kalın yazılmış kısmının öneri olduğunu gösterir.
  • 42. satır: Bu metin satırının italik biçimlendirmesi mevcut dokümanın bir parçasıdır (ve öneriden etkilenmez).

Yalnızca textStyleSuggestionState içinde true olarak ayarlanan stil özellikleri önerinin bir parçasıdır.