На портале office.produktor.io (ONLYOFFICE Workspace) нет REST-маршрута комментариев к файлу:
GET /api/2.0/files/file/{id}/comment → 404
POST /api/2.0/files/file/{id}/comment → 500
Проверено на .docx и .txt, на живом и на scratch-файле. При этом сам API файлов работает (/api/2.0/files/file/{id}.json отвечает 200), то есть дело в отсутствии маршрута, а не в правах.
При этом ONLYOFFICE Docs умеет показывать обычные Word-комментарии из DOCX.
Решение
Вшивать настоящие Word-комментарии прямо в .docx и заливать файл обратно.
Якорь ищется по склеенному тексту абзаца (сущности раскодированы), переживает разбиение текста по run'ам; на абзац не больше одного комментария.
Автор по умолчанию — текущий пользователь портала (--author переопределяет).
--replace использует UpdateFile, то есть содержимое заменяется на месте, id файла и ссылки сохраняются.
Тесты
docx_comment_test.go: синтетический docx, проверка маркеров, comments.xml, автора, content types, rels, отсутствия вставки внутри w:pPr, отсутствия совпадений и парсинга спеки. go test ./... зелёный, gofmt/go vet чистые.
Проверено вживую
Комментарии вшиты в договор аренды (fileid 4379) на office.produktor.io: 12 комментариев, автор Andriy Oblivantsev, id файла сохранён, редактор показывает их в правом поле.
## Проблема
На портале `office.produktor.io` (ONLYOFFICE Workspace) нет REST-маршрута комментариев к файлу:
- `GET /api/2.0/files/file/{id}/comment` → 404
- `POST /api/2.0/files/file/{id}/comment` → 500
Проверено на `.docx` и `.txt`, на живом и на scratch-файле. При этом сам API файлов работает (`/api/2.0/files/file/{id}.json` отвечает 200), то есть дело в отсутствии маршрута, а не в правах.
При этом ONLYOFFICE Docs умеет показывать обычные Word-комментарии из DOCX.
## Решение
Вшивать настоящие Word-комментарии прямо в `.docx` и заливать файл обратно.
- Библиотека: `docx_comment.go` — `InjectDocxComments(src, author, comments)`: добавляет `word/comments.xml`, `w:commentRangeStart/End`, `w:commentReference`, правит `[Content_Types].xml` и `word/_rels/document.xml.rels`.
- CLI: `oo docs comment FILE_ID --spec comments.json [--out path] [--replace]`
- `--spec` — JSON `[{"anchor": "<текст абзаца>", "text": "<комментарий>"}]`.
- Якорь ищется по склеенному тексту абзаца (сущности раскодированы), переживает разбиение текста по run'ам; на абзац не больше одного комментария.
- Автор по умолчанию — текущий пользователь портала (`--author` переопределяет).
- `--replace` использует `UpdateFile`, то есть содержимое заменяется на месте, id файла и ссылки сохраняются.
## Тесты
`docx_comment_test.go`: синтетический docx, проверка маркеров, `comments.xml`, автора, content types, rels, отсутствия вставки внутри `w:pPr`, отсутствия совпадений и парсинга спеки. `go test ./...` зелёный, `gofmt`/`go vet` чистые.
## Проверено вживую
Комментарии вшиты в договор аренды (fileid 4379) на `office.produktor.io`: 12 комментариев, автор Andriy Oblivantsev, id файла сохранён, редактор показывает их в правом поле.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Проблема
На портале
office.produktor.io(ONLYOFFICE Workspace) нет REST-маршрута комментариев к файлу:GET /api/2.0/files/file/{id}/comment→ 404POST /api/2.0/files/file/{id}/comment→ 500Проверено на
.docxи.txt, на живом и на scratch-файле. При этом сам API файлов работает (/api/2.0/files/file/{id}.jsonотвечает 200), то есть дело в отсутствии маршрута, а не в правах.При этом ONLYOFFICE Docs умеет показывать обычные Word-комментарии из DOCX.
Решение
Вшивать настоящие Word-комментарии прямо в
.docxи заливать файл обратно.docx_comment.go—InjectDocxComments(src, author, comments): добавляетword/comments.xml,w:commentRangeStart/End,w:commentReference, правит[Content_Types].xmlиword/_rels/document.xml.rels.oo docs comment FILE_ID --spec comments.json [--out path] [--replace]--spec— JSON[{"anchor": "<текст абзаца>", "text": "<комментарий>"}].--authorпереопределяет).--replaceиспользуетUpdateFile, то есть содержимое заменяется на месте, id файла и ссылки сохраняются.Тесты
docx_comment_test.go: синтетический docx, проверка маркеров,comments.xml, автора, content types, rels, отсутствия вставки внутриw:pPr, отсутствия совпадений и парсинга спеки.go test ./...зелёный,gofmt/go vetчистые.Проверено вживую
Комментарии вшиты в договор аренды (fileid 4379) на
office.produktor.io: 12 комментариев, автор Andriy Oblivantsev, id файла сохранён, редактор показывает их в правом поле.