是否可以使用模块化的AsciiDoc书(由少量文件组成)?

Dej*_*kic 16 asciidoc

考虑到DocBook格式的书籍可以以"模块化"的方式完成,我希望我可以用AsciiDoc做类似的工作,并将章节和第一级部分分开放在不同的文件中.不幸的是,文档没有说明这一点.到目前为止,我看到的唯一可能的解决方案是编写我自己的AsciiDoc预处理器,它将合并所有"部分"文件并生成书.有人现在解决了这个问题吗?

sja*_*jas 14

asciidoc cheatsheet的两个示例方法:http://powerman.name/doc/asciidoc

include::footer.txt[]
Run Code Online (Sandbox Code Playgroud)

要么

[source,perl]
----
include::script.pl[]
----
Run Code Online (Sandbox Code Playgroud)


Edu*_*ana 13

我已经设置了一本书模板,我可以在书中找到它,你可以在这里找到它:asciidoc-book-template-with-rake-and-github

= Nome da disciplina
:doctype: book
:lang: pt-BR
:ascii-ids:
:showcomments:
:gitrepo: https://github.com/xxx/yyy
:code_dir: code
:image_dir: imagens

include::capitulos/prefacio.adoc[]

////
= Nome da Parte =
////

include::capitulos/cap1.adoc[]
include::capitulos/feedback.adoc[]
include::capitulos/cap2.adoc[]
include::capitulos/feedback.adoc[]
include::capitulos/cap3.adoc[]
include::capitulos/feedback.adoc[]
// ...
include::capitulos/glossario.adoc[]
include::capitulos/respostas.adoc[]

////
Always end files with a blank line to avoid include problems.
////
Run Code Online (Sandbox Code Playgroud)

我没有拆分更多文件的章节,因为当你包含一个文件asciidoc将包含的文件路径作为新包含的父类时,看看这个树:

.
|-- capitulos
|   |-- cap1.adoc
|   |-- cap2.adoc
|   |-- cap3.adoc
|   |-- code
|   |   `-- cap1
|   |       |-- helloworld.c
|   |       `-- Makefile
|   |-- feedback.adoc
|   |-- glossario.adoc
|   |-- prefacio.adoc
|   |-- respostas.adoc
|   `-- symbols.adoc
|-- docinfo.xml
|-- livro.asc
`-- wip.adoc
Run Code Online (Sandbox Code Playgroud)
  • 当我在文件中时livro.adoc,feedback.adoc我将使用包含的内容include::capitulos/feedback.adoc[]
  • 但是如果我在文件中cap1.adoc你必须使用include::feedback.adoc[](因为它们在同一目录下).

我认为将所有包含保存在同一个地方更容易,它对我有用.我只使用其他方式包含代码.


小智 6

这是另一个例子,以防任何人正在寻找如何做到这一点.

Book Title Goes Here
====================
Author's Name
v1.1, 2012-11
:doctype: book
:icons:
:max-width: 45em

// Push titles down one level
:leveloffset: 1
include::chapter1.asciidoc[tabsize=4]

include::chapter2.asciidoc[]

include::chapter3.asciidoc[]

include::../../common/appendix/MigrationNotes.asciidoc[]

include::glossary.asciidoc[]

// Return to normal title levels
:leveloffset: 0

Index
=====
Run Code Online (Sandbox Code Playgroud)


rim*_*ojr 5

用户指南中介绍了一种选项:https ://asciidoc.org/userguide.html#X90

为了解释用户指南,创建一个顶级包装文档,该文档使用include::宏添加所需的内容和:leveloffset:属性来调整标题级别。

另一种选择是编写一个脚本,将cat所有部分文件放在一起,然后使用标准输入将结果传递给 asciidoc。这可能看起来像cat part1.txt part2.txt part3.txt | asciidoc -。请注意,通过标准输入提供输入时有时会出现问题。另请注意,每个零件文件末尾可能需要额外的换行符,以防止cat影响格式。