Cum pot crea o casetă de text pentru o notă în markdown? (Programare, Markdown, Pandoc)

TJB a intrebat.

Scriu un document în markdown. Folosesc minunatul pandoc pentru a crea fișiere docx și tex din sursa markdown. Aș dori să am o casetă de text pentru sfaturi și note pentru cititori, așa cum fac adesea cărțile de programare. Nu-mi dau seama cum să fac acest lucru în markdown. Puteți să mă ajutați?

Comentarii

  • Microsoft folosește propria sintaxă pentru acest lucru în documentația sa, dar este puțin probabil să funcționeze în mediul dumneavoastră. Inclusă aici pentru a fi completă și pentru comparație cu răspunsurile de mai jos. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/… –  > Por brianary.
11 răspunsuri
caricaturist

Ceea ce fac de obicei pentru a pune caseta de alertă (de exemplu, Notă sau Avertisment) în textele markdown (nu numai atunci când folosesc pandoc, dar și peste tot unde este acceptat markdown) este să înconjoară conținutul cu două linii orizontale:

---
**NOTE**

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

---

care ar fi ceva de genul acesta:


NOTĂ

Funcționează cu toate variantele de markdown (linia goală de mai jos contează).


Lucrul bun este că nu trebuie să vă faceți griji cu privire la ce aromă de markdown este acceptată sau ce extensie este instalată sau activată.

EDITARE: După cum a menționat @filups21 în comentarii, se pare că o linie orizontală este reprezentată de *** în RMarkdown. Deci, soluția menționată anterior nu funcționează cu toate aromele markdown, așa cum s-a afirmat inițial.

Comentarii

  • Aceasta este utilă, dar nu funcționează cu RMarkdown/Rstduio/Knitr –  > Por bjw.
  • bjw – o linie orizontală în rmarkdown este *** precedată de o linie goală. Alternativ, puteți pune nota într-un blockquote, începând linia cu > (precedată, de asemenea, de o linie albă). –  > Por filups21.
Vlad

Cu GitHub, de obicei introduc un blockquote.

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

devine…

NOTĂ: Conținutul notei.

Bineînțeles, există întotdeauna HTML simplu…

Comentarii

  • @KamilSJaron: eh? Nu, nu sunt. Te gândești la blocuri de cod? –  > Por naught101.
  • @naught101 Ah, am citit blockquote ca backquote. Cu toate acestea, backquote triple nu sunt într-adevăr înfășurate. –  > Por Kamil S Jaron.
  • Prefer această soluție universală. De asemenea, îmi place să folosesc emoji Unicode pentru a prefixa nota, cum ar fi > ℹ️ This is an information sau > ⚠️ This is a warning. –  > Por pierre_loic.
  • Aceasta și kludge-ul de tabel sunt singurele răspunsuri care pot rezolva portabil această întrebare. Hard rule kludge-ul propus de răspunsul de sus nu reușește să arate o casetă și astfel nu reușește să rezolve această întrebare. Într-adevăr, acest răspuns, împreună cu modul de pictograme Unicode al lui @pierre_loic, reproduce în mare parte note reStructuredText. –  > Por Cecil Curry.
Etienne Savard

Cea mai simplă soluție pe care am găsit-o pentru exact aceeași problemă este de a folosi un tabel cu mai multe rânduri, cu un singur rând și fără antet (există o imagine în prima coloană și textul în cea de-a doua):

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

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

O altă abordare care ar putea funcționa (pentru PDF) este să folosiți Latex implicit fbox directivă :

 fbox{My text!}

Sau modulul FancyBox pentru caracteristici mai avansate (și cutii mai arătoase) : http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox.

Comentarii

  • Știți dacă este posibil să se definească modul în care va arăta nota pandoc-markdown în interiorul fișierului șablon pandoc? De exemplu, prin editarea ~/.pandoc/templates/default.latex ?  > Por tmaric.
Boni García

Utilizați admonition extensie. Pentru mkdocs, , aceasta poate fi configurată în fișierul mkdocs.yml fișier:

markdown_extensions:
    - admonition

Apoi inserați nota în fișierele md, după cum urmează:

!!! note

     This is a note.

Vedeți un exemplu aici.

naught101

Iată un exemplu simplu bazat pe latex.

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

blah blah

todo{something}

blah

care are ca rezultat:

Din păcate, deoarece este vorba de latex, nu mai puteți include markdown în interiorul căsuței TODO (ceea ce nu este o problemă uriașă, de obicei) și nu va funcționa la conversia în alte formate decât PDF (de exemplu, html).

Gordon Bean

Similar cu soluția lui Etienne, un tabel simplu se formatează frumos:

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

O altă alternativă (care vine cu mai multă insistență), este de a face din conținut antetul unui tabel fără corp:

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

În cele din urmă, puteți include o linie orizontală (pauză tematică) pentru a crea o cutie închisă (deși stilul liniei este puțin diferit de cel al liniei de antet din tabel):

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

---

Observați linia goală de după text.

Comentarii

  • Îmi place foarte mult această soluție, dar când convertesc acest lucru prin pandoc și xelatex în pdf, se pare că alocă 50% pentru „NOTE” și 50% pentru cealaltă coloană; se pot folosi tabele cu mai multe linii, conform stackoverflow.com/questions/27219629 – dar atunci apar alte probleme de formatare. –  > Por sdbbs.
kotchwane

Următoarele metode funcționează pe GitHub, pe GitLab… și pe Stackoverflow, care acum folosește CommonMark!

> Caseta cu o singură linie realizată cu Blockquote

Caseta cu o linie realizată cu Blockquote

`One-Line Box made with Backticks`

One-Line Box made with Backticks

„`
Caseta realizată cu triplu backticks
„`

Box made with Triple Backticks  

~ ~ ~
Cutie realizată cu triplu Tildes
(eliminați spațiile dintre tildes pentru a face acest lucru să funcționeze)
~ ~ ~

Box made with Triple Tildes

Cutie realizată cu patru spații la începutul fiecărui rând:

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

… sau folosiți linii orizontale?

Trei liniuțe (—) formează o linie orizontală:


Notă:: ” Concentrarea ta determină realitatea ta”. – Qui-Gon Jinn.


Pentru mai multe configurații, vă recomand cu tărie excelentul GitLab Markdown Guide.
De asemenea, puteți verifica și ghidul mai puțin detaliat Sintaxa de formatare de bază GitHub.
Puteți compara implementările Markdown folosind Babelmark.

Indicații utile :

  • pentru a forța o linie nouă, puneți două spații la sfârșitul liniei;

  • pentru a scăpa de caracterele speciale, utilizați .

Cho Jay

Ați încercat să folosiți tabulatoare duble? Pentru a face o casetă:

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

Mie îmi funcționează într-un document Rmarkdown obișnuit cu ieșire html. Porțiunea cu dublă tăietură ar trebui să apară într-o cutie dreptunghiulară rotunjită de culoare gri deschis.

Comentarii

  • Funcționează și pe VS Code și GitHub! –  > Por Nagev.
Alinex

De asemenea, puteți utiliza https://www.npmjs.com/package/markdown-it-container

::: warning
*here be dragons*
:::

Va fi redat apoi ca:

<div class="warning">
<em>here be dragons</em>
</div>

Lily B

O altă soluție este să folosiți adiacența CSS și să folosiți h4 (sau mai mare):

#### note

This is the note content
h4 {
  display: none; /* hide */
}

h4 + p {
  /* style the note however you want */
}

Carson

De obicei, introduc un blockquote și adaug un caracter Unicode(memo care este(U+1F4DD))) în interiorul acestuia.

Sintaxa Demo
> bla bla ...

bla bla bla …

> `` `` bla bla

bla bla bla

> * * bla bla

bla bla bla


Emoji

Bineînțeles, dacă nu vă place puteți căuta vă place. Sunt sigură că va exista unul în el este satisfacția ta!

  • găsiți mai multe emoji: https://emojipedia.org/

    doar căutați vă place pictograma și copy-paste apoi făcut(din moment ce este un caracter, astfel încât este potrivit pentru fiecare dispozitiv)

  • găsiți Codul

    Dacă nu vă place copy-paste și doriți să scrieți singur, puteți lua în considerare căutarea Unicode.


p.s. Puteți, de asemenea, să acordați atenție la versiunea emoji (de obicei, este aceeași cu versiunea Unicode), și mai multe pictograme pot apărea în viitor pentru a vă satisface.