18

DocBook 形式の本は「モジュラー」方式で作成できることを考慮して、AsciiDoc で同様のことができ、章と第 1 レベルのセクションを別々のファイルに分割できることを望みました。残念ながら、ドキュメントはこれについて何も述べていません。これまでのところ唯一可能な解決策は、すべての「部分」ファイルをマージしてブックを生成する独自の AsciiDoc プリプロセッサを作成することです。誰かが今までにこの問題を解決しましたか?

4

4 に答える 4

14

asciidocチートシートからの2つの方法の例: http://powerman.name/doc/asciidoc

include::footer.txt[]

また

[source,perl]
----
include::script.pl[]
----
于 2012-12-30T11:07:15.057 に答える
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.
////

インクルード ディレクティブ間の空白行に注意してください。インクルード ファイルの最初と最後の行が隣接するのを防ぎます。ファイルをインクルードすると、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
  • 私がファイルにいるとき、livro.adoc何を含めるfeedback.adocかを使用しますinclude::capitulos/feedback.adoc[]
  • しかし、私がファイルにいるcap1.adoc場合は、使用する必要がありますinclude::feedback.adoc[](それらは同じディレクトリにあるため)。

すべてのインクルードを同じ場所に保持する方が簡単だと思います。それは私にとってはうまくいきます。他の方法を使用するコードのみを含めます。

于 2014-09-30T20:12:54.207 に答える
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
=====
于 2014-07-27T22:43:56.687 に答える
4

1つのオプションはユーザーガイドでカバーされています:https ://asciidoc.org/userguide.html#X90

ユーザーガイドを言い換えると、include::マクロを使用して目的のコンテンツと:leveloffset:属性を追加し、見出しレベルを調整するトップレベルのラッパードキュメントを作成します。

もう1つのオプションは、catすべてのパーツファイルをまとめて、stdinを使用して結果をasciidocに渡すスクリプトを作成することです。それはのように見えるかもしれませんcat part1.txt part2.txt part3.txt | asciidoc -。stdinを介して入力を提供する場合、問題が発生することがあることに注意してください。catまた、フォーマットに影響を与えないように、各パーツファイルの最後に余分な改行が必要になる場合があることに注意してください。

于 2012-05-11T16:08:19.213 に答える