Comment mettre en retrait quelques lignes dans le balisage Markdown?


360

Je veux écrire quelques lignes de texte. Ils doivent être formatés normalement, sauf que chaque ligne doit commencer à la 6e colonne. C'est-à-dire que je ne veux pas que la règle de mise en forme du bloc de code fasse en sorte que ce morceau de texte ressemble à du code, car j'utiliserai une autre mise en forme comme le gras, etc. Comment faire cela dans Markdown?


12
C'est dommage que Markdown ne supporte pas cela. C'est une caractéristique fondamentale qui manque.
Josh Noe

5
qu'en est-il : ?
Frode Akselsen

4
L'utilisation de: pour les listes de définitions n'est pas universelle dans les implémentations Markdown, mais si votre variante Markdown le prend en charge, cela fonctionne parfaitement. Vous devriez en faire une vraie réponse.
Alex Dupuy

Réponses:


383

Il n'y a aucun moyen de le faire dans les fonctionnalités natives de Markdown. Cependant, le démarquage permet le HTML en ligne, donc l'écriture

      This will appear with six space characters in front of it

produira:

      Cela apparaîtra avec six caractères d'espace devant lui

Si vous avez le contrôle sur CSS sur la page, vous pouvez également utiliser une balise et la styliser, en ligne ou avec des règles CSS.

Quoi qu'il en soit, le démarquage n'est pas conçu comme un outil de mise en page, il est destiné à simplifier le processus d'écriture pour le Web, donc si vous vous retrouvez à étirer son ensemble de fonctionnalités pour faire ce dont vous avez besoin, vous pouvez voir si vous ou non '' ré utiliser le bon outil ici. Découvrez les documents de Gruber:

http://daringfireball.net/projects/markdown/syntax#html


12
Il est possible d'insérer  (Unicode: \ 2002) dans un fichier Markdown et ils n'apparaîtront pas comme  dans la source - uniquement lorsque vous effectuez le rendu du fichier. Entraînez-vous simplement sur la touche de raccourci de votre système d'exploitation pour insérer ce caractère.
vaughan

1
Les citations en bloc sont un bon moyen de le faire (voir la réponse de @ ChrisV)
drevicko

Et si je veux utiliser l'indentation pour aligner le texte. Par exemple, je veux que le 2ème mot en deux lignes commence au même endroit (comme les codeurs aiment à avec l'opérateur d'affectation =).
Royi

3
 est tout simplement génial pour l'indentation simple et claire. Aucun changement de style / police, juste une indentation
Green

5
Les lignes enveloppées dans le texte long ne sont pas en retrait, ce que vous ne souhaitez peut-être pas dans votre mise en page. Redimensionnez votre vue rendue à tester. En outre,  est plus proche de l'onglet.
dimmech

76

Une façon de le faire est d'utiliser des puces, ce qui vous permet de spécifier plusieurs niveaux d'indentation. Les puces sont insérées en utilisant des multiples de deux espaces, étoile, un autre espace Ex.:

this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>

Cette méthode a le grand avantage qu'elle a également un sens lorsque vous affichez le texte brut.

Si vous vous souciez de ne pas voir les puces elles - mêmes , vous devriez (selon l'endroit où vous utilisez le démarque) être en mesure d'ajouter li {list-style-type: none;}au CSS pour toute la zone de marquage.


5
Belle astuce, mais je veux seulement désactiver les puces visibles pour une partie d'un Markdown (et son HTML résultant) mais pas entier. Y a-t-il un moyen propre de le faire?
Meng Lu

@MengLu J'ai la même exigence. Avez-vous trouvé celui-ci du tout?
lifebalance

1
Bien meilleure structure que la réponse acceptée
irowe

N'oubliez pas que le démarque peut accepter du HTML - cela fait partie de la spécification. Donc, pour une liste particulière, rien ne vous empêche d'utiliser HTML pour résoudre ce problème. N'oubliez pas que vous pouvez avoir du HTML dans le Markdown, mais pas du Markdown dans vos fragments HTML. <ul> <li style = "list-style-type: none;"> Votre contenu en retrait qui doit être entièrement HTML </li> </ul>
Hamish Willee

2
Cela me semble beaucoup mieux que la réponse acceptée. Il vous donne un contrôle plus fin sur votre texte en retrait, sans parler d'être plus lisible et plus facile à maintenir
Arepo

36

C'est un vieux fil de discussion , mais j'aurais pensé que les blockquotes de Markdown ('>') seraient mieux pour cela:


21
C'est une bonne solution si vous n'avez pas besoin de mettre en retrait un montant spécifié et que vous ne vous souciez pas d'obtenir une couleur d'arrière-plan différente ou d'autres styles qui pourraient accompagner les citations. En fin de compte, les blockquotes ont un objectif sémantique et ils sont meilleurs si vous voulez en fait définir quelque chose comme une citation.
alegscogs

20
Faux. Les blockquotes (>) servent à créer des guillemets, pas une simple indentation. C'est totalement différent dans les styles.
Green

25

Voyez si ce ">" aide:

Line 1
> line 2 
>> line 3

c'est le bon billet dans les cahiers jupyter en utilisant un balisage en latex
vwvan

2
Voir le commentaire ci-dessus: "Mauvais. Les citations en bloc (>) servent à créer des guillemets, pas une indentation simple. Les styles sont totalement différents"
Utilisateur qui n'est pas un utilisateur

22

onglet faire, puis le signe +, puis espace, puis votre contenu

Donc

* level one + level two tabbed


Le démarquage github / bitbucket prend en charge une règle d'indentation similaire, sans +:[tab][space]your-text-goes-here
roblogic

13

Qu'en est-il de placer un espace déterminé au début du paragraphe en utilisant l'environnement mathématique comme:

$\qquad$ My line of text ...

Cela fonctionne pour moi et j'espère travailler pour vous aussi.


10

Si vous devez vraiment utiliser des onglets et que la couleur de fond et le rembourrage gris ne vous dérangent pas, les <pre>balises peuvent fonctionner (si elles sont prises en charge):

<pre>
This        That        And             This
That        This        And             That    
</pre>
C'est ça et ça
Que ceci et cela    

7

Veuillez utiliser des espaces durs (insécables)

Pourquoi utiliser un autre langage de balisage? (Je suis d'accord avec @cz ci-dessus).
L'un des objectifs de Markdown est de rendre les documents lisibles même dans un éditeur de texte brut.

Même résultat deux approches

Le code

Sample code
&nbsp;&nbsp;&nbsp;&nbsp;5th position in an really ugly code  
    5th position in a clear an readable code  
    Again using non-breaking spaces :)

Le résultat

Exemple de code
    5ème position dans un code vraiment moche
    5ème position dans un code clair et lisible
    Encore une fois en utilisant des espaces insécables :)

La représentation visuelle d'un espace insécable (ou espace dur) est généralement un espace normal "", cependant, sa représentation Unicode est U + 00A0.
La représentation Unicode de l'espace ordinaire est U + 0020 (32 dans le tableau ASCII).
Ainsi, les processeurs de texte peuvent se comporter différemment tandis que la représentation visuelle reste la même.

Insérez un espace dur

| OS        | Input method                      |
|===========| ==================================|
| macOS     | OPTION+SPACE (ALT+SPACE)          |
| Linux     | Compose Space Space or AltGr+Space|
| Windows   | Alt+0+1+6+0                       |

Some text editor use Ctrl+Shift+Space.

Problème

Certains éditeurs de texte peuvent convertir des espaces durs en espaces communs lors des opérations de copie et de collage, donc soyez prudent.


Recherche de projecteurs activés OPTION + SPACE
wander95

Ne peut pas l'être, uniquement si vous avez modifié les raccourcis par défaut. Le champ de recherche Spotlight se déclenche avec COMMAND-SPACE (la touche COMMAND est analogue à la touche Windows). L'espace insécable est introduit avec OPTION-SPACE (l'option est l'analogue d'ALT)
ePi272314

Sur mon Mac, j'ai moi-même un raccourci sur Option + Espace, mais Shift + Option + Espace fonctionne bien à la place.
Dag Høidahl

Les sauts de ligne avec de longues phrases semblent laids avec cela.
Mike Kormendy

4

Vérifiez si vous pouvez utiliser HTML avec votre démarque. Peut-être que cela fonctionne pour vous:

  • Entrée de liste une <br/>
    ligne en retrait <br/>
    <br/>
    Et quelques autres ..
  • Deuxième entrée
    • Sous-entrée <br/>
      Bonjour là-bas!

6
Pour ce faire, il vous suffit de terminer la ligne avec deux espaces.
Pietro

4

Pour les paragraphes entre guillemets / indentés, ce hack peut fonctionner (selon le moteur de rendu):

| | | |
|-|-|-|
|  | _"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."_ | |
|

qui se traduit par:

entrez la description de l'image ici


2

Utilisez directement un espace insécable  (pas le même que !).

(Vous pouvez insérer du code HTML ou du code de marquage ésotérique, mais je peux penser à de meilleures raisons de rompre la compatibilité avec le marquage standard.)


2

Pour répondre aux questions de MengLu et @ lifebalance en réponse à la réponse de SColvin (que je préfère de loin à la réponse acceptée pour le contrôle qu'il fournit), il semble que vous puissiez simplement cibler un élément parent des listes lorsque vous définissez l'affichage sur aucun, en ajoutant un élément environnant si nécessaire. Donc, si nous supposons que nous faisons cela pour une table des matières, nous pouvons étendre la réponse de SColvin:

HTML

<nav class="table-of-contents">
  this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>
</nav>

CSS

.table-of-contents ul {
  list-style-type: none;
}

2

Comme l'a souligné @AlexDupuy dans les commentaires, des listes de définitions peuvent être utilisées pour cela.

Ce n'est pas pris en charge par tous les processeurs de démarques, mais il est largement disponible: Guide de démarques - Listes de définitions

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Rendu au format (html):

<dl>
    <dt>Term 1</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
    <dt>Term 2</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
</dl>

Généralement, le DTest rendu dans un format de type en-tête, et chacun DDest rendu sous forme de texte en retrait en dessous.

Si vous ne voulez pas de titre / terme, utilisez simplement un espace insécable à la place du terme de définition:

&nbsp;
: This is the text that I want indented.  All text on the same line as the preceding colon will be included in this definition.
: If you include a second definition you'll get a new line; potentially separated by a space. <br />Some inline HTML may be supported within this too, allowing you to create new lines without spaces.
: Support for other markdown syntax varies; e.g. we can add a bullet list, but each one's wrapped in a separate definition term, so the spacing may be out.
: - item 1
: - item 2
: - item 3

Vous pouvez le voir en action en copiant-collant les exemples ci-dessus sur ce site: Stack Edit Markdown Editor

Capture d'écran du rendu DL dans Stack Edit


1
Le & nbsp; a parfaitement fonctionné. Merci
Kevin Mason

0

Certaines implémentations de Markdown semblent utiliser le ~caractère pour l'indentation.


0

Une autre alternative consiste à utiliser un éditeur de démarques comme StackEdit . Il convertit html (ou texte) en démarque dans un éditeur WYSIWYG. Vous pouvez créer des retraits, des titres, des listes dans l'éditeur, et il vous montrera le texte correspondant au format de démarque. Vous pouvez ensuite enregistrer, publier, partager ou télécharger le fichier. Vous pouvez y accéder sur leur site Web - aucun téléchargement requis!


0

D'accord, avec un peu de HTML dans votre code R, j'ai fait le code suivant pour générer du texte pur dans R Markdown. le<h3 style="text-indent: 15em;"> retrait du texte comporte 15 espaces. Pour la question d'origine, changez le 15 en 6.

## Option: Du Pont Ratio Concept - (ROE Decomposition)
### (Closed Quotes/Total Premium) = (Closed Quotes/Quotes Issued) X <br>
<h3 style="text-indent: 15em;">
 (Quotes Issued/Renewal Premium) X <br></h3>
<h3 style="text-indent: 15em;">
 (Renewal Premium/Total Premium)</h3>

Ainsi, le code résultant donne le format de sortie souhaité. J'utilise des onglets pour le document Markdown et cherchais à aligner le texte () qui fonctionnait.

sortie r


0

Pour être complet, les listes à puces plus profondes:

Nested deeper levels: ---- leave here an empty row * first level A item - no space in front the bullet character * second level Aa item - 1 space is enough * third level Aaa item - 5 spaces min * second level Ab item - 4 spaces possible too * first level B item

Niveaux plus profonds imbriqués:

  • élément de premier niveau A - pas d'espace devant le caractère de la puce
    • élément Aa de deuxième niveau - 1 espace suffit
      • objet Aaa de troisième niveau - 5 espaces min
    • élément Ab de deuxième niveau - 4 espaces possibles aussi
  • élément de premier niveau B

    Nested deeper levels:
     ...Skip a line and indent eight spaces. (as said in the editor-help, just on this page)
    * first level A item - no space in front the bullet character
     * second level Aa item - 1 space is enough
         * third level Aaa item - 5 spaces min
        * second level Ab item - 4 spaces possible too
    * first level B item
    
            And there
            could be even more
            such octets of spaces.
    

0

Si vous travaillez avec des puces, essayez ceci:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

Il s'agit de la méthode que j'utilise pour styliser le démarque.


0

Sur gitlab.com, un seul espace en (U + 2002) suivi d'un seul espace em (U + 2003) fonctionne correctement.

Vraisemblablement, d'autres répétitions ou combinaisons de caractères spatiaux non exactement pris en compte suffiraient également.


0

L'un des problèmes avec le démarrage de votre ligne avec des espaces insécables est que si votre ligne est suffisamment longue pour être bouclée, alors quand elle déborde sur une deuxième ligne, le premier caractère de la ligne de débordement avec un départ difficile à gauche au lieu de commencer sous le premier caractère de la ligne au-dessus.

Si votre système vous permet de mélanger du HTML avec votre démarque, une façon amusante et joyeuse d'obtenir un retrait est comme ceci:

<ul>
My indented text goes here, and it can be long and wrap if you like.
And you can have multiple lines if you want.
</ul>

Sémantiquement dans votre code HTML, cela n'a aucun sens (une section UL sans aucun élément LI), mais tous les navigateurs que j'ai utilisés indentent heureusement ce qui se trouve entre ces balises.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.