Comment puis-je créer une zone de texte pour une note dans Markdown?

86

J'écris un document en markdown. J'utilise le merveilleux pandoc pour créer des fichiers docx et tex à partir de la source markdown. Je voudrais avoir une zone de texte pour des conseils et des notes aux lecteurs comme le font souvent les livres de programmation. Je ne peux pas comprendre comment faire cela dans Markdown. Pouvez-vous m'aider?

TJB
la source
Microsoft utilise sa propre syntaxe pour cela dans sa documentation, mais il est peu probable qu'elle fonctionne dans votre environnement. Inclus ici pour l'exhaustivité et la comparaison avec les réponses ci-dessous. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
brianary

Réponses:

95

Ce que je fais habituellement pour mettre une boîte d'alerte (par exemple, une note ou un avertissement) dans les textes de démarque (non seulement lors de l'utilisation de pandoc mais également partout où ce démarque est pris en charge), c'est d'entourer le contenu de deux lignes horizontales:

---
**NOTE**

It works with almost all markdown flavours (the below blank line matters).

---

ce qui serait quelque chose comme ceci:


REMARQUE

Il fonctionne avec toutes les saveurs de démarques (la ligne vide ci-dessous compte).


La bonne chose est que vous n'avez pas à vous soucier de la saveur de démarque prise en charge ou de l'extension installée ou activée.

EDIT : Comme @ filups21 l'a mentionné dans les commentaires, il semble qu'une ligne horizontale soit représentée par ***RMarkdown. Ainsi, la solution mentionnée précédemment ne fonctionne pas avec toutes les saveurs de démarque comme elle était initialement revendiquée.

dessinateur
la source
4
Ceci est utile, mais cela ne fonctionne pas avec RMarkdown / Rstduio / Knitr
bjw
1
bjw - une ligne horizontale dans rmarkdown est ***précédée d'une ligne vide. Vous pouvez également placer la note dans un blockquote en commençant la ligne par >(également précédée d'une ligne vide).
filups21
80

Avec GitHub, j'insère généralement un blockquote.

> **_NOTE:_**  The note content.

devient...

REMARQUE: le contenu de la note.

Bien sûr, il y a toujours du HTML simple ...

Vlad
la source
@KamilSJaron: hein? Non, ils ne le sont pas. Pensez-vous aux blocs de code?
rien101
@ naught101 Ah, je lisais blockquote comme backquote. Cependant, les guillemets triples ne sont en effet pas enveloppants.
Kamil S Jaron
3
Je préfère cette solution universelle. J'aime aussi utiliser des émojis Unicode pour préfixer la note, comme > ℹ️ This is an informationou > ⚠️ This is a warning.
pierre_loic
1
Ceci et la table kludge sont les seules réponses à résoudre de manière portable cette question. La règle dure kludge proposée par la réponse supérieure ne montre pas de boîte et ne résout donc pas cette question. En effet, cette réponse couplée au mod d'icônes Unicode de @ pierre_loic reproduit principalement les notes reStructuredText .
Cecil Curry
16

La solution la plus simple que j'ai trouvée exactement au même problème est d'utiliser un tableau à plusieurs lignes avec une ligne et sans en-tête (il y a une image dans la première colonne et le texte dans la seconde):

----------------------- ------------------------------------
![Tip](images/tip.png)\ Table multiline text bla bla bla bla
                        bla bla bla bla bla bla bla ... the
                        blank line below is important 

----------------------------------------------------------------

Une autre approche qui pourrait fonctionner (pour PDF) consiste à utiliser la directive fbox par défaut de Latex :

 \fbox{My text!}

Ou module FancyBox pour des fonctionnalités plus avancées (et des boîtes plus belles): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox .

Etienne Savard
la source
1
Savez-vous s'il est possible de définir à quoi ressemblera la note pandoc-markdown dans le fichier de modèle pandoc? Par exemple, éditer ~ / .pandoc / templates / default.latex?
tmaric
11

Utilisez l' extension admonition . Pour mkdocs , il peut être configuré dans le mkdocs.ymlfichier:

markdown_extensions:
    - admonition

Insérez ensuite la note dans vos fichiers md comme suit:

!!! note

     This is a note.

Voir un exemple ici .

Boni García
la source
8

Semblable à la solution d'Etienne, un tableau simple met bien en forme:

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

Une autre alternative (qui vient avec plus d'emphase), consiste à faire du contenu l'en-tête d'un tableau sans corps:

|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|
|-|-|

Enfin, vous pouvez inclure une ligne horizontale (coupure thématique) pour créer une boîte fermée (bien que le style de ligne soit un peu différent de la ligne d'en-tête dans le tableau):

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

---

Notez la ligne vide après le texte.

Gordon Bean
la source
J'aime beaucoup cette solution, mais quand je la convertis via pandoc et xelatex en pdf, il semble qu'elle alloue 50% pour la NOTEcolonne " ", et 50% pour l'autre; on peut utiliser des tables multilignes selon stackoverflow.com/questions/27219629 - mais il y a ensuite d'autres problèmes de formatage.
sdbbs le
6

Voici un exemple simple à base de latex.

---
header-includes:
    - \usepackage[most]{tcolorbox}
    - \definecolor{light-yellow}{rgb}{1, 0.95, 0.7}
    - \newtcolorbox{myquote}{colback=light-yellow,grow to right by=-10mm,grow to left by=-10mm, boxrule=0pt,boxsep=0pt,breakable}
    - \newcommand{\todo}[1]{\begin{myquote} \textbf{TODO:} \emph{#1} \end{myquote}}
---

blah blah

\todo{something}

blah

ce qui se traduit par: entrez la description de l'image ici

Malheureusement, comme il s'agit de latex, vous ne pouvez plus inclure de démarque dans la boîte TODO (ce qui n'est généralement pas un gros problème), et cela ne fonctionnera pas lors de la conversion vers des formats autres que PDF (par exemple html).

rien101
la source
5

Les méthodes suivantes fonctionnent sur GitHub, sur GitLab ... et sur Stackoverflow , qui utilise désormais CommonMark !


> Boîte à une ligne faite avec Blockquote

Boîte à une ligne faite avec Blockquote


`Boîte à une ligne faite avec des backticks`

One-Line Box made with Backticks


``
Boîte faite avec Triple Backticks
''

Box made with Triple Backticks  


~ ~ ~
Boîte faite avec Triple Tildes
(supprimez les espaces entre les tildes pour que cela fonctionne)
~ ~ ~

Box made with Triple Tildes


Boîte faite avec quatre espaces au début de chaque ligne:

    “Sometimes we must let go of our pride and do what is requested of us.”
    Padmé Amidala


... ou utilisez des lignes horizontales?

Trois tirets (---) forment une ligne horizontale:


Remarque : "Votre concentration détermine votre réalité." - Qui-Gon Jinn.


Pour plus de configurations, je conseille vivement l'excellent guide GitLab Markdown .
Vous pouvez également vérifier la syntaxe de mise en forme de base GitHub moins détaillée .
Vous pouvez comparer les implémentations de Markdown à l'aide de Babelmark .

Conseils utiles:

  • pour forcer une nouvelle ligne, mettez deux espaces à la fin de la ligne;

  • pour échapper les caractères spéciaux, utilisez \.

Kotchwane
la source
3

Avez-vous essayé d'utiliser des onglets doubles? Pour faire une boîte:

Start on a fresh line
Hit tab twice, type up the content
Your content should appear in a box

Cela fonctionne pour moi dans un document Rmarkdown régulier avec une sortie html. La partie à double onglet doit apparaître dans une boîte rectangulaire gris clair arrondie.

Cho Jay
la source
Fonctionne aussi sur VS Code et GitHub!
Nagev le
C'est un bloc de code.
CivFan