通常,我想在列表中包含代码示例,例如:


项目一
项目二,例如:
private bool ItemTwo()
{
    return this.IFeelLucky;
}


第3项

问题是,没有一种使用Markdown进行操作的直观好方法。这是可行的,但是您必须做一些格式化的黑魔术才能做到这一点,但这并不是“好”的事情。

产生此结果的来源:

1. Item One
2. Item Two, for example:
<br/><br/><pre><code>private bool ItemTwo()
    {
        return this.IFeelLucky;
    }</code></pre>
3. Item Three



我希望能够以这种方式进行操作:

1. Item One
2. Item Two, for example:

    private bool Test()
    {
        return this.IFeelLucky;
    }

3. Item Three


this:


项目一

项目二,例如:

私有布尔Test()
{
返回此。IFeelLucky;
}

项目三


返回到FAQ索引

评论

将代码块的可能重复项放置在列表项之后时,格式不正确

作为重复的FAQ问题,似乎有点傻了,要么朝另一个方向关闭,要么移动FAQ标签。

#1 楼

代码可以在markdown中使用(请参见此处)-您只需要留空行,然后至少缩进8个空格。

下面的文本

* example

        this.isSomeCode = true;

*  
        addMoreCode();


将生成以下内容:



示例

this.isSomeCode = true;


addMoreCode();



评论


我懂了。我以某种方式没有尝试过,在markdown编辑帮助页面上也错过了它。

–lc。
09年7月9日在14:10

那是因为它看起来非常违反直觉。感谢您发布此信息,我一直对做同样的事情感到绝望。

–fool4耶稣
2014年1月8日14:53

然后,应该有一种更简单的增加或减少缩进的方法,因为我所做的只是使用预定义的Ctrl-J缩进机制,因此它不起作用。谁能知道您必须多做4个空格,然后如果您有很多行,则必须为每一行插入这些行。不仅违反直觉,而且令人讨厌。我确实知道,如果您在一行的开头放置一个字符,则可以强制其移动,但是这也不直观,尤其是要使用小写字母。

–阿德里安
2015年3月25日,0:10

@ a_m0d,如何在没有第一个悬挂线示例的情况下做到这一点?

–起搏器
15年8月5日在8:33

@Pacerier我在最后一行添加了一个示例-基本上只需添加项目符号点,在其后面留两个空格(使其成为列表项),然后在下一行开始代码

– a_m0d
15年11月16日在13:46

@ a_m0d,实际上是布拉德有一天用<!-->解决了这个问题,但是很好,这种解决方案更好,更直接。

–起搏器
16 Jan 20'9:40



#2 楼

如果要向列表项添加代码块,则必须为该列表的每个级别添加额外的4个空格。您还必须确保在代码块之前留空行。



 =“ lang-D prettyprint-override”> code block outside of a list
  



主列表

 code block
 




子列表

 code block
 




 second code block
 




sub2列表

< pre class =“ lang-D prettyprint-override”> code block




sub3列表

 code block
 







 up two list levels
 





 # 4↴
    code block outside of a list

- Main list
#     8↴
        code block
# 4↴
    - sub list

#        12↴
            code block
#     8↴
        <!-- --> # can also be used to set highlighting <!-- language: lang-none -->
#        12↴
            second code block
#     8↴
        - sub<sup>2</sup> list

#            16↴
                code block
#        12↴
            - sub<sup>3</sup> list
#                20↴
                    code block
#     8↴
        <!-- -->
#        12↴
            up two list levels
 


如果您需要强制Markdown处理器开始新的部分,只需在适当的级别在自己的行上添加<p/><!-- -->。这就是我设法在列表中跟随此答案的代码块的方式。如果您确实使用<!-- -->,则也可以使用它来设置以下代码块的突出显示模式(<!-- language: lang-none -->)。

评论


很好的例子,谢谢。

–嘎嘎吉qua德
09年12月10日下午5:44

技巧很棒-谢谢!

–fbrereto
2010-2-3在17:45


我现在使用HTML注释,而不是



–布拉德·吉尔伯特(Brad Gilbert)
2010-2-3在18:34


如果在编辑框上方的格式栏上的代码按钮执行了此操作,那就太好了。

–杰伊·埃尔斯顿(Jay Elston)
2010年5月13日在17:23

+1:您还必须确保在代码块之前留空行

–亚伦·J·朗(Aaron J Lang)
2013年9月10日上午9:40

@BradGilbert,没有上一行怎么办?如果使用

,则不会出现“点”(或数字)。

–起搏器
15年8月5日在8:35


@Pacerier尝试使用<!-->。 (这只是一个猜测,我不知道您在说什么。如果您发布该帖子的链接,我可以查看来源并告诉您您需要做什么。)

–布拉德·吉尔伯特(Brad Gilbert)
15年8月5日在15:25

@BradGilbert,尼斯,<!-->在Chrome上有效。我认为您刚刚发明了解决此问题的方法。

–起搏器
15年8月11日在21:13

@BradGilbert,我找到了一个更好的解决方案:meta.stackexchange.com/questions/3792/…

–起搏器
16 Jan 20'9:41



#3 楼

这全部记录在编辑帮助中,即编辑器上方的小[?]按钮。

它也从每个编辑页面的侧边栏中链接。

https:// meta.stackoverflow.com/editing-help

评论


好。现在,我再次看到它。不知何故我第一次错过了它。

–lc。
09年7月9日在14:09

希望我可以接受多个答案,因为这也确实有帮助。

–lc。
09年7月9日在14:11

您应该编辑该指南以包括@BradGilbert'还必须确保在代码块之前留空行'

–亚伦·J·朗(Aaron J Lang)
2013年9月10日9:42



您能否为此添加UI支持?文本框上方的{}按钮仅在多次单击时切换缩进,而不会增加缩进。必须在长代码块上手动执行此操作(或将其来回复制到文本编辑器),这非常麻烦。

–sundar-恢复莫妮卡
2013年9月18日在17:34

尽管此链接可以回答问题,(请从您所有的LQP审核经验中回顾此评论的其余部分)

– iBug说恢复莫妮卡
18年1月25日在18:09

这是解释此特定问题的帮助文档的特定部分。

–erik.weathers
19年5月3日,19:43



#4 楼

如果要以代码块而不是文本开头的列表项,则需要在项目符号或数字后至少添加一个空格字符,然后进行两次换行,然后再开始以8个空格缩进代码块。 br />
在以下示例中,换行符用↵符号表示。



unordered


 - ↵
↵
        example




ordered


1. ↵
↵
        example



也请参见此答案以获取真实示例。

评论


行高确实有点尴尬...

– BoltClock是独角兽
2011年12月25日,1:13

如何显示“点”(或数字索引)?

–起搏器
2015年8月5日在8:36



@Pacerier:您的意思是“ 1”中的点。它应该在那里。

– BoltClock是独角兽
15年8月5日在9:46

好的,似乎可以在FireFox上使用...但这是Chrome看到的内容:i.stack.imgur.com/yaKGq.png

–起搏器
2015年8月5日在10:06



更新:Brad通过<!-->meta.stackexchange.com/questions/3792/…设法做到了

–起搏器
15年8月11日在21:15

@Pacerier:哇。另一个愚蠢的Chrome错误。

– BoltClock是独角兽
15年8月12日在4:16

#5 楼

1. Item One
2. Item Two, for example:

    ```private bool Test()
    {
        return this.IFeelLucky;
    }
    ```

3. Item Three


作品:


项目一

项目二,例如:

private bool Test() { return this.IFeelLucky; }

第3项

或再次缩进以得到更漂亮的代码块:

1. Item One
2. Item Two, for example:

        private bool Test()
        {
            return this.IFeelLucky;
        }

3. Item Three


像这样:


项目1

项目2,例如:

private bool Test()
{
    return this.IFeelLucky;
}


项目3


评论


没有第一条挂线怎么办?

–起搏器
2015年8月5日在8:37

@Pacerier是什么意思?

– Cees Timmerman
15年8月5日在9:49

以您的示例数字“ 2”为例,悬挂线为第二项。没有挂线怎么办?

–起搏器
2015年8月5日在10:03



@Pacerier我仍然不确定“挂”是什么意思,但是可以将其删除。

– Cees Timmerman
15年8月5日在11:29

如果我将其删除,则该点将在Chrome中消失。参见meta.stackexchange.com/questions/3792/…。但无论如何,谢谢,布拉德解决了问题:meta.stackexchange.com/questions/3792/…

–起搏器
2015年8月11日在21:09



错了三连引号仅在Github Flavored Markdown中触发代码块,而不在官方Markdown中(至少在Stack Exchange中使用)触发代码块。您拥有四个独立的内联代码。

–拉登·罗斯伯勒(Radon Rosborough)
17年3月14日在18:06

三重反引号每行可节省4个空间,但需要一个统一的代码块。我不明白为什么该块被识别为代码,但这些行分别呈现。

– Cees Timmerman
17年3月15日在15:57

@CeesTimmerman这是因为Markdown支持使用任意数量的反引号进行内联代码格式化。这是为了允许在您的内联代码中包含反引号,例如````````````````以给出````````(尽管注释显然不支持此功能) 。现在,Stack Exchange IMO应该使用GFM,因为在基于Web的编辑器中要求代码缩进是荒谬的,在这种编辑器中没有人查看源代码,而TAB键无效。但是就目前而言,该技术在客观上是错误的,因为它不会产生Markdown代码块。

–拉登·罗斯伯勒(Radon Rosborough)
17年7月8日在22:04