This is a command-line utility for doing set operations on files considered as
sets of lines. For instance, `zet union x y z` outputs the lines that occur in
any of `x`, `y`, or `z`.
Two notes:
-Each output line occurs only once, because we're treating the files as sets
and the lines as their elements.
-We do take the file structure into account in one respect: the lines are
output in the same order as they are encountered. So `zet union x` prints
out the lines of `x`, in order, with duplicates removed.
3.8.0:
Add Slovenian translation
3.7.1:
Include generated translation binaries in release
Update release checklist so translation binaries aren't forgotten
3.7.0:
Add missing strings for Persian
3.6.0:
Add pluralization for intword
Add es_ES '%s and %s' translation
Add gender support for ordinals
Add type hints for all exposed natural* functions
-Adopt maintainership
-ripgrep 13 is a new major version release of ripgrep that primarily contains
bug fixes, some performance improvements and a few minor breaking changes.
There is also a fix for a security vulnerability on Windows
(CVE-2021-3013).
Some highlights:
A new short flag, -., has been added. It is an alias for the --hidden flag,
which instructs ripgrep to search hidden files and directories.
ripgrep is now using a new
vectorized implementation of memmem,
which accelerates many common searches. If you notice any performance
regressions (or major improvements), I'd love to hear about them through an
issue report!
Also, for Windows users targeting MSVC, Cargo will now build fully static
executables of ripgrep. The release binaries for ripgrep 13 have been compiled
using this configuration.
BREAKING CHANGES:
Binary detection output has changed slightly.
In this release, a small tweak has been made to the output format when a binary
file is detected. Previously, it looked like this:
Binary file FOO matches (found "\0" byte around offset XXX)
Now it looks like this:
FOO: binary file matches (found "\0" byte around offset XXX)
vimgrep output in multi-line now only prints the first line for each match.
See issue 1866 for more
discussion on this. Previously, every line in a match was duplicated, even
when it spanned multiple lines. There are no changes to vimgrep output when
multi-line mode is disabled.
In multi-line mode, --count is now equivalent to --count-matches.
This appears to match how pcre2grep implements --count. Previously, ripgrep
would produce outright incorrect counts. Another alternative would be to simply
count the number of lines---even if it's more than the number of matches---but
that seems highly unintuitive.
FULL LIST OF FIXES AND IMPROVEMENTS:
Security fixes:
CVE-2021-3013:
Fixes a security hole on Windows where running ripgrep with either the
-z/--search-zip or --pre flags can result in running arbitrary
executables from the current directory.
VULN #1773:
This is the public facing issue tracking CVE-2021-3013. ripgrep's README
now contains a section describing how to report a vulnerability.
Performance improvements:
PERF #1657:
Check if a file should be ignored first before issuing stat calls.
PERF memchr#82:
ripgrep now uses a new vectorized implementation of memmem.
Feature enhancements:
Added or improved file type filtering for ASP, Bazel, dvc, FlatBuffers,
Futhark, minified files, Mint, pofiles (from GNU gettext) Racket, Red, Ruby,
VCL, Yang.
FEATURE #1404:
ripgrep now prints a warning if nothing is searched.
FEATURE #1613:
Cargo will now produce static executables on Windows when using MSVC.
FEATURE #1680:
Add -. as a short flag alias for --hidden.
FEATURE #1842:
Add --field-{context,match}-separator for customizing field delimiters.
FEATURE #1856:
The README now links to a
Spanish translation.
Bug fixes:
BUG #1277:
Document cygwin path translation behavior in the FAQ.
BUG #1739:
Fix bug where replacements were buggy if the regex matched a line terminator.
BUG #1311:
Fix multi-line bug where a search & replace for \n didn't work as expected.
BUG #1401:
Fix buggy interaction between PCRE2 look-around and -o/--only-matching.
BUG #1412:
Fix multi-line bug with searches using look-around past matching lines.
BUG #1577:
Fish shell completions will continue to be auto-generated.
BUG #1642:
Fixes a bug where using -m and -A printed more matches than the limit.
BUG #1703:
Clarify the function of -u/--unrestricted.
BUG #1708:
Clarify how -S/--smart-case works.
BUG #1730:
Clarify that CLI invocation must always be valid, regardless of config file.
BUG #1741:
Fix stdin detection when using PowerShell in UNIX environments.
BUG #1756:
Fix bug where foo/** would match foo, but it shouldn't.
BUG #1765:
Fix panic when --crlf is used in some cases.
BUG #1638:
Correctly sniff UTF-8 and do transcoding, like we do for UTF-16.
BUG #1816:
Add documentation for glob alternate syntax, e.g., {a,b,..}.
BUG #1847:
Clarify how the --hidden flag works.
BUG #1866:
Fix bug when computing column numbers in --vimgrep mode.
BUG #1868:
Fix bug where --passthru and -A/-B/-C did not override each other.
BUG #1869:
Clarify docs for --files-with-matches and --files-without-match.
BUG #1878:
Fix bug where \A could produce unanchored matches in multiline search.
BUG 94e4b8e3:
Fix column numbers with --vimgrep is used with -U/--multiline.
Restore part of a patch lost in the last libxml2 update which is still
relevant. Reapplying it fixes segfaults caused by itstool, e.g., when
building editors/pluma, which is PR pkg/56229 from Andrius V.
Quoting from wiz@'s original commit from Jan 9, 2019, which covers
everything else:
"In some cases, invalid UTF-8 strings were returned which caused
Python interpreter crashes. See
itstool/itstool#22
Use a variant of the patch that was used in Fedora.
Bump PKGREVISION."
Fedora is still carrying this patch as-is.
(Also, evidently distinfo was not regenerated properly after the last
update, so there's a diff applied to it unrelated to this change set.)
rmarkdown 2.8
================================================================================
- Fix a issue with Pandoc 2.5 and `latex-div.lua` - documents can now
be rendered as expected without error (thanks, @davidwales, #2121).
- Fix an issue with styling and code folding button behavior when
default is `code-folding: show`. The Button can now be correctly
style according to state as `aria-expanded` attributes is correctly
updated. Also, new classes has been added on the button to allow
styling during transition: `btn-collapsing` and `btn-expanding` are
respectively applied during transition Show to Hide and Hide to
Show. (This follow [Bootstrap behavior for the collapsible
block](https://getbootstrap.com/docs/3.4/javascript/#collapse))
(thanks, @steveharoz, #2085).
- Fix an issue with `citation_package` having no effect when using
`.md` file as input to `render()` with latex and PDF output formats
(thanks, @andrewheiss, #2113).
- A new internal option `rmarkdown.knit.ext` has been added to control
the extension of the intermediary knit output during a rendering. It
defaults to `md` to produce `*.knit.md`. Only useful for very
advanced usage (#2098).
- `render()` won't produce any `*.utf8.md` intermediary file
anymore. This was a leftover from previous versions of
**rmarkdown**. Since **knitr** 1.24 and **rmarkdown** 2.0, only
UTF-8 input files are allowed. (#2098).
- Fix an `Invalid cross-device link` error when `tempdir()` is used
for `intermediates_dir` in `render()` (thanks, @gorgitko, #2096).
- Fix a regression in HTML default template with floating toc
incorrectly placed on small size window (thanks, @grimbough, #2071)
- Provided a `runtime: shiny` fix for output formats that pass a
modified `bslib::bs_theme()` object to `html_document_base()`'s
`theme` (thanks, @cpsievert, #2049).
- Rendering using `runtime: shiny_prerendered` or `runtime: shinyrmd`
will now produce valid HTML by not inserting anymore the full
document as body in the resulting shiny apps (thanks, @dakep,
#1912). Header content usually containing html dependencies will be
inserted in the HTML document at the end of the head before
`</head>`, unless the rendered HTML contains `<!-- HEAD_CONTENT -->`
special comment (see `htmltools::renderDocument()`). A new Pandoc
variable is set in for shiny prerendered document to allow
conditional insertion of such content in the the HTML template using
`$if(shiny-prerendered)$`. This has been done in all HTML template
in this package. Users of custom template should make this change to
provide support for this runtime. See **rmarkdown** default template
(`default.html`) for an example (#2064).
- Added `tectonic` as a supported LaTeX engine for generating PDF
output (thanks, @dpryan79, #2078). You can specify to use this by
adding `engine: "tectonic"` to your output format in YAML, such as
`pdf_document`.
- When no `output_format` is provided in any way but an `output_file`
is provided in `render()`, the default format will be determined
based on the extension: `"pdf_document"` for `.pdf`, or
`"word_document"` for `.docx`. Otherwise, it will be
`"html_document"` as previous version (thanks, @pearsonca, #1569).
- Added a new global option `rmarkdown.render.message`. When set
`FALSE`, `render()` will not output the message starting by `Output
created: ` allowing RStudio IDE to open a preview of the
document. This is useful for package developers that would need to
emit there own output message for there custom format. See
`?render_site` for more info on this special message (#2092).
- Internal changes regarding Lua filters. They have now an explicit
Pandoc version minimal requirement: A filter will be skipped with a
warning printed by the Lua filter if this requirement is not
met. For now, all filters work for Pandoc 2.1 and above (thanks,
@atusy, #2088). There is also now a new mechanism to have a share
Lua filter script loadable by other Lua files: `render()` will set
the `RMARKDOWN_LUA_SHARED` env var to the path of Lua filter
`shared.lua` so that other filters can access functions defined in
it using `dofile(os.getenv 'RMARKDOWN_LUA_SHARED')`. This is for
internal usage only to avoid duplication (thanks, @tarleb, #2103).
- `html_document_base` gains a `css` argument, to which
`html_document`'s `css` argument is now passed. This also fix an
issue when `.sass` or `.scss` files are used with this `css`
argument when `self_contained: FALSE`. Moreover, **sass** caching
mechanism can now be used when passing `.sass` or `.scss` files to
the `css` argument (thanks, @cpsievert, #2095).
- The `fig_crop` option of PDF document formats (such as
`pdf_document` and `beamer_presentation`) supports the value
`"auto"` now, which means `fig_crop = TRUE` when figure cropping
tools `pdfcrop` and `ghostscript` are available.
- The default value of the `fig_crop` option of PDF output formats has
been changed from `TRUE` to `"auto"` (#2077).
- `rmarkdown::tufte_handout` has been deprecated and will be removed
in the future from this package. It has been moved to the **tufte**
package since **rmarkdown** 0.9.5 (released on 2016-02-22). Please
use `tufte::tufte_handout` instead.
rmarkdown 2.7
================================================================================
- `html_document` (and `html_document_base`)'s `theme` parameter now
understands `bslib::bs_theme()` objects/arguments, meaning that one
may opt-into Bootstrap 4 and more easily create custom themes. For
examples, see <https://github.com/rstudio/rmarkdown/pull/1706>, and
for context, see <https://rstudio.github.io/bslib/> (thanks,
@cpsievert, #1706).
- Files with `.scss`/`.sass` extension (i.e., Sass files) provided to
`html_document`'s `css` parameter are now compiled to CSS using the
`{sass}` package. Also, if `theme` is a `{bslib}` object, these Sass
files may utilize Sass code inside the `theme` (thanks, @cpsievert,
#1706).
- Fix an issue with line numbering in code chunks when `.numberlines`
with Pandoc's highlighting (thanks, @aosavi, #1876).
- Fix an issue with shiny runtime and `global.R` (thanks,
@liaojiahui-r, rstudio/flexdashboard#298).
- Accept `latex="{options}"`, `latex=1`, or `latex=true` for Latex
Divs.
- Add `output_format_filter` function to
`default_site_generator()`. Enables custom site generators to
customize or even entirely replace the output format right before
rendering of each page.
- Automatically exclude **renv** directory for `render_site()`
(thanks, @jmbuhr, #1996)
- Do not force `options(htmltools.preserve.raw = TRUE)` when this
option has been set, otherwise it is impossible for other packages
to turn this option off, e.g., yihui/xaringan#293.
- `knitr_options_pdf()` will now throw a warning when `fig_crop =
TRUE` but is disabled because required tools `pdfcrop` and/or
`ghostscript` are missing (thanks, @netique, #2016).
- Eliminated the unnecessary padding in code blocks in the
`html_document` output with Bootstrap 4 themes (thanks, @atusy,
#2019).
- `github_document()` will produce a working TOC even if some headers
start with number (#2039).
- Fix an issue with `knit_print.data.frame`. The `...` arguments are
no more passed to `print()` to avoid passing `knit_print()`
arguments `options` and `encoding` to custom `print()` methods
(#2047).
rmarkdown 2.6
================================================================================
- Encoding is correctly handled now in `html_vignette` when checking
for identical title and vignette index entry (thanks, @py-b, #1978).
- `clean_site()` now default to `preview = TRUE` and will no more
remove files without notice. This change will affect the "Clean All"
button in the "Build" pane for website project. `clean_site(preview
= FALSE)` must be run to effectively remove files (#1973).
- The intermediate `.tex` file is now correctly deleted if `keep_tex =
FALSE` when the R Markdown document is not rendered from the working
directory (thanks, @vqv, #1308).
- Fix a bug causing certain resources files to be deleted as
intermediate files when `intermediates_dir` is the same as the input
(thanks, @bellma-lilly, #1248).
- Fix issues with `anchor_sections = TRUE` and **learnr** (thanks,
@gadenbuie, #1938).
- Enable use of `server.R` and `global.R` alongside `runtime:
shinyrmd` documents.
- `pkg_file_lua()` now works with `devtools::load_all()` and
**testthat** when used in other packages.
- Fix `pandoc_convert(citeproc = TRUE)` not supressing the `--natbib`
or `--biblatex` options (thanks, @atusy, #1932).
- `pandoc-citeproc` is now activated if a `bibliography` field is
defined in another YAML block instead of the first YAML block
(thanks, @bwiernik, #1364).
- Specify that `htmltools::htmlPreserve()` should use the pandoc raw
attribute rather than preservation tokens when pandoc >= v2.0. Note
that this option will have the intended effect only for versions of
htmltools >= 0.5.0.9003.
- `anchor_sections` in `html_documents()` now defaults to `FALSE`. It
was introduced in previous version with a default to `TRUE`, but it
is reverted now after hearing feedbacks from the community (thank
you!). The `#` is still used as the character for the anchor but you
can easily change that using CSS rules. Examples have been added to
the help page `?html_document`.
- Using Pandoc's default for `--email-obfuscation` now. Previously, it
was set to `none` explicitly, which is the default for Pandoc
1.17.2+ anyway. Only users with a Pandoc version before 1.17.2 may
see a change in the content of the html source file produced if the
document contains email addresses. This change allows to pass the
Pandoc's command line flag if you want to set it to another value
(thanks,@seankross, #1969).
````yaml
output:
html_document:
pandoc_args: ["--email-obfuscation", "javascript"]
````
See [Pandoc's
manual](https://pandoc.org/MANUAL.html#option--email-obfuscation)
for the meaning of this option.
- Fix Fontawesome 5 icons in navbar by correctly handling new prefix
as `fa` has been deprecated in favor of `fas` or `fab` (#1967)
rmarkdown 2.5
================================================================================
- Tables without header rows (wich can be possible in Pandoc's [simple
table](https://pandoc.org/MANUAL.html#extension-simple_tables)) are
now formatted correctly when using `html_document()` format (thanks,
@fkohrt, #1893).
- `html_document()` gains the `anchor_sections` argument, which is
`TRUE` by default, so that readers can get links to section headers
easily---when you mouse over a section header, you will see a hash
symbol `#` at the end of the header, which contains the anchor link
to this header. You can click on this link and get the URL in the
addres bar of your web browser, or right-click on it and copy the
URL from the context menu. The hash symbol is defined by the CSS
rule `a.anchor-section::before {content: '#';}`. You can customize
it by overriding this rule (e.g., via the `css` argument of
`html_document`) and use any other symbols or icons, e.g., `content:
"\02AD8;"` (thanks, @atusy, #1884).
- `pkg_file_lua()` should have thrown an error if the expected Lua
file does not exist.
- Provide `files_dir` and `intermediates_dir` as attributes on return
from `render()` when `run_pandoc = FALSE`.
- Supports new Pandoc 2.11 `--citeproc` flags usage instead of
`pandoc-citeproc` external filter. `pandoc_convert()` and
`pandoc_citeproc_convert()` will now use the correct flags according
to the Pandoc version used. The logic is exported in
`pandoc_citeproc_args()`. See [Pandoc release
note](https://github.com/jgm/pandoc/releases/tag/2.11) for more
information about the new `citeproc` processing (#1916).
- Fixed the code highlighting when code block is hidden. Previous
version introduced a regression where non default code highlighting
was still shown when `code_folding` is activated and code block is
hidden (thanks, @matthewcarlucci, #1921).
- The minimal required version for the **xfun** package (v0.15) has
been specified for R Markdown Notebooks to work properly (thanks,
@jmcphers, #1923).
- Fixed a bug in `convert_ipynb()` when the language is not specified
in the `.ipynb` file (thanks, @acca3003, #1925).
- Introduce `runtime: shinyrmd` as a more user friendly alias for
`runtime: shiny_prerendered`.
rmarkdown 2.4
================================================================================
- Lua filters handling has been improved internally with some
- user-facing changes (#1899): New exported function
- `pandoc_lua_filter_args()` to return the Pandoc command-line
- argument to add a Lua filter. New argument `lua_filters` in
- `pandoc_options()` to pass the Lua filter paths to use with a
- format. This allow output format authors to add filters for a
- custom format using the `pandoc` argument of `output_format()`
- and to get filters from a format using `fmt$pandoc$lua_filters`.
- The Lua filters of an output format are now passed to Pandoc in
- `render()`. By default, they are passed to Pandoc before any
- other format-defined or user-defined Pandoc arguments (usually
- via the `pandoc_args` option of an output format). This ensures
- that filters of an output format are executed first. To change
- the default, you need to deal with it in a custom format (i.e.,
- modify the elements in `fmt$pandoc$lua_filters`, such as
- reordering them). New exported function `pkg_file_lua()` to get
- the full system path of a Lua filter included in a package
- source within the `inst/rmarkdown/lua` folder (thanks, @atusy,
- #1903).
- Fixed the path separators for the `css` parameter in YAML
frontmatter for HTML output files under Windows. Previously, forward
slashes in `css` paths were converted to backslashes (thanks,
@jonathan-g, #1862).
- Since **rmarkdown** 1.16, Pandoc's fenced `Div`'s are converted to
LaTeX environments when the output format is LaTeX, e.g., `:::
{.center data-latex=""}` is converted to `\begin{center}`. The
attribute `data-latex` of the `Div` was mandatory, even if it is
empty. In **rmarkdown** 2.2, we silently drop this requirement,
which means `::: {.center}` is converted to `\begin{center}`. This
turns out to be a bad idea, because users have no control over which
Div's to be converted to LaTeX environments. Previously, they could
opt-in by the `data-latex` attribute, but with **rmarkdown** 2.3,
all Div's are converted to LaTeX environments
unconditionally. What's more, this change led to bugs like
https://stackoverflow.com/q/62340425/559676 and
https://github.com/rstudio/bookdown/issues/883. Therefore the
`data-latex` attribute became mandatory again in this version. If
the LaTeX environment does not need arguments, you may use
`data-latex=""`.
- The two Lua fitlers `pagebreak.lua` and `latex-div.lua` (introduced
in **rmarkdown** 1.16) are also applied to the output format
`beamer_presentation` now (thanks, @XiangyunHuang, #1815).
- When customizing formats with the `output_format` function,
`pre_knit`, `opts_hooks`, and `knit_hooks` can now refer to
`rmarkdown::metadata`. Previously, `rmarkdown::metadata` returned
`list()` in these functions (thanks, @atusy, #1855).
- `rmarkdown::find_external_resources()` now discovers external
template files. This in turn fixes the rendering issue of
`html_document` with the `shiny` runtime and `intermediate_dir` set
(thanks, @atusy, @cderv, #1865).
- Added the `number_sections` argument to following formats:
`github_document`, `ioslides_presentation`, `md_document`,
`odt_document`, `powerpoint_presentation`, `rtf_document`,
`slidy_presentation`, `word_document`. These are powered by a Lua
filter and requires Pandoc > 2.0. It will silently have no effect
has before with previous pandoc version (thanks @atusy 1893).
Pandoc >= 2.10.1 adds `--number-sections` for docx format, and thus
`word_document` prefers the native feature to the Lua filter
(thanks, @jooyoungseo, #1869).
- For the output format `pdf_document`, the option `fig_crop` will not
be enabled unless both the programs `pdfcrop` and `ghostscript` are
found (thanks, @dalupus, yihui/knitr#954).
- Fixed a bug that a chunk with a class `fold-hide` hides the rest of
the chunks even the output format setting
`html_document(code_folding = "show")` (thanks, @atusy, #1906).
- Updated documentation for `render()` to make it clearer how options
are set for the `output_format` parameter (thanks, @jonathan-g,
#1907 and rstudio/bookdown#930).
- Ported some CSS styles (e.g., underlines, small caps, and
multi-column layouts) from the latest Pandoc's HTML template into
**rmarkdown**s HTML templates (thanks, @atusy, #1878, #1908).
v1.6.4
* Add testing config for Python 3.10 (Tox and CI)
* Fix internal _PurePath class with Python 3.10
* Remove redundant xmlns="" declaration when encoding with lxml
v1.6.3
* Refactor normalize_url() using pathlib.PurePath
* Support UNC paths
* Fix API docs
Centralize some basics so ispell-en_GB doesn't need to be manually
adjusted every time ispell gets an update. Addresses a lingering issue
from PR pkg/55972 noted by Greg A. Woods.
NEWS.md from 1.12.2 to 1.14.0 has over 1,000 lines, See following
URL for full text:
https://github.com/Rdatatable/data.table/blob/master/NEWS.md
Here is only for 'POTENTIALLY BREAKING CHANGES' in 1.140.0
# data.table [v1.14.0](https://github.com/Rdatatable/data.table/milestone/23?closed=1)
## POTENTIALLY BREAKING CHANGES
1. In v1.13.0 (July 2020) native parsing of datetime was added to
`fread` by Michael Chirico which dramatically improved
performance. Before then datetime was read as type character by
default which was slow. Since v1.13.0, UTC-marked datetime
(e.g. `2020-07-24T10:11:12.134Z` where the final `Z` is present) has
been read automatically as POSIXct and quickly. We provided the
migration option `datatable.old.fread.datetime.character` to revert to
the previous slow character behavior. We also added the `tz=` argument
to control unmarked datetime; i.e. where the `Z` (or equivalent UTC
postfix) is missing in the data. The default `tz=""` reads unmarked
datetime as character as before, slowly. We gave you the ability to
set `tz="UTC"` to turn on the new behavior and read unmarked datetime
as UTC, quickly. R sessions that are running in UTC by setting the TZ
environment variable, as is good practice and common in production,
have also been reading unmarked datetime as UTC since v1.13.0, much
faster. Note 1 of v1.13.0 (below in this file) ended `In addition to
convenience, fread is now significantly faster in the presence of
dates, UTC-marked datetimes, and unmarked datetime when tz="UTC" is
provided.`.
At `rstudio::global(2021)`, Neal Richardson, Director of
Engineering at Ursa Labs, compared Arrow CSV performance to
`data.table` CSV performance, [Bigger Data With Ease Using Apache
Arrow](https://rstudio.com/resources/rstudioglobal-2021/bigger-data-with-ease-using-apache-arrow/). He
opened by comparing to `data.table` as his main point. Arrow was
presented as 3 times faster than `data.table`. He talked at length
about this result. However, no reproducible code was provided and
we were not contacted in advance in case we had any comments. He
mentioned New York Taxi data in his talk which is a dataset known
to us as containing unmarked
datetime. [Rebuttal](https://twitter.com/MattDowle/status/1360073970498875394).
`tz=`'s default is now changed from `""` to `"UTC"`. If you have
been using `tz=` explicitly then there should be no change. The
change to read UTC-marked datetime as POSIXct rather than
character already happened in v1.13.0. The change now is that
unmarked datetimes are now read as UTC too by default without
needing to set `tz="UTC"`. None of the 1,017 CRAN packages
directly using `data.table` are affected. As before, the migration
option `datatable.old.fread.datetime.character` can still be set
to TRUE to revert to the old character behavior. This migration
option is temporary and will be removed in the near future.
1.4.14 (2021-06-05)
* refactor-command kdrfc: -f as abbreviation for --pdf
* Include "SDO-3GPP" as a weirder and incomplete alternative to "3GPP"
* Do not generate bad XML for reference anchor starting with a digit
* origin/refactor-command Prepare 1.4.14.pre
* 124 Refactor kramdown option handling
General:
* Donald Knuth’s changes for his 2021 tuneup of TeX and Metafont are
incorporated (https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf). They
are also available on CTAN as the knuth-dist and knuth-local packages. As
expected, the fixes are for obscure cases and do not affect any behavior in
practice.
* Except in original TeX: if \tracinglostchars is set to 3 or more, missing
characters will result in an error, not just a message in the log file, and
the missing character code will be shown in hex.
* Except in original TeX: a new integer parameter \tracingstacklevels, if
positive, and \tracingmacros is also positive, causes a prefix indicating the
macro expansion depth to be output on each relevant log line (e.g., ~.. at
depth 2). Also, macro logging is truncated at a depth ≥ the parameter value.
Aleph: The Aleph-based LaTeX format, named lamed, has been removed. The aleph
binary itself is still included and supported.
LuaTeX:
* Lua 5.3.6.
* Callback for nesting level used in \tracingmacros, as generalized variant
of the new \tracingstacklevels.
* Mark math glyphs as protected to prevent processing as text.
* Removed width/ic compensation for traditional math code path.
MetaPost:
* SOURCE_DATE_EPOCH environment variable support for reproducible output.
* Avoid wrong final % in mpto.
* Document -T option, other fixes to manual.
* Value of epsilon changed in binary and decimal modes, so mp_solve_rising_cubic
works as expected.
pdfTeX:
* New primitives \pdfrunninglinkoff and \pdfrunninglinkon; e.g., for
disabling generation of links in headers and footers.
* Warn instead of aborting when “\pdfendlink ended up in different nesting
level than \pdfstartlink”.
* Dump \pdfglyphtounicode assignments in fmt file.
* Source: poppler support removed, as it was too hard to keep in sync with
upstream. In native TL, pdfTeX has always used libs/xpdf, which is cut-down
and adapted code from xpdf.
XeTeX: Fixes for math kerning.
Dvipdfmx:
* Ghostscript is now invoked safely by default; to override (assuming all
input files are trusted), use -i dvipdfmx-unsafe.cfg. To use PSTricks with
XeTeX, this is required, as in:
xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...
* If an image file is not found, exit with bad status.
* Extended special syntax for color support.
* Specials for manipulating ExtGState.
* Compatibility specials pdfcolorstack and pdffontattr.
* Experimental support for dviluatex’s extended fnt_def.
* Support new feature of virtual font to fallback Japanese font definition.
Dvips:
* Default PostScript document title is now the basename of the input file,
and can be overridden with the new option -title.
* If an .eps or other image file is not found, exit with bad status.
* Support new feature of virtual font to fallback Japanese font definition.
# xml2 1.3.2
* `read_html()` and `read_xml()` now error if passed strings of length
greater than one (#121)
* `read_xml.raw()` had an inadvertent regression in 1.3.0 and is now
again fixed (#300)
* Compilation fix on macOS 10.15.4 (@kevinushey, #296)
# xml2 1.3.1
* `read_html()` now again works with HTML files with non-ASCII encodings (#293).
# xml2 1.3.0
* Removes the Rcpp dependency
# xml2 1.2.5
* Fix compilation issue on macOS versions after High Sierra when not
using homebrew supplied libxml2
# xml2 1.2.4
* Fix potential dangling pointer with internal `asXmlChar()` function
(@michaelquinn32, #287).
* `as_xml_document()` now handles cases with text nodes trailing
normal nodes (#274).
* `xml_add_child()` can now create nodes with a `par` attribute. These
previously errored due to partial name matching of the `parent`
function in the internal `create_node()` function. (@jennybc, #285)
* `libxml2_version()` now returns a semantic version rather than
alphanumeric version, so "2.9.10" > "2.9.9" (#277)
htmltools 0.5.1.1
--------------------------------------------------------------------------------
* Added shiny as a suggested package.
htmltools 0.5.1
--------------------------------------------------------------------------------
## New Features & Improvements
* Added a new `tagFunction()` for generating `tags` and/or
`htmlDependency()`s conditional on the rendering context. For an
example, see `?tagFunction`. (#180)
* Closed#104: `save_html()`'s `file` argument now properly handles
relative paths. (@haozhu233, #105, #192)
* `save_html()` now has a `lang` parameter that can be used to set the
lang attribute of `<html>`. (@ColinFay, #185)
* Closed#101: `htmlDependency` & `renderDependencies` now allow the
`script` argument to be given as a named list containing the
elements: `src`, `integrity`, `crossorigin`. (@matthewstrasiotto,
#188)
* Closed#189: `validateCssUnit()` now accepts `fit-content`. (#190)
* `htmlPreserve()` can now optionally use the Pandoc `raw_attribute`
extension to enclose HTML.
## Breaking Changes
* Closed#161: `parseCssColors(x)` now requires `x` to be a character
vector (it no longer accepts a `list()` of strings) and an error is
no longer thrown when `mustWork = FALSE` and `x` contains `NA`
value(s). (#194)
## Bug fixes
* `print(as.tags(x))` no longer results in error when `x` is a generic
`list()` of tag-like objects. (#181)
htmltools 0.5.0
--------------------------------------------------------------------------------
* `tags` is now generated by a script which collects all
[HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) and
[SVG](https://developer.mozilla.org/en-US/docs/Web/SVG/Element) element tags
documented in [MDN Web Docs](https://developer.mozilla.org). This feature
only appends to the existing set of `tags` (#159)
* Removed the Rcpp depedency and the compiled code now uses C rather than C++ (#158)
* BREAKING CHANGE: Fixed#57, #153: `htmlTemplate` output no longer inserts
extra whitespace around {{...}} replacement values. (#154)
* `HTML()` now takes `.noWS` argument, which can be used to suppress surrounding
whitespace (similar to the new argument for tags in htmltools 0.4.0). (#154)
* `css()` now returns `NULL` instead of `""` when no non-empty properties are
specified. (#145)
* `save_html(tags$body(...))` no longer results in double <body> tags being
written to the .html file. (Note that `save_html(tags$html(...))` is not
supported at this time.) (#145)
* Trailing commas now permited in `...` arguments to `css()`, `tagList()`, and
the var-arg mutation functions: `tagAppendAttributes()`, `tagSetChildren()`,
and `tagAppendChildren()`. (#145)
* Added `capturePlot` and `plotTag` functions, for easily creating image files
and HTML <img> tags (respectively) from plot expressions. (#150)
* Added `parseCssColors` function, for normalizing the various CSS
color formats into #RRGGBB(AA) strings. (#155)
* Fixed#156: Now `extractPreserveChunks()` handles strings contain
Emoji Unicode strings correctly on Windows. (#157)
* The `.noWS` parameter for suppressing whitespace can now take an `"inside"`
value (equivalent to `c("after-start", "before-end")`). (#163)
htmltools 0.4.0
--------------------------------------------------------------------------------
* Fixed#128: Added support for trailing commas in tagLists and the predefined
tags. (#135)
* Added some HTML tag functions to `tags` that were missing. (#111)
* Updated RcppExports for new version of Rcpp. (#93)
* `as.character.shiny.tags()` will handle non-ASCII attributes correctly if they
are not encoded in native encoding.
* Fixed#99: `NA` attributes were sometimes rendered as `"NA"` in the HTML,
instead of being blank. (#100)
* The error message for trailing commas in tag functions now provides context
and useful information. (#109)
* Stopped using inline styles to set background color for `save_html`, as doing so
makes it difficult to override using other CSS rules. (#123)
* Added a `.noWS` argument to `tag()` and `tags` which can be used to suppress
the automatically generated whitespace around a particular tag. (#131)
* Added a shim for `system.file()` so that htmltools works with `htmlDependency`
objects created by a package that was loaded with `devtools::load_all()`.
(#129)
* `validateCssUnit()` now accepts `ch`, `rem`, and `calc()`. (#134)
* Fixed#125: `print.html` removes html dependencies. (#126)
* Stopped extra carriage returns from being inserted by `save_html` on Windows.
(#137)
CHANGES IN markdown VERSION 1.1
MAJOR CHANGES
o renderMarkdown() and markdownToHTML() will signal an error if the input file
is not encoded in "UTF-8".
3.2.5 (2021-04-05)
Improvements
* Add more validations to XPath parser.
* require "rexml/document" by default. [GitHub#36][Patch by Koichi ITO]
* Don't add #dclone method to core classes globally. [GitHub#37][Patch by
Akira Matsuda]
* Add more documentations. [Patch by Burdette Lamar]
* Added REXML::Elements#parent. [GitHub#52][Patch by Burdette Lamar]
Fixes
* Fixed a bug that REXML::DocType#clone doesn't copy external ID
information.
* Fixed round-trip vulnerability bugs. See also:
https://www.ruby-lang.org/en/news/2021/04/05/xml-round-trip-vulnerability-in-rexml-cve-2021-28965/
[HackerOne#1104077][CVE-2021-28965][Reported by Juho Nurminen]
Thanks
* Koichi ITO
* Akira Matsuda
* Burdette Lamar
* Juho Nurminen
2.0.5 (2021-03-19)
Fixed
* Support Mageia distros when libxml2/libxslt system libraries are
install. #165 (Thank you, @pterjan!)
Added
* Forward-looking support for a version of Nokogiri that will provide HTML5
parsing. #171
Improved
* Update extconf.rb to use Nokogiri v1.11's CPPFLAGS for more reliable
installation. #163
2.0.4 (2020-11-27)
Fixed
* Fixed a bug where Nokogiri::HTML5.fragment(nil) would raise an error. Now
it returns an empty DocumentFragment like it did in v2.0.2.
* Fixed assertion failure when a tag immediately followed the UTF-8 BOM.
2.0.3 (2020-11-21)
Added
* Limit enforced on number of attributes per element, defaulting to 400 and
configurable with the :max_attributes argument.
Fixed
* Ignore UTF-8 byte order mark at the beginning of the input.
* Fix content sniffing for Unicode strings.
* Fixed crash where Ruby objects constructed in C can be garbage collected.
2.0.15 (2021-04-27)
Bug Fixes
* Don't include trailing period, question mark, or exclamation point in
target (URL) of autolink (#3860)
* Don't assign nil value to named attribute mapped to absent positional
attribute when parsing attrlist (#4033)
* Remove leading and trailing spaces around role on inline phrase (#4035)
* Ignore empty role on inline phrase defined using legacy syntax and
followed by comma (#4035)
* Use xreftext on document as fallback link text in HTML output for
inter-document xref that resolves to current document when no link text is
provided (#4032)
* Use xreftext on document as fallback link text in HTML output for internal
xref with empty fragment when no link text is provided (#4032)
* Use document ID as linkend in DocBook output for internal xref with empty
fragment; auto-generating one if necessary (#4032)
Improvements
* Format keyboard references in monospace in manpage output
Build / Infrastructure
* Get remaining invoker tests working on JRuby 9.1 for Windows
libxml++ is a C++ wrapper for the libxml XML parser library. It has SAX and
DOM-like APIs, but does not attempt to conform exactly to the DOM
specifications because they are not aimed at C++. Its API is much simpler
than the underlying libxml C API.
This package follows the libxml++-5.0 API.
Changes compared to libxml++:
5.0.1 (stable):
Build:
* libxml++config.h.*: Don't dllimport on MinGW
(Chun-wei Fan) Issue gtkmm#90 (Lukas K.)
* Meson build: Make it possible to use libxml++ as a subproject
(Kjell Ahlstedt)
* Meson build: No implicit_include_directories
(Kjell Ahlstedt)
* MSVC build: Export classes selectively
(Chun-wei Fan)
Documentation:
* docs/index.md: Describe the different libxml++ ABIs
(Kjell Ahlstedt) Issue #20 (Tom Schoonjans)
5.0.0 (stable):
This is the first stable release in the libxml++-5.0 ABI series.
It is parallel-installable with the libxml++-2.6, libxml++-3.0
and libxml++-4.0 ABIs.
The tarball for 5.0.0 has been created with 'meson dist'.
If you build with Autotools from the tarball, please read
the relevant part of the README file.
Build:
* Add NMake Makefiles
Remove Visual Studio 2010 projects
(Chun-wei Fan) Pull request #10
* Use __declspec(dllexport) when building on Visual Studio
Stop using gendef.exe
(Chun-wei Fan) Pull request #15
* Add support for building with Meson
(Kjell Ahlstedt, Chun-wei Fan) Pull request #16, #17, issue #19
4.9.1 (unstable):
* Change ABI name from libxml++-4.0 to libxml++-5.0
There is also a libxml++-4-0 branch for the libxml++-4.0 ABI,
which still uses glibmm-2.64.
And there is a libxml++-3-0 branch for the libxml++-3.0 ABI,
which still uses glibmm-2.4.
* Build: Remove dependency on glibmm and don't use Glib::ustring
For now, the API uses an xmlpp::ustring alias of std::string
where it previously used Glib::ustring.
3.9.1 (unstable):
* Change ABI name to libxml++-4.0
There is also a libxml++-3-2 branch for the libxml++-3.0 ABI,
which still uses glibmm-2.4.
* Build:
- Use glibmm-2.64 instead of glibmm-2.4.
- Require C++17.
* Parser: Make some methods const
3.2.0 (stable):
* Document, DomParser: Improve XInclude processing:
Document:
Add process_xinclude() overload that takes a fixup_base_uris parameter.
DomParser:
Add set/get_xinclude_options() and add optional XInclude processing to the
parse methods.
(Kjell Ahlstedt) Bug 781566
* Add explicit keyword to some single-parameter constructors.
(Murray Cumming)
* tests: Don't require C++17
(Kjell Ahlstedt)
* Build: Fix srcdir != buildir build.
(Kjell Ahlstedt, Murray Cumming)
3.0.1 (stable):
* Element::remove_attribute(): Delete the C++ wrapper
(Harald Schmalzl, Kjell Ahlstedt) Bug #768404.
3.0.0 (stable):
* This is the first stable release of libxml++-3.0. ABI and API are
incompatible with libxml++-2.6. These two series of libxml++ can be
installed in parallel.
Applications that want to upgrade from libxml++-2.6 to libxml++-3.0
must change their pkg-config check to libxml++-3.0.
(Kjell Ahlstedt) Bug #754673.
* This release is identical to the unstable 2.91.3, except for the so name,
which has now been bumped.
(Kjell Ahlstedt) Bug #760574 (Dominique Leuenberger)
2.91.3 (unstable):
* Element: Remove a redundant nullptr check
(Renu Tyagi) Bug #757515
* Use scoped enums (enum class) instead of unscoped enums
* Document: Test for nullptr in a constructor
* DomParser: Make operator bool() explicit
(Kjell Ahlstedt)
* The ABI and API are not identical to libxml++ 2.91.2.
There may be more changes in ABI and/or API before the first stable
libxml++-3.0 release.
2.91.2 (unstable):
* Remove the preprocessor constant LIBXMLCPP_EXCEPTIONS_ENABLED.
It was always 1.
* Add a config-time test for support of std::exception_ptr. Don't try to
use std::exception_ptr on a system where it does not exist.
This includes re-implementing the wrapped_exception class and the
raise() and clone() methods in xmlpp::exception and its subclasses.
(Daniel Trebbien, Kjell Ahlstedt) Bug #757042 (Michael Biebl)
* The ABI is not identical to that of libxml++ 2.91.1.
There may be more changes in ABI and/or API before the first stable
libxml++-3.0 release.
2.91.1 (unstable):
* Renamed ABI from libxml++-2.6 to libxml++-3.0.
This requires applications to change their pkg-config check to libxml++-3.0
when they wish to use libxml++ 2.9x or 3.x instead of libxml++ 2.x.
(Kjell Ahlstedt) Bug #754673.
There may be more changes in ABI and/or API before the first stable
libxml++-3.0 release.
* Node: Add const_NodeList and use it in a const version of get_children().
Add const_NodeSet and use it in a const version of find().
Replace xmlpp::NodeSet by xmlpp::Node::NodeSet.
Element: Add const_Attribute_list and use it in a const version of
get_attributes().
(Kjell Ahlstedt) Bug #338907 (Marcos Mayorga)
* Document: Add a non-const version of get_root_node(). Let the const version
return a const pointer.
(Knut Aksel Røysland) Bug #632522
* Element: Add a non-const version of get_attribute(). Let the const version
return a const pointer.
(Knut Aksel Røysland) Bug #632524
* Replace the deprecated std::auto_ptr by std::unique_ptr
(Kjell Ahlstedt) Bug #753123
* DomParser: The default behaviour is to throw both parse errors and
validity errors in an exception instead of printing some messages on stderr.
* Parser: Some protected data has become private.
* Several classes: Some virtual methods have become non-virtual, and some
non-virtual methods have become virtual.
* Remove class xmlpp::wrapped_exception and the deprecated classes
Schema and SchemaValidator.
* xmlpp::exception and its subclasses: Remove Raise() and Clone().
* SaxParser: Start each parsing with a new Document for entity resolution.
* Move all Node::add_child*() methods to Element and rename them to
add_child_element*().
* Attribute: Move set_value() to AttributeNode.
* Use std::string instead of Glib::ustring for filenames.
* Node: Replace remove_child() by remove_node().
* Move some code from DtdValidator to Dtd.
* Element: Rename set/get_child_text() to set/get_first_child_text().
Recursive _search and replace_ CLI application.
Powerful search can be found without problems, eg, grep, ack, ag, ripgrep
or broot.
Tools for replacing recursively in a folder are more difficult to find,
although some exist: fart-it. Typically, people use a combination of searching,
xargs and a replacement tool like sed or rpl.
I use code searching a lot to investigate a large source code base before
attempting a replace. Even with 100k files, search is fast and fairly easy.
Recursively replacing text is much more dangerous, especially if it requires
the combination of several less frequently used tools; it's difficult to
remember a search-xargs-replace combination if not used on a daily basis.
On top of this, the search tool used to filter the set of files and perform a
dry-run, is not per-se using the same search query as the replace tool.
After all, these are different tools. It would be better if a single tool could
be used for every-day searching and replacing.
This is exactly what The Molybdenum Replacer intends to achieve.
Upstream changes:
0.017 2021-04-16 T. R. Wyant
All uses of the postderef argument to new() now warn.
0.016 2021-03-26 T. R. Wyant
Add rt.cpan.org back to bug reporting methods. Long live RT!
Get prerequisites up to snuff, and add xt/author/prereq.t to ensure
they stay that way.
Refactor authortest into three, so I do not have to generate stub
files to test without optional modules.
0.015 2021-02-05 T. R. Wyant
Handle <<\EOD and <<~\EOD, which are equivalent to <<'EOD' and
<<~'EOD', respectively.
Recognize indented here documents. Thanks to Olaf Alders (oalders)
for alerting me to this omission.
0.014 2021-01-14 T. R. Wyant
Add Travis CI testing.
Use GitHub as bug tracker. R.I.P. rt.cpan.org.