Org-export: Làm cách nào để bao gồm tệp HTML được tạo trước khi xuất org sang HTML?


7

Tôi đang viết lại trang chủ cá nhân của mình dưới dạng tệp org mà tôi xuất sang HTML. Trong tài liệu HTML này, tôi muốn bao gồm nội dung của một số đoạn HTML được tạo trước được lưu trữ trong các tệp khác (danh sách các ấn phẩm của tôi được tạo bởi bibtex2html).

Đây là một tài liệu ví dụ:

* My personal home page
** Articles
[insert HTML file with list of articles here]

** Posters
[insert HTML file with list of posters here]

Tôi đã thử sử dụng #+INCLUDE:nhưng nó thoát khỏi tất cả HTML và do đó hiển thị nguồn HTML trong trang web kết quả không phải là đoạn HTML được kết xuất.

Tôi cũng đã thử như sau

#+BEGIN_HTML
#+INCLUDE: "file.html"
#+END_HTML

nhưng lệnh #+INCLUDEkhông được diễn giải bên trong khối HTML.

Có vẻ như có một cách dễ dàng để đạt được điều này nhưng tôi dường như không thể tìm thấy nó.


Đầu tiên tôi sẽ xem xét việc xác định một thích hợp :html-preamblehoặc a :html-postamble, có thể sử dụng một #+SETUPFILE:để gọi nó. Một cách tiếp cận khác là thêm một org-export-html-final-hook, có thể với sự giúp đỡ từ auto-insert.
Brian Z

1
Cảm ơn @BrianZ vì những gợi ý này. Thật không may, :html-preamble:html-postamblesẽ không hoạt động vì tôi cần chèn các đoạn HTML vào giữa tệp không ở đầu và cuối. org-export-html-final-hookđược đề cập trong ChangeLog nhưng tôi không thể tìm thấy định nghĩa của nó ở bất cứ đâu trong nguồn. aproposcũng không biết điều đó. Tôi sẽ đăng một yêu cầu tính năng cho một cờ nguyên văn cho #+INCLUDE.
tmalsburg 18/03/2015

Câu trả lời:


8

Cf. đoạn thứ hai trong hướng dẫn sử dụng Org trên #+INCLUDEbạn có thể lưu trữ những gì bạn muốn bằng cách sử dụng (cú pháp Org v9)

#+INCLUDE: "file.html" export html

Đối với Org v8 bạn sẽ viết #+INCLUDE: "file.html" html.

Chèn này là một khối và yêu cầu org-mode v8.3 trở lên.

11.4 Bao gồm các tệp

Trong quá trình xuất, bạn có thể bao gồm nội dung của tệp khác. Ví dụ: để bao gồm tệp '.emacs' của bạn, bạn có thể sử dụng:

 #+INCLUDE: "~/.emacs" src emacs-lisp

Tham số đầu tiên đặt tên cho tệp cần bao gồm. Tham số thứ hai và thứ ba tùy chọn chỉ định đánh dấu (ví dụ: 'ví dụ' hoặc 'src') và, nếu đánh dấu là 'src', ngôn ngữ để định dạng nội dung.


1
Như tôi đã nói trong câu hỏi ban đầu, điều này không hoạt động. Nó thoát tất cả HTML sao cho tôi thấy nguồn HTML nhưng không phải là phiên bản được kết xuất của HTML trong tệp đầu ra.
tmalsburg 18/03/2015

Ok, nó hoạt động nhưng chỉ trong chế độ org phiên bản 8.3 (không ổn định). Có lẽ bạn có thể thêm phần thông tin quan trọng đó vào giải pháp. Cảm ơn bạn.
tmalsburg 18/03/2015

Cùng một thử nghiệm với org mới nhất từ ​​github 8.3.4, tôi cố gắng bao gồm mã html từ htmlcommentbox.com để cho phép nhận xét.
barrios

3

Tôi đang sử dụng chế độ org 8.2.10

Mặc dù tôi đã mong đợi #+INCLUDE: "path" htmlđể làm việc, nó đã định dạng nội dung tệp trong <p>thẻ.

Để khắc phục sự cố này, tôi đã sử dụng khối mã sh:

#+BEGIN_SRC sh :exports results :results value html
#!/bin/bash
/bin/cat ~/path/to/file.html
#+END_SRC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.