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 polatextStyle
.
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
.