Korzystanie z sugestii

Dokumenty Google umożliwiają współpracownikom przesyłanie sugestii, które skutecznie odkładają zmiany w oczekiwaniu na zatwierdzenie.

Gdy używasz metody documents.get do pobierania treści dokumentu, mogą one zawierać nierozstrzygnięte sugestie. Aby określić, w jaki sposób documents.get ma wyświetlać sugestie, użyj opcjonalnego parametru SuggestionsViewMode. Przy tym parametrze dostępne są te warunki filtra:

  • Pobierz treści z SUGGESTIONS_INLINE, aby w dokumencie pojawił się tekst oczekujący na usunięcie lub wstawienie.
  • Pobieraj treści w formie podglądu ze wszystkimi sugestiami.
  • Pobierz treści w podglądzie bez sugestii i odrzucone.

Jeśli nie podasz SuggestionsViewMode, interfejs API Dokumentów Google użyje ustawienia domyślnego odpowiedniego do uprawnień bieżącego użytkownika.

Sugestie i indeksy

Jedną z powodów, dla których indeks SuggestionsViewMode jest ważny, jest to, że indeksy w odpowiedzi mogą się różnić w zależności od tego, czy są jakieś sugestie (jak pokazano poniżej).

Treści z sugestiami Treści bez sugestii
{
 "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"
  }
 }
},

{
 "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"
  }
 }
},

W powyższej odpowiedzi akapit zawierający wiersz „Tekst po sugestii” pokazuje różnicę, gdy użyjesz właściwości SuggestionsViewMode. Gdy ma wartość SUGGESTIONS_INLINE, startIndex elementu ParagraphElement rozpoczyna się w 51, a endIndex kończy na 81. Bez sugestii wartości startIndex i endIndex mieszczą się w przedziale od 32 do 62.

Otrzymuj treści bez sugestii

Poniższy fragment kodu częściowego pokazuje, jak uzyskać podgląd dokumentu ze wszystkimi sugestiami (jeśli jakieś są odrzucone) przez ustawienie parametru SuggestionsViewMode na PREVIEW_WITHOUT_SUGGESTIONS.

Java

końcowy ciąg SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"; Dokument dokumentu = service.documents().get(DOCUMENT_ID).setSuggestViewMode(SUGGEST_MODE).execute();

Python

SUGGEST_MODE="PREVIEW_WITHOUT_SUGGESTIONS" wyniku = service.documents().get(documentId=IDENTYFIKATOR_dokumentu, suggestionsViewMode=SUGGEST_TRY).execute()

Pominięcie parametru SuggestionsViewMode jest równoważne z podaniem wartości DEFAULT_FOR_CURRENT_ACCESS jako jego wartości.

Sugestie dotyczące stylu

Dokumenty mogą też zawierać sugestie dotyczące stylu. Są to sugerowane zmiany w formatowaniu i prezentacji, a nie w treści.

W przeciwieństwie do wstawiania i usuwania tekstu nie przesuwają one indeksów (chociaż mogą dzielić TextRun na mniejsze fragmenty). Wystarczy, że dodasz adnotacje o sugerowanej zmianie stylu.

Jedną z takich adnotacji jest SuggestedTextStyle, który składa się z 2 części:

  • textStyle, który opisuje styl tekstu po sugerowanej zmianie, ale nie podaje, co się zmieniło.

  • textStyleSuggestionState, który wskazuje, jak sugestia zmienia pola textStyle.

Widać to w poniższym fragmencie dokumentu, który zawiera sugerowaną zmianę stylu:

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

W przykładzie powyżej akapit składa się z 3 tekstów, zaczynając od wiersza 6, 14 i 50. Przyjrzyj się środkowym tekstom:

  • Wiersz 16: obiekt suggestedTextStyleChanges.
  • Wiersz 18: textStyle określa różne formatowanie.
  • Wiersz 36: wiersz textStyleSuggestionState informuje, że sugestia to tylko pogrubiona część specyfikacji.
  • Wiersz 42: styl pisany kursywą w tym tekście jest częścią bieżącego dokumentu (sugestia nie ma na niego wpływu).

Sugestia obejmuje tylko cechy stylu ustawione na true w elemencie textStyleSuggestionState.