Como posso criar uma caixa de texto para uma nota na marcação?

86

Estou escrevendo um documento em markdown. Estou usando o maravilhoso pandoc para criar arquivos docx e tex a partir da origem do markdown. Eu gostaria de ter uma caixa de texto para dicas e notas para os leitores, como costumam fazer os livros de programação. Não consigo descobrir como fazer isso no markdown. Você pode ajudar?

TJB
fonte
A Microsoft usa sua própria sintaxe para isso em sua documentação, mas não é provável que funcione em seu ambiente. Incluído aqui para integridade e comparação com as respostas abaixo. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
brianary

Respostas:

95

O que eu normalmente faço para colocar a caixa de alerta (por exemplo, Nota ou Aviso) em textos de marcação (não apenas ao usar o pandoc, mas também em todos os lugares onde essa marcação é suportada) é circundar o conteúdo com duas linhas horizontais:

---
**NOTE**

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

---

que seria algo assim:


NOTA

Ele funciona com todos os tipos de markdown (a linha em branco abaixo é importante).


A boa notícia é que você não precisa se preocupar com qual tipo de markdown é compatível ou qual extensão está instalada ou habilitada.

EDIT : Como @ filups21 mencionou nos comentários, parece que uma linha horizontal é representada por ***no RMarkdown. Portanto, a solução mencionada antes não funciona com todos os tipos de markdown, como foi originalmente reivindicado.

cartunista
fonte
4
Isso é útil, mas não funciona com RMarkdown / Rstduio / Knitr
bjw
1
bjw - uma linha horizontal em rmarkdown é ***precedida por uma linha em branco. Como alternativa, você pode colocar a nota em um bloco de aspas começando a linha com >(também precedido por uma linha em branco).
filups21 de
80

Com o GitHub, geralmente insiro um blockquote.

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

torna-se...

NOTA: O conteúdo da nota.

Claro, sempre há HTML simples ...

Vlad
fonte
@KamilSJaron: eh? Não, eles não são. Você está pensando em blocos de código?
naught101
@ naught101 Ah, eu estava lendo blockquote como backquote. No entanto, aspas triplas de fato não envolvem.
Kamil S Jaron
3
Eu prefiro essa solução universal. Também gosto de usar emojis Unicode para prefixar a nota, como > ℹ️ This is an informationou > ⚠️ This is a warning.
pierre_loic
1
Esta e a confusão da mesa são as únicas respostas portáteis que resolvem essa questão. A regra difícil kludge proposta pela resposta superior falha em mostrar uma caixa e, portanto, falha em resolver esta questão. Na verdade, essa resposta, juntamente com o mod de ícones Unicode de @pierre_loic, replica principalmente as notas reStructuredText .
Cecil Curry
16

A solução mais simples que encontrei para exatamente o mesmo problema é usar uma tabela de várias linhas com uma linha e nenhum cabeçalho (há uma imagem na primeira coluna e o texto na segunda):

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

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

Outra abordagem que pode funcionar (para PDF) é usar a diretiva fbox padrão do Latex :

 \fbox{My text!}

Ou o módulo FancyBox para recursos mais avançados (e caixas com melhor aparência): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox .

Etienne Savard
fonte
1
Você sabe se é possível definir como a nota de marcação do pandoc ficará dentro do arquivo de modelo do Pandoc? Por exemplo, editando ~ / .pandoc / templates / default.latex?
tmaric
11

Use a extensão de admoestação . Para mkdocs , ele pode ser configurado no mkdocs.ymlarquivo:

markdown_extensions:
    - admonition

Em seguida, insira a nota em seus arquivos md da seguinte maneira:

!!! note

     This is a note.

Veja um exemplo aqui .

Boni García
fonte
8

Semelhante à solução de Etienne, uma tabela simples formata bem:

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

Outra alternativa (que vem com mais ênfase) é fazer do conteúdo o cabeçalho de uma tabela sem 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.|
|-|-|

Finalmente, você pode incluir uma linha horizontal (quebra temática) para criar uma caixa fechada (embora o estilo da linha seja um pouco diferente da linha do cabeçalho na tabela):

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

---

Observe a linha vazia após o texto.

Gordon Bean
fonte
Gosto muito dessa solução, mas ao converter via pandoc e xelatex para pdf, parece que aloca 50% para a NOTEcoluna " " e 50% para a outra; pode-se usar tabelas de várias linhas conforme stackoverflow.com/questions/27219629 - mas existem outros problemas de formatação.
sdbbs
6

Aqui está um exemplo simples baseado em látex.

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

o que resulta em: insira a descrição da imagem aqui

Infelizmente, por ser látex, você não pode mais incluir markdown dentro da caixa TODO (o que não é um grande problema, normalmente) e não funcionará ao converter para formatos diferentes de PDF (por exemplo, html).

naught101
fonte
5

Os métodos a seguir funcionam no GitHub, no GitLab ... e no Stackoverflow , que agora usa CommonMark !


> Caixa One-Line feita com Blockquote

Caixa de uma linha feita com Blockquote


`Caixa One-Line feita com Backticks`

One-Line Box made with Backticks


`` `
Caixa feita com Backticks Triplos`
``

Box made with Triple Backticks  


~ ~ ~
Caixa feita com Triplo Tils
(remova os espaços entre os Tis para fazer este trabalho)
~ ~ ~

Box made with Triple Tildes


Caixa feita com quatro espaços no início de cada linha:

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


... ou usar linhas horizontais?

Três traços (---) formam uma linha horizontal:


Nota : “Seu foco determina sua realidade.” - Qui-Gon Jinn.


Para mais configurações, recomendo fortemente o excelente Guia de Markdown do GitLab .
Você também pode verificar a sintaxe de formatação básica do GitHub menos detalhada .
Você pode comparar as implementações do Markdown usando o Babelmark .

Dicas úteis:

  • para forçar uma nova linha, coloque dois espaços no final da linha;

  • para escapar de caracteres especiais, use \.

Kotchwane
fonte
3

Você já tentou usar guias duplas? Para fazer uma caixa:

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

Ele funciona para mim em um documento Rmarkdown regular com saída html. A parte com abas duplas deve aparecer em uma caixa retangular arredondada cinza claro.

Cho Jay
fonte
Funciona no VS Code e no GitHub também!
Nagev
Esse é um bloco de código.
CivFan