Normalizar reticências e três pontos
Os estilos de reticências costumam se misturar quando o texto passa por editores, sistemas de conteúdo, documentos copiados e ferramentas de publicação.
Executar grátis
Esta capacidade padroniza essas marcas de omissão sem alterar nenhum outro sinal. Você escolhe se cada sequência de três pontos consecutivos deve virar um único caractere Unicode ou se cada caractere de reticências deve ser expandido para três pontos comuns. A conversão é determinística, preserva exatamente as palavras e os espaços ao redor e informa quantas substituições foram feitas. Assim, ela atende tanto a uma revisão pontual quanto a fluxos repetíveis de processamento de texto.
Escolha o estilo exigido pelo destino
As reticências podem ser representadas de duas formas comuns: três caracteres de ponto, <code>...</code>, ou um único caractere Unicode, <code>…</code>. Embora pareçam semelhantes em um parágrafo, esses dados são diferentes. Ferramentas de busca, limites de caracteres, regras tipográficas e validadores podem tratá-los de maneiras distintas. Selecione <code>periods_to_ellipsis</code> quando uma publicação, um design system ou um manual de estilo exigir o caractere Unicode compacto. Selecione <code>ellipsis_to_periods</code> quando um formato de texto simples, sistema legado, convenção de código-fonte ou conjunto restrito de caracteres exigir pontuação ASCII. O primeiro modo é o padrão. A direção selecionada vale para todo o texto, inclusive para várias ocorrências na mesma linha ou em linhas diferentes. Palavras, espaços, aspas e toda pontuação que não corresponda à forma solicitada permanecem inalterados. Portanto, esta é uma operação objetiva e previsível, e não uma revisão editorial ampla.
Entenda exatamente o que é substituído
No modo <code>periods_to_ellipsis</code>, cada sequência não sobreposta de três pontos consecutivos encontrada na varredura vira um caractere de reticências. Uma série de seis pontos, portanto, vira dois caracteres, enquanto um ou dois pontos ficam intactos. No modo <code>ellipsis_to_periods</code>, cada caractere Unicode de reticências vira três pontos. A ferramenta não tenta deduzir se a pontuação indica hesitação, trecho omitido, pontilhado ou digitação acidental; ela executa a conversão solicitada. Também não inclui nem remove espaços, pois as convenções variam entre estilos e idiomas e esta capacidade apenas uniformiza a representação. A resposta traz o texto convertido, o nome canônico do modo e a contagem de substituições. Uma contagem igual a zero é válida e indica que o texto de origem não continha a forma procurada. Você pode usar esse número para identificar registros alterados sem comparar documentos inteiros.
Use a padronização com segurança
Para um trecho isolado, cole o conteúdo, escolha a direção e confira o resultado antes de inseri-lo no layout. Em processos automatizados, execute a mesma operação logo após a importação ou antes da exportação, para que todo documento passe por uma etapa clara de padronização. Aplicar um estilo declarado em um ponto constante evita que editores e renderizadores voltem a misturar representações. A transformação é idempotente em uma direção fixa: repetir <code>periods_to_ellipsis</code> sobre o próprio resultado não gera outras mudanças, e o mesmo vale para <code>ellipsis_to_periods</code>. Se você inverter a direção depois, todas as marcas correspondentes serão alteradas, e não apenas as produzidas anteriormente, pois texto simples não registra procedência. O algoritmo não usa rede, modelo, aleatoriedade nem relógio; entradas e modos iguais sempre geram saídas iguais. O navegador é útil para ajustes manuais, enquanto cada solicitação de API custa US$ 0,002 e atende a publicação, migração, correção e ingestão em lote.
Casos de uso
Aplicar um manual de estilo
Converta sequências misturadas de três pontos no caractere próprio antes da diagramação e da revisão.
Preparar texto somente ASCII
Expanda caracteres Unicode em pontos comuns antes de enviar o conteúdo a um sistema legado ou restrito.
Padronizar conteúdo importado
Aplique uma regra previsível a registros vindos de editores, documentos, feeds e gestores de conteúdo.
Perguntas frequentes
Quanto custa esta capacidade?
Cada solicitação de API custa US$ 0,002. Você também pode usar a versão para navegador nesta página.
Ela muda os espaços ao redor das reticências?
Não. Somente os caracteres selecionados mudam; os espaços ao redor são preservados exatamente.
O que acontece com seis pontos consecutivos?
No modo de pontos para reticências, a varredura não sobreposta os converte em dois caracteres.
Ela altera pontos isolados ou números decimais?
Um ou dois pontos não mudam. Na direção padrão, somente uma sequência de três pontos é transformada.
É seguro executar a mesma conversão duas vezes?
Sim. A saída padronizada já não contém o padrão de origem desse modo; por isso, a segunda execução faz zero substituições.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/normalize-ellipsis \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Wait... is that all?"}'const res = await fetch("https://api.kit.forhosting.com/str/normalize-ellipsis", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Wait... is that all?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/normalize-ellipsis",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Wait... is that all?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/normalize-ellipsis", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Wait... is that all?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Wait... is that all?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/normalize-ellipsis", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Wait... is that all?"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.normalize_ellipsis",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |