# Scan Rmd files to identify figures that are saved by chunks
RmdFileFigureTbl <-
  dir(".",pattern = ".Rmd$") %>%  # list .Rmd files
  setNames(.,.) %>% 
  lapply(function(filename){
    x <- readLines(filename)
    x <- x[grepl("```{r",fixed = T,x)] # get chunk headers
    x <- x[grepl("fig.path",fixed = T,x)] # with figure file output
    tibble( name = sub("^.*\\{r ([^,]+).*$","\\1",x)) # extract chunk name
  }) %>% 
  bind_rows(.id="Rmd_file") %>% 
  select(name,Rmd_file)

# Create list of figures with links
tibble(filename=dir("Figures",pattern=".pdf$|.png$",recursive=T)) %>% 
  mutate( ext = sub(".*(...)$","\\1",filename), name = sub("-1$","", sub("....$","",filename))) %>% 
  left_join(RmdFileFigureTbl,by="name") %>%
  group_by(name) %>% 
  summarise( figureLinks = paste0("[[",ext,"]](Figures/",filename,")",collapse = ""),
             RmdLinks = ifelse(is.na(Rmd_file[1]),"",paste0(" (source: [",Rmd_file[1],"]",
                                                            "(",sub(".Rmd",".html",Rmd_file[1]),"))"))) %>% 
  # correctly sort figures by number:
  mutate(figNr = map_dbl(regmatches(name, gregexpr("[[:digit:]]+", name)), ~ as.numeric(.x[1]))) %>% 
  arrange( sub("[0-9].*$","",name),figNr,name) %>%
  with( cat(paste0("* ",name," ",figureLinks,RmdLinks),sep="\n"))
## `summarise()` ungrouping output (override with `.groups` argument)