заметки о инструментах (действий не требует, копится обратная связь) #188

Open
opened 2026-06-25 13:19:37 +03:00 by vvzvlad · 1 comment
Owner

insertNode с anchorText — не работает с текстом заголовка, содержащим markdown-разметку ##. Пришлось сначала использовать getOutline для получения anchorNodeId, после чего insertNode с anchorNodeId сработал корректно.
editPageText — функция find чувствительна к точному тексту в ячейках таблицы. При попытке найти текст, охватывающий несколько ячеек таблицы, — не находит совпадение. Приходится искать по одной ячейке.
transformPage — работает отлично для массовых вставок. JavaScript-трансформация с doc.content.splice() корректно вставила 24 узла и сохранила все остальные элементы. Это самый эффективный способ для больших правок.

insertNode с anchorText — не работает с текстом заголовка, содержащим markdown-разметку ##. Пришлось сначала использовать getOutline для получения anchorNodeId, после чего insertNode с anchorNodeId сработал корректно. editPageText — функция find чувствительна к точному тексту в ячейках таблицы. При попытке найти текст, охватывающий несколько ячеек таблицы, — не находит совпадение. Приходится искать по одной ячейке. transformPage — работает отлично для массовых вставок. JavaScript-трансформация с doc.content.splice() корректно вставила 24 узла и сохранила все остальные элементы. Это самый эффективный способ для больших правок.
Author
Owner

deleteNode не принимает # — только attrs.id. У блоков horizontalRule, blockquote, table, bulletList ID отсутствует в outline. Это делает точечное удаление невозможным без transformPage. Работать пришлось через JS-трансформ. Было бы удобно, если бы deleteNode тоже принимал #.

transformPage diff избыточно детальный для codeBlock — при замене кода графика diff показывал посимвольные изменения (6 → 100, 85 → 07, …) вместо блочного diff. Это затрудняет верификацию. Для codeBlock логичнее показывать old/new целиком.

resolveComment не резолвит ответы (replies) — комментарий 019eff09-744f (ответ на 019eff08-c632) остался неразрешённым, т.к. он не top-level. Ответ автоматически «закрывается» с родителем при резолве, но в UI может отображаться как открытый тред с закрытым родителем — стоит проверить поведение.

editPageText — работает безупречно — все 26 замен (включая пересекающие границы и bold/italic marks) применились корректно с первого раза.

deleteNode не принимает #<index> — только attrs.id. У блоков horizontalRule, blockquote, table, bulletList ID отсутствует в outline. Это делает точечное удаление невозможным без transformPage. Работать пришлось через JS-трансформ. Было бы удобно, если бы deleteNode тоже принимал #<index>. transformPage diff избыточно детальный для codeBlock — при замене кода графика diff показывал посимвольные изменения (6 → 100, 85 → 07, …) вместо блочного diff. Это затрудняет верификацию. Для codeBlock логичнее показывать old/new целиком. resolveComment не резолвит ответы (replies) — комментарий 019eff09-744f (ответ на 019eff08-c632) остался неразрешённым, т.к. он не top-level. Ответ автоматически «закрывается» с родителем при резолве, но в UI может отображаться как открытый тред с закрытым родителем — стоит проверить поведение. editPageText — работает безупречно — все 26 замен (включая пересекающие границы <span data-comment-id> и bold/italic marks) применились корректно с первого раза.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: vvzvlad/gitmost#188