Làm việc với các đề xuất

Google Tài liệu cho phép cộng tác viên đưa ra nội dung đề xuất có thể trì hoãn hiệu quả các nội dung chỉnh sửa đang chờ phê duyệt.

Khi bạn sử dụng phương thức documents.get để tìm nạp nội dung tài liệu, nội dung có thể bao gồm các đề xuất chưa được giải quyết. Để kiểm soát cách documents.get biểu thị nội dung đề xuất, hãy sử dụng tham số SuggestionsViewMode không bắt buộc. Bạn có thể sử dụng các điều kiện lọc sau đây với thông số này:

  • Nhận nội dung bằng SUGGESTIONS_INLINE, vì vậy, văn bản đang chờ xoá hoặc chèn sẽ xuất hiện trong tài liệu.
  • Xem nội dung ở dạng bản xem trước đã chấp nhận tất cả đề xuất.
  • Nhận nội dung dưới dạng bản xem trước mà không có đề xuất, và tất cả đề xuất đều bị từ chối.

Nếu bạn không cung cấp SuggestionsViewMode, API Google Tài liệu sẽ sử dụng chế độ cài đặt mặc định phù hợp với các đặc quyền của người dùng hiện tại.

Đề xuất và chỉ mục

Một lý do khiến SuggestionsViewMode quan trọng là các chỉ mục trong phản hồi có thể thay đổi tuỳ thuộc vào việc có đề xuất hay không, như minh hoạ dưới đây.

Nội dung có đề xuất Nội dung không có đề xuất
{
 "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"
  }
 }
},

Trong câu trả lời ở trên, đoạn có chứa dòng "Text theo đề xuất" cho thấy sự khác biệt khi sử dụng SuggestionsViewMode. Với giá trị được đặt thành SUGGESTIONS_INLINE, startIndex của ParagraphElement bắt đầu ở 51 và endIndex dừng ở 81. Nếu không có đề xuất, startIndexendIndex sẽ nằm trong khoảng từ 32 đến 62.

Nhận nội dung không có đề xuất

Mã mẫu một phần sau đây cho biết cách tải tài liệu dưới dạng bản xem trước trong đó tất cả các đề xuất bị từ chối (nếu có) bằng cách đặt tham số SuggestionsViewMode thành PREVIEW_WITHOUT_SUGGESTIONS.

Java

chuỗi cuối cùng SUGGEST_MODE = "PREVIOUS_WITHOUT_PURCHASE"; Tài liệu tài liệu = service.documents().get(DOCUMENT_ID).setrecommendationsViewMode(SUGGEST_MODE).Execution);

Python

SUGGEST_MODE="preview_WITHOUT_ treo" kết quả = service.documents().get(documentId=DOCUMENT_ID, suggestionsViewMode=SUGGEST_MODE).Execution()

Việc bỏ qua tham số SuggestionsViewMode tương đương với việc cung cấp DEFAULT_FOR_CURRENT_ACCESS làm giá trị tham số.

Kiểu đề xuất

Tài liệu cũng có thể có nội dung đề xuất về kiểu. Đây là những thay đổi được đề xuất đối với định dạng và cách trình bày, thay vì các thay đổi đối với nội dung.

Không giống như thao tác chèn hoặc xoá văn bản, các thao tác này không bù trừ chỉ mục (mặc dù có thể chia TextRun thành các đoạn nhỏ hơn) mà chỉ thêm chú thích về thay đổi kiểu đề xuất.

Một trong những chú giải như vậy là SuggestedTextStyle, bao gồm 2 phần:

  • textStyle, mô tả cách văn bản được tạo kiểu sau khi thay đổi được đề xuất, nhưng không cho biết điều gì đã thay đổi.

  • textStyleSuggestionState, cho biết cách đề xuất thay đổi các trường của textStyle.

Bạn có thể xem nội dung này trong bản trích xuất tài liệu sau đây, bao gồm cả thay đổi kiểu được đề xuất:

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

Ở mẫu trên, đoạn văn bản bao gồm 3 lần chạy văn bản, bắt đầu từ dòng 6, 14 và 50. Kiểm tra chạy văn bản ở giữa:

  • Dòng 16: Có một đối tượng suggestedTextStyleChanges.
  • Dòng 18: textStyle chỉ định định dạng khác nhau.
  • Dòng 36: textStyleSuggestionState cho bạn biết rằng chỉ có phần in đậm của quy cách này là đề xuất.
  • Dòng 42: Kiểu in nghiêng của lần chạy văn bản này là một phần của tài liệu hiện tại (và không bị ảnh hưởng bởi nội dung đề xuất).

Chỉ các tính năng kiểu được đặt thành true trong textStyleSuggestionState là một phần của đề xuất.