./math/R-xfun, Miscellaneous functions by Yihui Xie

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.48, Package name: R-xfun-0.48, Maintainer: pkgsrc-users

Miscellaneous functions commonly used in other packages maintained by
'Yihui Xie'.


Required to run:
[math/R]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)


Version history: (Expand)


CVS history: (Expand)


   2024-10-26 07:45:17 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.42 to 0.48

# CHANGES IN xfun VERSION 0.48

- Added utilities for HTML tags: `html_tag()`, `html_escape()`,
  `html_escape()`, and `html_view()`. Removed the soft dependency on
  the **htmltools** package accordingly.

- `base_pkgs()` is faster now: it calls
  `tools::standard_package_names()` if the function exists (R >=
  4.4.0), otherwise it just returns a constant vector of base package
  names (thanks, @arnaudgallou, #91).

- Added a function `mime_type()` to obtain the MIME types of files via
  `mime::guess_type()` if **mime** is installed, otherwise it will
  call `tools:::mime_type()`, and fall back to using a system command
  (e.g., `file --mime-type`) to obtain the types.

- Added a function `file_rename()` to deal with `file.rename()`
  failures by calling `file.copy()` (thanks, @Giqles @katrinabrock,
  rstudio/bookdown#804).

- `new_app()` will use `utils::browseURL()` to open the app if
  `options('viewer')` is not configured (thanks, @AlbertLei,
  yihui/litedown#29).

- Added a method `record_print.record_asis()` to return the object as is.

# CHANGES IN xfun VERSION 0.47

- Added functions `lazy_save()` and `lazy_load()` to save objects to
  files and lazy-load them.

- Fixed a bug in `record(dev = svglite::svglite)` that misplaced plots
  when low-level plot functions are used (thanks, @liao961120,
  yihui/litedown#17).

- Specified the lowest R version required (v3.2.0) for this package.

# CHANGES IN xfun VERSION 0.46

- `md_table()` should add a vertical ellipsis to row names when rows
  are truncated by the `limit` argument.

- `session_info()` recognizes Positron now (thanks, @chuxinyuan, #89).

# CHANGES IN xfun VERSION 0.45

- For `record()` with `verbose = 1` or `2`, invisible `NULL` is no
  longer printed.

- `Rscript_call()` will show the actual error message (if an error
  occurred) during calling the function in a new R session.

# CHANGES IN xfun VERSION 0.44

- Added a function `cache_exec()` to cache the execution of an
  expression either in memory or on disk. It is much more general and
  flexible than `cache_rds()`. For example, it supports custom
  reading/writing methods for cache files, and can load locally
  created variables in the expression while loading cache.

- Added an argument `cache` to `record()` to make it possible to enable caching.

- Added arguments `message` and `warning` to `record()` to decide
  whether messages and warnings should be recorded.

- Changed the default value of the argument `error` of `record()` from
  `FALSE` to `NA`. Now `FALSE` means to suppress error messages, and
  `NA` means to throw errors normally. This is for consistency with
  the `message` and `warning` arguments.

- Added an S3 generic function `record_print()`, which is similar to
  `knitr::knit_print()` but for the purpose of printing visible values
  in `record()`.

- The `record()` function gained new arguments `print` and
  `print.args` to support custom printing functions and arguments.

- Added a function `md_table()`, which is a minimal Markdown table
  generator.

- Exported the internal function `md5()` to calculate the MD5
  checksums of R objects. The function is essentially a workaround for
  `tools::md5sum()` (see HenrikBengtsson/Wishlist-for-R#21).

- For `fenced_block()`, a space is added between the backticks and the
  language name, e.g., ```` ```r ```` has become ```` ``` r ````
  now. This will affect snapshot tests based on Markdown ([an
  example](https://github.com/yihui/knitr-examples/commit/931e0a2)).

- Added a shorthand `fenced_div()` for `fenced_block(char = ':')`.

- `write_utf8()` returns the `con` argument (typically a file path)
  now. Previously, it returns `NULL`.

- Added an experimental function `new_app()` to create a local web application.

- The returned value of `yaml_body()` contains a new element `lines`
  in the list indicating the line numbers of YAML metadata if exists.

- Removed the `skip` argument from `split_source()`.

- For `split_source(line_number = TRUE)`, the attribute name for line
  numbers in the returned value was changed from `line_start` (a
  single starting line number) to `lines` (both the starting and
  ending numbers).

- Fixed an edge case in `prose_index()`, in which inline code was
  incorrectly recognized as a code block fence.

# CHANGES IN xfun VERSION 0.43

- Added a function `upload_imgur()`, which was adapted from
  `knitr::imgur_upload()`. The latter will call the former in the
  future. `xfun::upload_imgur()` allows users to choose whether to use
  the system command `curl` or the R package **curl** to upload the
  image. It also has a new argument `include_xml` to specify whether
  the XML response needs to be included in the returned value.

- Added a function `fenced_block()` to create a fenced block in
  Markdown (thanks, @cderv, yihui/knitr#2331). The block can be either
  a code block or a fenced Div.

- Fixed a bug in `xfun::record()` when the argument `verbose = 1` or `2`.
   2024-02-18 15:22:58 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.41 to 0.42

# CHANGES IN xfun VERSION 0.42

- `isFALSE()` has been fully deprecated for R >= 3.5.0, and will be
  completely removed from this package in the future
  (<https://yihui.org/en/2023/02/xfun-isfalse/>).

- Added a function `record()` to run R code and record the results,
  which is similar to `evaluate::evaluate()` but less sophisticated
  and technically simpler. One major difference is that
  `xfun::record()` records plots directly to files instead of saving
  them as display lists.

- `yaml_load()` gained an `envir` argument, which can be used to
  specify the environment to evaluate R expressions in YAML (i.e.,
  expressions written after `!expr` or `!r`). This is not
  straightforward in the upstream **yaml** package (thanks, @viking,
  vubiostat/r-yaml#54).

- `yaml_body()` gained the `...` argument to pass more arguments to
  `yaml_load()`.

- `split_source()` gained a `merge_comments` argument to merge
  consecutive lines of comments into the next code block, a
  `line_number` argument to store the line number of each expression
  in the returned value, and a `skip` argument to skip the rest of the
  code when the skip token is found.

- `check_old_package()` has been vectorized, i.e., the arguments
  `name` and `version` can take vectors now.

- Factored out the code for parsing chunk options and dividing a chunk
  into chunk options and chunk body from **knitr** to this package as
  functions `csv_options()` and `divide_chunk()`, respectively. They
  will be used by **knitr** and other packages in future.

- Added a function `decimal_dot()` to evaluate an expression after
  forcing `options(OutDec = '.')` and `Sys.setlocale(LC_NUMERIC =
  'C')` (for rstudio/rmarkdown#2525).
   2024-02-05 22:19:44 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.36 to 0.41, make test missing TEST_DEPENDS

# CHANGES IN xfun VERSION 0.41

- `process_file()` will write to the file only if the processed text
  is different with the input text. This is to avoid writing files
  unnecessarily.

- `session_info()` will remove extra blank lines (thanks, @chuxinyuan,
  #82) and also omit the time zone info.

# CHANGES IN xfun VERSION 0.40

- `number_to_words()` supports decimal numbers now (thanks,
  @harshvardhaniimi, #80).

- `is_ascii()` is more robust now (thanks, @bastistician, #81).

# CHANGES IN xfun VERSION 0.39

- Fixed a bug that `protect_math()` fails to protect the starting `$$`
  that has leading white spaces.

- Added a function `strip_html()` to remove HTML tags and comments from text.

- The function `alnum_id()` will remove HTML tags and comments from
  text (using `strip_html()`) before converting it to an ID string.

- Added a function `env_option()` to retrieve an option value from
  `options()`. If the option does not exist there, check the
  environment variables. This provides a way for users to set an
  option via either `options()` or an environment variable.

# CHANGES IN xfun VERSION 0.38

- Added an object `download_cache`, which is a list of methods to
  download a URL, cache the result, retrieve the result from the
  cache, and clear the cache.

- Added an argument `default` to `url_filename()` to provide a default
  filename when it cannot be determined from the URL.

- Added a function `yaml_load()` to read YAML data when the **yaml**
  package is not available. It only supports a limited number of data
  types and is supposed to be used as a fallback method. See the help
  page `?xfun::yaml_load` for details.

- Added a function `yaml_body()` to split a document into YAML metadata and the body.

- `is_arm64()` also supports Linux now (thanks, @eitsupi, #74).

- `is_blank()` returns a logical vector of the same length as the
  input vector now, indicating if each element of the input is
  blank. Previously it returns a logical scalar indicating whether
  *all* elements are blank. If you want the old behavior, you can use
  `all(is_blank())`.

# CHANGES IN xfun VERSION 0.37

- Added a function `is_arm64()` to test the CPU type (thanks, @AlbanSagouis, #72).

- Started deprecating `xfun::isFALSE()` in favor of `base::isFALSE()`
  for R >= 3.5.0 (thanks, @mmaechler, #66); `isFALSE()` will
  eventually be removed from **xfun** when we do not need to support R
  < 3.5.0.
   2023-06-03 15:40:21 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.37 to 0.39

# CHANGES IN xfun VERSION 0.39

- Fixed a bug that `protect_math()` fails to protect the starting `$$`
  that has leading white spaces.

- Added a function `strip_html()` to remove HTML tags and comments
  from text.

- The function `alnum_id()` will remove HTML tags and comments from
  text (using `strip_html()`) before converting it to an ID string.

- Added a function `env_option()` to retrieve an option value from
  `options()`. If the option does not exist there, check the
  environment variables. This provides a way for users to set an
  option via either `options()` or an environment variable.

# CHANGES IN xfun VERSION 0.38

- Added an object `download_cache`, which is a list of methods to
  download a URL, cache the result, retrieve the result from the
  cache, and clear the cache.

- Added an argument `default` to `url_filename()` to provide a default
  filename when it cannot be determined from the URL.

- Added a function `yaml_load()` to read YAML data when the **yaml**
  package is not available. It only supports a limited number of data
  types and is supposed to be used as a fallback method. See the help
  page `?xfun::yaml_load` for details.

- Added a function `yaml_body()` to split a document into YAML
  metadata and the body.

- `is_arm64()` also supports Linux now (thanks, @eitsupi, #74).

- `is_blank()` returns a logical vector of the same length as the
  input vector now, indicating if each element of the input is
  blank. Previously it returns a logical scalar indicating whether
  *all* elements are blank. If you want the old behavior, you can use
  `all(is_blank())`.
   2023-02-19 13:48:24 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.36 to 0.37

# CHANGES IN xfun VERSION 0.37

- Added a function `is_arm64()` to test the CPU type (thanks, @AlbanSagouis, #72).

- Started deprecating `xfun::isFALSE()` in favor of `base::isFALSE()`
  for R >= 3.5.0 (thanks, @mmaechler, #66); `isFALSE()` will
  eventually be removed from **xfun** when we do not need to support R
  < 3.5.0.
   2022-12-31 13:44:14 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.35 to 0.36

# CHANGES IN xfun VERSION 0.36

- Added a new argument `resolve_symlink` to `normalize_path()` to get
  the absolute paths of symlinks without resolving them (with
  `resolve_symlink = FALSE`).
   2022-12-18 06:08:39 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.31 to 0.35

# CHANGES IN xfun VERSION 0.35

- Added a new argument `token` to `protect_math()` to optionally
  include a token around math expressions.

- `base64_uri()` relies less on the **mime** package now. For some
  common file extensions (e.g., `.jpg`/`.png`), this function knows
  their MIME types.

- `stringsAsStrings()` has been removed from this package.

# CHANGES IN xfun VERSION 0.34

- Added a new function `alnum_id()` to generate ID strings from a character vector.

- The function `stringsAsStrings()` has been deprecated.

# CHANGES IN xfun VERSION 0.33

- Reverted the change for #68: the characters `-+!_#` are no longer
  accepted by default in filename extensions, since they are
  relatively rare and caused a breakage in rstudio/bookdown#1369. If
  you wish to allow for these characters, you may use the new `extra`
  argument in `file_ext()` and related functions, e.g.,
  `xfun::file_ext(x, extra = '-+!_#')`.

- The function `stringsAsStrings()` will be deprecated in a future
  release of **xfun**, because the global option `stringsAsFactors =
  FALSE` has become the default in base R since 4.0.0.

# CHANGES IN xfun VERSION 0.32

- Added a function `shrink_images()` to shrink images to a maximum
  width using the **magick** package (thanks, @apreshill,
  rstudio/blogdown#614).

- Added a function `tinify_dir()` as a wrapper of `tinify()` to
  compress images under a directory.

- `file_ext()` supports more file extensions now, such as `.c++`,
  `.FB2K-COMPONENT`, and so on (thanks, @tentacles-from-outer-space,
  #68).

- Fixed the issue that `xfun::base_pkgs()` could hang R (thanks,
  @mmaechler, #66).

- The `...` argument in `dir_create()` was not passed to `dir.create()`.
   2022-05-30 17:11:36 by Makoto Fujiwara | Files touched by this commit (2)
Log message:
(devel/R-xfun) Updated 0.30 to 0.31

# CHANGES IN xfun VERSION 0.31

- `github_releases(use_jsonlite = FALSE)` supports R versions below 4.1.0 now.

- `session_info()` silently drops empty package names now (thanks, @phargarten2, \ 
#65).