如何使用 htmlOutput() 向一行添加制表?

How to add tabulation to a line using htmlOutput()?

我想在 Shiny 中的一行中添加一个表格,但我找不到方法。

我知道 Shiny 中有 HTML 标签,例如 strong 将单词加粗, small 使它们变小......甚至 blockquote 到添加引号块。 但是我没有找到一个加一个列表。

有人知道怎么做吗?

可重现代码:

library(shiny)
ui = pageWithSidebar(
  headerPanel("My app"),
  sidebarPanel(
    
  ),
  mainPanel(
            htmlOutput("text")
  )
)
server = function(input, output) {
  output$text <- renderUI({
    str1 <- strong("This is the first line in bold:")
    str2 <- em("This is the second line in italics and with one tabulation")
                
    HTML(paste(str1, str2, sep = '<br/>'))
    
  })
}

shinyApp(ui,server)

您可以只使用 html 代码而不是来自 shiny 的 r 标签:

library(shiny)
ui = pageWithSidebar(
  headerPanel("My app"),
  sidebarPanel(
    
  ),
  mainPanel(
    htmlOutput("text")
  )
)
server = function(input, output) {
  output$text <- renderUI({
    str1 <- "<p><strong>This is the first line in bold:</strong></p>"
    str2 <- "<p style='text-indent: 45px'><em>This is the second line in italics and with one tabulation</em></p>"
    
    HTML(paste(str1, str2, sep = ''))
    
  })
}

shinyApp(ui,server)

除非我误解了你的意思。

您可以为每个 shiny-tag 添加样式属性:

library(shiny)
ui = pageWithSidebar(
  headerPanel("My app"),
  sidebarPanel(),
  mainPanel(
    htmlOutput("text")
  )
)
server = function(input, output) {
  output$text <- renderUI({
    tag1 <- p(strong("This is the first line in bold:"))
    tag2 <- p(em("This is the second line in italics and with one tabulation"), style = "text-indent: 1em;")
    HTML(paste(tag1, tag2, sep = '<br/>'))
  })
}

shinyApp(ui,server)