Bad interaction with `fs_path` default formatting and hyperlink generation
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 38/100
Research direction
Start by running the reproducible examples using cli::cli_inform(), fs::path(), and hyperlinks enabled, comparing character paths with fs paths. Trace the fs_path default theming and hyperlink generation involved in the rendered output; done means fs paths produce the same valid run hyperlink structure as equivalent character paths, including nested pkgdown::preview_page() calls.
Written by the indexing model from the issue text.
Description
See also https://github.com/r-lib/pkgdown/pull/2436
In pkgdown we accidentally tried to interpolate fs paths into cli strings and that caused some bad link generation. I think it has something to do with the fs_path default theming? Notice how the blue output below isn't right.
library(cli)
library(fs)
testthat::local_reproducible_output(hyperlinks = TRUE)
path <- "~/Desktop/foo.R"
cli::cli_inform("{.run ['hi mom']({path})}")
#> ]8;;x-r-run:~/Desktop/foo.R'hi mom']8;;
path <- fs::path("~/Desktop/foo.R")
cli::cli_inform("{.run ['hi mom']({path})}")
#> ]8;;x-r-run:']8;;file:///Users/davis/Desktop/foo.R~/Desktop/foo.R]8;;''hi mom'
# real example was more like this
# clicking the link should run `pkgdown::preview_page('~/Desktop/foo.R')`
path <- "~/Desktop/foo.R"
cli::cli_inform("{.run ['file.R'](pkgdown::preview_page('{path}'))}")
#> ]8;;x-r-run:pkgdown::preview_page('~/Desktop/foo.R')'file.R']8;;
# weirdness
path <- fs::path("~/Desktop/foo.R")
cli::cli_inform("{.run ['file.R'](pkgdown::preview_page('{path}'))}")
#> ]8;;x-r-run:pkgdown::preview_page('']8;;file:///Users/davis/Desktop/foo.R~/Desktop/foo.R]8;;'')'file.R'
Created on 2024-04-10 with reprex v2.0.2
- Dominant language
- R
- Stars
- 726
- Forks
- 94
- Avg merge
- 3h 35m
- Merged PRs (30d)
- 1
Contributor guide
No contributing guide indexed for this repository
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 r-lib/cli
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
feature
Difficulty 3/5 1-2 days Newbie friendliness 68/100
Similar issues
-
documentation pkg infrastructure
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
epiverse-trace/epiparameter#511 ·
-
function:write_dwc
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Urgent request: Due to vulnerabilities move to API version 12.6.1 (12.6.2 eventually) or 13.1.1 Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
jbkunst/highcharter#849 ·
-
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