我试图加入"反应性"闪亮应用程序中的.Rmd
文件。它将总结用户的选择和出现的各种条件。无论出于何种原因,我发现在 shiny
documented中包含.Rmd
,但不包括编织.Rmd
并将输出包含在shiny
app。
我发现这些很难重现,所以我尝试使用Rstudio中的hello world示例。以下是铬中的应用程序:
接下来,我向uiOutput
添加ui.R
元素:
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot"),
uiOutput("mark")
)
我还在server.R
中添加了相应的输出,取自这种类似的question:
output$mark <- renderUI({
HTML(markdown::markdownToHTML(knit("./test.Rmd", quiet = TRUE)))
})
test.Rmd
的内容是:
## something to print
```{r}
head(mtcars, input$bins)
```
当我运行它时,我现在得到这个(截图足迹是相同的):
我假设编织文档中有一些css
或某些东西搞砸了,但我不知道。我可以强制宽度更宽,但主面板保持中心位置。
我已尝试includeMarkdown
,但无法根据input
进行更新。请记住,最终的希望 - 我需要能够根据更改的input
值重新生成任何内容的内容。我意识到我可以做renderText
或其他什么,但Rmarkdown
格式非常方便,因为这是一种指导。我可以写一些文档,然后向用户显示他们选择了什么以及结果会发生什么。
看起来很接近......我只是无法弄清楚为什么页面会变得不稳定。
我还尝试了style = "width: 1200px"
或style = "width: 100%"
这样的内容,却无法让sidebarPanel
和mainPanel
之间的比例恢复正常。
理想情况下,输出看起来就像原始输出一样,但编织结果会显示在图表的当前足迹下。
答案 0 :(得分:2)
似乎rmd代码将以下属性添加到body
元素:
max-width: 800px;
要删除此内容,请将以下内容添加到您的ui代码中(例如,在sliderInput
下方)
tags$head(tags$style(HTML("
body {
width: 100% !important;
max-width: 100% !important;
}
")))
答案 1 :(得分:1)
在fragment.only=TRUE
中设置markdownToHTML
:
output$mark <- renderUI({
HTML(markdown::markdownToHTML(knit("./test.Rmd", quiet = TRUE), fragment.only=TRUE))
})