Envolver cada linha com texto
Cole alpha, beta e gamma em três linhas e receba "alpha", "beta" e "gamma", já que por padrão cada linha fica entre aspas duplas retas. Dá para usar crases, tags HTML, marcadores ou parênteses, com até 64 caracteres de cada lado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- alpha beta gamma
- Entrada
- alpha beta gamma
- Texto
- "alpha" "beta" "gamma"
- Prefixo
- "
- Sufixo
- "
Envolver cada linha de uma colagem com o mesmo prefixo e o mesmo sufixo é trabalho do dia a dia para quem coloca aspas em logs, marca itens de lista, monta linhas delimitadas ou transforma uma coluna de palavras em valores entre aspas. Esta ferramenta recebe qualquer bloco de texto não vazio, divide nas quebras de linha normalizadas e coloca o prefixo escolhido antes de cada linha e o sufixo depois. Por padrão envolve cada linha com aspas duplas retas, de modo que uma lista vira uma lista entre aspas sem configuração extra. Você pode trocar para crases, tags HTML, marcadores de markdown, parênteses ou qualquer string curta de que precise.
O que significa envolver cada linha e quando isso ajuda
A maioria dos editores consegue envolver uma seleção inteira com um único par de aspas, mas isso deixa intactas as quebras internas e não coloca um prefixo e um sufixo em cada linha. A intenção de busca por envolver cada linha com texto é outra: você já tem um item por linha e quer a mesma decoração em cada item.
Depois que a entrada é verificada, as quebras são normalizadas do CRLF do Windows e do CR clássico do Mac para uma forma LF única, a string é dividida em cada LF e cada segmento resultante é concatenado como prefixo mais linha original mais sufixo. Em vez disso você pode enviar um marcador de markdown como prefixo e um sufixo vazio, ou tags HTML de abertura e fechamento, ou um parêntese esquerdo e uma vírgula de fechamento para uma lista de valores.
Os caracteres interiores de uma linha nunca mudam; só as bordas recebem os afixos. Linhas em branco ainda existem depois do split. Por padrão elas viram prefixo mais sufixo, o que é correto quando você quer cada linha visual decorada.
O desenho cobre tarefas cotidianas como colocar aspas em uma coluna, envolver linhas de log para um ticket ou transformar uma checklist em marcação com tags, sem abrir um localizar e substituir de IDE completo.
Dicas práticas, limites e buscas relacionadas
Use esta capacidade quando a intenção de busca for envolver cada linha com texto, adicionar prefixo e sufixo a cada linha, colocar aspas em cada linha online ou envolver linhas com tags HTML. Cole uma coluna de nomes e mantenha as aspas padrão para produzir uma lista entre aspas. Linhas únicas extremamente longas ainda contam como uma linha cada; a ferramenta não envolve por largura de caracteres.
Fonte HTML e Markdown são tratadas como strings brutas; remova as tags primeiro se quiser só linhas de prosa visível. Esta página não é um envelopamento de documento inteiro que só toca o primeiro e o último caractere da colagem, não é um numerador de linhas, não é um aparador por linha e não é um reescritor com IA.
Prefira adicionar números de linha quando revisores precisarem citar índices; prefira aparar as bordas das linhas quando só precisar remover espaços; prefira esta capacidade quando pessoas já separaram itens por linha e você precisa da mesma decoração em cada um. Ao ensinar alunos ou integrar revisores, mostre a mesma amostra com aspas e depois com tags, para que vejam que só as bordas mudam e que o corpo original da linha fica intacto.
Casos de uso
Decorar trechos de log para tickets
Envolva cada linha de log com um marcador escolhido ou um fragmento de cerca de código para que o paste de suporte conserve o alinhamento por linha e seja fácil de citar em um relatório de erro.
Perguntas frequentes
O que o envelopamento de cada linha faz?
Os caracteres interiores não mudam. O padrão coloca uma aspa dupla reta dos dois lados de cada linha.
Dá para adicionar só um prefixo ou só um sufixo?
Sim. Passe uma string vazia no lado que você não quer.
O que acontece se o campo de texto vier em branco?
Forneça uma string não vazia com pelo menos um caractere que não seja espaço.
A ferramenta de envolver cada linha é grátis?
A ferramenta do navegador é grátis e roda no dispositivo.
O que acontece com as linhas vazias?
Por padrão elas também são envolvidas, então uma linha vazia vira um par de aspas. Se preferir manter os espaços entre parágrafos, ative a opção que deixa as linhas vazias sem envolver.
Ferramentas relacionadas
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/wrap-each-line \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nbeta\ngamma"}'const res = await fetch("https://api.kit.forhosting.com/str/wrap-each-line", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nbeta\ngamma"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/wrap-each-line",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nbeta\ngamma"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/wrap-each-line", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nbeta\\ngamma"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nbeta\ngamma"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/wrap-each-line", 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": "alpha\nbeta\ngamma"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.wrap_each_line",
"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.
Limites
max_chars | 100000 |
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. |
Notas técnicas
Entrada vazia ou só de espaços é rejeitada com um erro invalid_input claro para que um formulário em branco nunca pareça um envelopamento bem-sucedido. O caminho é lógica de string pura e determinística—sem rede, sem sementes aleatórias, sem dependência de relógio—assim o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON sempre que você a chama.
O que significa envolver cada linha e quando isso ajuda
Os padrões usam uma aspa dupla reta dos dois lados, de modo que três nomes viram três nomes entre aspas, prontos para colar em JSON, CSV ou um arquivo de configuração. Quando skip_empty é true, uma linha de comprimento zero permanece vazia para que os vãos de parágrafo sobrevivam enquanto as linhas com conteúdo são envolvidas. Entrada inteira vazia ou só de espaços é erro duro: não há documento envolvido significativo a devolver, e quem chama deve tratar isso como invalid_input e não como sucesso de zero linhas.
Como chamar a API e o que a resposta contém
Quando você passa uma string vazia explícita de um lado, esse lado permanece vazio para que possa prefixar só ou sufixar só. Se os dois lados resultarem strings vazias, a chamada é rejeitada, porque envolver com nada não é um envelopamento. Prefira enviar o corpo multilinha bruto em vez de unir tudo de antemão quando quiser semântica real por linha. Envie um corpo JSON com um campo string obrigatório text (aliases input, value, string, s, content e body). Inclua de forma opcional prefix (aliases pre e left) e suffix (aliases post e right) como strings de no máximo sessenta e quatro caracteres cada, e skip_empty (aliases skip_blank, ignore_empty e skip_blanks) como boolean. Quando prefix ou suffix é omitido, cada um assume por padrão uma aspa dupla reta. O valor de text deve ser não vazio após o trim geral de espaços e não deve exceder cem mil caracteres, para que uma única requisição não esgote a memória do Worker ou do navegador com pastes enormes. Em sucesso a resposta ecoa input como a string original enviada, text como o resultado totalmente envolvido unido com LF, prefix e suffix como os afixos efetivos, skip_empty como o flag efetivo, line_count como o número de segmentos após o split, wrapped_count como quantos desses segmentos de fato receberam os afixos, lines como um array ordenado das strings envolvidas, e message como um resumo curto em inglês. Validação falha—text ausente, valor que não é string, payload grande demais, conteúdo vazio após o trim geral, afixo que não é string ou é grande demais, ambos os afixos vazios ou um skip_empty que não é boolean—retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item. Ao integrar, asserte em text ou lines para o conteúdo envolvido, em wrapped_count quando skip_empty entra em jogo, e trate invalid_input como bug do cliente em envios de formulário em branco e não como evento de cobrança.
Dicas práticas, limites e buscas relacionadas
Defina prefix como um sinal de maior que e um espaço com suffix vazio para transformar notas em uma citação de bloco de markdown. Defina prefix como uma tag de item de lista de abertura e suffix como a tag de fechamento correspondente para montar linhas de marcação. Checagens de ida e volta para testes são fáceis: envie três linhas curtas e espere três linhas entre aspas com line_count três e wrapped_count três; envie uma linha em branco entre duas palavras com skip_empty true e espere que a linha do meio permaneça vazia; envie de propósito string vazia ou só espaços para confirmar invalid_input e a mensagem que pede uma string não vazia; envie prefix vazio e suffix vazio juntos para confirmar a rejeição dos dois vazios. Lembre-se das quebras finais intencionais: um LF final cria um último segmento vazio que é envolvido a menos que skip_empty seja true. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém barata a validação de formulários e testes negativos de CI.
Casos de integração
Colocar aspas em uma coluna para JSON, CSV ou SQL
Cole um valor por linha e envolva cada linha com aspas para que a lista fique pronta para um arquivo de configuração, uma importação de planilha ou uma lista IN sem editar à mão cada linha.
Marcar linhas como HTML ou markdown
Transforme uma checklist em tags de item de lista, ou anteponha às notas um marcador de citação de bloco, deixando vazios os separadores em branco quando skip_empty estiver ligado.
Perguntas técnicas
Como as linhas vazias são tratadas?
Por padrão uma linha vazia vira prefix mais suffix. Defina skip_empty como true para deixar vazias as linhas de comprimento zero e manter os separadores em branco.