使用Pandoc在手册页中嵌套列表

时间:2017-03-21 13:23:26

标签: formatting markdown pandoc man

我正在尝试创建以下联机帮助页,通过指定MarkDown文件并使用PanDoc将其转换为不同的格式(只是用于演示的无意义示例,实际版本有意义,但更长):

-i, --input-type
    Specify the input type. Choices include
    1. float
        * signed
        * unsigned
    2. integer
    3. bool
    Other data types will cause an exception. You should therefore
    be very careful what you put in here.

-o, --output
    The name of the output file.

我正在使用

pandoc myapp.md -s -t man > myapp.man

Pandoc使用以下约定用于此类手册页转换的降价:

**-f** *FILE*, **--input-file**  *FILE*
:   Read input data from *FILE*.

**-o** *FILE*
: Output file.

我玩过各种列表定义,缩进和换行符(行尾有两个空格),但我似乎无法在所有输出(PDF,HTML,man)中使用它。我要么得到*字面解释,要么缺少缩进,或者-i选项的最后一行被包装,以便它的第二个视线缺少缩进。知道如何实现上述目标吗?

2 个答案:

答案 0 :(得分:0)

我怀疑您无法找到也可用作手册页的Markdown格式。这两种格式不是很兼容。

首先,在Markdown中,任何缩进四个或更多空格的内容都是代码块。换句话说,文本作为文字文本传递,而不是解析为Markdown。这意味着你不能在每个标志下缩进文本。

其次,您需要在不同的块级元素之间包含一个空行。规则对此有点模糊,不同的Markdown解析器的行为略有不同,但为了获得一致的结果,最好总是包含一个空行。

最后,要将标志与其描述区分开来,您可能希望将它们作为标题。您应该将内嵌代码跨度中的标志包装起来以保留格式等。

你的Markdown看起来像这样:

## `-i`, `--input-type`

Specify the input type. Choices include

1. float
    * signed
    * unsigned
2. integer
3. bool

Other data types will cause an exception. You should therefore
be very careful what you put in here.

## `-o`, `--output`

The name of the output file.

会像这样呈现:

  

-i--input-type

     

指定输入类型。选择包括

     
      
  1. 浮      
        
    • 签名
    •   
    • 无符号
    •   
  2.   
  3. 整数
  4.   
  5. BOOL
  6.         

    其他数据类型会导致异常。你应该这样做   你在这里放的很小心。

         

    -o--output

         

    输出文件的名称。

或者,您可以将标志设置为内部嵌套内容的外部列表。这可能会使您的格式更接近您想要的普通测试:

* `-i`, `--input-type`

    Specify the input type. Choices include

    1. float
        * signed
        * unsigned
    2. integer
    3. bool

    Other data types will cause an exception. You should therefore
    be very careful what you put in here.

* `-o`, `--output`

    The name of the output file.

这就是:

  
      
  • -i--input-type

         

    指定输入类型。选择包括

         
        
    1. 浮      
          
      • 签名
      •   
      • 无符号
      •   
    2.   
    3. 整数
    4.   
    5. BOOL
    6.         

      其他数据类型会导致异常。你应该这样做   你在这里放的很小心。

        
    7. -o--output

           

      输出文件的名称。

    8.   

虽然其中任何一个都会提供Markdown的好结果,但您可能不希望它们作为手册页。最好的解决方案很可能是编写(或找到)一些脚本,该脚本在手册页和Markdown之间进行转换。

答案 1 :(得分:0)

有点不明显,这可以通过添加空行来实现:

-i, --input-type
:    Specify the input type. Choices include

     1. float
         * signed
         * unsigned
     2. integer
     3. bool

     Other data types will cause an exception. You should therefore
    be very careful what you put in here.

-o, --output
:    The name of the output file.