如何在Markdown中为笔记创建文本框?


86

我正在用markdown编写文档。我正在使用出色的pandoc从markdown源创建docx和tex文件。我希望有一个文本框,向读者提供一些技巧和注释,就像编程书籍通常那样。我无法弄清楚如何在降价中做到这一点。你能帮我吗?


Microsoft在其文档中为此使用了自己的语法,但是在您的环境中不太可能使用。包括在此处是为了完整性和与以下答案的比较。github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…–
brianary

Answers:


95

我通常在markdown文本中放置警告框(例如Note或Warning)的操作(不仅是在使用pandoc时,而且在支持markdown的每个位置)都用两条水平线围绕内容:

---
**NOTE**

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

---

这将是这样的:


注意

它适用于所有降价口味(下面的空白行很重要)。


好处是您不必担心支持哪种markdown风格或安装或启用了哪个扩展。

编辑:正如@ filups21在评论中提到的,似乎水平线由***RMarkdown表示。因此,前面提到的解决方案不能像最初要求的那样适用于所有降价口味。


4
这很有用,但不适用于RMarkdown / Rstduio /
Knitr

1
bjw-rmarkdown中的水平线***之前是空白行。或者,您可以通过以>(以空格开头)开头的行将注释放在大括号内。
filups18年

80

对于GitHub,我通常会插入一个blockquote。

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

变成...

注意: 注释内容。

当然,总会有纯HTML ...


@KamilSJaron:是吗?不,他们不是。您在考虑代码块吗?
naught101 '18

@ naught101啊,我在读blockquote作为反引号。但是,三重反引号确实没有包装。
卡米尔·加隆

3
我更喜欢这种通用解决方案。我还喜欢使用Unicode表情符号为注释添加前缀,例如> ℹ️ This is an information> ⚠️ This is a warning
pierre_loic

1
这和桌面冲突是解决此问题的唯一答案。最佳答案提出硬法则错误没有显示一个方框,因此无法解决这个问题。确实,此答案与@pierre_loic的Unicode图标mod结合在一起,基本上可以复制reStructuredText注释
Cecil Curry

16

对于完全相同的问题,我发现的最简单的解决方案是使用具有一行且没有标题的多行表(第一列中有图像,第二列中有文本):

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

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

另一种可行的方法(适用于PDF)是使用Latex默认的fbox指令:

 \fbox{My text!}

或使用FancyBox模块以获取更多高级功能(以及外观更好的盒子):http ://www.ctan.org/tex-archive/macros/latex/contrib/fancybox 。


1
您知道是否可以定义pandoc-markdown注释在pandoc模板文件中的外观吗?例如,编辑〜/ .pandoc / templates / default.latex吗?
tmaric

11

使用警告扩展名。对于mkdocs,可以在mkdocs.yml文件中对其进行配置:

markdown_extensions:
    - admonition

然后按如下所示在您的md文件中插入注释:

!!! note

     This is a note.

在这里查看示例。


8

类似于Etienne的解决方案,一个简单的表格格式很好:

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

另一种选择(更加强调)是使内容成为无主体表的标题:

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

最后,您可以包括一条水平线(主题间断)以创建一个封闭的框(尽管该线型与表中的标题线有些不同):

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

---

注意文本后面的空行。


我非常喜欢这种解决方案,但是当我通过pandoc和xelatex将其转换为pdf时,似乎它为“ NOTE”列分配了50%,为另一列分配了50%。可以按照stackoverflow.com/questions/27219629使用多行表-但随后还有其他格式问题。
sdbbs

6

这是一个基于乳胶的简单示例。

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

结果是: 在此处输入图片说明

不幸的是,因为这是乳胶,所以您不能再在TODO框中包含markdown(通常这不是一个大问题),并且在转换为PDF(例如html)以外的格式时将无法使用。


5

以下方法可在GitHub,GitLab ...和Stackoverflow上工作,后者现在使用CommonMark


>用Bquotquote制成的单线盒

用Blockquote制成的单线盒


`带反引号的单线盒`

One-Line Box made with Backticks


```
箱体采用三反引号做
```

Box made with Triple Backticks  


〜〜〜
用Triple Tildes制成的盒子
(去掉波浪号之间的空隙以使这项工作有效)
〜〜〜

Box made with Triple Tildes


每行开头用四个空格组成的框

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


...或使用水平线?

三个破折号(-)形成一条水平线:


注意:“您的注意力决定了您的现实。” – Qui-Gon Jinn。


对于更多配置,我强烈建议优秀的《GitLab Markdown指南》
您还可以检查不太详细的GitHub基本格式语法
您可以使用Babelmark比较Markdown实现。

有用的提示:

  • 要强制换行,请在行末放置两个空格;

  • 要转义特殊字符,请使用\。


3

您是否尝试过使用双标签?制作盒子:

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

它在具有html输出的常规Rmarkdown文档中为我工作。双击的部分应出现在一个圆角的矩形浅灰色框中。


也可以在VS Code和GitHub上使用!
Nagev

那是一个代码块。
CivFan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.