从这个问题来看,OP 似乎正试图找到一种方法来为 Slidify(我是其作者)生成幻灯片分隔符。当文档不包含任何带有注释的代码块时,上述所有答案都很好用。我有一个解决方案,它忽略带有注释的代码块,并在这里发布它主要是为了完成。该slide_header
参数可用于定义应以分隔符开头的标题。
find_code_lines <- function(doc){
code_blocks = which(grepl("^```", doc))
code_lines = NULL
for (i in seq.int(1, length(code_blocks), by = 2)){
code_lines = c(code_lines, code_blocks[i]:code_blocks[i + 1])
}
return(code_lines)
}
add_slide_separator <- function(deckFile, slide_header = "###"){
doc <- readLines(deckFile)
code_lines = find_code_lines(doc)
pattern = paste0('^(', slide_header, ".*)")
doc[-c(code_lines)] = gsub(pattern, '\n---\n\\1', doc[-c(code_lines)])
writeLines(doc, con = deckFile)
}
我看到我的代码将无法区分##
和###
修改 gsub 行,gsub("^## |[^#]## ", "---\n\n## ", x)
使其与接受的答案相同。