Comentarios en Documentos
Introducción
Sutram ofrece un poderoso sistema de comentarios en documentos que permite a los equipos de proyecto colaborar directamente sobre los documentos, colocando comentarios en ubicaciones específicas. Los comentarios se anclan a posiciones precisas dentro de PDFs, imágenes, documentos de Office, archivos markdown y modelos CAD/BIM, lo que permite discusiones contextuales sin salir de la plataforma.
Características Principales
- Anclaje Contextual: Tres métodos de anclaje diferentes según el tipo de archivo
- Discusiones con Hilos: Responde a comentarios para crear hilos de conversación
- Colaboración en Tiempo Real: Ve los comentarios de otros usuarios al instante mediante PubSub
- Soporte Multi-Formato: Funciona con PDFs, imágenes, documentos de Office (Word, Excel, PowerPoint), markdown y archivos CAD/BIM
- Resolución de Comentarios: Marca comentarios como resueltos cuando los problemas se abordan
- Marcadores Visuales: Marcadores numerados en forma de globo muestran la ubicación de los comentarios directamente sobre los documentos
- Panel de Comentarios: Panel inferior con filtros (Todos/Abiertos/Resueltos) para explorar y navegar por los comentarios
- Navegación: Haz clic en los marcadores o en los elementos del panel para ir a comentarios específicos
- Soporte en 6 Idiomas: Internacionalización completa (inglés, portugués, español, francés, alemán, italiano)
Métodos de Anclaje por Tipo de Archivo
El sistema utiliza tres métodos de anclaje distintos según el tipo de archivo, cada uno optimizado para la forma en que los usuarios interactúan con ese tipo de contenido:
1. Anclaje por Posición (PDF e Imágenes)
Usado para: Archivos PDF, imágenes, documentos de Office (convertidos a PDF)
Cómo funciona: El usuario hace clic en cualquier parte del documento y el comentario se ancla a coordenadas relativas (0.0-1.0).
| Tipo de Archivo | Tipo de Posición | Almacenamiento | Interacción del Usuario |
|---|---|---|---|
pdf_page |
pdf_page_number + pdf_relative_x/y (0.0-1.0) |
Clic en cualquier parte de la página | |
| Imágenes | image |
pdf_relative_x/y (0.0-1.0) |
Clic en cualquier parte de la imagen |
| Office | pdf_page |
Se convierte a PDF primero, igual que PDF | Clic en el PDF convertido |
Ventajas:
- Funciona independientemente del nivel de zoom o tamaño de ventana
- Posicionamiento preciso en contenido visual
- Simple e intuitivo para los usuarios
Texto del botón: "Haz clic para agregar..." (traducido a 6 idiomas)
2. Anclaje por Vista de Cámara (CAD/BIM)
Usado para: Dibujos CAD 2D (DWG, DXF), modelos CAD 3D (IFC, RVT, etc.)
Cómo funciona: El usuario hace clic en el modelo y el comentario captura tanto las coordenadas del mundo como el estado de la cámara (posición de vista, zoom, rotación).
| Tipo de Archivo | Tipo de Posición | Almacenamiento | Interacción del Usuario |
|---|---|---|---|
| CAD 3D | aps_3d |
aps_world_coordinates {x,y,z} + aps_db_id + aps_camera_state |
Clic en la superficie del modelo 3D |
| CAD 2D | aps_2d |
aps_world_coordinates {x,y,z} + aps_sheet_guid + aps_camera_state |
Clic en el dibujo 2D |
Ventajas:
- Los marcadores siguen al modelo durante el zoom/paneo/rotación
- "Ir a la ubicación" restaura la vista exacta que vio el autor del comentario
- Funciona con vistas explotadas y planos de sección
- Se captura el ID del elemento para integraciones futuras
Texto del botón: "Haz clic para agregar..." (traducido a 6 idiomas)
3. Comentarios Anclados a Texto (Markdown)
Usado para: Archivos markdown (en visor y editor)
Cómo funciona: El usuario selecciona texto (en lugar de hacer clic) y el comentario se ancla al texto seleccionado con contexto circundante para resiliencia ante ediciones.
| Tipo de Archivo | Tipo de Posición | Almacenamiento | Interacción del Usuario |
|---|---|---|---|
| Markdown | markdown |
text_anchor {exact_text, prefix, suffix} + pdf_relative_y (respaldo) |
Seleccionar texto para comentar |
Estructura del Ancla de Texto:
{
"exact_text": "el texto seleccionado",
"prefix": "50 caracteres antes de la selección",
"suffix": "50 caracteres después de la selección",
"selection_length": 18
}
Ventajas:
- Los comentarios sobreviven a ediciones del documento (búsqueda basada en texto, no posición de píxeles)
- El contexto de prefijo/sufijo ayuda a encontrar el texto incluso si la coincidencia exacta se mueve
- Resaltado visual del texto comentado en el visor
- Soporte móvil con botón flotante "Comentar"
Texto del botón: "Seleccionar texto..." (traducido a 6 idiomas)
Experiencia Móvil:
- Dispositivo táctil detectado automáticamente
- El usuario mantiene presionado para seleccionar texto
- Un botón flotante "Comentar" aparece debajo de la selección (evita conflicto con el menú nativo)
- Espera de 600ms permite al usuario ajustar los controles de selección antes de que aparezca el botón
Cómo Funciona
Habilitar el Modo de Comentarios
- Abre la vista previa de un documento (PDF, imagen, markdown, Office o archivo CAD)
- Haz clic en el botón de comentarios en la barra de herramientas de vista previa
- La capa superpuesta se activa y los marcadores aparecen para los comentarios existentes
- El Panel de Comentarios aparece en la parte inferior con opciones de filtro
Agregar un Comentario
La interacción varía según el tipo de archivo:
PDF, Imágenes, Office, CAD
- Con el modo de comentarios habilitado, haz clic en Agregar en el Panel de Comentarios
- Haz clic en el documento en la ubicación deseada
- Aparece un modal con un campo de texto
- Escribe el texto de tu comentario
- Haz clic en Publicar Comentario para crear el comentario
- Un marcador numerado aparece en la ubicación donde hiciste clic
Markdown
- Con el modo de comentarios habilitado, haz clic en Agregar en el Panel de Comentarios
- Selecciona texto haciendo clic y arrastrando (escritorio) o manteniendo presionado y arrastrando los controles (móvil)
- En escritorio: el modal se abre inmediatamente después de la selección
- En móvil: toca el botón flotante "Comentar" que aparece debajo de la selección
- Escribe el texto de tu comentario
- Haz clic en Publicar Comentario para crear el comentario
- Un marcador numerado aparece en el margen izquierdo, alineado con el texto seleccionado
Ver Comentarios Existentes
- Marcadores: Marcadores numerados en forma de globo muestran la ubicación de los comentarios
- Marcadores morados: Comentarios abiertos
- Marcadores verdes: Comentarios resueltos
- Insignia naranja: Número de respuestas
- Clic en marcador: Abre el modal del hilo de comentarios
- Panel de Comentarios: Panel inferior que muestra todos los comentarios
- Expandir/colapsar haciendo clic en el encabezado
- Filtrar por estado: Todos / Abiertos / Resueltos
- Haz clic en cualquier comentario para navegar a su ubicación
- Navegación: Usa "Ir a la ubicación" o el panel para saltar a los comentarios
Responder a Comentarios
- Haz clic en un marcador de comentario existente (o selecciónalo desde el Panel de Comentarios)
- El modal del hilo se abre mostrando el comentario original y cualquier respuesta
- Escribe tu respuesta en el campo de texto
- Haz clic en Publicar respuesta para agregar tu respuesta
Resolver Comentarios
- Abre un hilo de comentarios
- Haz clic en Marcar como resuelto (botón encima del área de respuesta)
- El marcador se pone verde para indicar la resolución
- Los comentarios resueltos pueden Reabrirse desde las acciones del modal
Eliminar Comentarios
- Abre un hilo de comentarios
- Haz clic en el botón Eliminar (solo visible para el autor del comentario o el administrador del proyecto)
- Confirma la eliminación
- El marcador se elimina del documento
Documentos de Office (Word, Excel, PowerPoint)
Los archivos de Office requieren un manejo especial porque los comentarios necesitan un lienzo estático para el posicionamiento.
Cómo Funciona
- Configuración del proyecto: "Permitir comentarios en archivos de Office" debe estar habilitado
- Primera activación: Al hacer clic en el botón de comentarios en un archivo de Office:
- Si hay PDF en caché: Cambia al visor PDF inmediatamente
- Si no hay caché: Muestra el estado de carga "Convirtiendo documento..."
- Conversión: LibreOffice convierte el archivo de Office a PDF (se ejecuta una vez, se almacena en caché permanentemente)
- Resultado: Aparece el visor PDF con la capa de comentarios
- Insignia: La insignia "Modo de comentarios" se muestra en el encabezado al ver el PDF convertido
Configuración
Los propietarios del proyecto pueden habilitar los comentarios de Office en Configuración del Proyecto:
- Navega a Configuración > Configuración de Archivos
- Habilita "Permitir comentarios en archivos de Office"
- Guarda la configuración
Limitaciones
- Los comentarios se colocan sobre la conversión a PDF, no sobre el archivo original de Office
- El formato complejo puede renderizarse de manera diferente en PDF
- Las fórmulas de Excel muestran solo los valores calculados
- Las animaciones/transiciones de PowerPoint se pierden
Archivos CAD/BIM (Autodesk APS)
El sistema de comentarios se integra completamente con el Visor de Autodesk para archivos CAD y BIM.
Modelos 3D (IFC, RVT, etc.)
Para modelos 3D, los comentarios se anclan usando:
- Coordenadas del Mundo: El punto 3D donde el usuario hizo clic
- ID del Elemento: El elemento específico del modelo (si la prueba de impacto tiene éxito)
- Estado de la Cámara: La posición exacta de la vista cuando se creó el comentario
Comportamiento:
- Los marcadores actualizan su posición en tiempo real al rotar/hacer zoom en el modelo
- "Ir a la ubicación" restaura la vista exacta de la cámara desde cuando se creó el comentario
- Funciona con vistas explotadas y planos de sección
Dibujos 2D (DWG, DXF)
Para dibujos 2D, los comentarios usan:
- Coordenadas del Modelo: Posición en unidades del dibujo (no píxeles de pantalla)
- GUID de la Hoja: Identifica en qué hoja está el comentario
Comportamiento:
- Los marcadores permanecen adheridos a los puntos del dibujo durante el zoom/paneo
- Los eventos de cambio de cámara activan el re-renderizado de marcadores
- Funciona en diferentes niveles de zoom y posiciones de paneo
Detalles Técnicos
El sistema utiliza métodos del SDK del Visor de Autodesk:
| Operación | Método |
|---|---|
| Obtener posición de clic (3D) | viewer.impl.hitTest() |
| Obtener posición de clic (2D) | viewer.clientToWorld() |
| Renderizar posición del marcador | viewer.impl.worldToClient() |
| Navegar al comentario | viewer.restoreState() |
| Rastrear cambios de cámara | Listener CAMERA_CHANGE_EVENT |
Colaboración en Tiempo Real
Los comentarios se sincronizan en tiempo real entre todos los usuarios conectados.
Temas PubSub
Formato del tema: document_comments:{content_item_id}
Eventos
| Evento | Descripción |
|---|---|
comment_added |
Nuevo comentario creado por otro usuario |
comment_updated |
Comentario editado, respuesta agregada o estado cambiado |
comment_deleted |
Comentario eliminado por otro usuario |
Comportamiento
- Los nuevos marcadores aparecen instantáneamente cuando otros usuarios agregan comentarios
- El conteo de respuestas se actualiza en tiempo real
- El estado de resolución se sincroniza entre todos los visores
- Si se está viendo un comentario eliminado, el modal se cierra automáticamente
Interfaz de Usuario
Marcadores de Comentarios
Los marcadores usan un diseño de globo de chat con un puntero:
┌───────┐
│ 1.2 │ ← Número (página.índice o solo índice)
└───┬───┘
▽ ← El puntero indica la posición exacta
Estilo:
- Fondo: Índigo (#6366f1) para abiertos, Verde (#22c55e) para resueltos
- Insignia de respuestas: Círculo naranja (#f97316) en la esquina superior derecha
- Efecto hover: Ligero aumento de escala (1.1x)
- Sombra: Sombra proyectada para visibilidad sobre cualquier fondo
Modal de Comentario
El modal muestra:
Encabezado:
- Nombre del autor del comentario y avatar
- Marca de tiempo (relativa, ej., "hace 2 horas")
- Información de posición (ej., "Página 3" o "Punto 3D")
Cuerpo:
- Texto del comentario
- Respuestas (con hilos, cronológicas)
- Campo de entrada para respuestas
Acciones (vista de hilo):
- Marcar como resuelto: Botón encima del formulario de respuesta (verde, prominente)
- Publicar respuesta: Botón para enviar respuesta
- Eliminar: Ícono de papelera (solo autor/administrador)
- Reabrir: Disponible cuando el comentario está resuelto
- Cerrar: Descartar modal
Arquitectura
Esquema de Base de Datos
Tabla: document_comments
| Columna | Tipo | Descripción |
|---|---|---|
id |
UUID | Clave primaria |
content |
Text | Texto del comentario |
content_item_id |
UUID | FK a content_items |
user_id |
UUID | FK a users (autor) |
project_id |
UUID | FK a projects |
parent_id |
UUID | FK a document_comments (para respuestas) |
position_type |
String | pdf_page, image, markdown, aps_3d, aps_2d |
pdf_page_number |
Integer | Número de página (solo PDF) |
pdf_relative_x |
Float | Posición X 0.0-1.0 (o píxeles para markdown) |
pdf_relative_y |
Float | Posición Y 0.0-1.0 (o píxeles para markdown) |
aps_world_coordinates |
Map | {x, y, z} para CAD |
aps_db_id |
Integer | ID de elemento de Autodesk |
aps_camera_state |
Map | Estado del visor para navegación |
aps_sheet_guid |
String | Identificador de hoja 2D |
resolved |
Boolean | Estado de resolución |
resolved_at |
DateTime | Cuándo se resolvió |
resolved_by_id |
UUID | FK a users |
inserted_at |
DateTime | Marca de tiempo de creación |
updated_at |
DateTime | Última modificación |
Módulos del Backend
| Módulo | Propósito |
|---|---|
Sutram.Content.DocumentComment |
Esquema Ecto con validaciones |
Sutram.Content |
Funciones CRUD para comentarios |
SutramWeb.ProjectLive.Content.CommentHandler |
Manejadores de eventos LiveView |
SutramWeb.ProjectLive.Components.CommentModal |
LiveComponent del modal |
SutramWeb.ProjectLive.Components.CommentsPanel |
Panel inferior con filtros |
SutramWeb.ProjectLive.Components.PreviewModal |
Vista previa con capa superpuesta |
Frontend (JavaScript)
| Archivo | Propósito |
|---|---|
assets/js/hooks/comment_overlay.js |
Hook principal de la capa superpuesta |
assets/js/viewers/pdf_viewer.js |
Visor PDF con seguimiento de páginas |
assets/js/viewers/autodesk_viewer.js |
Visor CAD con getViewerInstance() |
Funciones Clave
Hook CommentOverlay:
calculatePdfPosition(): Convierte clic a coordenadas PDFcalculateImagePosition(): Convierte clic a coordenadas de imagencalculateMarkdownPosition(): Convierte clic a coordenadas de píxeles markdowncalculateApsPosition(): Convierte clic a coordenadas del mundo CADcalculateScreenPosition(): Convierte posición almacenada a píxeles de pantallarenderMarkers(): Dibuja todos los marcadores visiblesnavigateToComment(): Desplaza/hace zoom a la ubicación del comentario
Configuración
Configuración del Proyecto
| Ajuste | Predeterminado | Descripción |
|---|---|---|
allow_office_comments |
false |
Habilitar comentarios en archivos de Office |
Configuración de la Aplicación
Los comentarios están habilitados por defecto para:
- Archivos PDF
- Archivos de imagen
- Archivos CAD (cuando APS está configurado)
Los archivos de Office requieren una activación explícita a nivel de proyecto debido al requisito de conversión a PDF.
Solución de Problemas
Los Comentarios No Aparecen
Causa: El modo de comentarios no está habilitado
Solución:
- Haz clic en el botón de comentarios en la barra de herramientas de vista previa
- Espera a que los marcadores se rendericen
- Revisa la consola del navegador en busca de errores
Marcadores en Posición Incorrecta
Causa: El tamaño o zoom cambió después de que los marcadores fueron renderizados
Solución:
- Los marcadores se reposicionan automáticamente al cambiar tamaño/zoom
- Si el problema persiste, cierra y vuelve a abrir la vista previa
Los Comentarios CAD No se Guardan
Causa: El visor APS no está completamente cargado
Solución:
- Espera a que el modelo 3D se cargue completamente
- Intenta hacer clic en una superficie visible
- Verifica que el visor responda a la navegación
El Botón de Comentarios de Office No Aparece
Causa: La configuración del proyecto no está habilitada
Solución:
- Ve a Configuración del Proyecto > Configuración de Archivos
- Habilita "Permitir comentarios en archivos de Office"
- Guarda y recarga la página
Referencia de API
Eventos LiveView (Cliente a Servidor)
| Evento | Carga Útil | Descripción |
|---|---|---|
position_selected |
Datos de posición | El usuario hizo clic para agregar un comentario |
marker_clicked |
{comment_id, marker_number} |
El usuario hizo clic en un marcador existente |
create_comment |
{content} |
Guardar nuevo comentario |
create_reply |
{content, parent_id} |
Agregar respuesta al hilo |
resolve_comment |
{comment_id} |
Marcar como resuelto |
reopen_comment |
{comment_id} |
Reabrir comentario resuelto |
delete_comment |
{comment_id} |
Eliminar comentario |
navigate_to_comment |
{comment_id} |
Ir a la ubicación |
request_markers |
{content_item_id} |
Solicitar marcadores iniciales |
Eventos Push (Servidor a Cliente)
| Evento | Carga Útil | Descripción |
|---|---|---|
render_markers |
{markers: [...]} |
Lista completa de marcadores |
add_marker |
{marker: {...}} |
Un nuevo marcador individual |
update_marker |
{marker: {...}} |
Datos de marcador actualizados |
remove_marker |
{comment_id} |
Eliminar marcador |
navigate_to_comment |
{comment: {...}} |
Activar navegación |
Historial de Versiones
| Versión | Fecha | Cambios |
|---|---|---|
| v0.58.0 | 2025-12-22 | Comentarios en PDF iniciales con hilos |
| v0.59.0 | 2025-12-23 | Comentarios en contexto de Chat |
| v0.60.0 | 2025-12-24 | Soporte de comentarios en imágenes |
| v0.61.0 | 2025-12-24 | Comentarios en archivos de Office (vía PDF) |
| v0.61.1 | 2025-12-24 | Comentarios CAD/APS (2D y 3D) |
| v0.62.0 | 2025-12-24 | Mensaje emergente de bienvenida |
| v0.63.0 | 2025-12-25 | Panel de Comentarios (V3) - panel inferior con filtros y navegación |
| v0.64.0 | 2025-12-26 | Soporte de comentarios en markdown |
| v0.64.1 | 2025-12-26 | Mejoras de interfaz: acciones del modal reorganizadas, mensaje emergente eliminado |
| v0.65.0 | 2025-12-26 | Modo de comentarios en el editor markdown con ajuste manual de posición |
| v0.65.1 | 2025-12-29 | Soporte de selección de texto móvil para comentarios en markdown |
| v0.65.2 | 2025-12-29 | Mejoras de experiencia: botón flotante posicionado debajo de la selección para evitar el menú nativo |
| v0.65.3 | 2025-12-29 | Internacionalización: botón flotante "Comentar" traducido a 6 idiomas |
Panel de Comentarios (V3)
El Panel de Comentarios es un panel inferior que lista todos los comentarios en el documento, proporcionando una experiencia de navegación unificada tanto para móvil como para escritorio.
Diseño
El panel usa un diseño de panel inferior (unificado para móvil y escritorio):
┌─────────────────────────────────────────────────┐
│ │
│ Visor (PDF/Imagen/CAD) │
│ │
│ 📍 │
│ │
├─────────────────────────────────────────────────┤
│ 💬 4 comentarios ▼ │ ← Clic para expandir
├─────────────────────────────────────────────────┤
│ ◉ Todos ○ Abiertos ○ Resueltos │ ← Filtros
├─────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────┐ │
│ │ 🗨️1 👤 Juan · hace 2h │ │
│ │ Verificar si la cota está correcta... │ │
│ └─────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────┐ │
│ │ 🗨️2 👤 María · hace 1d ✅ │ │
│ │ Conflicto con la estructura existente │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
Estados
| Estado | Descripción |
|---|---|
| Minimizado | Muestra solo el encabezado con el conteo de comentarios (48px de alto) |
| Expandido | Muestra filtros y lista desplazable (máximo 50vh) |
Características
- Alternar: Haz clic en el encabezado para expandir/colapsar
- Filtros: Todos / Abiertos / Resueltos (botones de opción)
- Lista de Comentarios: Lista desplazable con marcadores de globo que coinciden con el estilo del lienzo
- Navegación: Haz clic en cualquier comentario para ir a su ubicación (cambio de página para PDF, restauración de cámara para CAD)
- Tiempo real: Se actualiza automáticamente mediante el PubSub existente
Estilo del Marcador
Los comentarios en la lista usan el mismo estilo de marcador de globo que el lienzo:
┌───────┐
│ 1 │ ← Número (orden de inserción)
└───┬───┘
▽ ← Puntero (cola de burbuja de chat)
- Fondo: Índigo (#6366f1) para abiertos, Verde (#22c55e) para resueltos
- Insignia de respuestas: Naranja (#f97316) en la esquina superior derecha
- Sombra proyectada: Para visibilidad
Detalles Técnicos
Nuevo Componente: SutramWeb.ProjectLive.Components.CommentsPanel
Props:
comments- Lista de structs DocumentCommentexpanded- Booleano (estado del panel)filter- Atom (:all, :open, :resolved)
Eventos (enviados al padre vía send/2):
{:comments_panel, :toggle}- Alternar expandir/colapsar{:comments_panel, :filter, filter}- Cambiar filtro{:comments_panel, :go_to_comment, comment_id}- Navegar al comentario
Gestión de Estado (en Content LiveView):
comments_panel_expanded- Booleanocomments_panel_filter- Atom
Modo de Comentarios en el Editor Markdown (v0.65.0)
El editor markdown incluye un modo dedicado de comentarios que permite a los usuarios ver y reposicionar marcadores de comentarios mientras editan. Esto resuelve el problema donde los marcadores se desalinean después de editar contenido markdown (ya que markdown usa coordenadas absolutas de píxeles).
Dos Modos
| Modo | Descripción |
|---|---|
| Edición (predeterminado) | Editor WYSIWYG normal de Milkdown, sin marcadores visibles |
| Comentarios | Vista previa renderizada con capa de comentarios y panel lateral |
Diseño (Modo de Comentarios)
┌─────────────────────────────────────────────────────────────────┐
│ ← Atrás [Edición] [Comentarios 📍3] Subir │ Encab │
├─────────────────────────────────┬───────────────────────────────┤
│ │ 💬 3 comentarios │
│ Vista Previa Markdown │ ───────────────────────────── │
│ Renderizada (solo lectura) │ ◉ Todos ○ Abiertos ○ Resueltos│
│ │ ───────────────────────────── │
│ 📍 Marcador 1 │ [1] Juan · hace 2h │
│ │ Revisar esta sección │
│ 📍 Marcador 2 │ [Ajustar] [Ir a] │
│ │ ───────────────────────────── │
│ │ [2] María · hace 1d ✅ │
│ │ Corregido │
└─────────────────────────────────┴───────────────────────────────┘
Ajuste Manual de Posición
Cuando el contenido markdown se edita, los marcadores de comentarios pueden desalinearse porque usan coordenadas absolutas de píxeles. Los usuarios pueden reposicionar marcadores manualmente:
- Ingresa al modo de Comentarios en el editor markdown
- Encuentra el comentario desalineado en el panel lateral
- Haz clic en el botón "Ajustar posición"
- El cursor cambia a cruz, el panel lateral muestra "Haz clic en la nueva posición"
- Haz clic en la ubicación correcta en la vista previa
- El marcador se mueve a la nueva posición y se guarda
Restricción Móvil
El modo de Comentarios no está disponible en dispositivos móviles (viewport < 768px). Un tooltip en el botón deshabilitado explica: "Usa una computadora de escritorio para gestionar comentarios".
Detalles Técnicos
Nuevos Assigns (en markdown_editor.ex):
editor_mode- Atom (:editing|:comments)comments- Lista de structs DocumentCommentcomments_panel_expanded- Booleanocomments_panel_filter- Atom (:all|:open|:resolved)repositioning_comment_id- UUID o nil
Nuevos Eventos:
toggle_editor_mode- Cambiar entre modos de edición y comentariosstart_reposition- Entrar en modo de reposicionamiento para un comentario específicocancel_reposition- Salir del modo de reposicionamientoupdate_marker_position- Guardar nueva posición del clic de reposicionamientogo_to_comment- Navegar/desplazar a la ubicación del comentario
Cambios en JavaScript (comment_overlay.js):
- Se agregó estado
repositioningCommentId - Se agregaron manejadores de eventos
enter_reposition_mode/exit_reposition_mode - Se modificó el manejador de clic para detectar el modo de reposicionamiento y enviar
update_marker_position - Se actualizaron los selectores de elementos markdown para funcionar tanto en el visor como en el editor
Versión del Documento: 1.3 Última Actualización: 29 de diciembre de 2025 Autor: Equipo de Desarrollo de Sutram