diff --git a/server.js b/server.js index b6fa79a..f1a9e9d 100644 --- a/server.js +++ b/server.js @@ -23,11 +23,13 @@ const inicioFormatado = `${INICIO.toLocaleDateString('pt-BR', fusoBrasilia)} às })} (horário de Brasília)`; // A página é montada uma vez só: nada nela muda enquanto o processo vive. +// O valor entra por função (`() => valor`): com uma string, o replace trataria +// `$&`, `$'` e `$$` da mensagem como padrões especiais e estragaria a página. const paginaInicial = lerPagina('index.html') - .replace('{{RUNTIME}}', escaparHtml(`Express ${pacote.dependencies.express} · Node.js ${process.versions.node}`)) - .replace('{{INICIO_ISO}}', INICIO.toISOString()) - .replace('{{INICIO}}', escaparHtml(inicioFormatado)) - .replace('{{MENSAGEM}}', escaparHtml(MENSAGEM)); + .replace('{{RUNTIME}}', () => escaparHtml(`Express ${pacote.dependencies.express} · Node.js ${process.versions.node}`)) + .replace('{{INICIO_ISO}}', () => INICIO.toISOString()) + .replace('{{INICIO}}', () => escaparHtml(inicioFormatado)) + .replace('{{MENSAGEM}}', () => escaparHtml(MENSAGEM)); const paginaNaoEncontrada = lerPagina('nao-encontrado.html'); // Freio simples contra abuso: no máximo 30 links novos a cada 10 minutos por IP.