Thay thế nguồn PlantUML bằng hình ảnh được tạo ở chế độ org


7

Tôi viết sơ đồ UML ở chế độ org bằng PlantUML và thường "biên dịch" nó thành HTML để xem kết quả. Có cách nào để hình ảnh hiển thị trong bộ đệm của tôi không?

Tôi cố gắng kích hoạt chế độ iimage nhưng nó không hoạt động tốt. Nó thay thế tên tệp khi bắt đầu khối nguồn.

#+begin_src plantuml :file my-diagram.png
...
#+end_src
#+results:
[[file:my-diagram.png]]

Cả hai tham chiếu đến tên tệp được thay thế và nguồn vẫn ở lại. Có cách nào để ẩn khối nguồn và chỉ hiển thị một thể hiện của hình ảnh không?

Câu trả lời:


6

Tôi không chắc chắn về việc thay thế nguồn bằng một hình ảnh, nhưng bạn có thể có hình ảnh nội tuyến làm kết quả cho các khối nguồn.

Nếu bạn thêm tùy chọn khởi động " inlineimages" vào bộ đệm của mình, mọi liên kết trong bộ đệm của bạn trỏ đến hình ảnh cục bộ mà nó hiểu sẽ được hiển thị.

Nếu bạn không có khối tùy chọn khởi động, nó sẽ chỉ là một dòng ở đầu tệp của bạn trông giống như : #+STARTUP: inlineimages.

Điều này chỉ khắc phục được một nửa vấn đề của bạn mặc dù ... khi bạn C-c C-cchặn một hình ảnh, bạn sẽ nhận được một liên kết chứ không phải là một hình ảnh nội tuyến ...

May mắn thay, bạn có thể khắc phục điều này bằng cách thêm vào phần sau vào cấu hình Emacs của bạn:

(add-hook 'org-babel-after-execute-hook
          (lambda ()
            (when org-inline-image-overlays
              (org-redisplay-inline-images))))

Điều này sẽ cho phép bạn xem hình ảnh nội tuyến khi bạn lần đầu mở bộ đệm cập nhật chúng bằng cách đánh giá nguồn khối.


Bây giờ, đối với toàn bộ doanh nghiệp thay thế nguồn:

Tôi không chắc chắn cách thực hiện việc này trong bộ đệm Org của bạn, nhưng trong xuất Org (sang HTML, PDF, v.v.), nếu bạn không muốn hiển thị các khối nguồn tạo ra kết quả của chúng, bạn có thể thêm một :exports resultsđối số "" vào đầu khối mã của bạn. Điều này sẽ làm cho nó xuất hiện như thể nguồn đã được thay thế bằng kết quả hình ảnh của bạn.


Các phiên bản hiện tại của emacs sẽ xuất plantuml dưới dạng hình ảnh mà không có nguồn theo mặc định. Nếu bạn không muốn xem nguồn trong bộ đệm org, chỉ cần thu gọn dòng mã khối (khóa tab tại Begin_src). Tôi chắc chắn có một cách dễ dàng để tự động thu gọn khối như một phần mở rộng của hook sau khi thực thi nếu ai đó thực sự muốn.
Digicrat

0

Từ chế độ org 8.2.10 trở đi, có thể thêm :eval no-exportđối số vào tiêu đề khối mã. Kết quả là khối mã được thực thi bình thường nhưng không được xuất. Chỉ đầu ra, hình trong trường hợp này, sau khi #+RESULTS:dòng được hiển thị trong tài liệu đã xuất.

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.