s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
8 |
--------------------------------------------------------------------------------
/docs/site_libs/tabwid-1.1.3/tabwid.css:
--------------------------------------------------------------------------------
1 | .tabwid {
2 | font-size: initial;
3 | padding-bottom: 1em;
4 | }
5 |
6 | .tabwid table{
7 | border-spacing:0px !important;
8 | border-collapse:collapse;
9 | line-height:1;
10 | margin-left:auto;
11 | margin-right:auto;
12 | border-width: 0;
13 | border-color: transparent;
14 | caption-side: top;
15 | }
16 | .tabwid-caption-bottom table{
17 | caption-side: bottom;
18 | }
19 | .tabwid_left table{
20 | margin-left:0;
21 | }
22 | .tabwid_right table{
23 | margin-right:0;
24 | }
25 | .tabwid td, .tabwid th {
26 | padding: 0;
27 | }
28 | .tabwid a {
29 | text-decoration: none;
30 | }
31 | .tabwid thead {
32 | background-color: transparent;
33 | }
34 | .tabwid tfoot {
35 | background-color: transparent;
36 | }
37 | .tabwid table tr {
38 | background-color: transparent;
39 | }
40 | .katex-display {
41 | margin: 0 0 !important;
42 | }
43 |
--------------------------------------------------------------------------------
/docs/site_libs/tabwid-1.1.3/tabwid.js:
--------------------------------------------------------------------------------
1 | document.addEventListener("DOMContentLoaded", function(event) {
2 | var els = document.querySelectorAll(".tabwid");
3 | var tabwid_link = document.querySelector('link[href*="tabwid.css"]')
4 | if (tabwid_link === null) {
5 | const tabwid_styles = document.evaluate("//style[contains(., 'tabwid')]", document, null, XPathResult.ANY_TYPE, null );
6 | tabwid_link = tabwid_styles.iterateNext();
7 | }
8 |
9 | Array.prototype.forEach.call(els, function(template) {
10 | const dest = document.createElement("div");
11 | template.parentNode.insertBefore(dest, template.nextSibling)
12 | dest.setAttribute("class", "flextable-shadow-host");
13 | const fantome = dest.attachShadow({mode: 'open'});
14 | fantome.appendChild(template);
15 | if (tabwid_link !== null) {
16 | fantome.appendChild(tabwid_link.cloneNode(true));
17 | }
18 | });
19 |
20 | const shadowHosts = document.querySelectorAll('.flextable-shadow-host:not(:has(div > table.no-shadow-dom))');
21 | shadowHosts.forEach(host => {
22 | if (host.shadowRoot) {
23 | const spanElements = host.shadowRoot.querySelector('div > table > caption > span[id]');
24 | if (spanElements) {
25 | const id = spanElements.getAttribute("id");
26 | host.setAttribute("id", id);
27 | }
28 | }
29 | });
30 |
31 | });
32 |
--------------------------------------------------------------------------------
/docs/writing_files/figure-html/fig-myplot-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/docs/writing_files/figure-html/fig-myplot-1.png
--------------------------------------------------------------------------------
/docs/writing_files/figure-html/fig-myplot2-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/docs/writing_files/figure-html/fig-myplot2-1.png
--------------------------------------------------------------------------------
/docs/writing_files/figure-html/fig-myplot3-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/docs/writing_files/figure-html/fig-myplot3-1.png
--------------------------------------------------------------------------------
/example_journal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/example_journal.pdf
--------------------------------------------------------------------------------
/example_manuscript.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/example_manuscript.pdf
--------------------------------------------------------------------------------
/img/console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/console.png
--------------------------------------------------------------------------------
/img/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/cover.png
--------------------------------------------------------------------------------
/img/docx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/docx.png
--------------------------------------------------------------------------------
/img/insertchunk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/insertchunk.png
--------------------------------------------------------------------------------
/img/journalmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/journalmode.png
--------------------------------------------------------------------------------
/img/keyboardwithbacktick.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/keyboardwithbacktick.jpeg
--------------------------------------------------------------------------------
/img/menuworkingdirectory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/menuworkingdirectory.png
--------------------------------------------------------------------------------
/img/newquartodocument.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/newquartodocument.png
--------------------------------------------------------------------------------
/img/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/terminal.png
--------------------------------------------------------------------------------
/img/yamlmetadata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/img/yamlmetadata.png
--------------------------------------------------------------------------------
/index.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Introduction to apaquarto"
3 | engine: knitr
4 | ---
5 |
6 | Style guides facilitate scientific communication. Because scholars often write about inherently difficult topics, preventing any *avoidable* barriers to communication is all the more necessary. Style guides make information easier to absorb because it is presented in a predictable sequence and a familiar format. Still, in removing unnecessary barriers to communication on the reader's end, style guides themselves often place unnecessary roadblocks before the writer.
7 |
8 | [APA style](https://apastyle.apa.org/) is fussier than most discipline-specific guides. Because it was introduced in the pre-computer age [@bentley1929instructions], its quirks and charms resist easy automation. Even after decades of experience, I still need to look things up. Constantly. The basics of APA style are easy enough to learn, but there are a lot of particulars to keep in mind. Not only are there rules and exceptions to rules to remember, there are exceptions to the exceptions that must not be forgotten.
9 |
10 | I wrote [apaquarto](https://github.com/wjschne/apaquarto) so that I would never have to worry about APA style ever again. With very little extra effort, your documents are formatted according to APA style. In @fig-manuscript we see an example of apaquarto's output to "manuscript mode". Switching the document to "journal model, produces output formatted like an APA journal (see @fig-journal).
11 |
12 | ::: {#fig-manuscript fig-cap="Example document in manuscript mode"}
13 | ```{=html}
14 |
15 | ```
16 | :::
17 |
18 | ::: {#fig-journal fig-cap="Example document in journal mode"}
19 | ```{=html}
20 |
21 | ```
22 | :::
23 |
24 | # Quarto makes writing scientific documents easier
25 |
26 | The apaquarto extension is built on [Quarto](https://quarto.org/), an open-source publishing system specifically adapted for scientific and technical documents such as journal articles, books, blogs, slides, and dashboards, and websites. Not only does Quarto offer considerable flexibility by itself, it was designed to be extensible. Thus, Quarto can take care of most of the formatting, and an extension can be written to handle whatever specific formatting rules a style guide requires. The apaquarto extension takes care of all the fussy details of APA-style so that you can focus on the content of your writing.
27 |
28 | **You do not need to know any programming languages to use Quarto.** You can use it in a completely non-technical way to write well-formatted text, tables, figures, and references. However, if your document communicates the results from data analyses, then Quarto offers you something quite remarkable. You can perform your analyses and communicate your findings in the same file! That is, you write text and code together in a source document and then you "render" the document into its final format (e.g., .html, .pdf, .docx). So instead of performing your analyses elsewhere (e.g., SPSS) and then copying the results into a word processor (e.g., MS Word), you build your document in one step.
29 |
30 | The advantages of this kind of workflow are profound. If you discover a mistake in your analysis, there is no need to find and replace the primary results and their downstream consequences scattered throughout the document. Instead, you just re-render the document, and everything in it is updated. When the document is published, the Quarto file serves as a fully reproducible record of your analysis. Making the Quarto file available in a public repository increases trust in your work because anyone can inspect it and trace any result you report back to the source code that created it.
31 |
--------------------------------------------------------------------------------
/references.bib:
--------------------------------------------------------------------------------
1 |
2 | @inbook{
3 | schneiderCattellHornCarrollTheoryCognitive2018,
4 | place={New York},
5 | edition={4},
6 | title={The Cattell-Horn-Carroll theory of cognitive abilities},
7 | ISBN={978-1-4625-3578-1},
8 | url={https://www.guilford.com/books/Contemporary-Intellectual-Assessment/Flanagan-McDonough/9781462552030},
9 | booktitle={Contemporary intellectual assessment: Theories, tests, and issues},
10 | publisher={Guilford Press},
11 | author={Schneider, William Joel and McGrew, Kevin S},
12 | editor={Flanagan, Dawn P. and McDonough, Erin M.},
13 | year={2018},
14 | pages={73–130} }
15 |
16 | @inbook{
17 | schneiderCattellHornCarrollTheoryCognitive2018,
18 | place={New York},
19 | edition={4},
20 | title={The Cattell-Horn-Carroll theory of cognitive abilities},
21 | ISBN={978-1-4625-3578-1},
22 | url={https://www.guilford.com/books/Contemporary-Intellectual-Assessment/Flanagan-McDonough/9781462552030},
23 | booktitle={Contemporary intellectual assessment: Theories, tests, and issues},
24 | publisher={Guilford Press},
25 | author={Schneider, William Joel and McGrew, Kevin S},
26 | editor={Flanagan, Dawn P. and McDonough, Erin M.},
27 | year={2018},
28 | pages={73–130} }
29 |
30 | @inbook{
31 | schneiderCattellHornCarrollTheoryCognitive2018,
32 | place={New York},
33 | edition={4},
34 | title={The Cattell-Horn-Carroll theory of cognitive abilities},
35 | ISBN={978-1-4625-3578-1},
36 | url={https://www.guilford.com/books/Contemporary-Intellectual-Assessment/Flanagan-McDonough/9781462552030},
37 | booktitle={Contemporary intellectual assessment: Theories, tests, and issues},
38 | publisher={Guilford Press},
39 | author={Schneider, William Joel and McGrew, Kevin S},
40 | editor={Flanagan, Dawn P. and McDonough, Erin M.},
41 | year={2018},
42 | pages={73–130} }
43 |
--------------------------------------------------------------------------------
/resources.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Resources"
3 | csl: apa-cv.csl
4 | suppress-bibliography: true
5 | bibliography: bibliography.bib
6 | ---
7 |
8 | ## APA-Style Online
9 |
10 | * [APA Style (apa.org)](https://apastyle.apa.org/)
11 | * [APA Style Blog](https://apastyle.apa.org/blog)
12 |
13 |
14 | ## APA-Style Books
15 |
16 | * @americanpsychologicalassociationPublicationManualAmerican2020
17 | * @ConciseGuideAPA2020
18 | * @americanpsychologicalassociationMasteringAPAStyle2021
19 |
20 | ## APA-Style Helper Functions in R
21 |
22 | Many packages have helper functions for reporting statistics in and creating tables and figures in APA Style. Here are a few:
23 |
24 | * [rempsyc](https://rempsyc.remi-theriault.com/index.html)
25 | * [papaja](https://frederikaust.com/papaja_man/reporting.html)
26 | * [apa](https://github.com/dgromer/apa)
27 | * [apaTables](https://dstanley4.github.io/apaTables/)
28 |
29 | ## Alternatives to apaquarto
30 |
31 | To my knowledge, there is no working quarto extension other than apaquarto that takes a comprehensive approach to APA style with output options in .docx, .html, and .pdf. However, there are other ways to automate the production of APA-style documents.
32 |
33 | ### APA style with knitr and $\LaTeX$
34 |
35 | The ability to automate APA style via $\LaTeX$ has been around for some time---first via [apa](https://ctan.org/pkg/apa) (APA Style, 5th Edition), then via [apa6](https://ctan.org/pkg/apa6) (APA Style, 6th Edition), and now via [apa7](https://ctan.org/pkg/apa7) (APA Style, 7th Edition). The apaquarto package uses [apa7](https://ctan.org/pkg/apa7) to create .pdf documents. To intermingle R code and $\LaTeX$ code in the same document, R-users could write in an .Rnw file using [sweave or knitr](https://support.posit.co/hc/en-us/articles/200552056-Using-Sweave-and-knitr). I still do so when I need the full flexibility of $\LaTeX$.
36 |
37 | ### APA style with Rmarkdown and papaja
38 |
39 | Unfortunately, most psychology journals require submissions in MS Word (and most collaborators do as well). Learning $\LaTeX$ is fun for some people (e.g., me), but most will not bother. With the arrival of Rmarkdown, it became possible to automate document production with a system that takes just a few minutes to learn.
40 |
41 | The [papaja](https://github.com/crsh/papaja) package by Frederick Aust uses Rmarkdown syntax and does a fantastic job of creating APA-style (6th Edition) documents in .pdf and [gets close to perfect .docx output](https://frederikaust.com/papaja_man/limitations.html#microsoft-word-documents). With a bit of tweaking, [papaja can do most of APA Style (7th Edition)](https://github.com/crsh/papaja/issues/342) for .pdf documents.
42 |
43 | ### APA style with Quarto and Typst
44 |
45 | Matti Vuore is working on an [APA-like quarto extension](https://github.com/mvuorre/quarto-apaish) that uses [Typst](https://typst.app/) instead of $\LaTeX$. As of 2024-02-27, there are aspects of APA style missing, but it looks promising. Because Typst offers many advantages over $\LaTeX$ (e.g., easy reconfiguration and much faster rendering), I would like to adapt apaquarto to use Typst as well. The development of Typst is fast and ongoing, so it will be interesting to see what the future holds.
46 |
47 |
--------------------------------------------------------------------------------
/sampleimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/sampleimage.png
--------------------------------------------------------------------------------
/site_libs/bootstrap/bootstrap-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wjschne/apaquarto/a043211bc7f8189ad30fa3c6d2058c3140631a38/site_libs/bootstrap/bootstrap-icons.woff
--------------------------------------------------------------------------------
/site_libs/clipboard/clipboard.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * clipboard.js v2.0.11
3 | * https://clipboardjs.com/
4 | *
5 | * Licensed MIT © Zeno Rocha
6 | */
7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1 {
2 | function guessOS() {
3 | const userAgent = window.navigator.userAgent;
4 | if (userAgent.includes("Mac OS")) {
5 | return {
6 | name: "mac",
7 | };
8 | } else if (userAgent.includes("Windows")) {
9 | return {
10 | name: "windows",
11 | };
12 | } else {
13 | return {
14 | name: "linux",
15 | };
16 | }
17 | }
18 | const os = guessOS();
19 |
20 | // deno-lint-ignore no-window-prefix
21 | window.addEventListener("DOMContentLoaded", (_) => {
22 | for (const el of Array.from(document.querySelectorAll("kbd"))) {
23 | el.classList.add("kbd");
24 | if (el.dataset[os.name] !== undefined) {
25 | el.innerText = el.dataset[os.name];
26 | }
27 | if (os.name === "mac") {
28 | el.innerText = el.innerText
29 | .replaceAll(/command-?/gi, "⌘")
30 | .replaceAll(/cmd-?/gi, "⌘")
31 | .replaceAll(/shift-?/gi, "⇧")
32 | .replaceAll(/ctrl-?/gi, "⌃")
33 | .replaceAll(/control-?/gi, "⌃")
34 | .replaceAll(/option-?/gi, "⌥");
35 | }
36 | }
37 | });
38 | })();
39 |
--------------------------------------------------------------------------------
/site_libs/quarto-html/anchor.min.js:
--------------------------------------------------------------------------------
1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2 | //
3 | // AnchorJS - v5.0.0 - 2023-01-18
4 | // https://www.bryanbraun.com/anchorjs/
5 | // Copyright (c) 2023 Bryan Braun; Licensed MIT
6 | //
7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
9 | // @license-end
--------------------------------------------------------------------------------
/site_libs/quarto-html/quarto-syntax-highlighting-81b5c3e63835cfde897ecd3d35a35a41.css:
--------------------------------------------------------------------------------
1 | /* quarto syntax highlight colors */
2 | :root {
3 | --quarto-hl-ot-color: #003B4F;
4 | --quarto-hl-at-color: #657422;
5 | --quarto-hl-ss-color: #20794D;
6 | --quarto-hl-an-color: #5E5E5E;
7 | --quarto-hl-fu-color: #4758AB;
8 | --quarto-hl-st-color: #20794D;
9 | --quarto-hl-cf-color: #003B4F;
10 | --quarto-hl-op-color: #5E5E5E;
11 | --quarto-hl-er-color: #AD0000;
12 | --quarto-hl-bn-color: #AD0000;
13 | --quarto-hl-al-color: #AD0000;
14 | --quarto-hl-va-color: #111111;
15 | --quarto-hl-bu-color: inherit;
16 | --quarto-hl-ex-color: inherit;
17 | --quarto-hl-pp-color: #AD0000;
18 | --quarto-hl-in-color: #5E5E5E;
19 | --quarto-hl-vs-color: #20794D;
20 | --quarto-hl-wa-color: #5E5E5E;
21 | --quarto-hl-do-color: #5E5E5E;
22 | --quarto-hl-im-color: #00769E;
23 | --quarto-hl-ch-color: #20794D;
24 | --quarto-hl-dt-color: #AD0000;
25 | --quarto-hl-fl-color: #AD0000;
26 | --quarto-hl-co-color: #5E5E5E;
27 | --quarto-hl-cv-color: #5E5E5E;
28 | --quarto-hl-cn-color: #8f5902;
29 | --quarto-hl-sc-color: #5E5E5E;
30 | --quarto-hl-dv-color: #AD0000;
31 | --quarto-hl-kw-color: #003B4F;
32 | }
33 |
34 | /* other quarto variables */
35 | :root {
36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
37 | }
38 |
39 | pre > code.sourceCode > span {
40 | color: #003B4F;
41 | }
42 |
43 | code span {
44 | color: #003B4F;
45 | }
46 |
47 | code.sourceCode > span {
48 | color: #003B4F;
49 | }
50 |
51 | div.sourceCode,
52 | div.sourceCode pre.sourceCode {
53 | color: #003B4F;
54 | }
55 |
56 | code span.ot {
57 | color: #003B4F;
58 | font-style: inherit;
59 | }
60 |
61 | code span.at {
62 | color: #657422;
63 | font-style: inherit;
64 | }
65 |
66 | code span.ss {
67 | color: #20794D;
68 | font-style: inherit;
69 | }
70 |
71 | code span.an {
72 | color: #5E5E5E;
73 | font-style: inherit;
74 | }
75 |
76 | code span.fu {
77 | color: #4758AB;
78 | font-style: inherit;
79 | }
80 |
81 | code span.st {
82 | color: #20794D;
83 | font-style: inherit;
84 | }
85 |
86 | code span.cf {
87 | color: #003B4F;
88 | font-weight: bold;
89 | font-style: inherit;
90 | }
91 |
92 | code span.op {
93 | color: #5E5E5E;
94 | font-style: inherit;
95 | }
96 |
97 | code span.er {
98 | color: #AD0000;
99 | font-style: inherit;
100 | }
101 |
102 | code span.bn {
103 | color: #AD0000;
104 | font-style: inherit;
105 | }
106 |
107 | code span.al {
108 | color: #AD0000;
109 | font-style: inherit;
110 | }
111 |
112 | code span.va {
113 | color: #111111;
114 | font-style: inherit;
115 | }
116 |
117 | code span.bu {
118 | font-style: inherit;
119 | }
120 |
121 | code span.ex {
122 | font-style: inherit;
123 | }
124 |
125 | code span.pp {
126 | color: #AD0000;
127 | font-style: inherit;
128 | }
129 |
130 | code span.in {
131 | color: #5E5E5E;
132 | font-style: inherit;
133 | }
134 |
135 | code span.vs {
136 | color: #20794D;
137 | font-style: inherit;
138 | }
139 |
140 | code span.wa {
141 | color: #5E5E5E;
142 | font-style: italic;
143 | }
144 |
145 | code span.do {
146 | color: #5E5E5E;
147 | font-style: italic;
148 | }
149 |
150 | code span.im {
151 | color: #00769E;
152 | font-style: inherit;
153 | }
154 |
155 | code span.ch {
156 | color: #20794D;
157 | font-style: inherit;
158 | }
159 |
160 | code span.dt {
161 | color: #AD0000;
162 | font-style: inherit;
163 | }
164 |
165 | code span.fl {
166 | color: #AD0000;
167 | font-style: inherit;
168 | }
169 |
170 | code span.co {
171 | color: #5E5E5E;
172 | font-style: inherit;
173 | }
174 |
175 | code span.cv {
176 | color: #5E5E5E;
177 | font-style: italic;
178 | }
179 |
180 | code span.cn {
181 | color: #8f5902;
182 | font-style: inherit;
183 | }
184 |
185 | code span.sc {
186 | color: #5E5E5E;
187 | font-style: inherit;
188 | }
189 |
190 | code span.dv {
191 | color: #AD0000;
192 | font-style: inherit;
193 | }
194 |
195 | code span.kw {
196 | color: #003B4F;
197 | font-weight: bold;
198 | font-style: inherit;
199 | }
200 |
201 | .prevent-inlining {
202 | content: "";
203 | }
204 |
205 | /*# sourceMappingURL=a1a5e949e6b0b1c64df1f0f0f6e243e9.css.map */
206 |
--------------------------------------------------------------------------------
/site_libs/quarto-html/tippy.css:
--------------------------------------------------------------------------------
1 | .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
--------------------------------------------------------------------------------
/site_libs/quarto-nav/headroom.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it
3 | * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
4 | * License: MIT
5 | */
6 |
7 | !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=ls.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s});
8 |
--------------------------------------------------------------------------------
/site_libs/quarto-nav/quarto-nav.js:
--------------------------------------------------------------------------------
1 | const headroomChanged = new CustomEvent("quarto-hrChanged", {
2 | detail: {},
3 | bubbles: true,
4 | cancelable: false,
5 | composed: false,
6 | });
7 |
8 | const announceDismiss = () => {
9 | const annEl = window.document.getElementById("quarto-announcement");
10 | if (annEl) {
11 | annEl.remove();
12 |
13 | const annId = annEl.getAttribute("data-announcement-id");
14 | window.localStorage.setItem(`quarto-announce-${annId}`, "true");
15 | }
16 | };
17 |
18 | const announceRegister = () => {
19 | const annEl = window.document.getElementById("quarto-announcement");
20 | if (annEl) {
21 | const annId = annEl.getAttribute("data-announcement-id");
22 | const isDismissed =
23 | window.localStorage.getItem(`quarto-announce-${annId}`) || false;
24 | if (isDismissed) {
25 | announceDismiss();
26 | return;
27 | } else {
28 | annEl.classList.remove("hidden");
29 | }
30 |
31 | const actionEl = annEl.querySelector(".quarto-announcement-action");
32 | if (actionEl) {
33 | actionEl.addEventListener("click", function (e) {
34 | e.preventDefault();
35 | // Hide the bar immediately
36 | announceDismiss();
37 | });
38 | }
39 | }
40 | };
41 |
42 | window.document.addEventListener("DOMContentLoaded", function () {
43 | let init = false;
44 |
45 | announceRegister();
46 |
47 | // Manage the back to top button, if one is present.
48 | let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;
49 | const scrollDownBuffer = 5;
50 | const scrollUpBuffer = 35;
51 | const btn = document.getElementById("quarto-back-to-top");
52 | const hideBackToTop = () => {
53 | btn.style.display = "none";
54 | };
55 | const showBackToTop = () => {
56 | btn.style.display = "inline-block";
57 | };
58 | if (btn) {
59 | window.document.addEventListener(
60 | "scroll",
61 | function () {
62 | const currentScrollTop =
63 | window.pageYOffset || document.documentElement.scrollTop;
64 |
65 | // Shows and hides the button 'intelligently' as the user scrolls
66 | if (currentScrollTop - scrollDownBuffer > lastScrollTop) {
67 | hideBackToTop();
68 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
69 | } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) {
70 | showBackToTop();
71 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop;
72 | }
73 |
74 | // Show the button at the bottom, hides it at the top
75 | if (currentScrollTop <= 0) {
76 | hideBackToTop();
77 | } else if (
78 | window.innerHeight + currentScrollTop >=
79 | document.body.offsetHeight
80 | ) {
81 | showBackToTop();
82 | }
83 | },
84 | false
85 | );
86 | }
87 |
88 | function throttle(func, wait) {
89 | var timeout;
90 | return function () {
91 | const context = this;
92 | const args = arguments;
93 | const later = function () {
94 | clearTimeout(timeout);
95 | timeout = null;
96 | func.apply(context, args);
97 | };
98 |
99 | if (!timeout) {
100 | timeout = setTimeout(later, wait);
101 | }
102 | };
103 | }
104 |
105 | function headerOffset() {
106 | // Set an offset if there is are fixed top navbar
107 | const headerEl = window.document.querySelector("header.fixed-top");
108 | if (headerEl) {
109 | return headerEl.clientHeight;
110 | } else {
111 | return 0;
112 | }
113 | }
114 |
115 | function footerOffset() {
116 | const footerEl = window.document.querySelector("footer.footer");
117 | if (footerEl) {
118 | return footerEl.clientHeight;
119 | } else {
120 | return 0;
121 | }
122 | }
123 |
124 | function dashboardOffset() {
125 | const dashboardNavEl = window.document.getElementById(
126 | "quarto-dashboard-header"
127 | );
128 | if (dashboardNavEl !== null) {
129 | return dashboardNavEl.clientHeight;
130 | } else {
131 | return 0;
132 | }
133 | }
134 |
135 | function updateDocumentOffsetWithoutAnimation() {
136 | updateDocumentOffset(false);
137 | }
138 |
139 | function updateDocumentOffset(animated) {
140 | // set body offset
141 | const topOffset = headerOffset();
142 | const bodyOffset = topOffset + footerOffset() + dashboardOffset();
143 | const bodyEl = window.document.body;
144 | bodyEl.setAttribute("data-bs-offset", topOffset);
145 | bodyEl.style.paddingTop = topOffset + "px";
146 |
147 | // deal with sidebar offsets
148 | const sidebars = window.document.querySelectorAll(
149 | ".sidebar, .headroom-target"
150 | );
151 | sidebars.forEach((sidebar) => {
152 | if (!animated) {
153 | sidebar.classList.add("notransition");
154 | // Remove the no transition class after the animation has time to complete
155 | setTimeout(function () {
156 | sidebar.classList.remove("notransition");
157 | }, 201);
158 | }
159 |
160 | if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) {
161 | sidebar.style.top = "0";
162 | sidebar.style.maxHeight = "100vh";
163 | } else {
164 | sidebar.style.top = topOffset + "px";
165 | sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)";
166 | }
167 | });
168 |
169 | // allow space for footer
170 | const mainContainer = window.document.querySelector(".quarto-container");
171 | if (mainContainer) {
172 | mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)";
173 | }
174 |
175 | // link offset
176 | let linkStyle = window.document.querySelector("#quarto-target-style");
177 | if (!linkStyle) {
178 | linkStyle = window.document.createElement("style");
179 | linkStyle.setAttribute("id", "quarto-target-style");
180 | window.document.head.appendChild(linkStyle);
181 | }
182 | while (linkStyle.firstChild) {
183 | linkStyle.removeChild(linkStyle.firstChild);
184 | }
185 | if (topOffset > 0) {
186 | linkStyle.appendChild(
187 | window.document.createTextNode(`
188 | section:target::before {
189 | content: "";
190 | display: block;
191 | height: ${topOffset}px;
192 | margin: -${topOffset}px 0 0;
193 | }`)
194 | );
195 | }
196 | if (init) {
197 | window.dispatchEvent(headroomChanged);
198 | }
199 | init = true;
200 | }
201 |
202 | // initialize headroom
203 | var header = window.document.querySelector("#quarto-header");
204 | if (header && window.Headroom) {
205 | const headroom = new window.Headroom(header, {
206 | tolerance: 5,
207 | onPin: function () {
208 | const sidebars = window.document.querySelectorAll(
209 | ".sidebar, .headroom-target"
210 | );
211 | sidebars.forEach((sidebar) => {
212 | sidebar.classList.remove("sidebar-unpinned");
213 | });
214 | updateDocumentOffset();
215 | },
216 | onUnpin: function () {
217 | const sidebars = window.document.querySelectorAll(
218 | ".sidebar, .headroom-target"
219 | );
220 | sidebars.forEach((sidebar) => {
221 | sidebar.classList.add("sidebar-unpinned");
222 | });
223 | updateDocumentOffset();
224 | },
225 | });
226 | headroom.init();
227 |
228 | let frozen = false;
229 | window.quartoToggleHeadroom = function () {
230 | if (frozen) {
231 | headroom.unfreeze();
232 | frozen = false;
233 | } else {
234 | headroom.freeze();
235 | frozen = true;
236 | }
237 | };
238 | }
239 |
240 | window.addEventListener(
241 | "hashchange",
242 | function (e) {
243 | if (
244 | getComputedStyle(document.documentElement).scrollBehavior !== "smooth"
245 | ) {
246 | window.scrollTo(0, window.pageYOffset - headerOffset());
247 | }
248 | },
249 | false
250 | );
251 |
252 | // Observe size changed for the header
253 | const headerEl = window.document.querySelector("header.fixed-top");
254 | if (headerEl && window.ResizeObserver) {
255 | const observer = new window.ResizeObserver(() => {
256 | setTimeout(updateDocumentOffsetWithoutAnimation, 0);
257 | });
258 | observer.observe(headerEl, {
259 | attributes: true,
260 | childList: true,
261 | characterData: true,
262 | });
263 | } else {
264 | window.addEventListener(
265 | "resize",
266 | throttle(updateDocumentOffsetWithoutAnimation, 50)
267 | );
268 | }
269 | setTimeout(updateDocumentOffsetWithoutAnimation, 250);
270 |
271 | // fixup index.html links if we aren't on the filesystem
272 | if (window.location.protocol !== "file:") {
273 | const links = window.document.querySelectorAll("a");
274 | for (let i = 0; i < links.length; i++) {
275 | if (links[i].href) {
276 | links[i].dataset.originalHref = links[i].href;
277 | links[i].href = links[i].href.replace(/\/index\.html/, "/");
278 | }
279 | }
280 |
281 | // Fixup any sharing links that require urls
282 | // Append url to any sharing urls
283 | const sharingLinks = window.document.querySelectorAll(
284 | "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
285 | );
286 | for (let i = 0; i < sharingLinks.length; i++) {
287 | const sharingLink = sharingLinks[i];
288 | const href = sharingLink.getAttribute("href");
289 | if (href) {
290 | sharingLink.setAttribute(
291 | "href",
292 | href.replace("|url|", window.location.href)
293 | );
294 | }
295 | }
296 |
297 | // Scroll the active navigation item into view, if necessary
298 | const navSidebar = window.document.querySelector("nav#quarto-sidebar");
299 | if (navSidebar) {
300 | // Find the active item
301 | const activeItem = navSidebar.querySelector("li.sidebar-item a.active");
302 | if (activeItem) {
303 | // Wait for the scroll height and height to resolve by observing size changes on the
304 | // nav element that is scrollable
305 | const resizeObserver = new ResizeObserver((_entries) => {
306 | // The bottom of the element
307 | const elBottom = activeItem.offsetTop;
308 | const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight;
309 |
310 | // The element height and scroll height are the same, then we are still loading
311 | if (viewBottom !== navSidebar.scrollHeight) {
312 | // Determine if the item isn't visible and scroll to it
313 | if (elBottom >= viewBottom) {
314 | navSidebar.scrollTop = elBottom;
315 | }
316 |
317 | // stop observing now since we've completed the scroll
318 | resizeObserver.unobserve(navSidebar);
319 | }
320 | });
321 | resizeObserver.observe(navSidebar);
322 | }
323 | }
324 | }
325 | });
326 |
--------------------------------------------------------------------------------
/site_libs/tabwid-1.1.3/tabwid.css:
--------------------------------------------------------------------------------
1 | .tabwid {
2 | font-size: initial;
3 | padding-bottom: 1em;
4 | }
5 |
6 | .tabwid table{
7 | border-spacing:0px !important;
8 | border-collapse:collapse;
9 | line-height:1;
10 | margin-left:auto;
11 | margin-right:auto;
12 | border-width: 0;
13 | border-color: transparent;
14 | caption-side: top;
15 | }
16 | .tabwid-caption-bottom table{
17 | caption-side: bottom;
18 | }
19 | .tabwid_left table{
20 | margin-left:0;
21 | }
22 | .tabwid_right table{
23 | margin-right:0;
24 | }
25 | .tabwid td, .tabwid th {
26 | padding: 0;
27 | }
28 | .tabwid a {
29 | text-decoration: none;
30 | }
31 | .tabwid thead {
32 | background-color: transparent;
33 | }
34 | .tabwid tfoot {
35 | background-color: transparent;
36 | }
37 | .tabwid table tr {
38 | background-color: transparent;
39 | }
40 | .katex-display {
41 | margin: 0 0 !important;
42 | }
43 |
--------------------------------------------------------------------------------
/site_libs/tabwid-1.1.3/tabwid.js:
--------------------------------------------------------------------------------
1 | document.addEventListener("DOMContentLoaded", function(event) {
2 | var els = document.querySelectorAll(".tabwid");
3 | var tabwid_link = document.querySelector('link[href*="tabwid.css"]')
4 | if (tabwid_link === null) {
5 | const tabwid_styles = document.evaluate("//style[contains(., 'tabwid')]", document, null, XPathResult.ANY_TYPE, null );
6 | tabwid_link = tabwid_styles.iterateNext();
7 | }
8 |
9 | Array.prototype.forEach.call(els, function(template) {
10 | const dest = document.createElement("div");
11 | template.parentNode.insertBefore(dest, template.nextSibling)
12 | dest.setAttribute("class", "flextable-shadow-host");
13 | const fantome = dest.attachShadow({mode: 'open'});
14 | fantome.appendChild(template);
15 | if (tabwid_link !== null) {
16 | fantome.appendChild(tabwid_link.cloneNode(true));
17 | }
18 | });
19 |
20 | const shadowHosts = document.querySelectorAll('.flextable-shadow-host:not(:has(div > table.no-shadow-dom))');
21 | shadowHosts.forEach(host => {
22 | if (host.shadowRoot) {
23 | const spanElements = host.shadowRoot.querySelector('div > table > caption > span[id]');
24 | if (spanElements) {
25 | const id = spanElements.getAttribute("id");
26 | host.setAttribute("id", id);
27 | }
28 | }
29 | });
30 |
31 | });
32 |
--------------------------------------------------------------------------------
/template.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "My Title"
3 | shorttitle: "Short Title in Running Header"
4 | author:
5 | - name: Jane Doe
6 | corresponding: true
7 | orcid: 0000-0000-0000-0001
8 | email: janedoe@generic.edu
9 | affiliations:
10 | - name: Generic University
11 | department: Department of Scholarly Studies
12 | address: 1234 Capital St.
13 | city: New York
14 | region: NY
15 | country: USA
16 | postal-code: 12084-1234
17 | author-note:
18 | status-changes:
19 | affiliation-change: ~
20 | deceased: ~
21 | disclosures:
22 | study-registration: ~
23 | data-sharing: ~
24 | related-report: ~
25 | conflict-of-interest: ~
26 | financial-support: ~
27 | gratitude: ~
28 | authorship-agreements: ~
29 | abstract: "This document is a template."
30 | keywords: [Keyword 1, Keyword 2, Keyword 3]
31 | bibliography: bibliography.bib
32 | format:
33 | apaquarto-docx: default
34 | apaquarto-html: default
35 | apaquarto-typst: default
36 | apaquarto-pdf:
37 | documentmode: man
38 | ---
39 |
40 |
41 |
42 | This is my first paragraph. Any section headings in the introduction should be in levels 2--5.
43 |
44 | # Method
45 |
46 | ## Participants
47 |
48 | ## Measures
49 |
50 | ## Procedure
51 |
52 | # Results
53 |
54 | # Discussion
55 |
56 | ## Limitations and Future Directions
57 |
58 | ## Conclusion
59 |
60 | # References
61 |
62 |
63 |
64 | ::: {#refs}
65 | :::
66 |
67 | # This Section Is an Appendix {#apx-a}
68 |
69 |
70 | # Another Appendix {#apx-b}
--------------------------------------------------------------------------------