Shiny: Solicitação de recurso: atualize a versão incrível da fonte

Criado em 3 mar. 2018  ·  5Comentários  ·  Fonte: rstudio/shiny

https://github.com/rstudio/shiny/blob/174a1fe83437008bca69e48fe346470e5c09ecb9/R/bootstrap.R#L1547

Percebi que houve grandes mudanças nos ícones de fontes incríveis nas últimas versões que eles lançaram, a documentação para icons() agora está incorreta, pois a maioria dos ícones listados pelo explorador falhará ao carregar ao usar em aplicativo brilhante.

Atualize os arquivos de fontes incríveis ou a nova implementação svg

Comentários muito úteis

Decidimos atualizar para 5.3.1 e incluir o calço de compatibilidade fontawesome v4. Isso deve garantir que todos possam usar os novos ícones sem que os aplicativos existentes sejam interrompidos (embora algumas das novas funcionalidades sofisticadas do fontawesome 5 não estejam disponíveis - esperamos que você possa usá-lo através do pacote rstudio/fontawesome ou ropenscilabs/icon) .

Todos 5 comentários

Qual link você está seguindo para a lista de ícones do Font Awesome? Se alguém for para o site Font Awesome 4.7, consulte https://fontawesome.com/v4.7.0/ , os ícones listados devem funcionar com icon() . As atualizações no Font Awesome 5 não são triviais. Por enquanto, a melhor solução pode ser garantir que a documentação do Shiny aponte para o site Font Awesome 4.7.

Basta adicionar um +1 para esta solicitação.
Fica confuso com as páginas de ajuda brilhantes apontando para uma página de ícones onde 90% deles são inutilizáveis, sem indicação clara (para novos usuários) de por que alguns não funcionariam / não funcionariam.

Acabei de confirmar algumas alterações em um fork em https://github.com/JesseVent/shiny/commit/9ce6f87094ba5f6d4ca00455296a02d83454172d que parecem funcionar, a compilação passa em todos os testes e verificações de CRAN. Portanto, poderia ser algo para analisar - Infelizmente, não consegui pensar em uma maneira de fornecer suporte de fallback para 4.7.0 além de usar um documento de mapeamento em um arquivo csv.

Parece funcionar muito bem nos cenários que testei, definitivamente renderiza no aplicativo. Espero que ajude.

icon <- function(name, class = NULL, lib = "font-awesome", style="fas") {
  prefixes <- list(
    "font-awesome" = "fa",
    "glyphicon" = "glyphicon"
  )
  prefix <- prefixes[[lib]]

  # determine stylesheet
  if (is.null(prefix)) {
    stop("Unknown font library '", lib, "' specified. Must be one of ",
         paste0('"', names(prefixes), '"', collapse = ", "))
  }

  # Add fallback support for 4.7.0 by checking for legacy icons names and replacing with 5.2.0 names
  if ( prefix == "fa" && !is.null(name)) {
    mapfile <- system.file("www","shared","font-awesome", "fa-mapping.csv", package = "shiny")
    fa_lookup  <- read.csv(mapfile, stringsAsFactors = FALSE)
    match      <- match(name, fa_lookup$v4_name)
    prefix_tag <- NA
    if (!is.na(match)) {
      match      <- as.numeric(match)
      name       <- fa_lookup$v5_name[match]
      prefix_tag <- fa_lookup$prefix[match]
    }
    if (is.na(prefix_tag)) prefix_tag <- style
  }

  # build the icon class (allow name to be null so that other functions
  # e.g. buildTabset can pass an explicit class value)
  iconClass <- ""
  if (!is.null(name)) {
    # support for glyphicon
    if(prefix != "fa") iconClass <- paste0(prefix, " ", prefix, "-", name)
    # new font-awesome format
    if(prefix == "fa") iconClass <- paste0(prefix_tag, " ", prefix, "-", name)
  }
  if (!is.null(class)) iconClass <- paste(iconClass, class)

  iconTag <- tags$i(class = iconClass)

  # font-awesome needs an additional dependency (glyphicon is in bootstrap)
  if (lib == "font-awesome") {
    htmltools::htmlDependency("font-awesome", "5.2.0", c(href="shared/font-awesome"), script = "js/all.js")
  }
  iconTag
}
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
* Running ‘test-all.R’ OK
* DONE
Status: 1 NOTE
checking installed package size ... NOTE

R CMD check results
0 errors | 0 warnings | 1 note 

R CMD check succeeded

Decidimos atualizar para 5.3.1 e incluir o calço de compatibilidade fontawesome v4. Isso deve garantir que todos possam usar os novos ícones sem que os aplicativos existentes sejam interrompidos (embora algumas das novas funcionalidades sofisticadas do fontawesome 5 não estejam disponíveis - esperamos que você possa usá-lo através do pacote rstudio/fontawesome ou ropenscilabs/icon) .

Esta página foi útil?
0 / 5 - 0 avaliações