Fix/font fallback#168
Open
MMenninger wants to merge 5 commits into
Open
Conversation
From AI -- Problem. The whole working tree currently shows as modified in git, but git diff --ignore-all-space shows zero real changes — it is pure CRLF↔LF line-ending noise. Without fixing this first, every later PR diff is buried under thousands of phantom line-ending changes and nothing reviews cleanly. Change. Add a .gitattributes that forces LF for text files (* text=auto eol=lf plus explicit entries for .R, .Rmd, .Rd, .md, .yaml/.yml, DESCRIPTION, NAMESPACE, .Rproj) and marks binaries (.rda, .png, .ico, .svg) as binary. Set the RStudio project to write LF (LineEndingConversion: Posix in cmapplot.Rproj) so RStudio doesn't re-introduce CRLF on save. Run git add --renormalize . in the same commit. Files. .gitattributes (new), cmapplot.Rproj. Review note. The diff looks huge but is mechanical — "line endings only."
Problem. R/cmapplot.R (~lines 110–131) gates graphics setup on
rstudioapi::isAvailable() / rstudioapi::getVersion(). In Positron,
isAvailable() returns TRUE (Positron ships a partial rstudioapi shim), so
execution enters the RStudio branch, where getVersion() can error outside real
RStudio — risking an error on package load. The RStudioGD.backend option is
meaningless to Positron (its Ark device already auto-uses ragg), and the
"please install RStudio" fallback message is wrong advice for Positron users.
Change. Detect the IDE via environment variables instead:
RStudio: Sys.getenv("RSTUDIO") == "1"
Positron: Sys.getenv("POSITRON_VERSION") != ""
In RStudio, keep the existing RStudioGD.backend = "ragg" behavior. In
Positron, skip the option entirely and drop the RStudio-install message. Keep
the plain-R fallback message.
Files. R/cmapplot.R
The culprit is the caption in finalize.Rmd:
rcaption = "Source: Chicago Metropolitan Agency for Planning
analysis of Regional Transportation Authority data"
That second line is indented ~16 spaces to line up in the source. gridtext::textbox_grob() parses captions/titles as markdown, and in markdown a line break followed by 4+ spaces means "indented code block" → it emits a <pre> tag. A newer gridtext now hard-errors on <pre> (textbox_grob only supports a few tags), so the vignette build dies. Older gridtext tolerated it; the CI runner just installed a stricter version. Pre-existing landmine, newly triggered.
Problem. Rcpp is in Imports: and @imported, but nothing calls it. There is no src/, no .cpp, no LinkingTo. The compiled routines used by geom_text_lastonly_repel() are ggrepel's, called via base .Call() — which does not need Rcpp. The dependency is vestigial. Change. Remove Rcpp, from Imports: in DESCRIPTION. Remove Rcpp from the @import tag in R/cmapplot.R (~line 14). Re-document to drop import(Rcpp) from NAMESPACE. Files. DESCRIPTION, R/cmapplot.R, NAMESPACE.
Problem. The manual Whitney-font fallback in R/cmapplot.R (~line 48) only checks ~/Library/Fonts (macOS). Windows and Linux users get no fallback when systemfonts::system_fonts() misses the fonts. Change. Extend the fallback to also check the user font directories on Windows (%LOCALAPPDATA%\Microsoft\Windows\Fonts, C:/Windows/Fonts) and Linux (~/.fonts, ~/.local/share/fonts). Files. R/cmapplot.R.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.