* Increment version number * Better horizontal alignment of code blocks * Use testthat 3e * Use expect_known_output() because we need the css files * Replace `with_mock()` with `mockery::stub()` * Remove extraneous line * Set ml and mr for all horiz alignment classes * Add NEWS for #68tags/v0.4.1
| Type: Package | Type: Package | ||||
| Package: xaringanthemer | Package: xaringanthemer | ||||
| Title: Custom 'xaringan' CSS Themes | Title: Custom 'xaringan' CSS Themes | ||||
| Version: 0.4.0 | |||||
| Version: 0.4.0.9000 | |||||
| Authors@R: | Authors@R: | ||||
| person(given = "Garrick", | person(given = "Garrick", | ||||
| family = "Aden-Buie", | family = "Aden-Buie", | ||||
| utils, | utils, | ||||
| whisker | whisker | ||||
| Suggests: | Suggests: | ||||
| mockery, | |||||
| callr, | callr, | ||||
| ggplot2, | ggplot2, | ||||
| knitr, | knitr, | ||||
| xaringan | xaringan | ||||
| VignetteBuilder: | VignetteBuilder: | ||||
| knitr | knitr | ||||
| Config/testthat/edition: 3 | |||||
| Encoding: UTF-8 | Encoding: UTF-8 | ||||
| Roxygen: list(markdown = TRUE) | Roxygen: list(markdown = TRUE) | ||||
| RoxygenNote: 7.1.1 | RoxygenNote: 7.1.1 |
| # xaringanthemer (development version) | |||||
| * Text alignment in code blocks in `left`, `center`, or `right` aligned slides | |||||
| no longer matches the slide text. Instead, the code block width is reduced, | |||||
| if possible, and the block is pushed to the left, center, or right using | |||||
| margins (#68). | |||||
| # xaringanthemer 0.4.0 | # xaringanthemer 0.4.0 | ||||
| * Added `text_bold_font_weight` argument to xaringanthemer style functions with | * Added `text_bold_font_weight` argument to xaringanthemer style functions with |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| {{#header_background}} | {{#header_background}} | ||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1{{#auto}}, | .remark-slide-content.header_background > h1{{#auto}}, |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1, | .remark-slide-content.header_background > h1, | ||||
| .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { | .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| /* ------------------------------------------------------- | |||||
| * | |||||
| * !! This file was generated by xaringanthemer !! | |||||
| * | |||||
| * Changes made to this file directly will be overwritten | |||||
| * if you used xaringanthemer in your xaringan slides Rmd | |||||
| * | |||||
| * Issues or likes? | |||||
| * - https://github.com/gadenbuie/xaringanthemer | |||||
| * - https://www.garrickadenbuie.com | |||||
| * | |||||
| * Need help? Try: | |||||
| * - vignette(package = "xaringanthemer") | |||||
| * - ?xaringanthemer::write_xaringan_theme | |||||
| * - xaringan wiki: https://github.com/yihui/xaringan/wiki | |||||
| * - remarkjs wiki: https://github.com/gnab/remark/wiki | |||||
| * | |||||
| * Version: a.b.c.d.eeee | |||||
| * | |||||
| * ------------------------------------------------------- */ | |||||
| @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic); | |||||
| @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz); | |||||
| @import url(https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700); | |||||
| body { | |||||
| font-family: 'Droid Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif; | |||||
| font-weight: normal; | |||||
| color: #FEFDFD; | |||||
| } | |||||
| h1, h2, h3 { | |||||
| font-family: 'Yanone Kaffeesatz'; | |||||
| font-weight: normal; | |||||
| color: #F97B64; | |||||
| } | |||||
| .remark-slide-content { | |||||
| background-color: #1F4257; | |||||
| font-size: 20px; | |||||
| padding: 1rem 4rem 1rem 4rem; | |||||
| } | |||||
| .remark-slide-content h1 { | |||||
| font-size: 55px; | |||||
| } | |||||
| .remark-slide-content h2 { | |||||
| font-size: 45px; | |||||
| } | |||||
| .remark-slide-content h3 { | |||||
| font-size: 35px; | |||||
| } | |||||
| .remark-code, .remark-inline-code { | |||||
| font-family: 'Source Code Pro', 'Lucida Console', Monaco, monospace; | |||||
| } | |||||
| .remark-code { | |||||
| font-size: 0.9em; | |||||
| } | |||||
| .remark-inline-code { | |||||
| color: #F97B64; | |||||
| font-size: 1em; | |||||
| } | |||||
| .remark-slide-number { | |||||
| color: #FEFDFD; | |||||
| opacity: 1; | |||||
| font-size: 0.9em; | |||||
| } | |||||
| strong { color: #F97B64; } | |||||
| a, a > code { | |||||
| color: #F97B64; | |||||
| text-decoration: none; | |||||
| } | |||||
| .footnote { | |||||
| position: absolute; | |||||
| bottom: 3em; | |||||
| padding-right: 4em; | |||||
| font-size: 0.9em; | |||||
| } | |||||
| .remark-code-line-highlighted { | |||||
| background-color: rgba(255,255,0,0.5); | |||||
| } | |||||
| .inverse { | |||||
| background-color: #F97B64; | |||||
| color: #1F4257; | |||||
| } | |||||
| .inverse h1, .inverse h2, .inverse h3 { | |||||
| color: #1F4257; | |||||
| } | |||||
| .title-slide, .title-slide h1, .title-slide h2, .title-slide h3 { | |||||
| color: #F97B64; | |||||
| } | |||||
| .title-slide { | |||||
| background-color: #1F4257; | |||||
| } | |||||
| .title-slide .remark-slide-number { | |||||
| display: none; | |||||
| } | |||||
| /* Two-column layout */ | |||||
| .left-column { | |||||
| width: 20%; | |||||
| height: 92%; | |||||
| float: left; | |||||
| } | |||||
| .left-column h2, .left-column h3 { | |||||
| color: #F97B6499; | |||||
| } | |||||
| .left-column h2:last-of-type, .left-column h3:last-child { | |||||
| color: #F97B64; | |||||
| } | |||||
| .right-column { | |||||
| width: 75%; | |||||
| float: right; | |||||
| padding-top: 1em; | |||||
| } | |||||
| .pull-left { | |||||
| float: left; | |||||
| width: 47%; | |||||
| } | |||||
| .pull-right { | |||||
| float: right; | |||||
| width: 47%; | |||||
| } | |||||
| .pull-right ~ * { | |||||
| clear: both; | |||||
| } | |||||
| img, video, iframe { | |||||
| max-width: 100%; | |||||
| } | |||||
| blockquote { | |||||
| border-left: solid 5px #F97B6480; | |||||
| padding-left: 1em; | |||||
| } | |||||
| .remark-slide table { | |||||
| margin: auto; | |||||
| border-top: 1px solid #666; | |||||
| border-bottom: 1px solid #666; | |||||
| } | |||||
| .remark-slide table thead th { | |||||
| border-bottom: 1px solid #ddd; | |||||
| } | |||||
| th, td { | |||||
| padding: 5px; | |||||
| } | |||||
| .remark-slide thead, .remark-slide tfoot, .remark-slide tr:nth-child(even) { | |||||
| background: #627A89; | |||||
| } | |||||
| table.dataTable tbody { | |||||
| background-color: #1F4257; | |||||
| color: #FEFDFD; | |||||
| } | |||||
| table.dataTable.display tbody tr.odd { | |||||
| background-color: #1F4257; | |||||
| } | |||||
| table.dataTable.display tbody tr.even { | |||||
| background-color: #627A89; | |||||
| } | |||||
| table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { | |||||
| background-color: rgba(255, 255, 255, 0.5); | |||||
| } | |||||
| .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate { | |||||
| color: #FEFDFD; | |||||
| } | |||||
| .dataTables_wrapper .dataTables_paginate .paginate_button { | |||||
| color: #FEFDFD !important; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | |||||
| .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { | |||||
| display: block; | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| background: #F97B64; | |||||
| color: #1F4257; | |||||
| padding: 2rem 4rem 1.5rem 4rem; | |||||
| margin-top: 0; | |||||
| box-sizing: border-box; | |||||
| } | |||||
| .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) { | |||||
| padding-top: 7rem; | |||||
| } | |||||
| @page { margin: 0; } | |||||
| @media print { | |||||
| .remark-slide-scaler { | |||||
| width: 100% !important; | |||||
| height: 100% !important; | |||||
| transform: scale(1) !important; | |||||
| top: 0 !important; | |||||
| left: 0 !important; | |||||
| } | |||||
| } |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1, | .remark-slide-content.header_background > h1, | ||||
| .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { | .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1, | .remark-slide-content.header_background > h1, | ||||
| .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { | .remark-slide-content:not(.normal):not(.inverse):not(.title):not(.middle):not(.bottom) > h1 { |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| color: var(--text-color) !important; | color: var(--text-color) !important; | ||||
| } | } | ||||
| /* Horizontal alignment of code blocks */ | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.center pre, | |||||
| .remark-slide-content.right pre { | |||||
| text-align: start; | |||||
| width: max-content; | |||||
| max-width: 100%; | |||||
| } | |||||
| .remark-slide-content.left pre, | |||||
| .remark-slide-content.right pre { | |||||
| min-width: 50%; | |||||
| min-width: min(40ch, 100%); | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| min-width: 66%; | |||||
| min-width: min(50ch, 100%); | |||||
| } | |||||
| .remark-slide-content.left pre { | |||||
| margin-left: unset; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.center pre { | |||||
| margin-left: auto; | |||||
| margin-right: auto; | |||||
| } | |||||
| .remark-slide-content.right pre { | |||||
| margin-left: auto; | |||||
| margin-right: unset; | |||||
| } | |||||
| /* Slide Header Background for h1 elements */ | /* Slide Header Background for h1 elements */ | ||||
| .remark-slide-content.header_background > h1 { | .remark-slide-content.header_background > h1 { | ||||
| display: block; | display: block; |
| Family: Josefin Sans | |||||
| Weights: 400,400i,600i,700 | |||||
| URL: https://fonts.googleapis.com/css?family=Josefin+Sans:400,400i,600i,700&display=swap |
| test_that("register_font() returns the name of the font family if {showtext} is missing", { | test_that("register_font() returns the name of the font family if {showtext} is missing", { | ||||
| text_font_family <- xaringanthemer_font_default("text_font_family") | text_font_family <- xaringanthemer_font_default("text_font_family") | ||||
| family_showtext_missing <- testthat::with_mock( | |||||
| `xaringanthemer:::requires_package` = function(pkg, ...) pkg != "showtext", | |||||
| register_font(text_font_family, google = TRUE) | |||||
| ) | |||||
| # Pretend like {showtext} is missing | |||||
| mockery::stub(register_font, "requires_package", function(pkg, ...) pkg != "showtext") | |||||
| family_showtext_missing <- register_font(text_font_family, google = TRUE) | |||||
| expect_equal(family_showtext_missing, text_font_family) | expect_equal(family_showtext_missing, text_font_family) | ||||
| }) | }) | ||||
| text_font_family <- xaringanthemer_font_default("text_font_family") | text_font_family <- xaringanthemer_font_default("text_font_family") | ||||
| family_sysfonts_missing <- testthat::with_mock( | |||||
| `xaringanthemer:::requires_package` = function(pkg, ...) pkg != "sysfonts", | |||||
| register_font(text_font_family, google = TRUE) | |||||
| ) | |||||
| # Pretend like {sysfonts} is missing | |||||
| mockery::stub(register_font, "requires_package", function(pkg, ...) pkg != "sysfonts") | |||||
| family_sysfonts_missing <- register_font(text_font_family, google = TRUE) | |||||
| expect_equal(family_sysfonts_missing, text_font_family) | expect_equal(family_sysfonts_missing, text_font_family) | ||||
| }) | }) |
| context("test-helpers") | |||||
| test_that("element_description", { | test_that("element_description", { | ||||
| text_in <- c("multiple", NA, "", ".remark-slide-content", "h1", "pre, code") | text_in <- c("multiple", NA, "", ".remark-slide-content", "h1", "pre, code") |
| context("test-style_xaringan") | |||||
| test_that("style_xaringan() writes to specified outfile", { | test_that("style_xaringan() writes to specified outfile", { | ||||
| tmpfile <- tempfile(fileext = ".css") | tmpfile <- tempfile(fileext = ".css") |
| context("test-themes") | |||||
| test_theme_file <- function(theme = "duo", theme_file = paste0(theme, ".css"), ...) { | test_theme_file <- function(theme = "duo", theme_file = paste0(theme, ".css"), ...) { | ||||
| local_edition(2) | |||||
| on.exit(local_edition(3)) | |||||
| theme_fun <- switch( | theme_fun <- switch( | ||||
| theme, | theme, | ||||
| "duo" = style_duo, | "duo" = style_duo, | ||||
| ) | ) | ||||
| tmpfile <- tempfile() | tmpfile <- tempfile() | ||||
| on.exit(unlink(tmpfile), add = TRUE) | |||||
| theme_fun(outfile = tmpfile, ..., text_font_google = google_font("Noto Serif")) | theme_fun(outfile = tmpfile, ..., text_font_google = google_font("Noto Serif")) | ||||
| theme_css <- readLines(tmpfile) | theme_css <- readLines(tmpfile) | ||||
| expect_known_output(cat(theme_css), test_path("css", theme_file)) | expect_known_output(cat(theme_css), test_path("css", theme_file)) | ||||
| } | } | ||||
| test_that("style_duo()", test_theme_file("duo")) | |||||
| test_that("style_duo_accent()", test_theme_file("duo_accent")) | |||||
| test_that("style_duo_accent_inverse()", test_theme_file("duo_accent_inverse")) | |||||
| test_that("style_mono_accent()", test_theme_file("mono_accent")) | |||||
| test_that("style_mono_accent_inverse()", test_theme_file("mono_accent_inverse")) | |||||
| test_that("style_mono_dark()", test_theme_file("mono_dark")) | |||||
| test_that("style_mono_light()", test_theme_file("mono_light")) | |||||
| test_that("style_solarized_dark()", test_theme_file("solarized_dark")) | |||||
| test_that("style_solarized_light()", test_theme_file("solarized_light")) | |||||
| test_that("google fonts in theme", test_theme_file( | |||||
| "google_fonts", | |||||
| header_font_google = google_font("IBM Plex Serif", "700"), | |||||
| code_font_google = google_font("IBM Plex Mono") | |||||
| )) | |||||
| test_that("style_duo()", { test_theme_file("duo") }) | |||||
| test_that("style_duo_accent()", { test_theme_file("duo_accent") }) | |||||
| test_that("style_duo_accent_inverse()", { test_theme_file("duo_accent_inverse") }) | |||||
| test_that("style_mono_accent()", { test_theme_file("mono_accent") }) | |||||
| test_that("style_mono_accent_inverse()", { test_theme_file("mono_accent_inverse") }) | |||||
| test_that("style_mono_dark()", { test_theme_file("mono_dark") }) | |||||
| test_that("style_mono_light()", { test_theme_file("mono_light") }) | |||||
| test_that("style_solarized_dark()", { test_theme_file("solarized_dark") }) | |||||
| test_that("style_solarized_light()", { test_theme_file("solarized_light") }) | |||||
| test_that("google fonts in theme", { | |||||
| test_theme_file( | |||||
| "google_fonts", | |||||
| header_font_google = google_font("IBM Plex Serif", "700"), | |||||
| code_font_google = google_font("IBM Plex Mono") | |||||
| ) | |||||
| }) | |||||
| test_that("header_background_auto = TRUE", { | test_that("header_background_auto = TRUE", { | ||||
| test_theme_file("duo", "duo-header_bg.css", header_background_auto = TRUE) | test_theme_file("duo", "duo-header_bg.css", header_background_auto = TRUE) |
| test_that("printing google_font works", { | test_that("printing google_font works", { | ||||
| expect_known_output( | |||||
| print(google_font("Josefin Sans", "400", "400i", "600i", "700")), | |||||
| "google-font-print.txt" | |||||
| expect_snapshot( | |||||
| google_font("Josefin Sans", "400", "400i", "600i", "700") | |||||
| ) | ) | ||||
| }) | }) | ||||