首页 > 解决方案 > 用于在 Markdown 文件中添加指向所有图像的链接的脚本

问题描述

我有一个工作流程,我将 Google Docs 下载为 docx,然后将它们处理为 markdown 以导出到 R 环境中的其他格式。

当我使用 pandoc_convert 转换为 markdown 时,我得到嵌入的图像,但它们没有链接。我想添加类似于这篇文章的链接语法,

即我想要这个(未链接): ![m'lady](https://i.imgur.com/v8IVDka.jpg)

女士

成为(链接): [![m'lady](https://i.imgur.com/v8IVDka.jpg)](https://i.imgur.com/v8IVDka.jpg) 女士

对于文档中的每个图像。怎么做?

标签: rmarkdownr-markdown

解决方案


经过一番辛劳,我把这个功能放在一起,解决了我的问题:

 addLinksToPhotos<-function(mdfile){
  d<-readLines(mdfile)
  s<-sapply(d,function(x) {
    replacementPattern="[\\1(\\2)](\\2)\\3"
    gsub('.*?(?<firstpart>!\\[[^\\]]*?\\])\\((?<filename>.*)\\)(?<potentialHTML>\\{.*?\\})?.*?',x=x,replacement=replacementPattern,perl=T)
  },USE.NAMES = F)
  writeLines(s,mdfile)
    }    

    #usage
    addLinksToPhotos("myRMarkdownDoc.rmd")

它将读取 markdown 文件中的每一行,查找照片![]()模式,包括它在大括号中具有样式编码的位置![](){}。它将修改每个实例以具有链接图像[![]()](){}


推荐阅读