Novedades
Notas de versión de acp2md, de más reciente a más antigua. El comportamiento de conversión proviene del motor ADF compartido de Climakers, así que la mayoría de los cambios de salida se aplican también a acs2md.
Lo último
Se respeta Retry-After
Cuando Confluence responde a una petición limitada con 429 o 503 e indica un retardo, el cliente espera ahora exactamente ese tiempo en lugar de recurrir a una planificación adivinada localmente. El servidor sabe cuánto dura su ventana; el cliente no.
Un retardo superior a 60 segundos se muestra en vez de esperarse, así que un comando nunca parece colgado, y la espera es interrumpible.
Los valores por defecto del backoff cambiaron, y actualizar no llega a una
instalación existente. Subieron de 10ms/100ms a 500ms/30s, pero un
archivo de configuración materializa todos los valores por defecto al crearse
y la configuración gana a los valores por defecto. Una instalación antigua
conserva un presupuesto total de 70 ms repartido en tres intentos, incapaz de
sobrevivir a una ventana real de limitación. Ejecuta acp2md doctor para
comprobarlo y consulta
Reintentos y límite de peticiones.
Las imágenes se pueden escribir como archivos sidecar
--image-sidecars guarda cada imagen en attachments/<page-id>/ junto al Markdown y la enlaza de forma relativa, en lugar de incrustar una URI de datos en base64. La exportación sigue siendo autónoma en ambos casos: lo que cambia es la longitud de línea.
En una página real: 1.440.451 B y una línea de 244.311 caracteres en base64, frente a 12.100 B y 379 caracteres con sidecars. En un espacio completo además se deduplica: una imagen reutilizada en diez páginas se guarda una sola vez.
--obsidian lo activa, porque el base64 era lo último de ese preajuste que no se renderizaba en Obsidian.
Salida para Obsidian
Un preajuste completo — callouts, anclajes de encabezado que Obsidian resuelve y archivos sidecar de imagen — además de --wikilinks, --inline-tags, --panel-style y --media-dimensions. Consulta Bóvedas de Obsidian.
Cada comando informa de cuánto ha tardado
⏱️ Converted in 559msLa cifra cubre el comando completo, incluidas las llamadas a la API y las descargas de imágenes. Se imprime en stderr, nunca en stdout, para que acp2md page convert by-id 123 > page.md y los pipelines sigan limpios.
Un segundo Ctrl+C fuerza la salida
La primera interrupción cancela de forma limpia y deja que se repliegue el trabajo en vuelo. Antes, cualquier Ctrl+C adicional se descartaba y una ejecución que parecía atascada no se podía detener.
Correcciones
--debugno producía salida alguna. Fijaba el nivel de log pero dejaba el destino en su valor por defecto, que lo descarta todo. Ahora escribe en stderr salvo que--log-fileindique otra cosa.- Un
log.level,log.formatolog.fileinválido bloqueaba todos los comandos, incluidos los comandosconfigque lo reparan. Ahora recurren a unos ajustes de log que funcionan durante esa ejecución e indican qué clave cambiar. - Una opción global colocada antes de un comando exento hacía que este exigiera licencia o validara la configuración.
acp2md --log-file x.log doctortomaba--log-filecomo nombre de comando, así quedoctor— el comando que se ejecuta para diagnosticar problemas de licencia — se negaba a arrancar en una máquina sin licencia. - Un
http.client.proxyinválido ahora es un error, no un aviso seguido de continuar. Enviar el tráfico directo en silencio cuando se pidió enrutarlo es, en una red corporativa, motivo para detenerse.
v1.0.5
Esta versión cambió la salida Markdown por defecto en las páginas que
contienen paneles y para quien use --include-metadata. Las dos acciones de
abajo no hacen nada si nunca escribiste el ajuste correspondiente.
Acción: revisa image.max_size_bytes
El valor por defecto bajó a 2 MB, pero una configuración escrita antes de esta versión casi con seguridad fija el antiguo 10485760, lo bastante permisivo como para incrustar un fondo de página y producir un archivo que ningún editor maquetará. La configuración gana a los valores por defecto, así que sigue imponiéndose:
acp2md config get image.max_size_bytes # 10485760 significa que el valor antiguo está fijado
acp2md config set image.max_size_bytes 2097152acs2md lee su propia configuración, así que ejecuta el mismo par allí si lo usas.
Acción: --resolve-users y --link-mentions ahora vienen activados
El front matter lleva nombres visibles y las menciones enlazan a los perfiles de las personas. Cuando una exportación se publica fuera de la organización, --resolve-users=false conserva los IDs de cuenta opacos.
Los paneles se renderizan como alerts de GitHub
> [!NOTE], > [!TIP], > [!WARNING] y > [!CAUTION] sustituyen a la cita con emoji anterior. Los alerts se renderizan tanto en GitHub como en Obsidian. Los tipos de panel sin equivalente conservan la forma con emoji. --panel-style=emoji restaura la salida antigua.
El front matter es YAML válido
--include-metadata emite ahora YAML determinista y correctamente entrecomillado, que Obsidian lee como Properties y que Jekyll, Hugo y Pandoc interpretan:
| Antes | Ahora |
|---|---|
Title, AuthorID, CreatedAt, ID, LastOwnerID, OwnerID, ParentID, ParentType, Position, SpaceID, Status, SubType, VersionAuthorID, VersionCreatedAt, VersionMessage, VersionMinorEdit, VersionNumber | title, tags, author, created, updated, source, space, status, version, id, parent_id, owner_id |
Las fechas son YYYY-MM-DD, tags procede de las labels de Confluence de la página, source es la URL de navegador y los campos vacíos se omiten. Los campos eliminados eran contabilidad interna de Confluence que ningún consumidor de Markdown usaba.
Las labels se recuperan automáticamente
Con el front matter activado, tags se rellena sin pasar --include-labels. En page convert esto viaja con la petición de página existente, sin coste adicional.
Los enlaces de encabezado se resuelven en el renderizador para el que exportas
La tabla de contenidos emitía anclajes de tipo slug al estilo de GitHub sin importar el destino. --panel-style=obsidian (y por tanto --obsidian) emite ahora anclajes que Obsidian resuelve.
Consulta también
- Convertir páginas — la referencia completa de opciones
- Bóvedas de Obsidian — la ruta de exportación a bóveda
- Configuración — reintentos, proxy y credenciales