我正在编写一个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应用。
答案 0 :(得分:1)
啊,解决方法看似简单:
format_text <- function(text) {
shinydashboard::box(
HTML(text)
)
}