Ajouter un préfixe à chaque ligne
Placez la même marque au début de chaque ligne : avec deux barres obliques et une espace comme préfixe, first line, second line et third line deviennent 3 lignes commentées. Un dièse commente un script shell, un signe supérieur cite un e-mail. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- first line second line third line
- Préfixe
- //
- Entrée
- first line second line third line
- Nombre de lignes
- 3
- Lignes
- // first line, // second line, // third line
- Avec préfixe
- // first line // second line // third line
Un outil pour ajouter un préfixe à chaque ligne transforme un collage brut de code, de corps de e-mail, de notes ou de liste de contrôle en un bloc marqué de façon uniforme que vous pouvez déposer dans des tickets, des revues et de la documentation. Saisissez toute chaîne non vide d’une ou plusieurs lignes plus le préfixe souhaité au début de chaque ligne—choix courants : double barre oblique et espace pour les commentaires JavaScript, dièse et espace pour shell ou Python, chevron droit et espace pour les citations style e-mail, ou deux espaces et un tiret pour les listes indentées. L’outil normalise les fins de ligne Windows et Mac classique, découpe à chaque saut de ligne et préfixe chaque segment, y compris les lignes intérieures vides, afin que la forme du document reste stable.
Comment fonctionne le préfixage de chaque ligne
Préfixer les lignes est l’un des plus anciens motifs d’édition en masse en programmation et en rédaction technique : chaque ligne visuelle reçoit le même marqueur initial pour commenter un bloc entier, citer un message ou marquer une liste sans cliquer ligne par ligne dans un éditeur. Cette capacité applique cette règle quotidienne au texte brut plutôt qu’aux documents enrichis ou aux multi-curseurs d’IDE.
D’abord l’entrée est vérifiée : text manquant, valeur non chaîne, ou chaîne vide après suppression des espaces est rejeté pour que les collages vides ne paraissent jamais un succès. Les fins de ligne sont normalisées pour que Windows CRLF, Mac classique CR et Unix LF deviennent une seule forme LF avant le découpage. Le découpeur casse ensuite la chaîne à chaque LF ; chaque segment résultant—y compris les segments vides entre sauts consécutifs—est une ligne et reçoit le même préfixe au début.
Le contenu intérieur de chaque ligne reste inchangé : seul le début est modifié. Lorsque vous avez besoin de numéros séquentiels plutôt que d’un marqueur fixe, utilisez une capacité de numérotation de lignes ; pour retirer les espaces aux bords de ligne, utilisez un outil de trim par ligne. Cette page ne traite que de l’ajout d’une chaîne choisie au début de chaque ligne de texte brut.
Conseils pratiques, limites et quand utiliser cet outil
Utilisez cette capacité lorsque l’intention de recherche est d’ajouter un préfixe à chaque ligne, de préfixer du texte, de commenter un bloc de code ou de citer chaque ligne d’un e-mail.
Collez un extrait de code et définissez prefix en double barre et espace pour le commenter dans une note de revue ; utilisez dièse et espace pour les scripts shell ; utilisez chevron droit et espace pour transformer une réponse collée en citation en bloc ; utilisez deux espaces et un tiret pour transformer des lignes brutes en marqueur de liste imbriquée.
Gardez à l’esprit les fins de ligne finales intentionnelles : un LF final crée un dernier segment vide qui reçoit encore le préfixe, ce qui correspond à la façon dont de nombreux éditeurs traitent les fins de fichier. Les lignes uniques extrêmement longues comptent encore chacune comme une ligne ; l’outil ne coupe pas selon la largeur de caractères. Les sources HTML et Markdown sont préfixées comme chaînes brutes ; retirez le balisage d’abord si vous ne voulez que des lignes de prose visibles.
Cette page n’est ni un numéroteur de lignes séquentiel, ni un trimmer par ligne, ni un moteur rechercher-remplacer, ni un multi-curseur d’IDE complet. Préférez la numérotation de lignes lorsque les relecteurs doivent citer des indices exacts ; préférez le trim par ligne lorsque le problème est des espaces initiaux irréguliers ; préférez cette capacité lorsque chaque ligne a besoin du même marqueur fixe.
Pour enseigner le style de code, préfixez le même extrait deux fois avec des marqueurs différents afin que les apprenants voient comment la syntaxe des commentaires diffère selon les langages tandis que la transformation reste stable.
Cas d’usage
Commenter des blocs de code
Collez un extrait, définissez prefix sur "// " ou "# ", et obtenez un bloc entièrement commenté prêt pour tickets, revues ou notes de désactivation temporaire.
Citer des réponses de e-mail et de chat
Préfixez chaque ligne avec "> " pour transformer un message collé en citation classique style e-mail, utile pour les réponses et la documentation.
Construire des listes marquées ou indentées
Ajoutez " - ", "* " ou un marqueur personnalisé aux lignes brutes afin que listes de contrôle et notes partagent un style de liste cohérent.
Questions fréquentes
Comment les lignes sont-elles définies ?
Après normalisation de CRLF et CR en LF, le texte est découpé à chaque LF. Chaque segment—y compris les vides entre sauts consécutifs—reçoit le même préfixe au début.
Que se passe-t-il en cas d’entrée vide ?
Un prefix manquant ou non chaîne échoue aussi à la validation.
Le préfixe peut-il être vide ?
Oui. Une chaîne prefix vide est autorisée et agit comme no-op après normalisation des fins de ligne. Les préfixes non chaîne ou trop longs (plus de 256 caractères) sont rejetés.
Cela ajoute-t-il des numéros de ligne séquentiels ?
Non. Cela préfixe la même chaîne fixe à chaque ligne. Utilisez un outil de numérotation de lignes lorsque vous avez besoin d’étiquettes style 1., 2., 3.
L’outil de préfixe est-il gratuit ?
L’outil navigateur est gratuit et s’exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/prefix-lines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"first line\nsecond line\nthird line","prefix":"// "}'const res = await fetch("https://api.kit.forhosting.com/str/prefix-lines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "first line\nsecond line\nthird line",
"prefix": "// "
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/prefix-lines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "first line\nsecond line\nthird line",
"prefix": "// "
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/prefix-lines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"first line\\nsecond line\\nthird line","prefix":"// "}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"first line\nsecond line\nthird line","prefix":"// "}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/prefix-lines", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "first line\nsecond line\nthird line",
"prefix": "// "
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.prefix_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 100000 |
max_prefix_chars | 256 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Un texte vide ou composé uniquement d’espaces est rejeté avec une erreur claire invalid_input pour que l’automatisation ne traite jamais un formulaire blanc comme une transformation réussie. Le chemin est une logique de chaînes pure—sans réseau, sans graines aléatoires, sans horloge—ainsi l’exécuteur gratuit du navigateur et l’API prépayée renvoient le même JSON à chaque appel.
Comment fonctionne le préfixage de chaque ligne
Le champ prefix est obligatoire en tant que chaîne et peut être vide si vous ne souhaitez que normaliser les fins de ligne ; les préfixes non chaîne ou trop longs échouent avec invalid_input.
Comment appeler l’API et ce que contient la réponse
La chaîne prefix peut être vide et ne doit pas dépasser deux cent cinquante-six caractères, ce qui couvre les ouvreurs de commentaires multi-caractères, les marqueurs de citation Markdown et les motifs d’indentation courts sans autoriser les abus multi-kilooctets. Préférez envoyer le corps brut du document avec ses vrais sauts de ligne plutôt que de tout joindre en une ligne lorsque vous voulez de vrais préfixes multilignes. Envoyez un corps JSON avec deux champs de chaîne obligatoires : text (alias input, value, string, s, content et body) et prefix (alias pre, head, marker et bullet). La valeur text doit être non vide après suppression des espaces et ne pas dépasser cent mille caractères afin qu’une seule requête n’épuise pas la mémoire du Worker ou du navigateur avec d’énormes collages. En cas de succès la réponse renvoie input comme la chaîne d’origine envoyée, text comme la chaîne de travail nettoyée, prefix comme le marqueur effectif, line_count comme le nombre de segments préfixés, lines comme un tableau ordonné de chaînes de ligne entièrement préfixées, prefixed comme ces lignes jointes avec LF, et message comme un bref résumé en anglais indiquant combien de lignes ont été préfixées et avec quel marqueur. Une validation échouée—text manquant, valeur non chaîne, charge trop grande, contenu vide après nettoyage, prefix manquant ou non chaîne, ou prefix trop long—renvoie invalid_input et n’est jamais facturée. Le tarif est un $0.002 forfaitaire par requête réussie avec unité item. À l’intégration, affirmez sur prefixed ou lines pour la liste complète, sur line_count pour le total, et traitez invalid_input comme une erreur client pour les envois de formulaire vides, non comme un événement de facturation.
Conseils pratiques, limites et quand utiliser cet outil
Les contrôles aller-retour pour les tests sont simples : fournissez trois lignes courtes séparées par LF avec prefix "// " et attendez line_count trois et chaque entrée de lines commençant par ce marqueur ; envoyez délibérément une chaîne vide ou des espaces pour text afin de confirmer invalid_input et le message demandant une chaîne non vide. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui maintient peu coûteuse la validation de formulaires et les tests négatifs de CI.