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


当前回答

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

其他回答

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

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

请使用硬空格

为什么使用另一种标记语言?(我同意上面的@ 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位在一个清晰易读的代码 再次使用非换行空格:)

非间断空格(或硬空格)的视觉表示通常是一个正常的空格“”,然而,它的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.

问题

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

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

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

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

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

作为一个变通办法,我建议插入一个竖条(|),后面跟着硬空格(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.