CRAN 有以下政策:互联网资源应该优雅地失败。
我有一个已接受的包,其中包含使用 Rmarkdown 的小插图。其中一个插图涉及大量图像,因此我没有将原始图像嵌入到插图中,而是引用了 Flickr 上的图像(以保持包大小足够小,以便在 CRAN 上托管)。每隔半年左右,我就会从 CRAN 维护者那里收到一条消息,表明该包在他们的一台服务器上没有正常失败:
Could not fetch
https://live.staticflickr.com/65535/52281215570_5f9cc90a12_o.png
HttpExceptionRequest Request {
host = "live.staticflickr.com"
port = 443
secure = True
requestHeaders = []
path = "/65535/52281215570_5f9cc90a12_o.png"
queryString = ""
method = "GET"
proxy = Nothing
rawBody = False
redirectCount = 10
responseTimeout = ResponseTimeoutDefault
requestVersion = HTTP/1.1
}
(ConnectionFailure Network.Socket.getAddrInfo (called with
preferred socket type/protocol: AddrInfo {addrFlags = [AI_ADDRCONFIG],
addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 0,
addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be
undefined>}, host name: Just "live.staticflickr.com", service name: Just
"443"): does not exist (Name or service not known))
Error: processing vignette
'Ex-04-Webscraping-Online-Data-Files.Rmd' failed with diagnostics:
pandoc document conversion failed with error 61
让这个优雅失败的正确方法是什么?再次,我指的是网上的图片。
谢谢。
正如 @rui-barradas 所建议的,我发布到 r-package-devel listserv 来寻求帮助。 Ivan Krylov 建议 使用
self-contained: false
文件 yaml 标头中的 Rmd
选项不嵌入图像。不幸的是,这也适用于 CSS 样式表。这至少可以防止在互联网资源不可用时创建 html 文件时出现 pandoc 错误。