2016-09-06 64 views
1

我想在shinydashboard框中嵌入markdown,以便稍后部署在闪亮的服务器上。利用该解决方案here,我创建了以下内容:在shinydashboard框内放置降价页面

ui.R

library(shinydashboard) 

dashboardPage(
    dashboardHeader(title = "xxx"), 
    dashboardSidebar(), 
    dashboardBody(
    column(
     box(
     title = "BoxTest", 
     uiOutput('mymarkdown'), 
     width = NULL 
     ), 
     width = 8) 
) 
) 

server.R

library(shiny) 
library(knitr) 
shinyServer(function(input, output) { 

    output$mymarkdown <- renderUI(HTML(markdown::markdownToHTML(knit("mymarkdown.Rmd", quiet = TRUE)))) 

}) 

mymarkdown.Rmd

## R Markdown 

Test Test Test 

这将创建下列内容:

Compressed

如果我切换到非降价实现,例如:

​​

我得到:

Normal

我期望的看法。

有什么办法可以避免页面的压缩,或者是否有其他方法在shinydashboard框中部署降价文本?

回答

1

我还用降价的光泽,但rmarkdown和includeHTML

library(shinydashboard) 
library(shiny) 
library(knitr) 
library(rmarkdown) 

ui <- dashboardPage(
    dashboardHeader(title = "xxx"), 
    dashboardSidebar(), 
    dashboardBody(
    column(
     box(
     title = "BoxTest", 
     uiOutput('mymarkdown'), 
     width = NULL 
    ), 
     width = 8) 
) 
) 
server <- shinyServer(function(input, output) { 
    output$mymarkdown <- renderUI({ 
     rmarkdown::render(input = "mymarkdown.Rmd", 
          output_format = html_document(self_contained = TRUE), 
          output_file = 'mymarkdown.html') 
     shiny::includeHTML('mymarkdown.html') 
          }) 
}) 
shinyApp(ui, server) 
+0

感谢这一点 - 它工作得很好!实际上我只是想回答我自己的问题 - 我发现'includeMarkdown('mymarkdown.Rmd')'起作用并且非常干净(尽管这似乎没有在任何地方记录得很清楚)。如果你想用自己的答案进行编辑(或者不介意,如果我这样做) - 我很乐意将其标记为已接受。 – Chris

+0

是的,includeMarkdown可以工作,但它不会编织rmd文件。请参阅http://stackoverflow.com/questions/39171890。所以它适用于简单的文本,但是R代码不会被执行。 –