在 shinydashboard 框内放置 markdown 压缩页面
Placing markdown within shinydashboard box compresses page
我正在尝试将 markdown 嵌入到 shinydashboard 框中,以便稍后部署到 shiny 服务器上。使用解决方案 ,我创建了以下内容:
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
这将创建以下内容:
如果我切换到非 markdown 实现,例如:
output$mymarkdown <- renderUI(h4("Test Test Test"))
我得到:
我期望的视图。
有什么方法可以避免这种页面压缩,或者有其他方法可以在 shinydashboard 框中部署降价文本吗?
我也在 shiny 中使用了 markdown,但是使用了 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)
markdown::markdownToHTML
有一个选项可以只创建一个 HTML 片段。它省略了 HTML header 和样式。像这样,闪亮的网站样式没有损坏。
output$mymarkdown <- renderUI({
k <- knitr::knit(input = "mymarkdown.Rmd", quiet = T)
HTML(markdown::markdownToHTML(k, fragment.only = T))
})
我正在尝试将 markdown 嵌入到 shinydashboard 框中,以便稍后部署到 shiny 服务器上。使用解决方案
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
这将创建以下内容:
如果我切换到非 markdown 实现,例如:
output$mymarkdown <- renderUI(h4("Test Test Test"))
我得到:
我期望的视图。
有什么方法可以避免这种页面压缩,或者有其他方法可以在 shinydashboard 框中部署降价文本吗?
我也在 shiny 中使用了 markdown,但是使用了 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)
markdown::markdownToHTML
有一个选项可以只创建一个 HTML 片段。它省略了 HTML header 和样式。像这样,闪亮的网站样式没有损坏。
output$mymarkdown <- renderUI({
k <- knitr::knit(input = "mymarkdown.Rmd", quiet = T)
HTML(markdown::markdownToHTML(k, fragment.only = T))
})