V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Daring Fireball: Markdown
CommonMark
MacDown Open Source Markdown Editor
Marked
GitHub Flavored Markdown
xatest
V2EX  ›  Markdown

Markdown如何表达2个空格的缩进?

  •  
  •   xatest · 2012-05-23 11:32:32 +08:00 · 44932 次点击
    这是一个创建于 4348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在写一份yaml配置文件的说明,需要给出一份示例配置,由于YAML是约定2个空格缩进的,但是用Markdown直接写出来会忽略掉空格,没有缩进。

    例如:(第2行最前面有2个空格,第3行最前面有4个空格)
    global:
    listen:
    - address: 127.0.0.1

    渲染成HTML显示出来是
    global:
    listen:
    - address: 127.0.0.1
    22 条回复    2016-05-01 19:46:40 +08:00
    gastlygem
        1
    gastlygem  
       2012-05-23 11:37:15 +08:00
    使用代码区块吧。Markdown的代码区块是以4个空格或者一个tab打头的,
    chloerei
        2
    chloerei  
       2012-05-23 11:43:44 +08:00
    用代码块,标准是行首4个空格代表代码快
    chenluois
        3
    chenluois  
       2012-05-23 11:44:00 +08:00
    像这样?
    http://cl.ly/GpIK
    9hills
        4
    9hills  
       2012-05-23 11:54:48 +08:00   ❤️ 1
    chenluois
        5
    chenluois  
       2012-05-23 12:08:49 +08:00
    @9hills 为嘛 @ 我呢?
    9hills
        6
    9hills  
       2012-05-23 12:12:37 +08:00
    @chenluois
    1. @错了
    2. ```不是标准Markdown语法,不能通用
    chenluois
        7
    chenluois  
       2012-05-23 12:39:44 +08:00
    @9hills 明白了,被当作菜鸟了。基本 Markdown 的方法 @gastlygem 和 @chloerei 已经说过了,我是在给出另一种选择。:)
    xatest
        8
    xatest  
    OP
       2012-05-23 13:13:27 +08:00
    @gastlygem @chloerei 这个我知道,不可以。我的需求不止是视觉效果的缩进,而是ASCII字符2个空格的缩进,因为yaml的语法规则是严格2个空格缩进,所以渲染出来的结果不能是4空格缩进或者1 tab缩进的效果,这样的代码块作为yaml解析会报语法错误。
    xatest
        9
    xatest  
    OP
       2012-05-23 13:19:10 +08:00
    @9hills 感谢,用<pre><code>包起来可以~
    chenluois
        10
    chenluois  
       2012-05-23 13:23:34 +08:00
    @xatest 汗~ 大家搞了半天,原来你问的是HTML,不是Markdown.
    xatest
        11
    xatest  
    OP
       2012-05-23 13:30:54 +08:00
    @chenluois 嗯,是用Markdown写,然后export to HTML,保证HTML的渲染结果符合YAML语法规则。
    chloerei
        12
    chloerei  
       2012-05-23 13:46:39 +08:00
    打四个空格形成代码块之后,再打两个空格不就是两个空格了吗,四个空格作用和<pre><code>是一样的。
    chenluois
        13
    chenluois  
       2012-05-23 13:49:57 +08:00
    @xatest 如果是这样,@gastlygem 和 @chloerei 的方法就正好满足你的需求啊,不知道为啥你还说不可以。

    按你那三行的例子,写 Markdown 的时候每行最前面多加一个 tab:

    “global:” 那行前面一个 tab,“listen: ” 那行前面一个 tab 加 2个空格,“- address: 127.0.0.1” 那行前面一个 tab 加 4个空格。

    这样 export to HTML 的时候,渲染出来的结果 “listen:” 这行不正好严格缩进2个空格吗?

    是你没弄明白还是我没理解对你的需求?
    xatest
        14
    xatest  
    OP
       2012-05-23 13:57:13 +08:00
    @chloerei 有效,原来如此,还是<pre><code>简单,因为有多行文本。
    xatest
        15
    xatest  
    OP
       2012-05-23 13:59:57 +08:00
    @chenluois 是我误解了,你们的方法都是可行的。原来是一个tab+2个空格,我以为是说一个tab就可以实现2个空格的缩进。
    你是Mou的作者啊,我在Mac下也用Mou来写,感谢~
    chloerei
        16
    chloerei  
       2012-05-23 14:04:09 +08:00
    @xatest 因为标准的空格缩进在没有编辑器良好支持下是比较麻烦,所以出现了 ``` 包裹的代码块语法(fenced_code_blocks)。

    不过要看编译程序是否打开了这个选项。没有的话用 <pre><code> 也行。
    chenluois
        17
    chenluois  
       2012-05-23 14:08:33 +08:00
    @xatest 呵呵,用 Mou 的话,还是首行加 tab 更简单。
    选中多行文本,一个快捷键 command-] 直接对多行同时加 tab,不比手写 <pre><code> 快多了吗?
    chenluois
        18
    chenluois  
       2012-05-23 14:10:44 +08:00
    @xatest 不好意思,打错了,“行首” 非 “首行”。:)
    xatest
        19
    xatest  
    OP
       2012-05-23 14:19:09 +08:00
    @chenluois 语法还在熟悉实践中,快捷键从来没利用起来过,把我的思路拓宽了~
    footearth
        20
    footearth  
       2013-04-23 23:37:20 +08:00   ❤️ 1
    使用 两个 全角 中文空格。
    palmers
        21
    palmers  
       2015-04-21 20:05:32 +08:00
    Markdown 好像有很多隐藏语法
    jiansheng
        22
    jiansheng  
       2016-05-01 19:46:40 +08:00
    @footearth 最佳答案(*^__^*)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5338 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:04 · PVG 16:04 · LAX 01:04 · JFK 04:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.