-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy path_render.R
69 lines (59 loc) · 2.37 KB
/
_render.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
quiet = "--quiet" %in% commandArgs(FALSE)
formats = commandArgs(TRUE)
travis = !is.na(Sys.getenv('CI', NA))
# install bookdown
local({
r = getOption('repos')
if (!length(r) || all(r['CRAN'] == '@CRAN@')) r['CRAN'] = 'https://cran.rstudio.com'
options(repos = r)
})
if (system.file(package = 'rmarkdown') == '')
install.packages('rmarkdown')
if (system.file(package = 'bookdown') == '')
install.packages('bookdown')
# 填上你需要用到的包
err = lapply(c('DT', 'citr', 'formatR', 'svglite', 'webshot', 'tinytex','magick'), function(pkg) {
if (system.file(package = pkg) == '') install.packages(pkg)
})
if (!grepl('Windows', Sys.info()['sysname'][[1]]) && system('hash phantomjs 2>/dev/null') != 0)
webshot::install_phantomjs()
xelatex.has_installed <- system('xelatex --version') ==0
if ((!xelatex.has_installed) && (!tinytex:::is_tinytex())){
tinytex::install_tinytex()
tlmgr_install('texcount')
}
src = (function() {
attr(body(sys.function()), 'srcfile')
})()$filename
if (is.null(src) || src == '') src = '.'
owd = setwd(dirname(src))
# provide default formats if necessary
if (length(formats) == 0) formats = c(
'bookdown::pdf_book', 'bookdown::epub_book', 'bookdown::gitbook'
)
# render the book to all formats unless they are specified via command-line args
for (fmt in formats) {
cmd = sprintf("bookdown::render_book('index.Rmd', '%s', quiet = %s)", fmt, quiet)
res = bookdown:::Rscript(c('-e', shQuote(cmd)))
if (res != 0) stop('Failed to compile the book to ', fmt)
if (!travis && fmt == 'bookdown::epub_book')
bookdown::calibre('_book/deepin-bible.epub', 'mobi')
}
r = '<body onload="window.location = \'https://bookdown.org/yihui\'+location.pathname">'
for (f in list.files('_book', '[.]html$', full.names = TRUE)) {
x = readLines(f)
if (length(i <- grep('^\\s*<body>\\s*$', x)) == 0) next
# patch HTML files in gh-pages if built on Travis, to redirect to bookdown.org
if (travis) x[i[1]] = r
i = grep('<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">.+</a>', x)[1]
# shorter title on the toolbar
if (!is.na(i)) x[i] = gsub('bookdown: ', '', x[i], fixed = TRUE)
i = c(
grep('^\\s*<meta name="generator" content="bookdown [.0-9]+ and GitBook [.0-9]+">$', x),
grep('^<meta name="date" content="[-0-9]+">$', x)
)
if (travis && length(i)) x = x[-i]
writeLines(x, f)
}
# if (length(formats) > 1) bookdown::publish_book()
setwd(owd)