在Shiny输出中用br()替换换行符

时间:2019-04-12 14:44:18

标签: r shiny

我正在编写一个Shiny应用程序,其中显示从数据库加载的文本。在数据库中,可能会有这样的文本:

This is the first line
and this is the second.

我从数据库中加载了这些文本的列表,我希望将它们全部显示在它们自己的框中。我对这些字符串的后端处理或多或少是这样的:

format_text <- function(text) {
    shinydashboard::box(text)
}

output$text_ui <- renderUI({
    map(text_list, format_text) %>%
      tagList()
})

显示时,这不考虑原始字符串中的换行符。整个文本显示在一行上:

This is the first lineand this is the second.

我尝试通过在自定义函数中添加以下步骤来解决此问题:

text <- str_replace_all(text, "(\r|\n)", "<br/>")

结果如下:

This is the first line<br/>and this is the second

显然不是我想要的。

现在,我知道可以使用shiny::br()函数创建新行了。但是,我在努力寻找如何使它们在字符串的正确位置工作的方法。

here可以找到一个最小的Shiny应用。

1 个答案:

答案 0 :(得分:1)

啊,解决方法看似简单:

format_text <- function(text) {
    shinydashboard::box(
       HTML(text)
    )
}