2013-02-14 39 views
19

Điều này có lẽ rất dễ nhưng tôi dường như không thể tìm thấy nó trong tài liệu. Tôi không muốn nhúng các hình ảnh được tạo ra trong chính tệp HTML. Vì vậy, về cơ bản tôi muốn knit2html() để tạo ra một tệp HTML với các tệp hình ảnh riêng biệt (sau đó được liên kết đến/được hiển thị trong HTML). Hành vi cơ bản là tập lệnh nhúng các hình ảnh dưới dạng chuỗi base64. Vấn đề với điều này là trong IE, hình ảnh lớn sẽ không hiển thị (tức là dường như bị thiếu). Bất kỳ ý tưởng làm thế nào tôi có thể tách các hình ảnh từ đầu ra HTML?knitr (R) - làm cách nào để không nhúng hình ảnh vào tệp HTML?

dụ My .Rmd nộp ('knit.Rmd'):

```{r} 
plot(3) 
``` 

Và tập tin .R của tôi để tạo ra HTML từ này:

library(knitr) 

knit2html('knit.Rmd') 

dụ này tạo một HTML với âm mưu như một chuỗi base64 được nhúng.

+0

Bạn có thể cho chúng tôi một ví dụ ngắn gọn về những gì bạn đang làm và liệt kê các chức năng R bạn đang gọi ... – Spacedman

+0

Tôi đã thêm một ví dụ tối thiểu. – Bart

Trả lời

16

Nếu bạn nhìn vào trang knit2html giúp đỡ, bạn sẽ thấy rằng:

This is a convenience function to knit the input markdown source and 
call ‘markdownToHTML()’ in the ‘markdown’ package to convert the 
result to HTML. 

Sau đó, bạn nhìn vào trang trợ giúp markdownToHTML và đọc rằng có những lập luận như sau:

options: options that are passed to the renderer. see 
      ‘markdownHTMLOptions’. 

Vì vậy, bạn nhìn vào số markdownHTMLOptions (vẫn không bị mất?) và xem tùy chọn sau:

‘'base64_images'’ Any local images linked with the ‘'<img>'’ tag 
     to the output HTML will automatically be converted to base64 
     and included along with output. 

Với lệnh sau đây, bạn sẽ thấy các tùy chọn mặc định trên hệ thống của bạn:

R> markdownHTMLOptions(default=TRUE) 
[1] "use_xhtml"  "smartypants" "base64_images" "mathjax"  
[5] "highlight_code" 

Vì vậy, có thể bạn có thể thử để đan tập tin markdown của bạn với:

knit2html("knit.Rmd", options=c("use_xhtml","smartypants","mathjax","highlight_code")) 

Không thử nghiệm, mặc dù ..

+0

Cảm ơn, hoạt động như một sự quyến rũ! – Bart

10

Không phải của nó knitr thực hiện việc này, knitr chỉ tạo một tệp đánh dấu đã sửa đổi sau khi chạy các khối R. Vì vậy, bạn cần phải xem xét trợ giúp cho gói markdown để tìm ra ...

Tùy chọn base64_images của nó. Cà phê đã không đá vào, vì vậy tôi đã không chính xác sussed hiểu làm thế nào để thiết lập/thiết lập lại tùy chọn markdown cá nhân, nhưng thanh toán bù trừ tất cả các công việc cho tôi:

> knit2html("foo.Rmd",options="") 

sản xuất

<p><img src="figure/unnamed-chunk-1.png" alt="plot of chunk unnamed-chunk-1"> </p> 

trong foo.html.

Nếu xóa tất cả các tùy chọn đó vi phạm các nội dung khác, hãy đọc trên markdownHTMLOptions.

+0

Đầu tiên, các khối R trong tệp .Rmd được hiển thị thành tệp .md được đan sửa đổi. Sau đó được hiển thị thành .html, ví dụ: 'render ('foo.Rmd')'. Trình thông dịch R hiển thị tên tập tin chung. https://www.r-bloggers.com/r-knitr-markdown-html/ – noobninja

4

Dưới đây là một cách đơn giản để có số liệu trong một tệp html riêng biệt, điều này sẽ làm giảm đáng kể kích thước của nó.

Thêm đoạn này vào đầu *.rmd file:

```{r global_options, include=FALSE} 
#suppress the warnings and other messages from showing in the knitted file. 
knitr::opts_chunk$set(fig.width=8, fig.height=6, fig.path='Figs/', 
         echo=TRUE, warning=FALSE, message=FALSE) 
``` 

Tùy chọn 'fig.path' yêu cầu R lưu ảnh vào thư mục 'Figs'. Phần còn lại của các tùy chọn là không cần thiết cho nhiệm vụ.

Bấm nút này:

Click this button

Hãy chắc chắn rằng hộp kiểm không được chọn:

Make sure the check box is not checked

4

Bạn chỉ có thể thêm self_contained: no với các tùy chọn đầu ra trong tiêu đề .Rmd. Ví dụ:

--- 
title: "Data visualisation with ggplot" 
output: 
    html_document: 
    self_contained: no 
    toc: yes 
    toc_float: yes 
--- 
Các vấn đề liên quan