1<!DOCTYPE html> 2 3<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> 4 5<head> 6 <meta charset="utf-8"/> 7 <meta name="viewport" content="width=device-width, initial-scale=1"/> 8 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> 9 <meta name="generator" content="distill" /> 10 11 <style type="text/css"> 12 /* Hide doc at startup (prevent jankiness while JS renders/transforms) */ 13 body { 14 visibility: hidden; 15 } 16 </style> 17 18 <!--radix_placeholder_import_source--> 19 <!--/radix_placeholder_import_source--> 20 21<style type="text/css">code{white-space: pre;}</style> 22<style type="text/css" data-origin="pandoc"> 23pre > code.sourceCode { white-space: pre; position: relative; } 24pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } 25pre > code.sourceCode > span:empty { height: 1.2em; } 26.sourceCode { overflow: visible; } 27code.sourceCode > span { color: inherit; text-decoration: inherit; } 28div.sourceCode { margin: 1em 0; } 29pre.sourceCode { margin: 0; } 30@media screen { 31div.sourceCode { overflow: auto; } 32} 33@media print { 34pre > code.sourceCode { white-space: pre-wrap; } 35pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } 36} 37pre.numberSource code 38 { counter-reset: source-line 0; } 39pre.numberSource code > span 40 { position: relative; left: -4em; counter-increment: source-line; } 41pre.numberSource code > span > a:first-child::before 42 { content: counter(source-line); 43 position: relative; left: -1em; text-align: right; vertical-align: baseline; 44 border: none; display: inline-block; 45 -webkit-touch-callout: none; -webkit-user-select: none; 46 -khtml-user-select: none; -moz-user-select: none; 47 -ms-user-select: none; user-select: none; 48 padding: 0 4px; width: 4em; 49 color: #aaaaaa; 50 } 51pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } 52div.sourceCode 53 { color: #00769e; background-color: #f1f3f5; } 54@media screen { 55pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } 56} 57code span { color: #00769e; } /* Normal */ 58code span.al { color: #ad0000; } /* Alert */ 59code span.an { color: #5e5e5e; } /* Annotation */ 60code span.at { color: #657422; } /* Attribute */ 61code span.bn { color: #ad0000; } /* BaseN */ 62code span.bu { } /* BuiltIn */ 63code span.cf { color: #00769e; } /* ControlFlow */ 64code span.ch { color: #20794d; } /* Char */ 65code span.cn { color: #8f5902; } /* Constant */ 66code span.co { color: #5e5e5e; } /* Comment */ 67code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */ 68code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */ 69code span.dt { color: #ad0000; } /* DataType */ 70code span.dv { color: #ad0000; } /* DecVal */ 71code span.er { color: #ad0000; } /* Error */ 72code span.ex { } /* Extension */ 73code span.fl { color: #ad0000; } /* Float */ 74code span.fu { color: #4758ab; } /* Function */ 75code span.im { } /* Import */ 76code span.in { color: #5e5e5e; } /* Information */ 77code span.kw { color: #00769e; } /* Keyword */ 78code span.op { color: #5e5e5e; } /* Operator */ 79code span.ot { color: #00769e; } /* Other */ 80code span.pp { color: #ad0000; } /* Preprocessor */ 81code span.sc { color: #5e5e5e; } /* SpecialChar */ 82code span.ss { color: #20794d; } /* SpecialString */ 83code span.st { color: #20794d; } /* String */ 84code span.va { color: #111111; } /* Variable */ 85code span.vs { color: #20794d; } /* VerbatimString */ 86code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */ 87</style> 88 89 90 <!--radix_placeholder_meta_tags--> 91 <title>Elizabeth Stanny: Business Data Analysis and Interpretation</title> 92 93 <meta property="description" itemprop="description" content="Fall 2022 BUS 320 Syllabus"/> 94 95 96 97 <!-- https://developers.facebook.com/docs/sharing/webmasters#markup --> 98 <meta property="og:title" content="Elizabeth Stanny: Business Data Analysis and Interpretation"/> 99 <meta property="og:type" content="article"/> 100 <meta property="og:description" content="Fall 2022 BUS 320 Syllabus"/> 101 <meta property="og:locale" content="en_US"/> 102 <meta property="og:site_name" content="Elizabeth Stanny"/> 103 104 <!-- https://dev.twitter.com/cards/types/summary --> 105 <meta property="twitter:card" content="summary"/> 106 <meta property="twitter:title" content="Elizabeth Stanny: Business Data Analysis and Interpretation"/> 107 <meta property="twitter:description" content="Fall 2022 BUS 320 Syllabus"/> 108 109 <!--/radix_placeholder_meta_tags--> 110 <!--radix_placeholder_rmarkdown_metadata--> 111 112
112<script type="text/json" id="radix-rmarkdown-metadata"> 113 {"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","output"]}},"value":[{"type":"character","attributes":{},"value":["Business Data Analysis and Interpretation"]},{"type":"character","attributes":{},"value":["Fall 2022 BUS 320 Syllabus\n"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["toc","toc_depth"]}},"value":[{"type":"logical","attributes":{},"value":[true]},{"type":"integer","attributes":{},"value":[3]}]}]}]} 114 </script>
114 115 <!--/radix_placeholder_rmarkdown_metadata--> 116 <!--radix_placeholder_navigation_in_header--> 117 <meta name="distill:offset" content=""/> 118 119
119<script type="application/javascript"> 120 121 window.headroom_prevent_pin = false; 122 123 window.document.addEventListener("DOMContentLoaded", function (event) { 124 125 // initialize headroom for banner 126 var header = $('header').get(0); 127 var headerHeight = header.offsetHeight; 128 var headroom = new Headroom(header, { 129 tolerance: 5, 130 onPin : function() { 131 if (window.headroom_prevent_pin) { 132 window.headroom_prevent_pin = false; 133 headroom.unpin(); 134 } 135 } 136 }); 137 headroom.init(); 138 if(window.location.hash) 139 headroom.unpin(); 140 $(header).addClass('headroom--transition'); 141 142 // offset scroll location for banner on hash change 143 // (see: https://github.com/WickyNilliams/headroom.js/issues/38) 144 window.addEventListener("hashchange", function(event) { 145 window.scrollTo(0, window.pageYOffset - (headerHeight + 25)); 146 }); 147 148 // responsive menu 149 $('.distill-site-header').each(function(i, val) { 150 var topnav = $(this); 151 var toggle = topnav.find('.nav-toggle'); 152 toggle.on('click', function() { 153 topnav.toggleClass('responsive'); 154 }); 155 }); 156 157 // nav dropdowns 158 $('.nav-dropbtn').click(function(e) { 159 $(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active'); 160 $(this).parent().siblings('.nav-dropdown') 161 .children('.nav-dropdown-content').removeClass('nav-dropdown-active'); 162 }); 163 $("body").click(function(e){ 164 $('.nav-dropdown-content').removeClass('nav-dropdown-active'); 165 }); 166 $(".nav-dropdown").click(function(e){ 167 e.stopPropagation(); 168 }); 169 }); 170 </script>
170 171 172 <style type="text/css"> 173 174 /* Theme (user-documented overrideables for nav appearance) */ 175 176 .distill-site-nav { 177 color: rgba(255, 255, 255, 0.8); 178 background-color: #0F2E3D; 179 font-size: 15px; 180 font-weight: 300; 181 } 182 183 .distill-site-nav a { 184 color: inherit; 185 text-decoration: none; 186 } 187 188 .distill-site-nav a:hover { 189 color: white; 190 } 191 192 @media print { 193 .distill-site-nav { 194 display: none; 195 } 196 } 197 198 .distill-site-header { 199 200 } 201 202 .distill-site-footer { 203 204 } 205 206 207 /* Site Header */ 208 209 .distill-site-header { 210 width: 100%; 211 box-sizing: border-box; 212 z-index: 3; 213 } 214 215 .distill-site-header .nav-left { 216 display: inline-block; 217 margin-left: 8px; 218 } 219 220 @media screen and (max-width: 768px) { 221 .distill-site-header .nav-left { 222 margin-left: 0; 223 } 224 } 225 226 227 .distill-site-header .nav-right { 228 float: right; 229 margin-right: 8px; 230 } 231 232 .distill-site-header a, 233 .distill-site-header .title { 234 display: inline-block; 235 text-align: center; 236 padding: 14px 10px 14px 10px; 237 } 238 239 .distill-site-header .title { 240 font-size: 18px; 241 min-width: 150px; 242 } 243 244 .distill-site-header .logo { 245 padding: 0; 246 } 247 248 .distill-site-header .logo img { 249 display: none; 250 max-height: 20px; 251 width: auto; 252 margin-bottom: -4px; 253 } 254 255 .distill-site-header .nav-image img { 256 max-height: 18px; 257 width: auto; 258 display: inline-block; 259 margin-bottom: -3px; 260 } 261 262 263 264 @media screen and (min-width: 1000px) { 265 .distill-site-header .logo img { 266 display: inline-block; 267 } 268 .distill-site-header .nav-left { 269 margin-left: 20px; 270 } 271 .distill-site-header .nav-right { 272 margin-right: 20px; 273 } 274 .distill-site-header .title { 275 padding-left: 12px; 276 } 277 } 278 279 280 .distill-site-header .nav-toggle { 281 display: none; 282 } 283 284 .nav-dropdown { 285 display: inline-block; 286 position: relative; 287 } 288 289 .nav-dropdown .nav-dropbtn { 290 border: none; 291 outline: none; 292 color: rgba(255, 255, 255, 0.8); 293 padding: 16px 10px; 294 background-color: transparent; 295 font-family: inherit; 296 font-size: inherit; 297 font-weight: inherit; 298 margin: 0;
299 margin-top: 1px; 300 z-index: 2; 301 } 302 303 .nav-dropdown-content { 304 display: none; 305 position: absolute; 306 background-color: white; 307 min-width: 200px; 308 border: 1px solid rgba(0,0,0,0.15); 309 border-radius: 4px; 310 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1); 311 z-index: 1; 312 margin-top: 2px; 313 white-space: nowrap; 314 padding-top: 4px; 315 padding-bottom: 4px; 316 } 317 318 .nav-dropdown-content hr { 319 margin-top: 4px; 320 margin-bottom: 4px; 321 border: none; 322 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 323 } 324 325 .nav-dropdown-active { 326 display: block; 327 } 328 329 .nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header { 330 color: black; 331 padding: 6px 24px; 332 text-decoration: none; 333 display: block; 334 text-align: left; 335 } 336 337 .nav-dropdown-content .nav-dropdown-header { 338 display: block; 339 padding: 5px 24px; 340 padding-bottom: 0; 341 text-transform: uppercase; 342 font-size: 14px; 343 color: #999999; 344 white-space: nowrap; 345 } 346 347 .nav-dropdown:hover .nav-dropbtn { 348 color: white; 349 } 350 351 .nav-dropdown-content a:hover { 352 background-color: #ddd; 353 color: black; 354 } 355 356 .nav-right .nav-dropdown-content { 357 margin-left: -45%; 358 right: 0; 359 } 360 361 @media screen and (max-width: 768px) { 362 .distill-site-header a, .distill-site-header .nav-dropdown {display: none;} 363 .distill-site-header a.nav-toggle { 364 float: right; 365 display: block; 366 } 367 .distill-site-header .title { 368 margin-left: 0; 369 } 370 .distill-site-header .nav-right { 371 margin-right: 0; 372 } 373 .distill-site-header { 374 overflow: hidden; 375 } 376 .nav-right .nav-dropdown-content { 377 margin-left: 0; 378 } 379 } 380 381 382 @media screen and (max-width: 768px) { 383 .distill-site-header.responsive {position: relative; min-height: 500px; } 384 .distill-site-header.responsive a.nav-toggle { 385 position: absolute; 386 right: 0; 387 top: 0; 388 } 389 .distill-site-header.responsive a, 390 .distill-site-header.responsive .nav-dropdown { 391 display: block; 392 text-align: left; 393 } 394 .distill-site-header.responsive .nav-left, 395 .distill-site-header.responsive .nav-right { 396 width: 100%; 397 } 398 .distill-site-header.responsive .nav-dropdown {float: none;} 399 .distill-site-header.responsive .nav-dropdown-content {position: relative;} 400 .distill-site-header.responsive .nav-dropdown .nav-dropbtn { 401 display: block; 402 width: 100%; 403 text-align: left; 404 } 405 } 406 407 /* Site Footer */ 408 409 .distill-site-footer { 410 width: 100%; 411 overflow: hidden; 412 box-sizing: border-box; 413 z-index: 3; 414 margin-top: 30px; 415 padding-top: 30px; 416 padding-bottom: 30px; 417 text-align: center; 418 } 419 420 /* Headroom */ 421 422 d-title { 423 padding-top: 6rem; 424 } 425 426 @media print { 427 d-title { 428 padding-top: 4rem; 429 } 430 } 431 432 .headroom { 433 z-index: 1000; 434 position: fixed; 435 top: 0; 436 left: 0; 437 right: 0; 438 } 439 440 .headroom--transition { 441 transition: all .4s ease-in-out; 442 } 443 444 .headroom--unpinned { 445 top: -100px; 446 } 447 448 .headroom--pinned { 449 top: 0; 450 } 451 452 /* adjust viewport for navbar height */ 453 /* helps vertically center bootstrap (non-distill) content */ 454 .min-vh-100 { 455 min-height: calc(100vh - 100px) !important; 456 } 457 458 </style> 459 460
460<script src="site_libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
460 461 <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/> 462 <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/> 463
463<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
463 464
464<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
464 465
465<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
465 466 467
467<script type="application/javascript"> 468 469 function getMeta(metaName) { 470 var metas = document.getElementsByTagName('meta'); 471 for (let i = 0; i < metas.length; i++) { 472 if (metas[i].getAttribute('name') === metaName) { 473 return metas[i].getAttribute('content'); 474 } 475 } 476 return ''; 477 } 478 479 function offsetURL(url) { 480 var offset = getMeta('distill:offset'); 481 return offset ? offset + '/' + url : url; 482 } 483 484 function createFuseIndex() { 485 486 // create fuse index 487 var options = { 488 keys: [ 489 { name: 'title', weight: 20 }, 490 { name: 'categories', weight: 15 }, 491 { name: 'description', weight: 10 }, 492 { name: 'contents', weight: 5 }, 493 ], 494 ignoreLocation: true, 495 threshold: 0 496 }; 497 var fuse = new window.Fuse([], options); 498 499 // fetch the main search.json 500 return fetch(offsetURL('search.json')) 501 .then(function(response) { 502 if (response.status == 200) { 503 return response.json().then(function(json) { 504 // index main articles 505 json.articles.forEach(function(article) { 506 fuse.add(article); 507 }); 508 // download collections and index their articles 509 return Promise.all(json.collections.map(function(collection) { 510 return fetch(offsetURL(collection)).then(function(response) { 511 if (response.status === 200) { 512 return response.json().then(function(articles) { 513 articles.forEach(function(article) { 514 fuse.add(article); 515 }); 516 }) 517 } else { 518 return Promise.reject( 519 new Error('Unexpected status from search index request: ' + 520 response.status) 521 ); 522 } 523 }); 524 })).then(function() { 525 return fuse; 526 }); 527 }); 528 529 } else { 530 return Promise.reject( 531 new Error('Unexpected status from search index request: ' + 532 response.status) 533 ); 534 } 535 }); 536 } 537 538 window.document.addEventListener("DOMContentLoaded", function (event) { 539 540 // get search element (bail if we don't have one) 541 var searchEl = window.document.getElementById('distill-search'); 542 if (!searchEl) 543 return; 544 545 createFuseIndex() 546 .then(function(fuse) { 547 548 // make search box visible 549 searchEl.classList.remove('hidden'); 550 551 // initialize autocomplete 552 var options = { 553 autoselect: true, 554 hint: false, 555 minLength: 2, 556 }; 557 window.autocomplete(searchEl, options, [{ 558 source: function(query, callback) { 559 const searchOptions = { 560 isCaseSensitive: false, 561 shouldSort: true, 562 minMatchCharLength: 2, 563 limit: 10, 564 }; 565 var results = fuse.search(query, searchOptions); 566 callback(results 567 .map(function(result) { return result.item; }) 568 ); 569 }, 570 templates: { 571 suggestion: function(suggestion) { 572 var img = suggestion.preview && Object.keys(suggestion.preview).length > 0 573 ? `<img src="${offsetURL(suggestion.preview)}"</img>` 574 : ''; 575 var html = ` 576 <div class="search-item"> 577 <h3>${suggestion.title}</h3> 578 <div class="search-item-description"> 579 ${suggestion.description || ''} 580 </div> 581 <div class="search-item-preview"> 582 ${img} 583 </div> 584 </div> 585 `; 586 return html; 587 } 588 } 589 }]).on('autocomplete:selected', function(event, suggestion) { 590 window.location.href = offsetURL(suggestion.path); 591 }); 592 // remove inline display style on autocompleter (we want to 593 // manage responsive display via css) 594 $('.algolia-autocomplete').css("display", ""); 595 }) 596 .catch(function(error) { 597 console.log(error); 598 }); 599 600 }); 601 602 </script>
602 603 604 <style type="text/css"> 605 606 .nav-search { 607 font-size: x-small; 608 } 609 610 /* Algolioa Autocomplete */ 611 612 .algolia-autocomplete { 613 display: inline-block; 614 margin-left: 10px; 615 vertical-align: sub; 616 background-color: white; 617 color: black; 618 padding: 6px; 619 padding-top: 8px; 620 padding-bottom: 0; 621 border-radius: 6px; 622 border: 1px #0F2E3D solid; 623 width: 180px; 624 } 625 626 627 @media screen and (max-width: 768px) { 628 .distill-site-nav .algolia-autocomplete { 629 display: none; 630 visibility: hidden; 631 } 632 .distill-site-nav.responsive .algolia-autocomplete { 633 display: inline-block; 634 visibility: visible; 635 } 636 .distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu { 637 margin-left: 0; 638 width: 400px; 639 max-height: 400px; 640 } 641 } 642 643 .algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint { 644 width: 90%; 645 outline: none; 646 border: none; 647 } 648 649 .algolia-autocomplete .aa-hint { 650 color: #999; 651 } 652 .algolia-autocomplete .aa-dropdown-menu { 653 width: 550px; 654 max-height: 70vh; 655 overflow-x: visible; 656 overflow-y: scroll; 657 padding: 5px; 658 margin-top: 3px; 659 margin-left: -150px; 660 background-color: #fff; 661 border-radius: 5px; 662 border: 1px solid #999; 663 border-top: none; 664 } 665 666 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion { 667 cursor: pointer; 668 padding: 5px 4px; 669 border-bottom: 1px solid #eee; 670 } 671 672 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type { 673 border-bottom: none; 674 margin-bottom: 2px; 675 } 676 677 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item { 678 overflow: hidden; 679 font-size: 0.8em; 680 line-height: 1.4em; 681 } 682 683 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 { 684 font-size: 1rem; 685 margin-block-start: 0; 686 margin-block-end: 5px; 687 } 688 689 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description { 690 display: inline-block; 691 overflow: hidden; 692 height: 2.8em; 693 width: 80%; 694 margin-right: 4%; 695 } 696 697 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview { 698 display: inline-block; 699 width: 15%; 700 } 701 702 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img { 703 height: 3em; 704 width: auto; 705 display: none; 706 } 707 708 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] { 709 display: initial; 710 } 711 712 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor { 713 background-color: #eee; 714 } 715 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion em { 716 font-weight: bold; 717 font-style: normal; 718 } 719 720 </style> 721 722 723 <!--/radix_placeholder_navigation_in_header--> 724 <!--radix_placeholder_distill--> 725 726 <style type="text/css"> 727 728 body { 729 background-color: white; 730 } 731 732 .pandoc-table { 733 width: 100%; 734 } 735 736 .pandoc-table>caption { 737 margin-bottom: 10px; 738 } 739 740 .pandoc-table th:not([align]) { 741 text-align: left; 742 } 743 744 .pagedtable-footer { 745 font-size: 15px; 746 } 747 748 d-byline .byline { 749 grid-template-columns: 2fr 2fr; 750 } 751 752 d-byline .byline h3 { 753 margin-block-start: 1.5em; 754 } 755 756 d-byline .byline .authors-affiliations h3 { 757 margin-block-start: 0.5em; 758 } 759 760 .authors-affiliations .orcid-id { 761 width: 16px; 762 height:16px; 763 margin-left: 4px; 764 margin-right: 4px; 765 vertical-align: middle; 766 padding-bottom: 2px; 767 } 768 769 d-title .dt-tags { 770 margin-top: 1em; 771 grid-column: text; 772 } 773 774 .dt-tags .dt-tag { 775 text-decoration: none; 776 display: inline-block; 777 color: rgba(0,0,0,0.6); 778 padding: 0em 0.4em; 779 margin-right: 0.5em; 780 margin-bottom: 0.4em; 781 font-size: 70%; 782 border: 1px solid rgba(0,0,0,0.2); 783 border-radius: 3px; 784 text-transform: uppercase; 785 font-weight: 500; 786 } 787 788 d-article table.gt_table td, 789 d-article table.gt_table th { 790 border-bottom: none; 791 font-size: 100%; 792 } 793 794 .html-widget { 795 margin-bottom: 2.0em; 796 } 797 798 .l-screen-inset { 799 padding-right: 16px; 800 } 801 802 .l-screen .caption { 803 margin-left: 10px; 804 } 805 806 .shaded { 807 background: rgb(247, 247, 247); 808 padding-top: 20px; 809 padding-bottom: 20px; 810 border-top: 1px solid rgba(0, 0, 0, 0.1); 811 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 812 } 813 814 .shaded .html-widget { 815 margin-bottom: 0; 816 border: 1px solid rgba(0, 0, 0, 0.1); 817 } 818 819 .shaded .shaded-content { 820 background: white; 821 } 822 823 .text-output { 824 margin-top: 0; 825 line-height: 1.5em; 826 } 827 828 .hidden { 829 display: none !important; 830 } 831 832 d-article { 833 padding-top: 2.5rem; 834 padding-bottom: 30px; 835 } 836 837 d-appendix { 838 padding-top: 30px; 839 } 840 841 d-article>p>img { 842 width: 100%; 843 } 844 845 d-article h2 { 846 margin: 1rem 0 1.5rem 0; 847 } 848 849 d-article h3 { 850 margin-top: 1.5rem; 851 } 852 853 d-article iframe { 854 border: 1px solid rgba(0, 0, 0, 0.1); 855 margin-bottom: 2.0em; 856 width: 100%; 857 } 858 859 /* Tweak code blocks */ 860 861 d-article div.sourceCode code, 862 d-article pre code {
863 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 864 } 865 866 d-article pre, 867 d-article div.sourceCode, 868 d-article div.sourceCode pre { 869 overflow: auto; 870 } 871 872 d-article div.sourceCode { 873 background-color: white; 874 } 875 876 d-article div.sourceCode pre { 877 padding-left: 10px; 878 font-size: 12px; 879 border-left: 2px solid rgba(0,0,0,0.1); 880 } 881 882 d-article pre { 883 font-size: 12px; 884 color: black; 885 background: none; 886 margin-top: 0; 887 text-align: left; 888 white-space: pre; 889 word-spacing: normal; 890 word-break: normal; 891 word-wrap: normal; 892 line-height: 1.5; 893 894 -moz-tab-size: 4; 895 -o-tab-size: 4; 896 tab-size: 4; 897 898 -webkit-hyphens: none; 899 -moz-hyphens: none; 900 -ms-hyphens: none; 901 hyphens: none; 902 } 903 904 d-article pre a { 905 border-bottom: none; 906 } 907 908 d-article pre a:hover { 909 border-bottom: none; 910 text-decoration: underline; 911 } 912 913 d-article details { 914 grid-column: text; 915 margin-bottom: 0.8em; 916 } 917 918 @media(min-width: 768px) { 919 920 d-article pre, 921 d-article div.sourceCode, 922 d-article div.sourceCode pre { 923 overflow: visible !important; 924 } 925 926 d-article div.sourceCode pre { 927 padding-left: 18px; 928 font-size: 14px; 929 } 930 931 d-article pre { 932 font-size: 14px; 933 } 934 935 } 936 937 figure img.external { 938 background: white; 939 border: 1px solid rgba(0, 0, 0, 0.1); 940 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 941 padding: 18px; 942 box-sizing: border-box; 943 } 944 945 /* CSS for d-contents */ 946 947 .d-contents { 948 grid-column: text; 949 color: rgba(0,0,0,0.8); 950 font-size: 0.9em; 951 padding-bottom: 1em; 952 margin-bottom: 1em; 953 padding-bottom: 0.5em; 954 margin-bottom: 1em; 955 padding-left: 0.25em; 956 justify-self: start; 957 } 958 959 @media(min-width: 1000px) { 960 .d-contents.d-contents-float { 961 height: 0; 962 grid-column-start: 1; 963 grid-column-end: 4; 964 justify-self: center; 965 padding-right: 3em; 966 padding-left: 2em; 967 } 968 } 969 970 .d-contents nav h3 { 971 font-size: 18px; 972 margin-top: 0; 973 margin-bottom: 1em; 974 } 975 976 .d-contents li { 977 list-style-type: none 978 } 979 980 .d-contents nav > ul { 981 padding-left: 0; 982 } 983 984 .d-contents ul { 985 padding-left: 1em 986 } 987 988 .d-contents nav ul li { 989 margin-top: 0.6em; 990 margin-bottom: 0.2em; 991 } 992 993 .d-contents nav a { 994 font-size: 13px; 995 border-bottom: none; 996 text-decoration: none 997 color: rgba(0, 0, 0, 0.8); 998 } 999 1000 .d-contents nav a:hover { 1001 text-decoration: underline solid rgba(0, 0, 0, 0.6) 1002 } 1003 1004 .d-contents nav > ul > li > a { 1005 font-weight: 600; 1006 } 1007 1008 .d-contents nav > ul > li > ul { 1009 font-weight: inherit; 1010 } 1011 1012 .d-contents nav > ul > li > ul > li { 1013 margin-top: 0.2em; 1014 } 1015 1016 1017 .d-contents nav ul { 1018 margin-top: 0; 1019 margin-bottom: 0.25em; 1020 } 1021 1022 .d-article-with-toc h2:nth-child(2) { 1023 margin-top: 0; 1024 } 1025 1026 1027 /* Figure */ 1028 1029 .figure { 1030 position: relative; 1031 margin-bottom: 2.5em; 1032 margin-top: 1.5em; 1033 } 1034 1035 .figure .caption { 1036 color: rgba(0, 0, 0, 0.6); 1037 font-size: 12px; 1038 line-height: 1.5em; 1039 } 1040 1041 .figure img.external { 1042 background: white; 1043 border: 1px solid rgba(0, 0, 0, 0.1); 1044 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 1045 padding: 18px; 1046 box-sizing: border-box; 1047 } 1048 1049 .figure .caption a { 1050 color: rgba(0, 0, 0, 0.6); 1051 } 1052 1053 .figure .caption b, 1054 .figure .caption strong, { 1055 font-weight: 600; 1056 color: rgba(0, 0, 0, 1.0); 1057 } 1058 1059 /* Citations */ 1060 1061 d-article .citation { 1062 color: inherit; 1063 cursor: inherit; 1064 } 1065 1066 div.hanging-indent{ 1067 margin-left: 1em; text-indent: -1em; 1068 } 1069 1070 /* Citation hover box */ 1071 1072 .tippy-box[data-theme~=light-border] { 1073 background-color: rgba(250, 250, 250, 0.95); 1074 } 1075 1076 .tippy-content > p { 1077 margin-bottom: 0; 1078 padding: 2px; 1079 } 1080 1081 1082 /* Tweak 1000px media break to show more text */ 1083 1084 @media(min-width: 1000px) { 1085 .base-grid, 1086 distill-header, 1087 d-title, 1088 d-abstract, 1089 d-article, 1090 d-appendix, 1091 distill-appendix, 1092 d-byline, 1093 d-footnote-list, 1094 d-citation-list, 1095 distill-footer { 1096 grid-template-columns: [screen-start] 1fr [page-start kicker-start] 80px [middle-start] 50px [text-start kicker-end] 65px 65px 65px 65px 65px 65px 65px 65px [text-end gutter-start] 65px [middle-end] 65px [page-end gutter-end] 1fr [screen-end]; 1097 grid-column-gap: 16px; 1098 } 1099 1100 .grid { 1101 grid-column-gap: 16px; 1102 } 1103 1104 d-article { 1105 font-size: 1.06rem; 1106 line-height: 1.7em; 1107 } 1108 figure .caption, .figure .caption, figure figcaption { 1109 font-size: 13px; 1110 } 1111 } 1112 1113 @media(min-width: 1180px) { 1114 .base-grid, 1115 distill-header, 1116 d-title, 1117 d-abstract, 1118 d-article, 1119 d-appendix, 1120 distill-appendix, 1121 d-byline, 1122 d-footnote-list, 1123 d-citation-list, 1124 distill-footer { 1125 grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end]; 1126 grid-column-gap: 32px; 1127 } 1128 1129 .grid { 1130 grid-column-gap: 32px; 1131 } 1132 } 1133 1134 1135 /* Get the citation styles for the appendix (not auto-injected on render since 1136 we do our own rendering of the citation appendix) */ 1137 1138 d-appendix .citation-appendix, 1139 .d-appendix .citation-appendix { 1140 font-size: 11px; 1141 line-height: 15px; 1142 border-left: 1px solid rgba(0, 0, 0, 0.1); 1143 padding-left: 18px; 1144 border: 1px solid rgba(0,0,0,0.1); 1145 background: rgba(0, 0, 0, 0.02); 1146 padding: 10px 18px; 1147 border-radius: 3px; 1148 color: rgba(150, 150, 150, 1); 1149 overflow: hidden; 1150 margin-top: -12px; 1151 white-space: pre-wrap; 1152 word-wrap: break-word; 1153 } 1154 1155 /* Include appendix styles here so they can be overridden */ 1156 1157 d-appendix { 1158 contain: layout style; 1159 font-size: 0.8em; 1160 line-height: 1.7em; 1161 margin-top: 60px; 1162 margin-bottom: 0; 1163 border-top: 1px solid rgba(0, 0, 0, 0.1); 1164 color: rgba(0,0,0,0.5); 1165 padding-top: 60px; 1166 padding-bottom: 48px; 1167 } 1168 1169 d-appendix h3 { 1170 grid-column: page-start / text-start; 1171 font-size: 15px; 1172 font-weight: 500; 1173 margin-top: 1em; 1174 margin-bottom: 0; 1175 color: rgba(0,0,0,0.65); 1176 } 1177 1178 d-appendix h3 + * { 1179 margin-top: 1em; 1180 } 1181 1182 d-appendix ol { 1183 padding: 0 0 0 15px; 1184 } 1185 1186 @media (min-width: 768px) { 1187 d-appendix ol { 1188 padding: 0 0 0 30px; 1189 margin-left: -30px; 1190 } 1191 } 1192 1193 d-appendix li { 1194 margin-bottom: 1em; 1195 } 1196 1197 d-appendix a { 1198 color: rgba(0, 0, 0, 0.6); 1199 } 1200 1201 d-appendix > * { 1202 grid-column: text; 1203 } 1204 1205 d-appendix > d-footnote-list, 1206 d-appendix > d-citation-list, 1207 d-appendix > distill-appendix { 1208 grid-column: screen; 1209 } 1210 1211 /* Include footnote styles here so they can be overridden */ 1212 1213 d-footnote-list { 1214 contain: layout style; 1215 } 1216 1217 d-footnote-list > * { 1218 grid-column: text; 1219 } 1220
1221 d-footnote-list a.footnote-backlink { 1222 color: rgba(0,0,0,0.3); 1223 padding-left: 0.5em; 1224 } 1225 1226 1227 1228 /* Anchor.js */ 1229 1230 .anchorjs-link { 1231 /*transition: all .25s linear; */ 1232 text-decoration: none; 1233 border-bottom: none; 1234 } 1235 *:hover > .anchorjs-link { 1236 margin-left: -1.125em !important; 1237 text-decoration: none; 1238 border-bottom: none; 1239 } 1240 1241 /* Social footer */ 1242 1243 .social_footer { 1244 margin-top: 30px; 1245 margin-bottom: 0; 1246 color: rgba(0,0,0,0.67); 1247 } 1248 1249 .disqus-comments { 1250 margin-right: 30px; 1251 } 1252 1253 .disqus-comment-count { 1254 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1255 cursor: pointer; 1256 } 1257 1258 #disqus_thread { 1259 margin-top: 30px; 1260 } 1261 1262 .article-sharing a { 1263 border-bottom: none; 1264 margin-right: 8px; 1265 } 1266 1267 .article-sharing a:hover { 1268 border-bottom: none; 1269 } 1270 1271 .sidebar-section.subscribe { 1272 font-size: 12px; 1273 line-height: 1.6em; 1274 } 1275 1276 .subscribe p { 1277 margin-bottom: 0.5em; 1278 } 1279 1280 1281 .article-footer .subscribe { 1282 font-size: 15px; 1283 margin-top: 45px; 1284 } 1285 1286 1287 .sidebar-section.custom { 1288 font-size: 12px; 1289 line-height: 1.6em; 1290 } 1291 1292 .custom p { 1293 margin-bottom: 0.5em; 1294 } 1295 1296 /* Styles for listing layout (hide title) */ 1297 .layout-listing d-title, .layout-listing .d-title { 1298 display: none; 1299 } 1300 1301 /* Styles for posts lists (not auto-injected) */ 1302 1303 1304 .posts-with-sidebar { 1305 padding-left: 45px; 1306 padding-right: 45px; 1307 } 1308 1309 .posts-list .description h2, 1310 .posts-list .description p { 1311 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1312 } 1313 1314 .posts-list .description h2 { 1315 font-weight: 700; 1316 border-bottom: none; 1317 padding-bottom: 0; 1318 } 1319 1320 .posts-list h2.post-tag { 1321 border-bottom: 1px solid rgba(0, 0, 0, 0.2); 1322 padding-bottom: 12px; 1323 } 1324 .posts-list { 1325 margin-top: 60px; 1326 margin-bottom: 24px; 1327 } 1328 1329 .posts-list .post-preview { 1330 text-decoration: none; 1331 overflow: hidden; 1332 display: block; 1333 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 1334 padding: 24px 0; 1335 } 1336 1337 .post-preview-last { 1338 border-bottom: none !important; 1339 } 1340 1341 .posts-list .posts-list-caption { 1342 grid-column: screen; 1343 font-weight: 400; 1344 } 1345 1346 .posts-list .post-preview h2 { 1347 margin: 0 0 6px 0; 1348 line-height: 1.2em; 1349 font-style: normal; 1350 font-size: 24px; 1351 } 1352 1353 .posts-list .post-preview p { 1354 margin: 0 0 12px 0; 1355 line-height: 1.4em; 1356 font-size: 16px; 1357 } 1358 1359 .posts-list .post-preview .thumbnail { 1360 box-sizing: border-box; 1361 margin-bottom: 24px; 1362 position: relative; 1363 max-width: 500px; 1364 } 1365 .posts-list .post-preview img { 1366 width: 100%; 1367 display: block; 1368 } 1369 1370 .posts-list .metadata { 1371 font-size: 12px; 1372 line-height: 1.4em; 1373 margin-bottom: 18px; 1374 } 1375 1376 .posts-list .metadata > * { 1377 display: inline-block; 1378 } 1379 1380 .posts-list .metadata .publishedDate { 1381 margin-right: 2em; 1382 } 1383 1384 .posts-list .metadata .dt-authors { 1385 display: block; 1386 margin-top: 0.3em; 1387 margin-right: 2em; 1388 } 1389 1390 .posts-list .dt-tags { 1391 display: block; 1392 line-height: 1em; 1393 } 1394 1395 .posts-list .dt-tags .dt-tag { 1396 display: inline-block; 1397 color: rgba(0,0,0,0.6); 1398 padding: 0.3em 0.4em; 1399 margin-right: 0.2em; 1400 margin-bottom: 0.4em; 1401 font-size: 60%; 1402 border: 1px solid rgba(0,0,0,0.2); 1403 border-radius: 3px; 1404 text-transform: uppercase; 1405 font-weight: 500; 1406 } 1407 1408 .posts-list img { 1409 opacity: 1; 1410 } 1411 1412 .posts-list img[data-src] { 1413 opacity: 0; 1414 } 1415 1416 .posts-more { 1417 clear: both; 1418 } 1419 1420 1421 .posts-sidebar { 1422 font-size: 16px; 1423 } 1424 1425 .posts-sidebar h3 { 1426 font-size: 16px; 1427 margin-top: 0; 1428 margin-bottom: 0.5em; 1429 font-weight: 400; 1430 text-transform: uppercase; 1431 } 1432 1433 .sidebar-section { 1434 margin-bottom: 30px; 1435 } 1436 1437 .categories ul { 1438 list-style-type: none; 1439 margin: 0; 1440 padding: 0; 1441 } 1442 1443 .categories li { 1444 color: rgba(0, 0, 0, 0.8); 1445 margin-bottom: 0; 1446 } 1447 1448 .categories li>a { 1449 border-bottom: none; 1450 } 1451 1452 .categories li>a:hover { 1453 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1454 } 1455 1456 .categories .active { 1457 font-weight: 600; 1458 } 1459 1460 .categories .category-count { 1461 color: rgba(0, 0, 0, 0.4); 1462 } 1463 1464 1465 @media(min-width: 768px) { 1466 .posts-list .post-preview h2 { 1467 font-size: 26px; 1468 } 1469 .posts-list .post-preview .thumbnail { 1470 float: right; 1471 width: 30%; 1472 margin-bottom: 0; 1473 } 1474 .posts-list .post-preview .description { 1475 float: left; 1476 width: 45%; 1477 } 1478 .posts-list .post-preview .metadata { 1479 float: left; 1480 width: 20%; 1481 margin-top: 8px; 1482 } 1483 .posts-list .post-preview p { 1484 margin: 0 0 12px 0; 1485 line-height: 1.5em; 1486 font-size: 16px; 1487 } 1488 .posts-with-sidebar .posts-list { 1489 float: left; 1490 width: 75%; 1491 } 1492 .posts-with-sidebar .posts-sidebar { 1493 float: right; 1494 width: 20%; 1495 margin-top: 60px; 1496 padding-top: 24px; 1497 padding-bottom: 24px; 1498 } 1499 } 1500 1501 1502 /* Improve display for browsers without grid (IE/Edge <= 15) */ 1503 1504 .downlevel { 1505 line-height: 1.6em; 1506 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1507 margin: 0; 1508 } 1509 1510 .downlevel .d-title { 1511 padding-top: 6rem; 1512 padding-bottom: 1.5rem; 1513 } 1514 1515 .downlevel .d-title h1 { 1516 font-size: 50px; 1517 font-weight: 700; 1518 line-height: 1.1em; 1519 margin: 0 0 0.5rem; 1520 } 1521 1522 .downlevel .d-title p { 1523 font-weight: 300; 1524 font-size: 1.2rem; 1525 line-height: 1.55em; 1526 margin-top: 0; 1527 } 1528 1529 .downlevel .d-byline { 1530 padding-top: 0.8em; 1531 padding-bottom: 0.8em; 1532 font-size: 0.8rem; 1533 line-height: 1.8em; 1534 } 1535 1536 .downlevel .section-separator { 1537 border: none; 1538 border-top: 1px solid rgba(0, 0, 0, 0.1); 1539 } 1540 1541 .downlevel .d-article { 1542 font-size: 1.06rem; 1543 line-height: 1.7em; 1544 padding-top: 1rem; 1545 padding-bottom: 2rem; 1546 } 1547 1548 1549 .downlevel .d-appendix { 1550 padding-left: 0; 1551 padding-right: 0; 1552 max-width: none; 1553 font-size: 0.8em; 1554 line-height: 1.7em; 1555 margin-bottom: 0; 1556 color: rgba(0,0,0,0.5); 1557 padding-top: 40px; 1558 padding-bottom: 48px; 1559 } 1560 1561 .downlevel .footnotes ol { 1562 padding-left: 13px; 1563 } 1564 1565 .downlevel .base-grid, 1566 .downlevel .distill-header, 1567 .downlevel .d-title, 1568 .downlevel .d-abstract, 1569 .downlevel .d-article, 1570 .downlevel .d-appendix, 1571 .downlevel .distill-appendix, 1572 .downlevel .d-byline, 1573 .downlevel .d-footnote-list, 1574 .downlevel .d-citation-list, 1575 .downlevel .distill-footer, 1576 .downlevel .appendix-bottom, 1577 .downlevel .posts-container { 1578 padding-left: 40px; 1579 padding-right: 40px; 1580 } 1581 1582 @media(min-width: 768px) { 1583 .downlevel .base-grid, 1584 .downlevel .distill-header, 1585 .downlevel .d-title, 1586 .downlevel .d-abstract, 1587 .downlevel .d-article, 1588 .downlevel .d-appendix, 1589 .downlevel .distill-appendix, 1590 .downlevel .d-byline, 1591 .downlevel .d-footnote-list, 1592 .downlevel .d-citation-list, 1593 .downlevel .distill-footer, 1594 .downlevel .appendix-bottom, 1595 .downlevel .posts-container { 1596 padding-left: 150px; 1597 padding-right: 150px; 1598 max-width: 900px; 1599 } 1600 } 1601 1602 .downlevel pre code { 1603 display: block; 1604 border-left: 2px solid rgba(0, 0, 0, .1); 1605 padding: 0 0 0 20px; 1606 font-size: 14px; 1607 } 1608 1609 .downlevel code, .downlevel pre { 1610 color: black; 1611 background: none;
1612 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 1613 text-align: left; 1614 white-space: pre; 1615 word-spacing: normal; 1616 word-break: normal; 1617 word-wrap: normal; 1618 line-height: 1.5; 1619 1620 -moz-tab-size: 4; 1621 -o-tab-size: 4; 1622 tab-size: 4; 1623 1624 -webkit-hyphens: none; 1625 -moz-hyphens: none; 1626 -ms-hyphens: none; 1627 hyphens: none; 1628 } 1629 1630 .downlevel .posts-list .post-preview { 1631 color: inherit; 1632 } 1633 1634 1635 1636 </style> 1637 1638
1638<script type="application/javascript"> 1639 1640 function is_downlevel_browser() { 1641 if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"}, 1642 window.navigator.userAgent)) { 1643 return true; 1644 } else { 1645 return window.load_distill_framework === undefined; 1646 } 1647 } 1648 1649 // show body when load is complete 1650 function on_load_complete() { 1651 1652 // add anchors 1653 if (window.anchors) { 1654 window.anchors.options.placement = 'left'; 1655 window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5'); 1656 } 1657 1658 1659 // set body to visible 1660 document.body.style.visibility = 'visible'; 1661 1662 // force redraw for leaflet widgets 1663 if (window.HTMLWidgets) { 1664 var maps = window.HTMLWidgets.findAll(".leaflet"); 1665 $.each(maps, function(i, el) { 1666 var map = this.getMap(); 1667 map.invalidateSize(); 1668 map.eachLayer(function(layer) { 1669 if (layer instanceof L.TileLayer) 1670 layer.redraw(); 1671 }); 1672 }); 1673 } 1674 1675 // trigger 'shown' so htmlwidgets resize 1676 $('d-article').trigger('shown'); 1677 } 1678 1679 function init_distill() { 1680 1681 init_common(); 1682 1683 // create front matter 1684 var front_matter = $('<d-front-matter></d-front-matter>'); 1685 $('#distill-front-matter').wrap(front_matter); 1686 1687 // create d-title 1688 $('.d-title').changeElementType('d-title'); 1689 1690 // create d-byline 1691 var byline = $('<d-byline></d-byline>'); 1692 $('.d-byline').replaceWith(byline); 1693 1694 // create d-article 1695 var article = $('<d-article></d-article>'); 1696 $('.d-article').wrap(article).children().unwrap(); 1697 1698 // move posts container into article 1699 $('.posts-container').appendTo($('d-article')); 1700 1701 // create d-appendix 1702 $('.d-appendix').changeElementType('d-appendix'); 1703 1704 // flag indicating that we have appendix items 1705 var appendix = $('.appendix-bottom').children('h3').length > 0; 1706 1707 // replace footnotes with <d-footnote> 1708 $('.footnote-ref').each(function(i, val) { 1709 appendix = true; 1710 var href = $(this).attr('href'); 1711 var id = href.replace('#', ''); 1712 var fn = $('#' + id); 1713 var fn_p = $('#' + id + '>p'); 1714 fn_p.find('.footnote-back').remove(); 1715 var text = fn_p.html(); 1716 var dtfn = $('<d-footnote></d-footnote>'); 1717 dtfn.html(text); 1718 $(this).replaceWith(dtfn); 1719 }); 1720 // remove footnotes 1721 $('.footnotes').remove(); 1722 1723 // move refs into #references-listing 1724 $('#references-listing').replaceWith($('#refs')); 1725 1726 $('h1.appendix, h2.appendix').each(function(i, val) { 1727 $(this).changeElementType('h3'); 1728 }); 1729 $('h3.appendix').each(function(i, val) { 1730 var id = $(this).attr('id'); 1731 $('.d-contents a[href="#' + id + '"]').parent().remove(); 1732 appendix = true; 1733 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix')); 1734 }); 1735 1736 // show d-appendix if we have appendix content 1737 $("d-appendix").css('display', appendix ? 'grid' : 'none'); 1738 1739 // localize layout chunks to just output 1740 $('.layout-chunk').each(function(i, val) { 1741 1742 // capture layout 1743 var layout = $(this).attr('data-layout'); 1744 1745 // apply layout to markdown level block elements 1746 var elements = $(this).children().not('details, div.sourceCode, pre, script'); 1747 elements.each(function(i, el) { 1748 var layout_div = $('<div class="' + layout + '"></div>'); 1749 if (layout_div.hasClass('shaded')) { 1750 var shaded_content = $('<div class="shaded-content"></div>'); 1751 $(this).wrap(shaded_content); 1752 $(this).parent().wrap(layout_div); 1753 } else { 1754 $(this).wrap(layout_div); 1755 } 1756 }); 1757 1758 1759 // unwrap the layout-chunk div 1760 $(this).children().unwrap(); 1761 }); 1762 1763 // remove code block used to force highlighting css 1764 $('.distill-force-highlighting-css').parent().remove(); 1765 1766 // remove empty line numbers inserted by pandoc when using a 1767 // custom syntax highlighting theme 1768 $('code.sourceCode a:empty').remove(); 1769 1770 // load distill framework 1771 load_distill_framework(); 1772 1773 // wait for window.distillRunlevel == 4 to do post processing 1774 function distill_post_process() { 1775 1776 if (!window.distillRunlevel || window.distillRunlevel < 4) 1777 return; 1778 1779 // hide author/affiliations entirely if we have no authors 1780 var front_matter = JSON.parse($("#distill-front-matter").html()); 1781 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1782 if (!have_authors) 1783 $('d-byline').addClass('hidden'); 1784 1785 // article with toc class 1786 $('.d-contents').parent().addClass('d-article-with-toc'); 1787 1788 // strip links that point to # 1789 $('.authors-affiliations').find('a[href="#"]').removeAttr('href'); 1790 1791 // add orcid ids 1792 $('.authors-affiliations').find('.author').each(function(i, el) {
1793 var orcid_id = front_matter.authors[i].orcidID; 1794 if (orcid_id) { 1795 var a = $('<a></a>'); 1796 a.attr('href', 'https://orcid.org/' + orcid_id); 1797 var img = $('<img></img>'); 1798 img.addClass('orcid-id'); 1799 img.attr('alt', 'ORCID ID'); 1800 img.attr('src','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=='); 1801 a.append(img); 1802 $(this).append(a); 1803 } 1804 }); 1805 1806 // hide elements of author/affiliations grid that have no value 1807 function hide_byline_column(caption) { 1808 $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden'); 1809 } 1810 1811 // affiliations 1812 var have_affiliations = false; 1813 for (var i = 0; i<front_matter.authors.length; ++i) { 1814 var author = front_matter.authors[i]; 1815 if (author.affiliation !== " ") { 1816 have_affiliations = true; 1817 break; 1818 } 1819 } 1820 if (!have_affiliations) 1821 $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden'); 1822 1823 // published date 1824 if (!front_matter.publishedDate) 1825 hide_byline_column("Published"); 1826 1827 // document object identifier 1828 var doi = $('d-byline').find('h3:contains("DOI")'); 1829 var doi_p = doi.next().empty(); 1830 if (!front_matter.doi) { 1831 // if we have a citation and valid citationText then link to that 1832 if ($('#citation').length > 0 && front_matter.citationText) { 1833 doi.html('Citation'); 1834 $('<a href="#citation"></a>') 1835 .text(front_matter.citationText) 1836 .appendTo(doi_p); 1837 } else { 1838 hide_byline_column("DOI"); 1839 } 1840 } else { 1841 $('<a></a>') 1842 .attr('href', "https://doi.org/" + front_matter.doi) 1843 .html(front_matter.doi) 1844 .appendTo(doi_p); 1845 } 1846 1847 // change plural form of authors/affiliations 1848 if (front_matter.authors.length === 1) { 1849 var grid = $('.authors-affiliations'); 1850 grid.children('h3:contains("Authors")').text('Author'); 1851 grid.children('h3:contains("Affiliations")').text('Affiliation'); 1852 } 1853 1854 // remove d-appendix and d-footnote-list local styles 1855 $('d-appendix > style:first-child').remove(); 1856 $('d-footnote-list > style:first-child').remove(); 1857 1858 // move appendix-bottom entries to the bottom 1859 $('.appendix-bottom').appendTo('d-appendix').children().unwrap(); 1860 $('.appendix-bottom').remove(); 1861 1862 // hoverable references 1863 $('span.citation[data-cites]').each(function() { 1864 const citeChild = $(this).children()[0]
1865 // Do not process if @xyz has been used without escaping and without bibliography activated 1866 // https://github.com/rstudio/distill/issues/466 1867 if (citeChild === undefined) return true 1868 1869 if (citeChild.nodeName == "D-FOOTNOTE") { 1870 var fn = citeChild 1871 $(this).html(fn.shadowRoot.querySelector("sup")) 1872 $(this).id = fn.id 1873 fn.remove() 1874 } 1875 var refs = $(this).attr('data-cites').split(" "); 1876 var refHtml = refs.map(function(ref) { 1877 // Could use CSS.escape too here, we insure backward compatibility in navigator 1878 return "<p>" + $('div[id="ref-' + ref + '"]').html() + "</p>"; 1879 }).join("\n"); 1880 window.tippy(this, { 1881 allowHTML: true, 1882 content: refHtml, 1883 maxWidth: 500, 1884 interactive: true, 1885 interactiveBorder: 10, 1886 theme: 'light-border', 1887 placement: 'bottom-start' 1888 }); 1889 }); 1890 1891 // fix footnotes in tables (#411) 1892 // replacing broken distill.pub feature 1893 $('table d-footnote').each(function() { 1894 // we replace internal showAtNode methode which is triggered when hovering a footnote 1895 this.hoverBox.showAtNode = function(node) { 1896 // ported from https://github.com/distillpub/template/pull/105/files 1897 calcOffset = function(elem) { 1898 let x = elem.offsetLeft; 1899 let y = elem.offsetTop; 1900 // Traverse upwards until an `absolute` element is found or `elem` 1901 // becomes null. 1902 while (elem = elem.offsetParent && elem.style.position != 'absolute') { 1903 x += elem.offsetLeft; 1904 y += elem.offsetTop; 1905 } 1906 1907 return { left: x, top: y }; 1908 } 1909 // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop 1910 const bbox = node.getBoundingClientRect(); 1911 const offset = calcOffset(node); 1912 this.show([offset.left + bbox.width, offset.top + bbox.height]); 1913 } 1914 }) 1915 1916 // clear polling timer 1917 clearInterval(tid); 1918 1919 // show body now that everything is ready 1920 on_load_complete(); 1921 } 1922 1923 var tid = setInterval(distill_post_process, 50); 1924 distill_post_process(); 1925 1926 } 1927 1928 function init_downlevel() { 1929 1930 init_common(); 1931 1932 // insert hr after d-title 1933 $('.d-title').after($('<hr class="section-separator"/>')); 1934 1935 // check if we have authors 1936 var front_matter = JSON.parse($("#distill-front-matter").html()); 1937 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1938
1939 // manage byline/border 1940 if (!have_authors) 1941 $('.d-byline').remove(); 1942 $('.d-byline').after($('<hr class="section-separator"/>')); 1943 $('.d-byline a').remove(); 1944 1945 // remove toc 1946 $('.d-contents').remove(); 1947 1948 // move appendix elements 1949 $('h1.appendix, h2.appendix').each(function(i, val) { 1950 $(this).changeElementType('h3'); 1951 }); 1952 $('h3.appendix').each(function(i, val) { 1953 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix')); 1954 }); 1955 1956 1957 // inject headers into references and footnotes 1958 var refs_header = $('<h3></h3>'); 1959 refs_header.text('References'); 1960 $('#refs').prepend(refs_header); 1961 1962 var footnotes_header = $('<h3></h3'); 1963 footnotes_header.text('Footnotes'); 1964 $('.footnotes').children('hr').first().replaceWith(footnotes_header); 1965 1966 // move appendix-bottom entries to the bottom 1967 $('.appendix-bottom').appendTo('.d-appendix').children().unwrap(); 1968 $('.appendix-bottom').remove(); 1969 1970 // remove appendix if it's empty 1971 if ($('.d-appendix').children().length === 0) 1972 $('.d-appendix').remove(); 1973 1974 // prepend separator above appendix 1975 $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>')); 1976 1977 // trim code 1978 $('pre>code').each(function(i, val) { 1979 $(this).html($.trim($(this).html())); 1980 }); 1981 1982 // move posts-container right before article 1983 $('.posts-container').insertBefore($('.d-article')); 1984 1985 $('body').addClass('downlevel'); 1986 1987 on_load_complete(); 1988 } 1989 1990 1991 function init_common() { 1992 1993 // jquery plugin to change element types 1994 (function($) { 1995 $.fn.changeElementType = function(newType) { 1996 var attrs = {}; 1997 1998 $.each(this[0].attributes, function(idx, attr) { 1999 attrs[attr.nodeName] = attr.nodeValue; 2000 }); 2001 2002 this.replaceWith(function() { 2003 return $("<" + newType + "/>", attrs).append($(this).contents()); 2004 }); 2005 }; 2006 })(jQuery); 2007 2008 // prevent underline for linked images 2009 $('a > img').parent().css({'border-bottom' : 'none'}); 2010 2011 // mark non-body figures created by knitr chunks as 100% width 2012 $('.layout-chunk').each(function(i, val) { 2013 var figures = $(this).find('img, .html-widget'); 2014 // ignore leaflet img layers (#106) 2015 figures = figures.filter(':not(img[class*="leaflet"])') 2016 if ($(this).attr('data-layout') !== "l-body") { 2017 figures.css('width', '100%'); 2018 } else { 2019 figures.css('max-width', '100%'); 2020 figures.filter("[width]").each(function(i, val) { 2021 var fig = $(this); 2022 fig.css('width', fig.attr('width') + 'px'); 2023 }); 2024 2025 } 2026 }); 2027 2028 // auto-append index.html to post-preview links in file: protocol 2029 // and in rstudio ide preview 2030 $('.post-preview').each(function(i, val) { 2031 if (window.location.protocol === "file:") 2032 $(this).attr('href', $(this).attr('href') + "index.html"); 2033 }); 2034 2035 // get rid of index.html references in header 2036 if (window.location.protocol !== "file:") { 2037 $('.distill-site-header a[href]').each(function(i,val) { 2038 $(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./")); 2039 }); 2040 } 2041 2042 // add class to pandoc style tables 2043 $('tr.header').parent('thead').parent('table').addClass('pandoc-table'); 2044 $('.kable-table').children('table').addClass('pandoc-table'); 2045 2046 // add figcaption style to table captions 2047 $('caption').parent('table').addClass("figcaption"); 2048 2049 // initialize posts list 2050 if (window.init_posts_list) 2051 window.init_posts_list(); 2052 2053 // implmement disqus comment link 2054 $('.disqus-comment-count').click(function() { 2055 window.headroom_prevent_pin = true; 2056 $('#disqus_thread').toggleClass('hidden'); 2057 if (!$('#disqus_thread').hasClass('hidden')) { 2058 var offset = $(this).offset(); 2059 $(window).resize(); 2060 $('html, body').animate({ 2061 scrollTop: offset.top - 35 2062 }); 2063 } 2064 }); 2065 } 2066 2067 document.addEventListener('DOMContentLoaded', function() { 2068 if (is_downlevel_browser()) 2069 init_downlevel(); 2070 else 2071 window.addEventListener('WebComponentsReady', init_distill); 2072 }); 2073 2074 </script>
2074 2075 2076 <style type="text/css"> 2077 /* base variables */ 2078 2079 /* Edit the CSS properties in this file to create a custom 2080 Distill theme. Only edit values in the right column 2081 for each row; values shown are the CSS defaults. 2082 To return any property to the default, 2083 you may set its value to: unset 2084 All rows must end with a semi-colon. */ 2085 2086 /* Optional: embed custom fonts here with `@import` */ 2087 /* This must remain at the top of this file. */ 2088 2089 2090 2091 html { 2092 /*-- Main font sizes --*/ 2093 --title-size: 50px; 2094 --body-size: 1.06rem; 2095 --code-size: 14px; 2096 --aside-size: 12px; 2097 --fig-cap-size: 13px; 2098 /*-- Main font colors --*/ 2099 --title-color: #000000; 2100 --header-color: rgba(0, 0, 0, 0.8); 2101 --body-color: rgba(0, 0, 0, 0.8); 2102 --aside-color: rgba(0, 0, 0, 0.6); 2103 --fig-cap-color: rgba(0, 0, 0, 0.6); 2104 /*-- Specify custom fonts ~~~ must be imported above --*/ 2105 --heading-font: sans-serif; 2106 --mono-font: monospace; 2107 --body-font: sans-serif; 2108 --navbar-font: sans-serif; /* websites + blogs only */ 2109 } 2110 2111 /*-- ARTICLE METADATA --*/ 2112 d-byline { 2113 --heading-size: 0.6rem; 2114 --heading-color: rgba(0, 0, 0, 0.5); 2115 --body-size: 0.8rem; 2116 --body-color: rgba(0, 0, 0, 0.8); 2117 } 2118 2119 /*-- ARTICLE TABLE OF CONTENTS --*/ 2120 .d-contents { 2121 --heading-size: 18px; 2122 --contents-size: 13px; 2123 } 2124 2125 /*-- ARTICLE APPENDIX --*/ 2126 d-appendix { 2127 --heading-size: 15px; 2128 --heading-color: rgba(0, 0, 0, 0.65); 2129 --text-size: 0.8em; 2130 --text-color: rgba(0, 0, 0, 0.5); 2131 } 2132 2133 /*-- WEBSITE HEADER + FOOTER --*/ 2134 /* These properties only apply to Distill sites and blogs */ 2135 2136 .distill-site-header { 2137 --title-size: 18px; 2138 --text-color: rgba(255, 255, 255, 0.8); 2139 --text-size: 15px; 2140 --hover-color: white; 2141 --bkgd-color: #0F2E3D; 2142 } 2143 2144 .distill-site-footer { 2145 --text-color: rgba(255, 255, 255, 0.8); 2146 --text-size: 15px; 2147 --hover-color: white; 2148 --bkgd-color: #0F2E3D; 2149 } 2150 2151 /*-- Additional custom styles --*/ 2152 /* Add any additional CSS rules below */ 2153 </style> 2154 <style type="text/css"> 2155 /* base variables */ 2156 2157 /* Edit the CSS properties in this file to create a custom 2158 Distill theme. Only edit values in the right column 2159 for each row; values shown are the CSS defaults. 2160 To return any property to the default, 2161 you may set its value to: unset 2162 All rows must end with a semi-colon. */ 2163 2164 /* Optional: embed custom fonts here with `@import` */ 2165 /* This must remain at the top of this file. */ 2166 2167 2168 2169 html { 2170 /*-- Main font sizes --*/ 2171 --title-size: 50px; 2172 --body-size: 1.06rem; 2173 --code-size: 14px; 2174 --aside-size: 12px; 2175 --fig-cap-size: 13px; 2176 /*-- Main font colors --*/ 2177 --title-color: #000000; 2178 --header-color: rgba(0, 0, 0, 0.8); 2179 --body-color: rgba(0, 0, 0, 0.8); 2180 --aside-color: rgba(0, 0, 0, 0.6); 2181 --fig-cap-color: rgba(0, 0, 0, 0.6); 2182 /*-- Specify custom fonts ~~~ must be imported above --*/ 2183 --heading-font: sans-serif; 2184 --mono-font: monospace; 2185 --body-font: sans-serif; 2186 --navbar-font: sans-serif; /* websites + blogs only */ 2187 } 2188 2189 /*-- ARTICLE METADATA --*/ 2190 d-byline { 2191 --heading-size: 0.6rem; 2192 --heading-color: rgba(0, 0, 0, 0.5); 2193 --body-size: 0.8rem; 2194 --body-color: rgba(0, 0, 0, 0.8); 2195 } 2196 2197 /*-- ARTICLE TABLE OF CONTENTS --*/ 2198 .d-contents { 2199 --heading-size: 18px; 2200 --contents-size: 13px; 2201 } 2202 2203 /*-- ARTICLE APPENDIX --*/ 2204 d-appendix { 2205 --heading-size: 15px; 2206 --heading-color: rgba(0, 0, 0, 0.65); 2207 --text-size: 0.8em; 2208 --text-color: rgba(0, 0, 0, 0.5); 2209 } 2210 2211 /*-- WEBSITE HEADER + FOOTER --*/ 2212 /* These properties only apply to Distill sites and blogs */ 2213 2214 .distill-site-header { 2215 --title-size: 18px; 2216 --text-color: rgba(255, 255, 255, 0.8); 2217 --text-size: 15px; 2218 --hover-color: white; 2219 --bkgd-color: #908FB6; 2220 /*--bkgd-color: #0F2E3D;*/ 2221 } 2222 2223 .distill-site-footer { 2224 --text-color: rgba(255, 255, 255, 0.8); 2225 --text-size: 12px; 2226 --hover-color: white; 2227 --bkgd-color: #908FB6; 2228 } 2229 2230 /*-- Additional custom styles --*/ 2231 /* Add any additional CSS rules below */ 2232 </style> 2233 <style type="text/css"> 2234 /* base style */ 2235 2236 /* FONT FAMILIES */ 2237 2238 :root { 2239 --heading-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
2240 --mono-default: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 2241 --body-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 2242 } 2243 2244 body, 2245 .posts-list .post-preview p, 2246 .posts-list .description p { 2247 font-family: var(--body-font), var(--body-default); 2248 } 2249 2250 h1, h2, h3, h4, h5, h6, 2251 .posts-list .post-preview h2, 2252 .posts-list .description h2 { 2253 font-family: var(--heading-font), var(--heading-default); 2254 } 2255 2256 d-article div.sourceCode code, 2257 d-article pre code { 2258 font-family: var(--mono-font), var(--mono-default); 2259 } 2260 2261 2262 /*-- TITLE --*/ 2263 d-title h1, 2264 .posts-list > h1 { 2265 color: var(--title-color, black); 2266 } 2267 2268 d-title h1 { 2269 font-size: var(--title-size, 50px); 2270 } 2271 2272 /*-- HEADERS --*/ 2273 d-article h1, 2274 d-article h2, 2275 d-article h3, 2276 d-article h4, 2277 d-article h5, 2278 d-article h6 { 2279 color: var(--header-color, rgba(0, 0, 0, 0.8)); 2280 } 2281 2282 /*-- BODY --*/ 2283 d-article > p, /* only text inside of <p> tags */ 2284 d-article > ul, /* lists */ 2285 d-article > ol { 2286 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2287 font-size: var(--body-size, 1.06rem); 2288 } 2289 2290 2291 /*-- CODE --*/ 2292 d-article div.sourceCode code, 2293 d-article pre code { 2294 font-size: var(--code-size, 14px); 2295 } 2296 2297 /*-- ASIDE --*/ 2298 d-article aside { 2299 font-size: var(--aside-size, 12px); 2300 color: var(--aside-color, rgba(0, 0, 0, 0.6)); 2301 } 2302 2303 /*-- FIGURE CAPTIONS --*/ 2304 figure .caption, 2305 figure figcaption, 2306 .figure .caption { 2307 font-size: var(--fig-cap-size, 13px); 2308 color: var(--fig-cap-color, rgba(0, 0, 0, 0.6)); 2309 } 2310 2311 /*-- METADATA --*/ 2312 d-byline h3 { 2313 font-size: var(--heading-size, 0.6rem); 2314 color: var(--heading-color, rgba(0, 0, 0, 0.5)); 2315 } 2316 2317 d-byline { 2318 font-size: var(--body-size, 0.8rem); 2319 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2320 } 2321 2322 d-byline a, 2323 d-article d-byline a { 2324 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2325 } 2326 2327 /*-- TABLE OF CONTENTS --*/ 2328 .d-contents nav h3 { 2329 font-size: var(--heading-size, 18px); 2330 } 2331 2332 .d-contents nav a { 2333 font-size: var(--contents-size, 13px); 2334 } 2335 2336 /*-- APPENDIX --*/ 2337 d-appendix h3 { 2338 font-size: var(--heading-size, 15px); 2339 color: var(--heading-color, rgba(0, 0, 0, 0.65)); 2340 } 2341 2342 d-appendix { 2343 font-size: var(--text-size, 0.8em); 2344 color: var(--text-color, rgba(0, 0, 0, 0.5)); 2345 } 2346 2347 d-appendix d-footnote-list a.footnote-backlink { 2348 color: var(--text-color, rgba(0, 0, 0, 0.5)); 2349 } 2350 2351 /*-- WEBSITE HEADER + FOOTER --*/ 2352 .distill-site-header .title { 2353 font-size: var(--title-size, 18px); 2354 font-family: var(--navbar-font), var(--heading-default); 2355 } 2356 2357 .distill-site-header a, 2358 .nav-dropdown .nav-dropbtn { 2359 font-family: var(--navbar-font), var(--heading-default); 2360 } 2361 2362 .nav-dropdown .nav-dropbtn { 2363 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2364 font-size: var(--text-size, 15px); 2365 } 2366 2367 .distill-site-header a:hover, 2368 .nav-dropdown:hover .nav-dropbtn { 2369 color: var(--hover-color, white); 2370 } 2371 2372 .distill-site-header { 2373 font-size: var(--text-size, 15px); 2374 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2375 background-color: var(--bkgd-color, #0F2E3D); 2376 } 2377 2378 .distill-site-footer { 2379 font-size: var(--text-size, 15px); 2380 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2381 background-color: var(--bkgd-color, #0F2E3D); 2382 } 2383 2384 .distill-site-footer a:hover { 2385 color: var(--hover-color, white); 2386 }</style> 2387 <!--/radix_placeholder_distill--> 2388
2388<script src="site_libs/header-attrs-2.16/header-attrs.js"></script>
2388 2389
2389<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2389 2390 <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" /> 2391 <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" /> 2392
2392<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2392 2393
2393<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2393 2394
2394<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2394 2395
2395<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2395 2396
2396<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2396 2397 <!--radix_placeholder_site_in_header--> 2398 <!--/radix_placeholder_site_in_header--> 2399 2400 2401</head> 2402 2403<body> 2404 2405<!--radix_placeholder_front_matter--> 2406
2407<script id="distill-front-matter" type="text/json"> 2408{"title":"Business Data Analysis and Interpretation","description":"Fall 2022 BUS 320 Syllabus","authors":[]} 2409</script>
2409 2410 2411<!--/radix_placeholder_front_matter--> 2412<!--radix_placeholder_navigation_before_body--> 2413<header class="header header--fixed" role="banner"> 2414<nav class="distill-site-nav distill-site-header"> 2415<div class="nav-left"> 2416<a class="logo"> 2417<img src="img/favicon.png" alt="Logo"/> 2418</a> 2419<a class='title' href='/'>Elizabeth Stanny</a> 2420<input id="distill-search" class="nav-search hidden" type="text" placeholder="Search..."/> 2421</div> 2422<div class="nav-right"> 2423<a href='/'>Home</a> 2424<a href='/about'>About</a> 2425<div class="nav-dropdown"> 2426<button class="nav-dropbtn"> 2427Courses 2428 2429<span class="down-arrow">▾</span> 2430</button> 2431<div class="nav-dropdown-content"> 2432<a href='/data-analysis-fa-22'>Data Analysis - Fall 2022</a> 2433<hr/> 2434<a href='/intermediate_accounting_sum'>Intermediate Accounting I- Summer 2022</a> 2435<hr/> 2436<a href='/intermediate_accounting_ii_sum'>Intermediate Accounting II - Summer 2022</a> 2437<hr/> 2438<a href='/financial-accounting-sp-22'>Financial Accounting - Spring 2022</a> 2439<hr/> 2440<a href='/data-analysis-sp-22'>Data Analysis - Spring 2022</a> 2441<hr/> 2442<a href='/slides'>BUS 320 Slides</a> 2443</div> 2444</div> 2445<a href='/advising'>Advising</a> 2446<a href="javascript:void(0);" class="nav-toggle">☰</a> 2447</div> 2448</nav> 2449</header> 2450<!--/radix_placeholder_navigation_before_body--> 2451<!--radix_placeholder_site_before_body--> 2452<!--/radix_placeholder_site_before_body--> 2453 2454<div class="d-title"> 2455<h1>Business Data Analysis and Interpretation</h1> 2456<!--radix_placeholder_categories--> 2457<!--/radix_placeholder_categories--> 2458<p><p>Fall 2022 BUS 320 Syllabus</p></p> 2459</div> 2460 2461 2462<div class="d-article"> 2463<div class="d-contents d-contents-float"> 2464<nav class="l-text toc figcaption" id="TOC"> 2465<h3>Contents</h3> 2466<ul> 2467<li><a href="#contact-information" id="toc-contact-information">Contact information</a></li> 2468<li><a href="#class-meetings-in-person" id="toc-class-meetings-in-person">Class meetings in person</a></li> 2469<li><a href="#course-description" id="toc-course-description">Course description</a></li> 2470<li><a href="#prerequisites" id="toc-prerequisites">Prerequisites</a></li> 2471<li><a href="#learning-objectives" id="toc-learning-objectives">Learning objectives</a></li> 2472<li><a href="#course-materials" id="toc-course-materials">Course materials</a></li> 2473<li><a href="#schedule" id="toc-schedule">Schedule</a></li> 2474<li><a href="#grading" id="toc-grading">Grading</a></li> 2475<li><a href="#university-policies" id="toc-university-policies">University Policies</a></li> 2476<li><a href="#university-services" id="toc-university-services">University services</a></li> 2477<li><a href="#religious-observances" id="toc-religious-observances">Religious Observances</a></li> 2478<li><a href="#fires-andor-power-outages" id="toc-fires-andor-power-outages">Fires and/or power-outages</a></li> 2479<li><a href="#covid-19" id="toc-covid-19">COVID-19</a></li> 2480</ul> 2481</nav> 2482</div> 2483<p><em>Subject to revision (last updated: Aug 23, 2022)</em></p> 2484<h3 id="contact-information">Contact information</h3> 2485<ul> 2486<li>Instructor: Elizabeth Stanny, PhD</li> 2487<li>Email: <a href="mailto:[email protected]">[email protected]</a></li> 2488<li>Office: Wine Center 1016 <!-- - Office phone: 707-664-4287 --></li> 2489<li>Office hours 2490<ul> 2491<li>Mondays: 12 - 12:40 (in - person)<br /> 2492</li> 2493<li>Wednesdays: 4 - 5 PM (on Zoom)</li> 2494<li>by appointment</li> 2495</ul></li> 2496</ul> 2497<h3 id="class-meetings-in-person">Class meetings in person</h3> 2498<ul> 2499<li>Section 1: Mondays 10- 11:50 AM</li> 2500<li>Section 2: Mondays 1 - 2:50 PM</li> 2501</ul> 2502<h3 id="course-description">Course description</h3> 2503<p>This is an applied course that builds upon knowledge acquired from lower-division statistics coursework. It exposes students to the research and data analysis practices executed in the business world. A focus of this course is on generating <strong>reproducible analyses</strong> using the R programming language.</p> 2504<h3 id="prerequisites">Prerequisites</h3> 2505<ul> 2506<li>Pre-business requirements</li> 2507<li>Proficiency in spreadsheet software</li> 2508</ul> 2509<h3 id="learning-objectives">Learning objectives</h3> 2510<ul> 2511<li>Determine question want to answer with data analysis</li> 2512<li>Extract, transform and load relevant data (ETL process)</li> 2513<li>Apply appropriate data analytic methods</li> 2514<li>Interpret and present the results</li> 2515</ul> 2516<h3 id="course-materials">Course materials</h3> 2517<ul> 2518<li>R/RStudio</li> 2519<li>Course site: <a href="https://stanny.moodlecloud.com"><strong>stanny.moodlecloud.com</strong></a>. If you are enrolled in the course, I will send you login information. 2520<ul> 2521<li>If you have any questions about the site, please ask <a href="mailto:[email protected]">me</a>.</li> 2522<li>Videos, notes, quizzes and other materials are posted on the site.</li> 2523</ul></li> 2524</ul> 2525<h3 id="schedule">Schedule</h3> 2526<div class="layout-chunk" data-layout="l-body"> 2527<table> 2528<thead> 2529<tr class="header"> 2530<th style="text-align: left;">Date</th> 2531<th style="text-align: left;">Topic</th> 2532<th style="text-align: left;"></th> 2533</tr> 2534</thead> 2535<tbody> 2536<tr class="odd"> 2537<td style="text-align: left;">Aug 22</td> 2538<td style="text-align: left;">0: Introduction</td> 2539<td style="text-align: left;"></td> 2540</tr> 2541<tr class="even"> 2542<td style="text-align: left;">Aug 29</td> 2543<td style="text-align: left;">1: Introduction/R/RStudio</td> 2544<td style="text-align: left;">due at 5 PM</td> 2545</tr> 2546<tr class="odd"> 2547<td style="text-align: left;">Sep 12</td> 2548<td style="text-align: left;">2: R/RStudio and create a blog</td> 2549<td style="text-align: left;">due at 5 PM</td> 2550</tr> 2551<tr class="even"> 2552<td style="text-align: left;">Sep 19</td> 2553<td style="text-align: left;">3: Data manipulation / descriptive analysis I</td> 2554<td style="text-align: left;">due at 5 PM</td> 2555</tr> 2556<tr class="odd"> 2557<td style="text-align: left;">Sep 26</td> 2558<td style="text-align: left;">4: Reading and writing data</td> 2559<td style="text-align: left;">due at 5 PM</td> 2560</tr> 2561<tr class="even"> 2562<td style="text-align: left;">Oct 3</td> 2563<td style="text-align: left;">5: Data manipulation / descriptive analysis II</td> 2564<td style="text-align: left;">due at 5 PM</td> 2565</tr> 2566<tr class="odd"> 2567<td style="text-align: left;">Oct 10</td> 2568<td style="text-align: left;">6: Data manipulation / joining data</td> 2569<td style="text-align: left;">due at 5 PM</td> 2570</tr> 2571<tr class="even"> 2572<td style="text-align: left;">Oct 17</td> 2573<td style="text-align: left;">
25737: Exploratory analysis / data visualization I</td> 2574<td style="text-align: left;">due at 5 PM</td> 2575</tr> 2576<tr class="odd"> 2577<td style="text-align: left;">Oct 24</td> 2578<td style="text-align: left;">8: Exploratory analysis / data visualization II</td> 2579<td style="text-align: left;">due at 5 PM</td> 2580</tr> 2581<tr class="even"> 2582<td style="text-align: left;">Oct 31</td> 2583<td style="text-align: left;">9: Data visualization / storytelling</td> 2584<td style="text-align: left;">due at 5 PM</td> 2585</tr> 2586<tr class="odd"> 2587<td style="text-align: left;">Nov 7</td> 2588<td style="text-align: left;">10: Machine learning</td> 2589<td style="text-align: left;">due at 5 PM</td> 2590</tr> 2591<tr class="even"> 2592<td style="text-align: left;">Nov 14</td> 2593<td style="text-align: left;">11: Inference / sampling</td> 2594<td style="text-align: left;">due at 5 PM</td> 2595</tr> 2596<tr class="odd"> 2597<td style="text-align: left;">Nov 21</td> 2598<td style="text-align: left;">12: Inference / bootstrapping</td> 2599<td style="text-align: left;">due at 5 PM</td> 2600</tr> 2601<tr class="even"> 2602<td style="text-align: left;">Nov 28</td> 2603<td style="text-align: left;">13: Inference / hypothesis testing</td> 2604<td style="text-align: left;">due at 5 PM</td> 2605</tr> 2606<tr class="odd"> 2607<td style="text-align: left;">Dec 5</td> 2608<td style="text-align: left;">14: Project</td> 2609<td style="text-align: left;">due at 5 PM</td> 2610</tr> 2611<tr class="even"> 2612<td style="text-align: left;">Dec 12</td> 2613<td style="text-align: left;">15: Project</td> 2614<td style="text-align: left;">due at 5 PM</td> 2615</tr> 2616</tbody> 2617</table> 2618</div> 2619<h3 id="grading">Grading</h3> 2620<p>There are 1070 possible points in the course (70 are extra credit points). Your grade will be determined by your total points:</p> 2621<div class="layout-chunk" data-layout="l-body"> 2622<table> 2623<thead> 2624<tr class="header"> 2625<th style="text-align: left;">Grade</th> 2626<th style="text-align: right;">Points</th> 2627</tr> 2628</thead> 2629<tbody> 2630<tr class="odd"> 2631<td style="text-align: left;">A</td> 2632<td style="text-align: right;">950</td> 2633</tr> 2634<tr class="even"> 2635<td style="text-align: left;">A-</td> 2636<td style="text-align: right;">900</td> 2637</tr> 2638<tr class="odd"> 2639<td style="text-align: left;">B+</td> 2640<td style="text-align: right;">870</td> 2641</tr> 2642<tr class="even"> 2643<td style="text-align: left;">B</td> 2644<td style="text-align: right;">830</td> 2645</tr> 2646<tr class="odd"> 2647<td style="text-align: left;">B-</td> 2648<td style="text-align: right;">800</td> 2649</tr> 2650<tr class="even"> 2651<td style="text-align: left;">C+</td> 2652<td style="text-align: right;">770</td> 2653</tr> 2654<tr class="odd"> 2655<td style="text-align: left;">C</td> 2656<td style="text-align: right;">730</td> 2657</tr> 2658<tr class="even"> 2659<td style="text-align: left;">C-</td> 2660<td style="text-align: right;">700</td> 2661</tr> 2662<tr class="odd"> 2663<td style="text-align: left;">D+</td> 2664<td style="text-align: right;">670</td> 2665</tr> 2666<tr class="even"> 2667<td style="text-align: left;">D</td> 2668<td style="text-align: right;">600</td> 2669</tr> 2670</tbody> 2671</table> 2672</div> 2673<div class="layout-chunk" data-layout="l-body"> 2674<table> 2675<thead> 2676<tr class="header"> 2677<th style="text-align: left;">Activity</th> 2678<th style="text-align: right;">Total Points</th> 2679</tr> 2680</thead> 2681<tbody> 2682<tr class="odd"> 2683<td style="text-align: left;">Quizzes</td> 2684<td style="text-align: right;">390</td> 2685</tr> 2686<tr class="even"> 2687<td style="text-align: left;">Assignments</td> 2688<td style="text-align: right;">330</td> 2689</tr> 2690<tr class="odd"> 2691<td style="text-align: left;">Attendance</td> 2692<td style="text-align: right;">150</td> 2693</tr> 2694<tr class="even"> 2695<td style="text-align: left;">Final Project</td> 2696<td style="text-align: right;">200</td> 2697</tr> 2698</tbody> 2699</table> 2700</div> 2701<p><strong>In general late submissions will not be accepted.</strong> If you need an extension because of hardships related to COVID-19 and other illnesses, mental health challenges and family concerns, please let me know as soon as possible and provide documentation if possible. <strong>The most important thing that you can do is communicate with me so I can work with you to determine what options there are for you to succeed.</strong></p> 2702<h3 id="university-policies">University Policies</h3> 2703<p>There are important <a href="https://catalog.sonoma.edu/content.php?catoid=8&navoid=926">University policies</a> that you should be aware of, such as the add/drop policy; <a href="https://policies.sonoma.edu/policies/cheating-and-plagiarism">cheating and plagiarism policy</a>, grade appeal procedures; accommodations for students with disabilities and the diversity vision statement.</p> 2704<h4 id="dropping-and-adding">Dropping and Adding</h4> 2705<p>Students are responsible for understanding the policies and procedures about add/drops, academic renew
2705al, etc. <a href="https://registrar.sonoma.edu/how-register#howto">How to Register</a> has step-by-step instructions and important deadlines and penalties for adding and dropping classes.</p> 2706<h4 id="campus-policy-on-disability-access-for-students">Campus Policy on Disability Access for Students</h4> 2707<p>If you are a student with a disability, and think you may need academic accommodations, please contact Disability Services for Students (DSS), located in Salazar Hall, Room 1049, Voice: (707) 664-2677, TTY/TDD: (707) 664-2958, as early as possible in order to avoid a delay in receiving accommodation services. Use of DSS services, including testing accommodations, requires prior authorization by DSS in compliance with university policies and procedures. See SSUâs policy on <a href="https://policies.sonoma.edu/policies/disability-access-students">Disability Access for Students</a>.</p> 2708<h4 id="academic-integrity">Academic Integrity</h4> 2709<p>Students should be familiar with the Universityâs <a href="https://policies.sonoma.edu/policies/cheating-and-plagiarism">Cheating and Plagiarism Policy</a>. Your own commitment to learning, as evidenced by your enrollment at Sonoma State University and the Universityâs policy, require you to be honest in all your academic coursework. Instances of academic dishonesty will not be tolerated. Cheating on exams or plagiarism (presenting the work of another as your own, or the use of another personâs ideas without giving proper credit) will result in a failing grade and sanctions by the University. For this class, all assignments are to be completed by the individual student unless otherwise specified.</p> 2710<h4 id="recording">Recording</h4> 2711<p>Students may not record (audio or video) in this class except in accordance with ADA accommodations. Any recordings made in connection with a disability accommodation are for the studentâs personal academic use only and may not be distributed in any manner to any other individual.</p> 2712<h3 id="university-services">University services</h3> 2713<h4 id="counseling-and-psychological-services-caps">Counseling and Psychological Services (CAPS)</h4> 2714<p>CAPS is a unit of the division of Student Affairs of Sonoma State University. CAPS offers confidential counseling to students experiencing personal problems that interfere with their academic progress, career or well-being. The <a href="https://caps.sonoma.edu/">CAPS website</a> provides information only. If you would like to talk with someone or make an appointment, please call (707) 664-2153 between 8 a.m. â 5:00 p.m., Monday-Friday during the academic year.</p> 2715<h4 id="basic-needs">Basic Needs</h4> 2716<p>We learn as whole people. To learn effectively, you must have basic security: a roof over your head, a safe place to sleep, enough food to eat. If you are having trouble with any of those things, please visit <a href="https://studentaffairs.sonoma.edu/basicneeds">Student Affairsâ Basic Needs webpage</a> for resources to support your well-being both inside and outside the classroom.</p> 2717<h3 id="religious-observances">Religious Observances</h3> 2718<p>The observance of religious holidays (activities observed by a religious group of which a student is a member) and cultural practices are an important reflection of diversity. As your instructor, I am committed to providing equivalent educational opportunities to students of all belief systems. At the beginning of the semester, you should review the course requirements to identify foreseeable conflicts with assignments, exams, or other required attendance. If at all possible, please contact me (your course coordinator/s) within the first two weeks of the first class meeting to allow time for us to discuss and make fair and reasonable adjustments to the schedule and/or tasks.</p> 2719<h3 id="fires-andor-power-outages">Fires and/or power-outages</h3> 2720<p>Sonoma County has seen an increase in fire activity and public safety power outages that have had an impact on campus operations intermittently since 2017. In the event that we experience a similar disruption to our course this semester, I will communicate with class via email within 24 hours of the disruption around potential changes to assignments, due dates, or readings. If the disruption continues for more than one week of our regular class meetings, I will subsequently follow up on a weekly basis. Please sign up to receive university emergency alerts by texting SSUALERTS to 67283.</p> 2721<h3 id="covid-19">COVID-19</h3> 2722<p>In accordance with state and county guidelines, masking in SSU instructional spaces is strongly recommended in the Fall 2022 semester. Any changes regarding campus COVID-19 requirements or policies will be communicated to the campus community via email.</p> 2723<div class="sourceCode" id="cb1"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div> 2724<!--radix_placeholder_article_footer--> 2725<!--/radix_placeholder_article_footer--> 2726</div> 2727 2728<div class="d-appendix"> 2729</div> 2730 2731 2732<!--radix_placeholder_site_after_body--> 2733<!--/radix_placeholder_site_after_body--> 2734<!--radix_placeholder_appendices--> 2735<div class="appendix-bottom"></div> 2736<!--/radix_placeholder_appendices--> 2737<!--radix_placeholder_navigation_after_body--> 2738<div class="distill-site-nav distill-site-footer"> 2739<p>© Copyright 2021-2022 Elizabeth Stanny. Website template is by <a 2740href="https://distill.pub/about/">Distill.pub</a> and <a 2741href="https://www.rstudio.com">RStudio, Inc</a>.</p> 2742</div> 2743<!--/radix_placeholder_navigation_after_body--> 2744 2745 2746</body> 2747 2748</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.