Come posso creare una casella di testo per una nota in markdown?


86

Sto scrivendo un documento in markdown. Sto usando il meraviglioso pandoc per creare file docx e tex dal sorgente markdown. Vorrei avere una casella di testo per suggerimenti e note ai lettori come fanno spesso i libri di programmazione. Non riesco a capire come farlo in markdown. Puoi aiutare?


Microsoft utilizza la propria sintassi per questo nella documentazione, ma è improbabile che funzioni nel tuo ambiente. Incluso qui per completezza e confronto con le risposte di seguito. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
Brianary

Risposte:


95

Quello che di solito faccio per inserire una casella di avviso (ad esempio Nota o Avviso) nei testi di markdown (non solo quando si utilizza pandoc ma anche ogni dove tale markdown è supportato) è circondare il contenuto con due linee orizzontali:

---
**NOTE**

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

---

che sarebbe qualcosa del genere:


NOTA

Funziona con tutti i gusti di ribasso (la riga vuota sotto è importante).


La cosa buona è che non devi preoccuparti di quale tipo di markdown è supportato o quale estensione è installata o abilitata.

EDIT : Come @ filups21 ha menzionato nei commenti, sembra che una linea orizzontale sia rappresentata da ***in RMarkdown. Quindi, la soluzione menzionata prima non funziona con tutti i gusti di ribasso come originariamente affermato.


4
Questo è utile, ma non funziona con RMarkdown / Rstduio / Knitr
bjw

1
bjw - una linea orizzontale in rmarkdown è ***preceduta da una riga vuota. In alternativa, puoi inserire la nota in una citazione iniziando la riga con >(anch'essa preceduta da una riga vuota).
filups21

80

Con GitHub, di solito inserisco un blockquote.

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

diventa ...

NOTA: il contenuto della nota.

Ovviamente c'è sempre HTML semplice ...


@KamilSJaron: eh? No, non lo sono. Stai pensando ai blocchi di codice?
nought101

@ naught101 Ah, stavo leggendo blockquote come backquote. Tuttavia, le virgolette triple non sono davvero avvolgenti.
Kamil S Jaron

3
Preferisco questa soluzione universale. Mi piace anche usare gli emoji Unicode per anteporre la nota, come > ℹ️ This is an informationo > ⚠️ This is a warning.
pierre_loic

1
Questa e la tabella kludge sono le uniche risposte che risolvono in modo portatile questa domanda. La regola rigida kludge proposta dalla risposta in alto non mostra un riquadro e quindi non riesce a risolvere questa domanda. In effetti, questa risposta abbinata alla mod delle icone Unicode di @ pierre_loic replica per lo più le note reStructuredText .
Cecil Curry

16

La soluzione più semplice che ho trovato per lo stesso identico problema è utilizzare una tabella a più righe con una riga e nessuna intestazione (c'è un'immagine nella prima colonna e il testo nella seconda):

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

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

Un altro approccio che potrebbe funzionare (per PDF) è utilizzare la direttiva fbox predefinita di Latex :

 \fbox{My text!}

Oppure il modulo FancyBox per funzionalità più avanzate (e scatole dall'aspetto migliore): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox .


1
Sai se è possibile definire come apparirà la nota pandoc-markdown all'interno del file modello pandoc? Ad esempio, modificando ~ / .pandoc / templates / default.latex?
tmaric

11

Usa l' estensione di ammonizione . Per mkdocs , può essere configurato nel mkdocs.ymlfile:

markdown_extensions:
    - admonition

Quindi inserisci la nota nei tuoi file md come segue:

!!! note

     This is a note.

Vedi un esempio qui .


8

Simile alla soluzione di Etienne, una semplice tabella si formatta bene:

| | |
|-|-|
|`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.|

Un'altra alternativa (che viene fornita con maggiore enfasi), è rendere il contenuto l'intestazione di una tabella senza corpo:

|`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.|
|-|-|

Infine, puoi includere una linea orizzontale (interruzione tematica) per creare un riquadro chiuso (sebbene lo stile della linea sia leggermente diverso dalla riga di intestazione nella tabella):

| | |
|-|-|
|`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.|

---

Notare la riga vuota dopo il testo.


Questa soluzione mi piace molto, ma quando la converto via pandoc e xelatex in pdf, sembra che assegni il 50% per la NOTEcolonna " " e il 50% per l'altra; si possono usare tabelle multilinea come da stackoverflow.com/questions/27219629 - ma poi ci sono altri problemi di formattazione.
sdbbs

6

Ecco un semplice esempio basato sul lattice.

---
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

che si traduce in: inserisci qui la descrizione dell'immagine

Sfortunatamente, poiché si tratta di latex, non puoi più includere il markdown nella casella TODO (il che non è un grosso problema, di solito) e non funzionerà durante la conversione in formati diversi dal PDF (es. Html).


5

I seguenti metodi funzionano su GitHub, su GitLab ... e su Stackoverflow , che ora utilizza CommonMark !


> One-Line Box realizzato con Blockquote

One-Line Box realizzato con Blockquote


`Scatola a una riga realizzata con Backtick`

One-Line Box made with Backticks


``
Scatola realizzata con Triple Backtick
''

Box made with Triple Backticks  


~ ~ ~
Scatola realizzata con Triple Tilde
(rimuovi gli spazi tra le tilde per farlo funzionare)
~ ~ ~

Box made with Triple Tildes


Scatola realizzata con quattro spazi all'inizio di ogni riga:

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


... o usi linee orizzontali?

Tre trattini (---) formano una linea orizzontale:


Nota : "La tua attenzione determina la tua realtà". - Qui-Gon Jinn.


Per ulteriori configurazioni, consiglio caldamente l'eccellente GitLab Markdown Guide .
Puoi anche controllare la sintassi di formattazione di base di GitHub meno dettagliata .
Puoi confrontare le implementazioni di Markdown utilizzando Babelmark .

Suggerimenti utili:

  • per forzare una nuova riga, metti due spazi alla fine della riga;

  • per sfuggire ai caratteri speciali, usa \.


3

Hai provato a utilizzare le doppie linguette? Per fare una scatola:

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

Per me funziona in un normale documento Rmarkdown con output html. La porzione a doppia scheda dovrebbe apparire in una casella grigio chiaro rettangolare arrotondata.


Funziona anche su VS Code e GitHub!
Nagev

Questo è un blocco di codice.
CivFan

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.