如何在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.