html_paged()
and other formats using paged.js
now informs knitr that its JS and CSS dependencies will be loaded by setting the is.paged.js
global knit option. Use isTRUE(knitr::opts_knit$get("is.paged.js"))
to detect it (thanks, @sylvaine31, @davidgohel, #332).Set overflow-x: clip
in default.css
to fix an issue with paged.js rendering in recent browser (thanks, @jimjam-slam, #292, pagedjs/pagedjs#84).
chrome_print()
now attempts to remove the output file before printing to it and throws a clear error if it cannot be removed, as this is potential sign of a locked file, e.g a pdf opened in a PDF reader on Windows (thanks, @aito123, #124, #297).
Figure inserted using markdown syntax and having a caption with (#fig:lab)
are now correctly listed in the LOF (thanks, @adamvi, #283).
Fix an issue in jss_paged()
with Pandoc 2.17 and above.
Fix an issue in html_paged()
with LOT and LOF not showing anymore with Pandoc 2.17 and above (thanks, @adamvi, #280).
Document that the html_letter()
output format modifies the default value of the fig_caption
parameter and allow the user to change it (thanks, @NewGraphEnvironment, #234).
Created an option pagedown.chrome.log
to ease chrome_print()
debugging: when set to TRUE
, the logs of Chrome are saved in the working directory.
Added support for Sass files with .scss
and .sass
extension (thanks, @felipecrp, #244).
loft.lua
filter following changes in Pandoc 2.16 (#249).find_chrome()
now searches for Microsoft Edge on Windows. That allows chrome_print()
to work seamlessly with Microsoft Edge (thanks, @cderv, #160 and #225). chrome_print()
, when printing a document to PDF, the default transfer mode between Chrome and R now uses a stream when this option is available in Chrome. This change ensures that PDF files of any size can be generated (#206 and #224).knitr::kables()
are now vertically aligned by default in html_paged()
, thesis_paged()
and jss_paged()
output formats (thanks, @cderv and @andrew-fuller, #214).Fixed a bug introduced in html_paged()
by pagedown 0.14, the content of each link was lost if it was not textual (thanks, @mcanouil, #226).
Fixed figure and table numbering format in jss_paged()
(thanks, @gglee4ai, #184).
html_paged()
, added two new options lot-unlisted
and lof-unlisted
. If lot-unlisted
(resp. lof-unlisted
) is set to TRUE
in the YAML options, the list of tables (resp. figures) will not be included in a table of contents (thanks, @beatrizmilz, #221). In html_paged()
, links are now sanitized to avoid impossible line breaking of long URLs in a justified text (thanks, @julientaq).
In order to be compatible with the flextable package, pagedown::html_paged()
sets the value of the ft.shadow
chunk option to FALSE
by default (thanks, @tvroylandt and @davidgohel, #216).
The fig_caption
argument is no longer hard-coded to FALSE
in html_resume()
(thanks, @nplatonov, #208).
The multiple use of an abbreviation no longer ends up with duplicated entries in the list of abbreviations (thanks, @linogaliana, #218).
The default value of the counter-reset
CSS property is correctly set to 0 instead of 1 (see https://developer.mozilla.org/en-US/docs/Web/CSS/counter-reset). To reset a page
CSS counter to 1, the following declaration must be used: counter-reset: page 1
(#202).
Numbered example lists (https://pandoc.org/MANUAL.html#numbered-example-lists) are correctly numbered (thanks, @atusy, #122 and #202).
Periods are now supported in titles (thanks, @yves-amevoin and @martinschmelzer, #84, #185 and #202).
Parts titles in the table of contents no longer crash chrome_print()
.
chrome_print()
is now compatible with the stream transfer mode which can be used to generate large PDF files (#205).
chrome_print()
no longer ignores runtime exceptions in Chrome. An R warning is now raised when Chrome encounters a runtime exception (#203).
html_paged()
, the title of the list of abbreviations can now be modified with the loa-title
field in the YAML header (thanks, @jtrecenti, #199).The option anchor_sections
is disabled internally. This option is for rmarkdown::html_document()
to generate anchor links for sections and currently it does not work well for pagedown format for now (#195).
In chrome_print()
, fixed a bug when the R session temporary directory and the current directory are mounted on different Linux file systems. In that case, chrome_print()
failed to add an outline to the PDF and raised the warning cannot rename file ..., reason 'Invalid cross-device link'
(#193).
chrome_print()
no longer ignores the Chrome DevTools event Inspector.targetCrashed
. An R error is now raised when Chrome crashes (#190). chrome_print()
now has a new argument outline
, with which the user can generate the outline bookmarks for the PDF file. Note, this feature requires Ghostscript being installed and detected by tools::find_gs_cmd()
(thanks, @shrektan, #174 and #179).html_resume()
template, avoid page breaks after section titles and inside subsections (thanks, @kevinrue, #170).html_resume()
template, an icon inserted using inline HTML in a section title takes precedence over the default icon and the data-icon
property (thanks, @Tazinho, #168).In chrome_print()
, fixed some connection problems to headless Chrome: in some situations, the R session tries to connect to headless Chrome before a target is created. Now, chrome_print()
controls the target creation by connecting to the Browser
endpoint (thanks, @gershomtripp, #158).
In html_resume()
template, vertical space is removed when details are omitted (thanks, @mrajeev08, #161).
Added support for pagebreaks: in output formats which use paged.js, a pagebreak can be forced using the LaTeX commands \newpage
and \pagebreak
or using the CSS classes page-break-before
and page-break-after
.
reveal.js presentations can be printed to PDF using chrome_print()
.
Using RStudio, any R Markdown HTML output formats can be directly printed to PDF by adding the line "knit: pagedown::chrome_print"
to the YAML header: this line modifies the behavior of the "Knit" button of RStudio and produce both HTML and PDF documents.
chrome_print()
with async = FALSE
, the Chrome processes and the local web server are properly closed when the function exits. This regression was introduced in pagedown 0.6.Added support for MathJax in html_resume
output format (thanks, @ginolhac, #146).
The chrome_print()
function internally uses a private event loop provided by later
1.0.0 when async=FALSE
(thanks, @jcheng5, #127).
Added support for lines numbering in html_paged()
: lines can be numbered using the top-level YAML parameter number-lines
(thanks, @julientaq, #115 and #129).
Added support for covers images in html_paged()
: html_paged()
gains two arguments, front_cover
and back_cover
, to insert images in the front and back covers. Textual contents can also be added in the covers using two special divs of classes front-cover
and back-cover
(thanks, @atusy, #134, #136 and #137).
When chrome_print()
is used with verbose >= 1
, some auxiliary informations about Paged.js rendering are printed (number of pages and elapsed time).
Added a template
argument to the business_card()
output format for passing a custom Pandoc template (thanks, @mariakharitonova, #135).
Fixed several bugs related to MathJax: local version of MathJax is now used when the mathjax
parameter is set to "local"
and self contained documents are rendered by default with MathJax without throwing any warning (#130).
In html_paged
, the nodes tree is sanitized before Paged.js splits the content into pages. This should avoid duplicated content observed when break-after: avoid
and break-before: avoid
are used (#131).
Added an async
argument to chrome_print()
. When async = TRUE
, chrome_print()
returns a promises::promise
object. This allows chrome_print()
to be used inside a Shiny App (thanks, @ColinFay, #91).
Added the support for chapter prefix as in bookdown. Chapter of class chapter
are prefixed with the word Chapter
. This prefix can be changed for internationalization purpose (thanks, @brentthorne, #101 and #107).
Added the support for lists of abbreviations. If the document contains <abbr>
HTML elements, a list of abbreviations is automatically built (thanks, @brentthorne, #102 and #107).
Added the new thesis_paged
template (thanks, @brentthorne, #107).
pagedjs-
. For instance, --width
is replaced by --pagedjs-width
. Users' stylesheets that use Paged.js CSS variables need to be updated. Bleeds and crop marks are now supported. Several bugs are fixed.The default stylesheet of html_paged()
is updated to support the new argument clean_highlight_tags
of bookdown::html_document2()
introduced in bookdown 0.10 (thanks, @atusy, #100).
In chrome_print()
the connection between the R session and headless Chrome now uses the native websocket client provided by the websocket package. The previous workaround which used a websocket server, a websocket tunnel and a browser-based websocket client is removed (reverts #74). chrome_print()
runs faster due to this simplification.
browser is forced to redraw the document after Paged.js finished. This will fix wrong page references observed with Chrome and RStudio 1.2.xxxx (#35 and #46, thanks, @petermeissner).
jsonlite::toJSON()
is now used in chrome_print()
for building all the JSON messages sent to headless Chromium/Chrome: this guarantees that the JSON strings are valid (thanks, @ColinFay, #85 and @cderv, #88).
In uri-to-fn.lua
, use a shallow copy of PANDOC_VERSION
. This is required for Pandoc >= 2.7.3 which changes the type of PANDOC_VERSION
(thanks, @andreaphsz, #111).
Insert page numbers after page references (thanks @atusy, #120).
With Pandoc 2.7.3, page numbers wrongly appear in code blocks.
chrome_print()
has been significantly enhanced. Now it prints web pages and R Markdown documents to PDF through the Chrome DevTools Protocol instead of the simple command-line call (like in v0.1). It also supports capturing screenshots.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.