jthomasmock / gtExtras

A Collection of Helper Functions for the gt Package.
https://jthomasmock.github.io/gtExtras/
Other
193 stars 26 forks source link

Font Awesome icons not rendering in Quarto or R Markdown with `gt_fa_column()` #118

Closed wjakethompson closed 6 months ago

wjakethompson commented 6 months ago

Description

Originally described in this thread from the Posit community, Font Awesome icons are not rendering in gt tables with gt_fa_column().

Reproducible example

In Quarto

---
title: test
format: html
---

```{r}
library(gt)
library(gtExtras)
fa_cars <- mtcars %>%
  head() %>%
  dplyr::select(cyl, mpg, am, gear) %>%
  dplyr::mutate(man = ifelse(am == 1, "gear", "gears")) %>%
  gt() %>%
  gt_fa_column(man)
fa_cars
<img width="810" alt="Screenshot 2024-03-15 at 7 53 05 AM" src="https://github.com/jthomasmock/gtExtras/assets/6980750/c3d39378-c253-4cc7-ab84-e0ca87cd7ec1">

### In R Markdown

title: "Test" date: "r Sys.Date()" output: html_document

library(gt)
library(gtExtras)
fa_cars <- mtcars %>%
  head() %>%
  dplyr::select(cyl, mpg, am, gear) %>%
  dplyr::mutate(man = ifelse(am == 1, "gear", "gears")) %>%
  gt() %>%
  gt_fa_column(man)
fa_cars
<img width="814" alt="Screenshot 2024-03-15 at 7 54 54 AM" src="https://github.com/jthomasmock/gtExtras/assets/6980750/fd2ac525-aa98-4fff-a1d6-a5603e5b7336">

## Expected result

I can get close to the same functionality with `gt::fmt_icon()`. The only problem with this approach is that I often use the `palette` argument from `gt_fa_column()` to specify different colors for each icon. This is not currently possible with

title: test format: html

library(gt)
library(gtExtras)
fa_cars <- mtcars %>%
  head() %>%
  dplyr::select(cyl, mpg, am, gear) %>%
  dplyr::mutate(man = ifelse(am == 1, "gear", "gears")) %>%
  gt() %>%
  fmt_icon(man)
fa_cars
<img width="821" alt="Screenshot 2024-03-15 at 7 59 50 AM" src="https://github.com/jthomasmock/gtExtras/assets/6980750/5b507e55-9936-4bd4-bed5-80069a418ec2">

The only problem with this approach is that I often use the `palette` argument from `gt_fa_column()` to specify different colors for each icon. This is not currently possible with `gt::fmt_icon()`, so I end up with suboptimal code like:

title: test format: html

library(gt)
library(gtExtras)
fa_cars <- mtcars %>%
  head() %>%
  dplyr::select(cyl, mpg, am, gear) %>%
  dplyr::mutate(man = ifelse(am == 1, "gear", "gears")) %>%
  gt() %>%
  fmt_icon(man, rows = which(.data$man == "gear"),
           fill_color = "orange") |> 
  fmt_icon(man, rows = which(.data$man == "gears"),
           fill_color = "blue")
fa_cars
<img width="809" alt="Screenshot 2024-03-15 at 8 05 09 AM" src="https://github.com/jthomasmock/gtExtras/assets/6980750/3e48f37d-08cb-4131-af83-e0c6aea49337">

## Session info

``` r
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.2 (2023-10-31)
#>  os       macOS Sonoma 14.3.1
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       America/Chicago
#>  date     2024-03-15
#>  pandoc   3.1.12.1 @ /opt/homebrew/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  cli           3.6.2   2023-12-11 [1] CRAN (R 4.3.1)
#>  colorspace    2.1-0   2023-01-23 [1] CRAN (R 4.3.0)
#>  digest        0.6.34  2024-01-11 [1] CRAN (R 4.3.1)
#>  dplyr         1.1.4   2023-11-17 [1] CRAN (R 4.3.1)
#>  evaluate      0.23    2023-11-01 [1] CRAN (R 4.3.1)
#>  fansi         1.0.6   2023-12-08 [1] CRAN (R 4.3.1)
#>  fastmap       1.1.1   2023-02-24 [1] CRAN (R 4.3.0)
#>  fontawesome   0.5.2   2023-08-19 [1] CRAN (R 4.3.0)
#>  fs            1.6.3   2023-07-20 [1] CRAN (R 4.3.0)
#>  generics      0.1.3   2022-07-05 [1] CRAN (R 4.3.0)
#>  ggplot2       3.5.0   2024-02-23 [1] CRAN (R 4.3.1)
#>  glue          1.7.0   2024-01-09 [1] CRAN (R 4.3.1)
#>  gt          * 0.10.1  2024-01-17 [1] CRAN (R 4.3.1)
#>  gtable        0.3.4   2023-08-21 [1] CRAN (R 4.3.0)
#>  gtExtras    * 0.5.0   2023-09-15 [1] CRAN (R 4.3.0)
#>  htmltools     0.5.7   2023-11-03 [1] CRAN (R 4.3.1)
#>  knitr         1.45    2023-10-30 [1] CRAN (R 4.3.1)
#>  lifecycle     1.0.4   2023-11-07 [1] CRAN (R 4.3.1)
#>  magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.3.0)
#>  munsell       0.5.0   2018-06-12 [1] CRAN (R 4.3.0)
#>  paletteer     1.6.0   2024-01-21 [1] CRAN (R 4.3.1)
#>  pillar        1.9.0   2023-03-22 [1] CRAN (R 4.3.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.3.0)
#>  purrr         1.0.2   2023-08-10 [1] CRAN (R 4.3.0)
#>  R.cache       0.16.0  2022-07-21 [1] CRAN (R 4.3.0)
#>  R.methodsS3   1.8.2   2022-06-13 [1] CRAN (R 4.3.0)
#>  R.oo          1.26.0  2024-01-24 [1] CRAN (R 4.3.1)
#>  R.utils       2.12.3  2023-11-18 [1] CRAN (R 4.3.1)
#>  R6            2.5.1   2021-08-19 [1] CRAN (R 4.3.0)
#>  rematch2      2.1.2   2020-05-01 [1] CRAN (R 4.3.0)
#>  reprex        2.1.0   2024-01-11 [1] CRAN (R 4.3.1)
#>  rlang         1.1.3   2024-01-10 [1] CRAN (R 4.3.1)
#>  rmarkdown     2.26    2024-03-05 [1] CRAN (R 4.3.1)
#>  rstudioapi    0.15.0  2023-07-07 [1] CRAN (R 4.3.0)
#>  sass          0.4.8   2023-12-06 [1] CRAN (R 4.3.1)
#>  scales        1.3.0   2023-11-28 [1] CRAN (R 4.3.1)
#>  sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.3.0)
#>  styler        1.10.2  2023-08-29 [1] CRAN (R 4.3.0)
#>  tibble        3.2.1   2023-03-20 [1] CRAN (R 4.3.0)
#>  tidyselect    1.2.0   2022-10-10 [1] CRAN (R 4.3.0)
#>  utf8          1.2.4   2023-10-22 [1] CRAN (R 4.3.1)
#>  vctrs         0.6.5   2023-12-01 [1] CRAN (R 4.3.1)
#>  withr         3.0.0   2024-01-16 [1] CRAN (R 4.3.1)
#>  xfun          0.42    2024-02-08 [1] CRAN (R 4.3.1)
#>  xml2          1.3.6   2023-12-04 [1] CRAN (R 4.3.1)
#>  yaml          2.3.8   2023-12-11 [1] CRAN (R 4.3.1)
#> 
#>  [1] /Users/jakethompson/Library/R/arm64/4.3/library
#>  [2] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
wjakethompson commented 6 months ago

Never mind, this appears to be a duplicate of #114 😄