如何缩进几行Markdown标记?

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

760304 次浏览

markdown的原生功能无法做到这一点。然而markdown允许内联HTML,因此编写

      This will appear with six space characters in front of it

会产生:

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

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

不管怎样,降价并不是作为一个布局的工具,它是为了简化网络写作的过程,所以如果你发现自己扩展了它的功能集来做你需要做的事情,你可能会看看你是否使用了正确的工具。看看格鲁伯的文件:

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

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

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;}到整个标记区域的css。

这是一个旧的线程,但我认为markdown的blockquotes('> ')将是最好的:

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

  • 列出第一个条目<br/>
    . # 缩进行# EYZ0
    # EYZ0
    And some more..
  • . <李>第二个条目
      <李>分项# EYZ0
      你好!李< / > 李< / ul > < / >

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

所以

< p > <代码> *一级 +二级标签 < /代码> < / p >

如果你真的必须使用标签,并且你不介意灰色背景色和填充,<pre>标签可能工作(如果支持的话):

<pre>
This        That        And             This
That        This        And             That
</pre>
This        That        And             This
That        This        And             That

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

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

< p > <代码> $\qquad$我的文本行… < /代码> < / p >

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

另一种选择是使用像StackEdit这样的降价编辑器。它将html(或文本)转换为所见即所得编辑器中的markdown。您可以在编辑器中创建缩进,标题,列表,它将以markdown格式显示相应的文本。然后您可以保存、发布、共享或下载该文件。你可以在他们的网站上访问它-不需要下载!

直接使用一个不间断的空格 (与不同!)

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

为了回答MengLu和@lifebalance在回应SColvin的回答时提出的问题(我更喜欢它提供的控件的接受答案),似乎你可以在将显示设置为none时只针对列表的父元素,必要时添加一个周围元素。因此,如果我们假设我们在一个目录中这样做,我们可以扩展SColvin的答案:

超文本标记语言

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

看看这个“>”是否有用:

Line 1
> line 2
>> line 3

请使用硬空格

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

结果

样本代码
在一个非常丑陋的代码
中的第5个位置 第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.

问题

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

好吧,在你的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 output

对于引用/缩进的段落,这个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."_ | |
|

呈现为:

enter image description here

为了完整起见,更深入的项目列表如下:

嵌套的更深层次: ----在这里留下一个空行 *第一级A项目-前面没有空格的子弹字符 *二级Aa物品- 1格足够 *三级Aaa物品- 5个空格最少 *第二级Ab项目- 4个空格也可能 *第一级B项

嵌套的更深层次:

  • 第一级A项-项目符号前面没有空格
    • 秒级Aa项目- 1个空格足够
      • 第三级Aaa物品-最少5个空格
      • 李< / ul > < / >
      • 第二级Ab项目-也可能有4个空格
      • 李< / ul > < / >
      • 第一级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.
        

如果你用的是项目符号,试试这个:

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

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

在gitlab.com上,一个单独的en空间(U+2002)和一个单独的em空间(U+2003)可以正常工作。

可能其他的重复或组合的不精确的空格字符也足够了。

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

不是所有的降价处理器都支持这个选项,但是可以广泛使用:降价指南-定义列表

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编辑器,您可以看到这一点

 DL渲染在Stack Edit中的截图

使用非换行空格开始行的一个问题是,如果你的行足够长,那么当它溢出到第二行时,溢出行的第一个字符从左开始,而不是从上一行的第一个字符下面开始。

如果你的系统允许你将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节),但我所使用的所有浏览器都很乐意缩进这些标记之间的内容。

令人惊讶的是,还没有人提出只使用divpadding的想法,所以你可以这样做:

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

我会使用 在我看来干净多了。

作为一个变通办法,我建议插入一个竖条(|),后面跟着硬空格(Alt- code在Windows: Alt+0160)。这保留了条后的缩进,从而为原始和渲染Markdown提供了一个视觉上可接受的解决方案。

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