-
Notifications
You must be signed in to change notification settings - Fork 0
/
_targets.R
89 lines (83 loc) · 1.83 KB
/
_targets.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# === Targets: workshops --------------------------------------------------
# Alec L. Robitaille
library(targets)
find_rmds <- function(dirs) {
basename_dirs <- lapply(dirs, basename)
slides_dirs <- dirs[grep('slides$', basename_dirs)]
drop_rprojuser <- grep('.Rproj.user', slides_dirs, invert = TRUE, value = TRUE)
vapply(drop_rprojuser, dir, pattern = '.Rmd$', full.names = TRUE, 'potato')
}
find_extras <- function(dirs) {
basename_dirs <- lapply(dirs, basename)
slides_dirs <- dirs[grep('slides$', basename_dirs)]
drop_rprojuser <- grep('.Rproj.user', slides_dirs, invert = TRUE, value = TRUE)
unlist(lapply(drop_rprojuser, dir, pattern = 'css$|js$', full.names = TRUE))
}
find_images <- function(dirs) {
paths_slides <- dir(dirs, pattern = 'slides', include.dirs = TRUE, recursive = TRUE)
paths_slides_images <- lapply(paths_slides, dir, 'images', full.names = TRUE)
unlist(paths_slides_images)
}
c(
tar_target(
dirs,
list.dirs('.'),
format = 'file'
),
tar_target(
rmds,
find_rmds(dirs)
),
tar_target(
extra,
find_extras(dirs),
format = 'file'
),
tar_target(
imgs,
find_images(dirs),
format = 'file'
),
# tar_target(
# extra,
# extras,
# pattern = map(extras),
# format = 'file'
# ),
tar_target(
rmd,
rmds,
pattern = map(rmds),
format = 'file'
),
tar_target(
render,
rmarkdown::render(
rmd,
output_dir = 'docs'
),
pattern = map(rmd)
),
tar_target(
copy_extras,
file.copy(extra, 'docs', overwrite = TRUE)
),
tar_target(
copy_imgs,
file.copy(dir(imgs, full.names = TRUE), file.path('docs', 'images'))
),
tar_target(
workshops_csv,
'workshops.csv',
format = 'file'
),
tar_target(
readme,
'README.Rmd',
format = 'file'
),
tar_target(
render_index,
{workshops_csv; rmarkdown::render(readme, output_format = 'html_document', output_file = 'docs/index.html')}
)
)