2012-04-04 24 views
13

Xem xét một cuốn sách ở định dạng DocBook có thể được thực hiện theo kiểu "mô-đun", tôi hy vọng tôi có thể làm tương tự với AsciiDoc và chia các chương và phần cấp một trong các tệp riêng biệt. Thật không may tài liệu không nói bất cứ điều gì về điều này. Giải pháp duy nhất tôi có thể thấy cho đến nay là viết bộ tiền xử lý AsciiDoc của riêng tôi sẽ hợp nhất tất cả các phần "-files" và tạo ra cuốn sách. Có ai đó giải quyết vấn đề này ngay bây giờ không?Có thể có sách AsciiDoc mô-đun (bao gồm một vài tệp) không?

+1

Cách chọn câu trả lời? ;) – sjas

+0

Tôi không thấy nó, cho đến khi bạn viết bình luận! :) Làm xong! – DejanLekic

Trả lời

4

Một lựa chọn được bao phủ trong hướng dẫn sử dụng: http://www.methods.co.nz/asciidoc/userguide.html#X90

Một lựa chọn khác sẽ được để viết một kịch bản đó sẽ cat tất cả các file phần lại với nhau sau đó vượt qua kết quả để asciidoc sử dụng stdin. Điều đó có thể trông giống như cat part1.txt part2.txt part3.txt | asciidoc -. Xin lưu ý rằng đôi khi có vẻ có vấn đề khi cung cấp đầu vào thông qua stdin. Cũng lưu ý rằng có thể cần phải ngắt dòng phụ ở cuối mỗi phần tệp để ngăn không cho cat ảnh hưởng đến định dạng.

+1

Có, giải pháp bạn đề xuất là cách tôi thực hiện ngay bây giờ (và được giải thích trong OP) – DejanLekic

4

Dưới đây là một ví dụ trong trường hợp bất cứ ai đang tìm kiếm cách để làm điều này.

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

Tôi đã thiết lập một khuôn mẫu cuốn sách mà tôi sử dụng trong tất cả các bằng cuốn sách, bạn có thể tìm thấy nó ở đây: 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. 
//// 

Tôi không chia chương trên các tập tin hơn vì khi bạn bao gồm một tập tin asciidoc mất các đường dẫn tập tin bao gồm có phụ huynh mới bao gồm, nhìn cây này:

. 
|-- 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 
  • Khi tôi đang ở file 01.và tôi phải bao gồm feedback.adoc Tôi sẽ sử dụng include::capitulos/feedback.adoc[]
  • Nhưng nếu tôi ở tập tin cap1.adoc, bạn sẽ phải sử dụng include::feedback.adoc[] (vì chúng ở cùng một thư mục).

Tôi nghĩ rằng dễ dàng hơn để giữ tất cả được bao gồm ở cùng một nơi, nó hoạt động cho tôi. Tôi chỉ bao gồm các mã bằng cách khác.

+0

Cấu trúc thư mục tốt. Đặc biệt, khi bạn có thêm tài liệu mã nguồn cho mỗi chương. –

+0

Tôi không chắc chắn, nhưng tôi nghĩ rằng các công cụ 'asciidoc' và 'asciidoctor' bao gồm các tệp khác nhau. Bạn phải sử dụng cấu trúc mà công cụ bạn hỗ trợ. –

Các vấn đề liên quan