
Tutorial de Cross-Post de DEV.to para Medium com Verificação de Formatação
Publicar um tutorial técnico em múltiplas plataformas é fácil de começar e surpreendentemente fácil de errar. Uma importação de URL pode deixar blocos de código divididos, cabeçalhos como texto simples ou metadados incompletos. O resultado pode parecer aceitável à primeira vista, enquanto prejudica as partes que os leitores mais precisam.
Este tutorial mostra um fluxo revisável de DEV.to para Medium usando publish-agents, um projeto open-source em TypeScript de Fernando Paladini. Seu pacote medium-publisher importa um artigo público através do fluxo de importação do Medium, verifica o editor em relação ao Markdown de origem e pode corrigir um pequeno conjunto de problemas comuns de formatação.
TL;DR
Confira o lançamento estável v0.2.3, construa o pacote @paladini/medium-publisher-mcp, faça login uma vez e crie um rascunho no Medium com publish-devto. Mantenha o comportamento padrão do rascunho enquanto você inspeciona o título, blocos de código, cabeçalhos, listas e metadados.
Pré-requisitos
Você precisa de:
- Node.js 20 ou mais recente.
- Um artigo publicado no DEV.to com uma URL pública.
- Uma conta no Medium que possa criar histórias.
- Um terminal que possa executar npm e o passo de instalação do navegador.
O pacote usa automação de navegador Patchright e uma sessão de navegador salva. Ele não usa uma chave de API de escrita do Medium. O projeto documenta mudanças na interface do usuário do Medium como um risco de compatibilidade, então trate a sessão do navegador e o rascunho resultante como um estado revisável em vez de uma garantia não supervisionada.
Instalar a fonte lançada
A versão v0.2.3 do repositório é a referência estável para este guia. Instalar a partir dessa tag mantém os comandos separados de mudanças posteriores na branch padrão.
git clone https://github.com/paladini/publish-agents.git
cd publish-agents
git checkout v0.2.3
npm install
npm run build -w @paladini/medium-publisher-mcp
npm link -w @paladini/medium-publisher-mcp
A construção produz o CLI e o servidor MCP a partir da fonte do pacote. O pacote declara Node.js 20 ou mais recente e usa patchright como sua dependência de automação de navegador. Seu passo pós-instalação pode instalar o navegador Chromium empacotado. Se esse passo foi pulado em seu ambiente, execute o comando de instalação do navegador documentado pelo Patchright antes de continuar.
Criar uma sessão Medium salva
Faça login interativamente uma vez:
medium-publisher login
Então verifique a sessão em forma JSON:
medium-publisher session-check --json
O projeto armazena o estado do navegador em um diretório de dados do sistema operacional por padrão. No Windows, o padrão documentado é %LOCALAPPDATA%\medium-publisher\storageState.json. Você pode substituí-lo com MEDIUM_STATE_PATH ou MEDIUM_PUBLISHER_HOME.
Esta é uma fronteira importante: o estado salvo contém cookies de autenticação. Proteja o diretório como qualquer outro armazenamento de credenciais local, não o comite e não o copie para um artefato CI.
Importar um artigo do DEV.to como um rascunho
Use o comando de um único uso com --draft e --json:
medium-publisher publish-devto `
--url "https://dev.to/your-name/your-tutorial" `
--draft --json
A URL deve apontar para um artigo público. O pacote busca o artigo do DEV.to através de sua API pública, então abre a rota de importação oficial do Medium. A flag --draft é importante porque deixa a decisão final de publicação com você.
O resultado JSON inclui uma URL do Medium e detalhes de metadados, como se o título foi definido, quais tópicos foram selecionados e se uma imagem de destaque foi detectada. Trate essa URL como um alvo de inspeção de rascunho até que você tenha verificado o editor real.
Verificar o editor importado
Abra a URL do rascunho retornada no navegador, ou use o comando de extração estruturada do pacote:
medium-publisher extract `
--url "https://medium.com/p/your-draft/edit" `
--json
O fluxo de extração é útil porque relata o esboço do editor e as flags de formatação. Verifique pelo menos estes pontos manualmente:
- O título corresponde à fonte do DEV.to.
- Os cabeçalhos são renderizados como cabeçalhos, não como texto Markdown literal.
- Cada exemplo de código cercado é um bloco de código com a linguagem esperada.
- Listas, links e parágrafos permanecem na ordem esperada.
- O subtítulo e os tópicos descrevem o artigo sem inventar afirmações.
- Nenhum segredo ou URL privada foi importada acidentalmente.
O pacote inclui uma revisão de origem que compara o conteúdo do editor com o Markdown do DEV.to. Também possui uma verificação de segurança para valores semelhantes a segredos e links curtos inesperados. Essas verificações reduzem o risco, mas não podem substituir a leitura do rascunho no editor do Medium.
Corrigir falhas comuns de formatação
Se a extração identificar um problema, crie um arquivo de ações e aplique apenas as correções direcionadas. Por exemplo:
[
{ "type": "removeEmptyCodeBlocks" },
{ "type":O cross-posting é uma prática comum entre criadores de conteúdo, e garantir que a formatação esteja correta é crucial para a experiência do usuário. Este tutorial pode ajudar empresas e profissionais a otimizar a publicação de conteúdos técnicos em múltiplas plataformas.
Noticias relacionadas

Restaure Configurações Sanitizadas do MCP Sem Comprometer Segredos
Este tutorial ensina como restaurar configurações do cliente MCP de forma segura, evitando a exposição de chaves de API e outros segredos em repositórios públicos.

Construa uma Lista de Compras Inteligente que Encontra Preços Reais com BuyWhere MCP
Aprenda a criar uma lista de compras que encontra os melhores preços e disponibilidade de produtos usando o BuyWhere MCP. Um tutorial prático para desenvolvedores de IA.

Construa um bot do Telegram que compara preços entre Shopee, Lazada e Amazon
Aprenda a criar um bot do Telegram que compara preços em Shopee, Lazada e Amazon. O bot busca o menor preço e fornece um link de afiliado para compra. O tutorial utiliza Python e o servidor MCP BuyWhere.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.