2016-09-06 36 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代碼不會被執行。 –