在 Asciidoctor 中嵌套项目符号列表和段落

mlj*_*jrg 5 asciidoc asciidoctor

我应该如何编写 Asciidoc(tor) 以获得以下输出:

* item 1
  * item a
    paragraph 1 inside item a
      * item a.1 inside paragraph 1 inside item a
        paragraph a.1 inside item a.1
      * item a.2 inside paragraph 1 inside item a
        paragraph a.2 inside item a.1
    paragraph 2 inside item a
  * item b
    paragraph 1 inside item b
* item 2
Run Code Online (Sandbox Code Playgroud)

更新:@TigerTV.ru 提出了一个不错的技巧,但它需要能够在项目符号列表中隐藏项目符号。如何才能做到这一点?

谢谢

joh*_* j. 5

https://asciidoctor.org/docs/user-manual/#attaching-to-an-ancestor-list

\n
\n

您可能会发现需要将块内容附加到父列表项而不是当前列表项。换句话说,您希望将块内容附加到父列表项,以便它成为子列表的同级项。为此,您可以在列表延续之前添加一个空行。

\n
* parent list item\n** child list item\n\n+\nparagraph attached to parent list item\n
Run Code Online (Sandbox Code Playgroud)\n
\n

更复杂的例子:

\n
* Foo\n** Aaa\n** Bbb\n\n+\nContinuation of Foo\n* Bar\n+\nContinuation of Bar\n* Baz\n+\nContinuation of Baz\n\n** Ccc\n** Ddd\n* Xyz\n
Run Code Online (Sandbox Code Playgroud)\n

笔记:

\n
    \n
  • Bbb 之后需要空行。这是设计使然:

    \n
    \n

    空行向列表延续发出信号,将其移出当前列表,以便将该块附加到父列表的最后一项。

    \n
    \n
  • \n
  • Ccc 之前还需要空行。目前这是一个悬而未决的问题#2509

    \n
  • \n
\n
\n

附加到祖父母列表项的块:

\n
* grandparent list item\n** parent list item\n*** child list item\n\n\n+\nparagraph attached to grandparent list item\n
Run Code Online (Sandbox Code Playgroud)\n

使用空行退出嵌套可能会让人感觉很脆弱。完成同样事情的更可靠的方法是将嵌套列表包含在一个开放块中。这样,它\xe2\x80\x99就可以清除嵌套列表的结束位置和封闭列表的继续位置:

\n
* grandparent list item\n+\n--\n** parent list item\n*** child list item\n--\n+\nparagraph attached to grandparent list item\n
Run Code Online (Sandbox Code Playgroud)\n
\n


rim*_*ojr 3

认为这会起作用:

* item 1
 ** item a +
    paragraph 1 inside item a
+
--
*** item a.1 inside paragraph 1 inside item a +
    paragraph a.1 inside item a.1
*** item a.2 inside paragraph 1 inside item a +
    paragraph a.2 inside item a.1
--
+
paragraph 2 inside item a
 ** item b +
    paragraph 1 inside item b
* item 2
Run Code Online (Sandbox Code Playgroud)

使用 Asciidoctor 进行测试1.5.6.1