2012-04-04 12 views
13

Wenn man bedenkt, dass ein Buch im DocBook-Format "modular" erstellt werden kann, hoffte ich, dass ich AsciiDoc ähnlich machen kann und Kapitel und Abschnitte der ersten Ebene in separate Dateien aufteilen kann. Leider sagt die Dokumentation nichts darüber aus. Die einzige mögliche Lösung, die ich bisher gesehen habe, ist, meinen eigenen AsciiDoc-Präprozessor zu schreiben, der alle "Teile" -Dateien zusammenführt und das Buch generiert. Hat jemand dieses Problem jetzt gelöst?Ist es möglich, ein modulares AsciiDoc-Buch (das aus wenigen Dateien besteht) zu haben?

+1

Wie wäre es mit der Auswahl einer Antwort? ;) – sjas

+0

Ich habe es nicht gesehen, bis du den Kommentar geschrieben hast! :) Erledigt! – DejanLekic

Antwort

4

Eine Option ist in der Bedienungsanleitung behandelt: http://www.methods.co.nz/asciidoc/userguide.html#X90

Eine weitere Möglichkeit, ein Skript zu schreiben wäre, die cat alle Teildateien zusammen dann das Ergebnis an asciidoc mit stdin passieren würden. Das könnte etwa wie cat part1.txt part2.txt part3.txt | asciidoc - aussehen. Bitte beachten Sie, dass bei der Eingabe per stdin manchmal Probleme auftreten. Beachten Sie außerdem, dass am Ende jeder Teildatei zusätzliche Zeilenumbrüche erforderlich sind, um zu verhindern, dass cat die Formatierung beeinträchtigt.

+1

Ja, die Lösung, die Sie vorgeschlagen haben, ist, wie ich es jetzt mache (und im OP erklärt wird) – DejanLekic

4

Hier ist ein weiteres Beispiel für den Fall, jemand sucht, wie dies zu tun.

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 
===== 
9

Ich habe ein Buch-Vorlage einrichten, die ich in allen von Buch verwenden, können Sie es hier finden: 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. 
//// 

I Kapitel nicht auf mehrere Dateien aufgeteilt, denn wenn man eine umfassen Datei asciidoc nimmt die mitgelieferte Dateipfad die Eltern von neu zu sein beinhaltet, aussehen diesen Baum:

. 
|-- 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 
  • Wenn ich die Dateibinund ich was feedback.adoc Ich werde include::capitulos/feedback.adoc[]
  • verwenden Aber wenn ich an der Datei cap1.adoc bin, müssen Sie include::feedback.adoc[] verwenden (da sie im selben Verzeichnis sind).

Ich denke, es ist einfacher zu halten alle umfasst an einem Ort, es funktioniert für mich. Ich füge nur Codes ein, die den anderen Weg benutzen.

+0

Eine gute Ordnerstruktur. Insbesondere, wenn Sie für jedes Kapitel zusätzliche Quelltextdokumente haben. –

+0

Ich bin mir nicht sicher, aber ich denke, dass 'asciidoc' und' asciidoctor' Tools Dateien anders enthalten. Sie müssen die Struktur verwenden, die Sie von Ihrem Tool unterstützen. –