如何在 Markdown 标记中缩进几行?

Posted

技术标签:

【中文标题】如何在 Markdown 标记中缩进几行?【英文标题】:How to indent a few lines in Markdown markup? 【发布时间】:2011-08-28 02:59:09 【问题描述】:

我想写几行文字。它们应该被正常格式化,除了每一行应该从第 6 列开始。 IE。我不希望代码块格式规则使这块文本看起来像代码,因为我将使用其他格式,如粗体等。如何在 Markdown 中做到这一点?

【问题讨论】:

很遗憾 Markdown 不支持这一点。这是一个缺失的基本功能。 : 呢? 使用 : 定义列表在 Markdown 实现中并不通用,但如果您的 Markdown 变体支持它,这将非常有效。你应该把它作为一个真正的答案。 【参考方案1】:

在 Markdown 的原生功能中无法做到这一点。但是markdown允许内联html,所以写

      This will appear with six space characters in front of it

将产生:

      这将显示前面有六个空格字符

如果您可以控制页面上的 CSS,您还可以使用标签并设置样式,内联或使用 CSS 规则。

无论哪种方式,markdown 都不是用于布局的工具,它旨在简化为 Web 编写的过程,所以如果你发现自己扩展了它的功能集来做你需要的事情,你可以看看是否不是您在这里使用了正确的工具。查看 Gruber 的文档:

http://daringfireball.net/projects/markdown/syntax#html

【讨论】:

可以将  (Unicode: \2002) 插入到 Markdown 文件中,并且它们不会在源文件中显示为   - 仅当您渲染文件时。只需在您的操作系统上使用快捷键即可插入此字符。 块引号是一个很好的方法(见@ChrisV的回答)   (Unicode U+00A0) 文字字符可以通过 option-spacebar 在 macOS 上轻松输入。并且具有良好隐形支持的代码编辑器(例如 TextMate)会将正常空格显示为暗淡的项目符号,将非中断空格显示为更粗的项目符号(但仍然比文本颜色更暗)。 ← 我认为对于 Markdown 来说,一个具有良好 invisibles viz 的编辑器是必不可少的,尤其是因为 MD 的 two-spaces-at-end-of-line=<br/> 语法。   非常适合简单明了的缩进。没有样式/字体变化,只是缩进? 长文本中的换行不缩进,您可能不希望在布局中使用。调整渲染视图的大小以进行测试。此外,  更接近标签。【参考方案2】:

一种方法是使用项目符号点,它允许您指定多个缩进级别。使用两个空格、星号、另一个空格的倍数插入项目符号点 例如:

this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>

这种方法有很大的优势,当你查看原始文本时它也有意义。

如果您担心自己看不到项目符号点,您应该(取决于您使用降价的位置)能够将 li list-style-type: none; 添加到整个降价区域的 css .

【讨论】:

不错的技巧,但我只想禁用 Markdown 的一部分(及其生成的 HTML)的可见项目符号,而不是整个。有没有一种干净的方法可以做到这一点? @MengLu 我也有同样的要求。你有想过这个吗? 请记住,markdown 可以接受 HTML - 它是规范的一部分。所以对于一个特定的列表,没有什么可以阻止你使用 HTML 来解决这个问题。请记住,您可以在 Markdown 中包含 HTML,但不能在 HTML 片段中包含 Markdown。 你的缩进内容必须是 HTML 这似乎比我接受的答案要好得多。它使您可以更精细地控制缩进文本,更不用说更具可读性和更易于维护 赞成。但是请注意,如果在 GitHub 上使用您的降价,例如在 README 中,GitHub 会阻止所有自定义 CSS,因为我和其他人已在各个地方记录,包括我自己在此处的回答中:GitHub README.md center image。【参考方案3】:

这是一个old thread,但我认为markdown 的块引号('>')最适合这个:

【讨论】:

如果您不需要缩进指定的数量,并且您不关心获得不同的背景颜色或可能与块引用一起出现的其他样式,这是一个很好的解决方案。最终,块引用具有语义目的,如果您实际上想将某些内容设置为引用,那么它们是最好的。 错了。块引号 (>) 用于创建引号,而不是简单的缩进。风格完全不同。【参考方案4】:

看看这个“>”是否有帮助:

Line 1
> line 2 
>> line 3

【讨论】:

这是 jupyter notebooks 中使用乳胶标记的最佳选择 参见上面的评论:“错误。块引号 (>) 用于创建引号,而不是简单的缩进。风格完全不同” 这会将文本设置为“引号”,其想法是缩进文本。 &gt; &gt;(with space between) 与 pandoc (v2.11.0.4) 一起使用以在 pdf 中创建一个文本块。虽然它最初是为引用而设计的。【参考方案5】:

制表符,然后是 + 号,然后是空格,然后是你的内容

所以

* level one + level two tabbed

【讨论】:

github/bitbucket markdown 支持类似的缩进规则,没有+:[tab][space]your-text-goes-here【参考方案6】:

请使用硬(不间断)空格

为什么要使用另一种标记语言? (我同意上面的@c z)。 Markdown 的一个目标是使文档即使在纯文本编辑器中也可以阅读。

两种方法的结果相同

代码

Sample code
&nbsp;&nbsp;&nbsp;&nbsp;5th position in an really ugly code  
    5th position in a clear an readable code  
    Again using non-breaking spaces :)

结果

示例代码 在一个非常丑陋的代码中排名第五 代码清晰易读的第 5 位 再次使用不间断空格:)

不间断空格(或硬空格)的视觉表示通常是普通空格“”,然而,它的 Unicode 表示是 U+00A0。 普通空格的 Unicode 表示是 U+0020(ASCII 表中的 32)。 因此,文本处理器的行为可能会有所不同,而视觉表示保持不变。

插入硬空格

| OS        | Input method                      |
|-----------| ----------------------------------|
| macOS     | OPTION+SPACE (ALT+SPACE)          |
| Linux     | Compose Space Space or AltGr+Space|
| Windows   | Alt+0+1+6+0                       |

Some text editor use Ctrl+Shift+Space.

问题

一些文本编辑器可以在复制和粘贴操作中将硬空格转换为公共空格,所以要小心。

【讨论】:

OPTION+SPACE 激活聚光灯搜索 不可能,只有当您更改了默认快捷方式时。 Spotlight 搜索字段使用 COMMAND-SPACE 触发(COMMAND 键类似于 Windows 键)。不间断空格由 OPTION-SPACE 引入(Option 类似于 ALT) 在我的 Mac 上,我自己在 Option + Space 上有一个快捷方式,但 Shift + Option + Space 效果很好。 用长句换行看起来很难看。 另请注意,除非我遗漏了什么,否则在使用降价标题时似乎没有任何方法可以让硬空格用于缩进。在硬空间之前和/或之后尝试使用和不使用“正常”空间。这适用于&amp;nbsp;,但不适用于硬空格。【参考方案7】:

我会使用  在我看来更干净。

【讨论】:

【参考方案8】:

使用数学环境在段落开头放置一个确定的空格怎么样:

$\qquad$ My line of text ...

这对我有用,希望对你也有用。

【讨论】:

【参考方案9】:

如果您确实必须使用标签,并且您不介意灰色背景颜色和填充,&lt;pre&gt; 标签可能会起作用(如果支持):

<pre>
This        That        And             This
That        This        And             That    
</pre>
这个那个和这个 这个那个

【讨论】:

【参考方案10】:

正如@AlexDupuy 在 cmets 中指出的那样,可以使用定义列表。

并非所有降价处理器都支持此功能,但可以广泛使用:Markdown Guide - Definition Lists

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

呈现为 (html):

<dl>
    <dt>Term 1</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
    <dt>Term 2</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
</dl>

通常DT 以类似标题的格式呈现,每个DD 在此下方呈现为缩进文本。

如果您不需要标题/术语,只需使用不间断空格代替定义术语:

&nbsp;
: This is the text that I want indented.  All text on the same line as the preceding colon will be included in this definition.
: If you include a second definition you'll get a new line; potentially separated by a space. <br />Some inline HTML may be supported within this too, allowing you to create new lines without spaces.
: Support for other markdown syntax varies; e.g. we can add a bullet list, but each one's wrapped in a separate definition term, so the spacing may be out.
: - item 1
: - item 2
: - item 3

您可以通过将上述示例复制粘贴到此站点来查看此操作:Stack Edit Markdown Editor

【讨论】:

【参考方案11】:

令人惊讶的是,还没有人想出只使用divpadding 的想法,所以你开始吧:

<div style="padding-left: 30px;">
My text
</div>

【讨论】:

可能是因为您将其包装在 div 中,所以默认的降价功能(如反引号和星号)在 div 内停止工作。 使用 Mdocs,可以通过设置 &lt;div style="padding-left: 30px;" markdown="1"&gt; 来允许在 div 内进行降价【参考方案12】:

用不间断空格开始行的一个问题是,如果行长到可以换行,那么当它溢出到第二行时,溢出行的第一个字符会以硬左开始而不是从下开始它上面一行的第一个字符。

如果您的系统允许您将 HTML 与您的 markdown 混合使用,那么获得缩进的一种轻松愉快的方式是这样的:

<ul>
My indented text goes here, and it can be long and wrap if you like.
And you can have multiple lines if you want.
</ul>

在您的 HTML 中的语义是无意义的(没有任何 LI 项的 UL 部分),但我使用的所有浏览器都只是愉快地缩进这些标签之间的内容。

【讨论】:

这与引用 &gt; 完全相同,但不是引用(在 Github 中测试)。这正是我一直在寻找的。谢谢!【参考方案13】:

检查您是否可以将 HTML 与您的 markdown 一起使用。也许这对你有用:

列表条目一&lt;br/&gt; 缩进线&lt;br/&gt;&lt;br/&gt; 还有更多…… 第二次进入 子条目&lt;br/&gt; 你好!

【讨论】:

要做到这一点,你只需要用两个空格结束行。【参考方案14】:

对于引用/缩进的段落,此 hack 可能会起作用(取决于渲染引擎):

| | | |
|-|-|-|
|  | _"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."_ | |
|

呈现为:

【讨论】:

【参考方案15】:

直接使用不间断空格 (与不同!)。

(您可以插入 HTML 或一些深奥的 markdown 代码,但我可以想出更好的理由来破坏与标准 markdown 的兼容性。)

【讨论】:

【参考方案16】:

为了回答 MengLu 和 @lifebalance 的问题以回应 SColvin 的回答(我更喜欢它提供的控件的公认答案),似乎您可以在将显示设置为时只定位列表的父元素无,如有必要,添加周围元素。因此,如果我们假设我们正在为目录执行此操作,我们可以扩展 SColvin 的答案:

HTML

<nav class="table-of-contents">
  this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>
</nav>

CSS

.table-of-contents ul 
  list-style-type: none;

【讨论】:

【参考方案17】:

另一种选择是使用像StackEdit 这样的降价编辑器。它在 WYSIWYG 编辑器中将 html(或文本)转换为 markdown。您可以在编辑器中创建缩进、标题、列表,它会以 Markdown 格式显示相应的文本。然后,您可以保存、发布、共享或下载文件。您可以通过their website 访问它 - 无需下载!

【讨论】:

【参考方案18】:

好的,在您的 R 代码中添加一点 HTML,我使用以下代码在 R Markdown 中生成纯文本。 &lt;h3 style="text-indent: 15em;"&gt; 将文本缩进 15 个空格。对于原题,将 15 改为 6。

## Option: Du Pont Ratio Concept - (ROE Decomposition)
### (Closed Quotes/Total Premium) = (Closed Quotes/Quotes Issued) X <br>
<h3 style="text-indent: 15em;">
 (Quotes Issued/Renewal Premium) X <br></h3>
<h3 style="text-indent: 15em;">
 (Renewal Premium/Total Premium)</h3>

所以生成的代码给出了我想要的输出格式。我正在为 Markdown 文档使用标签,并希望将 () 文本排成一行。

【讨论】:

【参考方案19】:

为了完整起见,更深的项目符号列表:

Nested deeper levels: ---- leave here an empty row * first level A item - no space in front the bullet character * second level Aa item - 1 space is enough * third level Aaa item - 5 spaces min * second level Ab item - 4 spaces possible too * first level B item

嵌套更深层次:

第一级 A 项目 - 子弹字符前面没有空格 二级Aa项目 - 1个空间就足够了 第三级 Aaa 项目 - 5 个空格分钟 二级 Ab 项目 - 也可以有 4 个空格

一级B项目

Nested deeper levels:
 ...Skip a line and indent eight spaces. (as said in the editor-help, just on this page)
* first level A item - no space in front the bullet character
 * second level Aa item - 1 space is enough
     * third level Aaa item - 5 spaces min
    * second level Ab item - 4 spaces possible too
* first level B item

        And there
        could be even more
        such octets of spaces.

【讨论】:

【参考方案20】:

如果您使用的是要点,请尝试以下操作:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

这是我在设置markdown样式时使用的方法。

【讨论】:

【参考方案21】:

在 gitlab.com 上,单个 en 空格 (U+2002) 后跟单个 em 空格 (U+2003) 效果不错。

可能其他不完全解释的空格字符的重复或组合也足够了。

【讨论】:

【参考方案22】:

作为一种解决方法,我建议插入竖线 (|),后跟硬空格(Windows 上的 Alt 代码:Alt+0160)。这会保留小节后的缩进,从而为原始和渲染的 Markdown 提供视觉上可接受的解决方案。

This is a normal line of text.
|    This is an indented line of text.
|        This is another indented line of text.

【讨论】:

【参考方案23】:

一些 Markdown 实现似乎使用~ 字符进行缩进。

【讨论】:

以上是关于如何在 Markdown 标记中缩进几行?的主要内容,如果未能解决你的问题,请参考以下文章

github上markdown中的删除线代码

github上markdown中的删除线代码

Markdown如何实现首行缩进?

Markdown如何实现首行缩进?

如何在 Visual Studio Code 中隐藏缩进指南?

markdown怎样让代码缩进