在 tabItem 中创建后的 .Rmd 输出在闪亮仪表板的所有 tabItems 的主体中创建第二个仪表板
.Rmd output after created in a tabItem creates a second dashboard in the body of all tabItems of the shiny dashboard
我有一个带有 3 个选项卡项的闪亮仪表板。在名为 Results
的第三个中,显示了一个 rmd 文件。问题是,一旦我打开此选项卡并显示 rmd 报告,其他选项卡中的正文就被破坏了,它就像第二个仪表板一样包含在主体内。知道为什么会这样吗?
ex.rmd 文件
---
title: "An example Knitr/R Markdown document"
output: html_document
---
{r chunk_name, include=FALSE}
x <- rnorm(100)
y <- 2*x + rnorm(100)
cor(x, y)
和 app.r 文件
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)
library(knitr)
dbHeader <- dashboardHeaderPlus(
)
shinyApp(
ui = dashboardPagePlus(
header = dbHeader,
sidebar = dashboardSidebar(
sidebarMenu(id = "sidebar", # id important for updateTabItems
menuItem("Welcome", tabName = "well", icon = icon("house")),
menuItem("Consent", tabName = "conse", icon = icon("line-chart")),
menuItem("Results", tabName = "res", icon = icon("line-chart"))
) ),
body = dashboardBody(
useShinyjs(),
tags$script(HTML("$('body').addClass('fixed');")),
tags$head(tags$style(".skin-blue .main-header .logo { padding: 0px;}")),
tabItems(
tabItem("well",
fluidRow(
column(5,),
column(6,
actionButton("button", "Get started",style='padding:4px; font-size:140%')))),
tabItem("conse",
fluidRow(column(3,h3("Concent"))),
fluidRow(column(3,h5(strong("Purpose of the research")))),
fluidRow(column(12,"Your practice is being invited to participate in a study which aims to explore the relationship of statin prescriptions and all cause mortality in elderly general practice patients")),
),
tabItem("res",
tags$hr(),
fluidRow(
column(3,actionButton('spdf', "Save PDF",style='padding:4px; font-size:180%')
),
column(6,
uiOutput('markdown'))))
),
)
),
server<-shinyServer(function(input, output,session) {
output$markdown <- renderUI({
HTML(markdown::markdownToHTML(knit('ex.rmd', quiet = TRUE)))
})
}
)
)
rmd代码添加了属性
max-width: 800px;
要删除它,您可以使用 fragment.only 选项
HTML(markdown::markdownToHTML(knit('exx.rmd', quiet = TRUE), fragment.only=TRUE))
或者,您可以将以下内容添加到您的 ui
。
tags$head(tags$style(HTML("
body {
width: 100% !important;
max-width: 100% !important;
}
")))
那么对之前的tab没有影响
我有一个带有 3 个选项卡项的闪亮仪表板。在名为 Results
的第三个中,显示了一个 rmd 文件。问题是,一旦我打开此选项卡并显示 rmd 报告,其他选项卡中的正文就被破坏了,它就像第二个仪表板一样包含在主体内。知道为什么会这样吗?
ex.rmd 文件
---
title: "An example Knitr/R Markdown document"
output: html_document
---
{r chunk_name, include=FALSE}
x <- rnorm(100)
y <- 2*x + rnorm(100)
cor(x, y)
和 app.r 文件
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)
library(knitr)
dbHeader <- dashboardHeaderPlus(
)
shinyApp(
ui = dashboardPagePlus(
header = dbHeader,
sidebar = dashboardSidebar(
sidebarMenu(id = "sidebar", # id important for updateTabItems
menuItem("Welcome", tabName = "well", icon = icon("house")),
menuItem("Consent", tabName = "conse", icon = icon("line-chart")),
menuItem("Results", tabName = "res", icon = icon("line-chart"))
) ),
body = dashboardBody(
useShinyjs(),
tags$script(HTML("$('body').addClass('fixed');")),
tags$head(tags$style(".skin-blue .main-header .logo { padding: 0px;}")),
tabItems(
tabItem("well",
fluidRow(
column(5,),
column(6,
actionButton("button", "Get started",style='padding:4px; font-size:140%')))),
tabItem("conse",
fluidRow(column(3,h3("Concent"))),
fluidRow(column(3,h5(strong("Purpose of the research")))),
fluidRow(column(12,"Your practice is being invited to participate in a study which aims to explore the relationship of statin prescriptions and all cause mortality in elderly general practice patients")),
),
tabItem("res",
tags$hr(),
fluidRow(
column(3,actionButton('spdf', "Save PDF",style='padding:4px; font-size:180%')
),
column(6,
uiOutput('markdown'))))
),
)
),
server<-shinyServer(function(input, output,session) {
output$markdown <- renderUI({
HTML(markdown::markdownToHTML(knit('ex.rmd', quiet = TRUE)))
})
}
)
)
rmd代码添加了属性
max-width: 800px;
要删除它,您可以使用 fragment.only 选项
HTML(markdown::markdownToHTML(knit('exx.rmd', quiet = TRUE), fragment.only=TRUE))
或者,您可以将以下内容添加到您的 ui
。
tags$head(tags$style(HTML("
body {
width: 100% !important;
max-width: 100% !important;
}
")))
那么对之前的tab没有影响