htmlTemplate() errors out with CRLF files
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
Research direction
Start in R/template.R at the file-reading code around lines 27–28 and the parse(text = ...) call around line 52. Reproduce the issue with a CRLF-containing template like the examples, then verify that htmlTemplate() processes it without parse errors while preserving the intended template content.
Written by the indexing model from the issue text.
Description
htmlTemplate() reads files byte-for-byte (and so, on Windows, may contain \r\n)
And after a bit processing, pieces of that string will reach parse(text = ...)
https://github.com/rstudio/htmltools/blob/3b7fb836a14fe32fa9e4864e71b7681d9eebe3af/R/template.R#L52
But parse(text = ...) does not work with \r\n:
parse(text = "a<-1;\r\nb<-2")
#> Error in parse(text = "a<-1;\r\nb<-2") : <text>:1:6: unexpected input 1: a<-1;
Interestingly, according the details section of ?parse, it claims to handle CRLF characters correctly in text connections, but it doesn't properly handle quoting
parse(file = textConnection("a<-'1\r\n'; \r\n b<-2"))
expression(a <- "1\n", b <- 2)
One way to approach a fix might be to:
tryCatch(
eval(parse(text = piece), env),
error = function(e) {
eval(parse(text = gsub("\r\n", "\n", piece)), env)
}
)
By the way, it appears this has been an issue for at least 2.5 years: https://stackoverflow.com/questions/46193534/error-text11-unexpected-input-in-r
- Dominant language
- R
- Stars
- 225
- Forks
- 73
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rstudio/htmltools
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
-
Consider removing empty `.shiny-html-output` containers from document flow in fillable containers Open
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 48/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
All issues in rstudio/htmltools
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
r-lib/pkgdepends#485 · 3 comments ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
beginners blocker
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enviPathR OpenBuild Error Build OK Build Warning policies-accepted pre-review precheck-passed
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Bioconductor/BiocContributions#207 · 6 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
datacarpentry/semester-biology#1255 ·