Skip to main content

Importação / Exportação com Pandoc

O Overleaf pode converter documentos de e para LaTeX usando o Pandoc. A conversão é executada dentro de um contêiner Docker isolado (sandbox) gerenciado pelo serviço clsi, por isso o recurso fica desativado por padrão e precisa ser ativado com algumas variáveis de ambiente.

O que ele faz


Variáveis de ambiente

Há duas variáveis que importam, e uma parecida que não importa. 1. ENABLE_PANDOC_CONVERSIONS — o interruptor principal
  • Tipo: booleano (true ativa; qualquer outro valor desativa).
  • Deve ser definida TANTO no serviço web QUANTO no clsi. Eles são processos separados com configurações separadas:
    • O web a lê em enablePandocConversions (services/web/config/settings.defaults.js). Ela controla as rotas de importação, as rotas de exportação e a flag ol-ExposedSettings.enablePandocConversions, que informa ao frontend se deve exibir a UI de Importação/Exportação.
    • O clsi a lê em enablePandocConversions (services/clsi/config/settings.defaults.cjs). Ela controla os endpoints que executam o Pandoc.
  • Se estiver ativada no web, mas não no clsi (ou vice-versa), a UI aparecerá, mas a conversão falhará — mantenha-as sincronizadas.
2. PANDOC_IMAGE — a imagem de contêiner que o clsi executa para converter

Pré-requisitos

Como as conversões são executadas como contêineres Docker iniciados pelo clsi:
  1. O clsi deve ser executado em modo sandbox com acesso ao Docker. Na stack de desenvolvimento, o clsi já tem SANDBOXED_COMPILES=true e o socket do Docker do host (/var/run/docker.sock) montado.
  2. A PANDOC_IMAGE deve estar presente nesse host Docker (baixada ou construída localmente) antes da primeira conversão.

Configuração rápida

A stack de desenvolvimento (develop/dev.env) já vem com:
Como a imagem oficial é privada, construa a imagem incluída uma vez antes de usar o recurso:
Em seguida, (re)inicie a stack para que o clsi e o web carreguem as variáveis.

Construindo a imagem do Pandoc

Uma imagem padrão do Pandoc funciona porque o clsi invoca o Pandoc de forma genérica (sem templates/filtros personalizados). Ela só precisa de três itens essenciais de runtime, todos tratados por develop/pandoc/Dockerfile:
Construa-a e aplique uma tag que corresponda a PANDOC_IMAGE:
Em produção, fixe pandoc/core em uma versão específica em vez de latest para obter builds reproduzíveis, e defina PANDOC_IMAGE como o caminho do seu registro.

Solução de problemas

Última modificação em 5 de outubro de 2026