Compter les paragraphes
Comptez les paragraphes d'un texte grâce à ses lignes vides : trois courts paragraphes sur alpha, beta et gamma donnent un total de 3. Des lignes simplement repliées, sans ligne vide entre elles, restent un seul paragraphe. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Un compteur de paragraphes transforme une prose libre en un entier fiable pour les éditeurs, les pipelines CMS et les contrôles de devoirs. Collez toute chaîne non vide ; l’outil détecte les coupures par lignes vides—une ou plusieurs lignes vides ou uniquement d’espaces entre les blocs—et renvoie le nombre de paragraphes non vides restants après exclusion des régions purement blanches. Les sauts de ligne simples à l’intérieur d’un bloc restent dans le même paragraphe, de sorte que le retour forcé d’un e-mail ou d’un chat n’enfle pas le total.
Comment fonctionne le comptage de paragraphes par lignes vides
En texte brut, un paragraphe est, par convention, un bloc de contenu non vide séparé du suivant par au moins une ligne vide. Ce compteur suit cette définition courante plutôt que de deviner les limites de phrases ou les balises HTML. D’abord l’entrée est vérifiée : texte manquant, valeur non chaîne, ou chaîne vide après suppression des espaces est rejetée.
Les sauts de ligne sont normalisés pour que CRLF Windows, CR Mac ancien et LF Unix deviennent une seule forme LF avant le découpage. Le séparateur cherche une ou plusieurs lignes consécutives vides ou ne contenant que des espaces ou tabulations ; ces suites sont les coupures. Chaque bloc restant est rogné de ses bords blancs extérieurs ; s’il reste quelque chose d’autre que des espaces, il compte pour un paragraphe.
Les lignes vides en tête, en queue et le double ou triple espacement entre blocs ne créent jamais de paragraphes vides, ainsi un document qui commence par deux lignes vides commence toujours au premier vrai bloc. Un long bloc avec seulement des retours forcés (nouvelle ligne sans ligne vide) est un seul paragraphe même s’il s’étend sur de nombreuses lignes visuelles. Cela correspond à la façon dont la plupart des guides de style et éditeurs Markdown traitent la prose lorsque les auteurs séparent les idées par une ligne vide.
Si vous avez besoin de comptes de mots ou de phrases, utilisez des outils dédiés ; cette page ne traite que les totaux de paragraphes par ligne vide.
Conseils pratiques, limites et quand utiliser cet outil
Utilisez cette capacité lorsque l’intention de recherche est compter les paragraphes, compteur de paragraphes ou total de paragraphes par ligne vide en ligne. Collez un brouillon de dissertation, convertissez une fois et montrez aux étudiants ou éditeurs le total de paragraphes à côté d’un objectif de longueur.
Gardez à l’esprit les retours forcés à simple interligne : les lignes jointes seulement par une nouvelle ligne restent un paragraphe, ce qui est correct pour le texte brut reflué et faux seulement si vous vouliez que chaque ligne visuelle soit son propre paragraphe—dans ce cas insérez d’abord des lignes vides ou utilisez un compteur de lignes. La source HTML et Markdown avec balises compte encore les lignes vides dans la chaîne brute ; retirez le balisage d’abord si vous voulez uniquement des blocs de prose.
Cette page n’est pas un compteur de phrases, ni de mots, ni de pages PDF ou de statistiques Word, ni un segmentateur NLP de sujets qui invente des coupures sans lignes vides. Préférez un compteur de mots ou de caractères lorsque vous avez besoin de ces métriques ; préférez cette capacité lorsque des humains ont déjà séparé les idées par des lignes vides et que vous n’avez besoin que du total.
Pour enseigner la structure d’écriture, comparez le même texte avec et sans lignes vides afin que les apprenants voient comment l’espacement définit les limites de paragraphe en texte brut.
Cas d’usage
Contrôles de longueur pour dissertations et devoirs
Les étudiants collent un brouillon ; enseignants ou scripts LMS confirment le total de paragraphes par rapport aux règles du devoir avant l’envoi.
Questions fréquentes
Comment l’outil décide-t-il où se termine un paragraphe ?
Il découpe sur les lignes vides : une ou plusieurs lignes consécutives vides ou uniquement d’espaces après normalisation des sauts. Les sauts simples à l’intérieur d’un bloc restent dans le même paragraphe.
Plusieurs lignes vides créent-elles des paragraphes vides ?
Non. Les lignes vides en tête, en fin et répétées sont ignorées pour le comptage ; seuls les blocs de contenu non vides augmentent le total.
Le compteur de paragraphes est-il gratuit ?
L’outil navigateur est gratuit et s’exécute en local.
Un paragraphe coupé par des retours à la ligne compte-t-il pour plusieurs ?
Non. Un simple retour à la ligne à l'intérieur d'un bloc le garde en un seul paragraphe : un texte replié par une messagerie ne gonfle donc pas le total. Seule une ligne vide ouvre un nouveau paragraphe.
Une ligne faite seulement d'espaces compte-t-elle comme une ligne vide ?
Oui. Une ligne qui ne contient que des espaces ou des tabulations sert de séparation, exactement comme une ligne vide, si bien que des espaces invisibles oubliés dans un brouillon ne fusionnent pas deux paragraphes.
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/paragraph-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"First paragraph.\n\nSecond paragraph."}'const res = await fetch("https://api.kit.forhosting.com/str/paragraph-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "First paragraph.\n\nSecond paragraph."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/paragraph-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "First paragraph.\n\nSecond paragraph."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/paragraph-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"First paragraph.\\n\\nSecond paragraph."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"First paragraph.\n\nSecond paragraph."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/paragraph-count", 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 paragraph.\n\nSecond paragraph."
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.paragraph_count",
"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 |
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
Une entrée vide ou uniquement d’espaces est rejetée avec l’erreur claire invalid_input afin que l’automatisation ne traite jamais un collage blanc comme un succès à zéro. Rédacteurs, enseignants, scripts de QA et API de contenu ont besoin de la même règle déterministe de ligne vide sans ouvrir un traitement de texte complet. Le chemin est une pure logique de chaînes—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 appeler l’API et ce que contient la réponse
Préférez envoyer le corps brut du document plutôt que de collapser d’avance les sauts de ligne si vous voulez la sémantique réelle de ligne vide ; tout réduire en une ligne forcerait un seul paragraphe. Les pipelines qui traitent des dissertations, notes de version ou e-mails multi-blocs peuvent brancher selon le count avant une analyse ultérieure. Envoyez un corps JSON avec le champ chaîne obligatoire text (alias input, value, string, s, content et body). La valeur doit être une chaîne 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 originale envoyée, text comme la chaîne de travail rognée, paragraph_count et count comme le même total entier, paragraphs comme un tableau ordonné des blocs non vides après découpage par lignes vides, et message comme un bref résumé indiquant combien de paragraphes ont été comptés. Une validation échouée—texte manquant, valeur non chaîne, charge trop grande ou contenu vide après rognage—renvoie invalid_input et n’est jamais facturée. Le tarif est un forfait $0.002 par requête réussie avec unité item et prix unitaire marginal nul. À l’intégration, affirmez sur paragraph_count pour le total, comparez éventuellement la longueur de paragraphs à ce total, et traitez invalid_input comme une erreur client sur 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 deux lignes courtes séparées par une ligne vide et attendez paragraph_count deux avec deux entrées dans le tableau ; un bloc non coupé et attendez un ; envoyez délibérément une chaîne vide ou des espaces pour confirmer invalid_input et le message qui demande une chaîne non vide. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde peu coûteuses la validation de formulaires et les tests négatifs CI.
Cas d'intégration
Pipelines CMS et notes de version
Normalisez des notes de version ou brouillons de blog multi-blocs et affirmez paragraph_count avant de publier ou traduire chaque bloc.
Tests unitaires pour processeurs de texte
Générez des fixtures multiparagraphes de référence et des rejets d’entrée vide pour éditeurs, analyseurs d’e-mail et pipelines markdown.
Questions techniques
Que se passe-t-il en cas d’entrée vide ?
Texte manquant, valeurs non chaîne ou chaînes vides après rognage renvoient invalid_input et ne sont jamais facturés.
Compte-t-il les mots ou les phrases ?
Non. Il renvoie seulement paragraph_count (et count), le tableau paragraphs et un court message. Utilisez d’autres outils pour mots ou phrases.