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


360

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


12
可惜的是Markdown不支持这一点。这是缺少的基本功能。
Josh Noe

5
: 呢?
Frode Akselsen

4
在Markdown实现中,对定义列表使用:不是通用的,但是如果您的Markdown变体支持它,则可以完美地工作。您应该做出一个真正的答案。
Alex Dupuy

Answers:


383

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


12
可以在 Markdown文件中插入(Unicode:\ 2002),并且它们不会像 在源文件中那样显示-仅当您呈现文件时。只需在操作系统上锻炼快捷键即可插入此字符。
vaughan

1
块引号是执行此操作的好方法(请参阅@ChrisV的答案)
drevicko 2014年

如果我想使用缩进来对齐文本怎么办。例如,我希望两行中的第二个单词从同一位置开始(就像编码员喜欢使用赋值运算符一样=)。
罗伊2014年

3
 对于简单和简单的缩进来说非常有用。没有风格/字体的变化,只是压痕👍
格林

5
长文本中的包装线不会缩进,您可能不需要在布局中缩进。调整渲染视图的大小以进行测试。另外, 离选项卡更近。
dimmech

76

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

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>

此方法具有很大的优势,当您查看原始文本时,它也很有意义。

如果您担心自己看不到项目符号要点,则应该(取决于您使用markdown的位置)能够将li {list-style-type: none;}整个mark down区域添加到CSS中。


5
不错的技巧,但是我只想禁用Markdown的一部分(及其生成的HTML)的可见项目符号,而不是全部禁用。有没有一种干净的方法可以做到这一点?
孟露

@MengLu我有相同的要求。您是否完全了解了这一点?
lifebalance 2014年

1
结构上比接受的答案
好得多

请记住,降价可以接受HTML-这是规范的一部分。因此,对于特定列表,没有什么可以阻止您使用HTML来解决此问题。请记住,您可以在markdown中使用HTML,但不能在HTML片段中使用Markdown。<ul> <li style =“ list-style-type:none;”>缩进的内容必须全部为HTML </ li> </ ul>
Hamish Willee

2
这似乎比我接受的答案要好得多。它使您可以更精细地控制缩进文本,更不用说更易读和易于维护了
-Arepo

36

这是一个旧线程,但是我认为markdown的blockquotes('>')对此最合适:


21
如果您不需要缩进指定的数量,并且您不关心获得不同的背景颜色或可能与blockquotes一起使用的其他样式,那么这是一个很好的解决方案。最终,块引用具有语义目的,如果您实际上想将某些内容引为引号,则它们是最好的。
alegscogs 2014年

20
错误。块引号(>)用于创建引号,而不是普通的缩进。它的风格完全不同。
绿色,

25

查看此“>”是否有帮助:

Line 1
> line 2 
>> line 3

这就是使用乳胶标记的Jupyter笔记本电脑中的甜蜜票
vwvan '19

2
请参阅上面的评论:“错误。Blockquotes(>)用于创建引号,而不是普通的缩进。样式完全不同。”
不是用户的用户



10

如果您确实必须使用标签,并且不介意灰色背景色和填充,则<pre>标记可能会起作用(如果支持):

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

7

请使用硬(不间断)空格

为什么要使用另一种标记语言?(我同意上面的@cz)。
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 :)

结果

示例代码
    在非常丑陋的代码中
    处于第五位,在清晰易读的代码中处于第五位,
    再次使用不间断空格:)

不间断空间(或硬空间)的可视表示形式通常是普通空间“”,但是其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激活的聚光灯搜索
wander95

不能,仅当您更改了默认快捷方式时。Spotlight搜索字段使用COMMAND-SPACE触发(COMMAND键类似于Windows键)。OPTION-SPACE(选项类似于ALT)引入了不间断的空间
ePi272314,19年

在Mac上,我本人在Option + Space上有一个快捷键,但是Shift + Option + Space可以代替。
DagHøidahl19年

长句子的换行看起来很丑。
Mike Kormendy

4

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

  • 列出条目一个<br/>
    缩进行<br/>
    <br/>
    以及更多..
  • 第二次进入
    • 子条目<br/>
      你好!

6
为此,您只需要在行末添加两个空格即可。
Pietro

4

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

| | | |
|-|-|-|
|  | _"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."_ | |
|

呈现为:

在此处输入图片说明


2

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

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


2

为了回答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;
}

2

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

并非所有Markdown处理器都支持此功能,但广泛使用:Markdown指南-定义列表

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

您可以通过将上述示例复制粘贴到此站点来查看实际操作:堆栈编辑Markdown编辑器

Stack Edit中DL渲染的屏幕截图


1
&nbsp; 工作完美。谢谢
Kevin Mason


0

另一种选择是使用Markdown编辑器,例如StackEdit。它将WYSIWYG编辑器中的html(或文本)转换为markdown。您可以在编辑器中创建缩进,标题,列表,它将以markdown格式显示相应的文本。然后,您可以保存,发布,共享或下载文件。您可以在他们的网站上访问它-无需下载!


0

好的,在您的R代码中包含一些HTML,我执行了以下代码以在R Markdown中生成纯文本。该<h3 style="text-indent: 15em;">缩进文本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文档的标签,并希望将有效的()文本对齐。

r输出


0

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

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个空格
  • 乙级第一项

    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.
    

0

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

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

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



0

用不间断空格开头的行的问题之一是,如果行足够长,可以换行,则当它溢出到第二行时,溢出行的第一个字符以硬左开始而不是在第一个字符下开始上面的线

如果您的系统允许您将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中是无稽之谈(UL节中没有任何LI项),但是我使用的所有浏览器只是很高兴地缩进了这些标签之间的含义。

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.