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<!-- This site is hosted on Netlify. Anyone can build and deploy a site 8 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=6b7d082f-80de-4033-b631-1677e0d26412 9 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 10 <meta name="viewport" content="width=device-width, initial-scale=1"/> 11 <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> 12 <meta name="generator" content="distill" /> 13 14 <style type="text/css"> 15 /* Hide doc at startup (prevent jankiness while JS renders/transforms) */ 16 body { 17 visibility: hidden; 18 } 19 </style> 20 21 <!--radix_placeholder_import_source--> 22 <!--/radix_placeholder_import_source--> 23 24<style type="text/css">code{white-space: pre;}</style> 25<style type="text/css" data-origin="pandoc"> 26pre > code.sourceCode { white-space: pre; position: relative; } 27pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } 28pre > code.sourceCode > span:empty { height: 1.2em; } 29.sourceCode { overflow: visible; } 30code.sourceCode > span { color: inherit; text-decoration: inherit; } 31div.sourceCode { margin: 1em 0; } 32pre.sourceCode { margin: 0; } 33@media screen { 34div.sourceCode { overflow: auto; } 35} 36@media print { 37pre > code.sourceCode { white-space: pre-wrap; } 38pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } 39} 40pre.numberSource code 41 { counter-reset: source-line 0; } 42pre.numberSource code > span 43 { position: relative; left: -4em; counter-increment: source-line; } 44pre.numberSource code > span > a:first-child::before 45 { content: counter(source-line); 46 position: relative; left: -1em; text-align: right; vertical-align: baseline; 47 border: none; display: inline-block; 48 -webkit-touch-callout: none; -webkit-user-select: none; 49 -khtml-user-select: none; -moz-user-select: none; 50 -ms-user-select: none; user-select: none; 51 padding: 0 4px; width: 4em; 52 color: #aaaaaa; 53 } 54pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } 55div.sourceCode 56 { color: #00769e; background-color: #f1f3f5; } 57@media screen { 58pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } 59} 60code span { color: #00769e; } /* Normal */ 61code span.al { color: #ad0000; } /* Alert */ 62code span.an { color: #5e5e5e; } /* Annotation */ 63code span.at { color: #657422; } /* Attribute */ 64code span.bn { color: #ad0000; } /* BaseN */ 65code span.bu { } /* BuiltIn */ 66code span.cf { color: #00769e; } /* ControlFlow */ 67code span.ch { color: #20794d; } /* Char */ 68code span.cn { color: #8f5902; } /* Constant */ 69code span.co { color: #5e5e5e; } /* Comment */ 70code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */ 71code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */ 72code span.dt { color: #ad0000; } /* DataType */ 73code span.dv { color: #ad0000; } /* DecVal */ 74code span.er { color: #ad0000; } /* Error */ 75code span.ex { } /* Extension */ 76code span.fl { color: #ad0000; } /* Float */ 77code span.fu { color: #4758ab; } /* Function */ 78code span.im { } /* Import */ 79code span.in { color: #5e5e5e; } /* Information */ 80code span.kw { color: #00769e; } /* Keyword */ 81code span.op { color: #5e5e5e; } /* Operator */ 82code span.ot { color: #00769e; } /* Other */ 83code span.pp { color: #ad0000; } /* Preprocessor */ 84code span.sc { color: #5e5e5e; } /* SpecialChar */ 85code span.ss { color: #20794d; } /* SpecialString */ 86code span.st { color: #20794d; } /* String */ 87code span.va { color: #111111; } /* Variable */ 88code span.vs { color: #20794d; } /* VerbatimString */ 89code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */ 90</style> 91 92 93 <!--radix_placeholder_meta_tags--> 94 <title>Rafael Zambrano: Publicaciones</title> 95 96 97 <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/> 98 99 100 <!-- https://developers.facebook.com/docs/sharing/webmasters#markup --> 101 <meta property="og:title" content="Rafael Zambrano: Publicaciones"/> 102 <meta property="og:type" content="article"/> 103 <meta property="og:locale" content="en_US"/> 104 <meta property="og:site_name" content="Rafael Zambrano"/> 105 106 <!-- https://dev.twitter.com/cards/types/summary --> 107 <meta property="twitter:card" content="summary"/> 108 <meta property="twitter:title" content="Rafael Zambrano: Publicaciones"/> 109 110 <!--/radix_placeholder_meta_tags--> 111 <!--radix_placeholder_rmarkdown_metadata--> 112 113
113<script type="text/json" id="radix-rmarkdown-metadata"> 114 {"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title"]}},"value":[{"type":"character","attributes":{},"value":["Publicaciones"]}]} 115 </script>
115 116 <!--/radix_placeholder_rmarkdown_metadata--> 117 <!--radix_placeholder_navigation_in_header--> 118 <meta name="distill:offset" content=""/> 119 120
120<script type="application/javascript"> 121 122 window.headroom_prevent_pin = false; 123 124 window.document.addEventListener("DOMContentLoaded", function (event) { 125 126 // initialize headroom for banner 127 var header = $('header').get(0); 128 var headerHeight = header.offsetHeight; 129 var headroom = new Headroom(header, { 130 tolerance: 5, 131 onPin : function() { 132 if (window.headroom_prevent_pin) { 133 window.headroom_prevent_pin = false; 134 headroom.unpin(); 135 } 136 } 137 }); 138 headroom.init(); 139 if(window.location.hash) 140 headroom.unpin(); 141 $(header).addClass('headroom--transition'); 142 143 // offset scroll location for banner on hash change 144 // (see: https://github.com/WickyNilliams/headroom.js/issues/38) 145 window.addEventListener("hashchange", function(event) { 146 window.scrollTo(0, window.pageYOffset - (headerHeight + 25)); 147 }); 148 149 // responsive menu 150 $('.distill-site-header').each(function(i, val) { 151 var topnav = $(this); 152 var toggle = topnav.find('.nav-toggle'); 153 toggle.on('click', function() { 154 topnav.toggleClass('responsive'); 155 }); 156 }); 157 158 // nav dropdowns 159 $('.nav-dropbtn').click(function(e) { 160 $(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active'); 161 $(this).parent().siblings('.nav-dropdown') 162 .children('.nav-dropdown-content').removeClass('nav-dropdown-active'); 163 }); 164 $("body").click(function(e){ 165 $('.nav-dropdown-content').removeClass('nav-dropdown-active'); 166 }); 167 $(".nav-dropdown").click(function(e){ 168 e.stopPropagation(); 169 }); 170 }); 171 </script>
171 172 173 <style type="text/css"> 174 175 /* Theme (user-documented overrideables for nav appearance) */ 176 177 .distill-site-nav { 178 color: rgba(255, 255, 255, 0.8); 179 background-color: #0F2E3D; 180 font-size: 15px; 181 font-weight: 300; 182 } 183 184 .distill-site-nav a { 185 color: inherit; 186 text-decoration: none; 187 } 188 189 .distill-site-nav a:hover { 190 color: white; 191 } 192 193 @media print { 194 .distill-site-nav { 195 display: none; 196 } 197 } 198 199 .distill-site-header { 200 201 } 202 203 .distill-site-footer { 204 205 } 206 207 208 /* Site Header */ 209 210 .distill-site-header { 211 width: 100%; 212 box-sizing: border-box; 213 z-index: 3; 214 } 215 216 .distill-site-header .nav-left { 217 display: inline-block; 218 margin-left: 8px; 219 } 220 221 @media screen and (max-width: 768px) { 222 .distill-site-header .nav-left { 223 margin-left: 0; 224 } 225 } 226 227 228 .distill-site-header .nav-right { 229 float: right; 230 margin-right: 8px; 231 } 232 233 .distill-site-header a, 234 .distill-site-header .title { 235 display: inline-block; 236 text-align: center; 237 padding: 14px 10px 14px 10px; 238 } 239 240 .distill-site-header .title { 241 font-size: 18px; 242 min-width: 150px; 243 } 244 245 .distill-site-header .logo { 246 padding: 0; 247 } 248 249 .distill-site-header .logo img { 250 display: none; 251 max-height: 20px; 252 width: auto; 253 margin-bottom: -4px; 254 } 255 256 .distill-site-header .nav-image img { 257 max-height: 18px; 258 width: auto; 259 display: inline-block; 260 margin-bottom: -3px; 261 } 262 263 264 265 @media screen and (min-width: 1000px) { 266 .distill-site-header .logo img { 267 display: inline-block; 268 } 269 .distill-site-header .nav-left { 270 margin-left: 20px; 271 } 272 .distill-site-header .nav-right { 273 margin-right: 20px; 274 } 275 .distill-site-header .title { 276 padding-left: 12px; 277 } 278 } 279 280 281 .distill-site-header .nav-toggle { 282 display: none; 283 } 284 285 .nav-dropdown { 286 display: inline-block; 287 position: relative; 288 } 289 290 .nav-dropdown .nav-dropbtn { 291 border: none; 292 outline: none; 293 color: rgba(255, 255, 255, 0.8); 294 padding: 16px 10px; 295 background-color: transparent; 296 font-family: inherit; 297 font-size: inherit; 298 font-weight: inherit; 299 margin: 0;
300 margin-top: 1px; 301 z-index: 2; 302 } 303 304 .nav-dropdown-content { 305 display: none; 306 position: absolute; 307 background-color: white; 308 min-width: 200px; 309 border: 1px solid rgba(0,0,0,0.15); 310 border-radius: 4px; 311 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1); 312 z-index: 1; 313 margin-top: 2px; 314 white-space: nowrap; 315 padding-top: 4px; 316 padding-bottom: 4px; 317 } 318 319 .nav-dropdown-content hr { 320 margin-top: 4px; 321 margin-bottom: 4px; 322 border: none; 323 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 324 } 325 326 .nav-dropdown-active { 327 display: block; 328 } 329 330 .nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header { 331 color: black; 332 padding: 6px 24px; 333 text-decoration: none; 334 display: block; 335 text-align: left; 336 } 337 338 .nav-dropdown-content .nav-dropdown-header { 339 display: block; 340 padding: 5px 24px; 341 padding-bottom: 0; 342 text-transform: uppercase; 343 font-size: 14px; 344 color: #999999; 345 white-space: nowrap; 346 } 347 348 .nav-dropdown:hover .nav-dropbtn { 349 color: white; 350 } 351 352 .nav-dropdown-content a:hover { 353 background-color: #ddd; 354 color: black; 355 } 356 357 .nav-right .nav-dropdown-content { 358 margin-left: -45%; 359 right: 0; 360 } 361 362 @media screen and (max-width: 768px) { 363 .distill-site-header a, .distill-site-header .nav-dropdown {display: none;} 364 .distill-site-header a.nav-toggle { 365 float: right; 366 display: block; 367 } 368 .distill-site-header .title { 369 margin-left: 0; 370 } 371 .distill-site-header .nav-right { 372 margin-right: 0; 373 } 374 .distill-site-header { 375 overflow: hidden; 376 } 377 .nav-right .nav-dropdown-content { 378 margin-left: 0; 379 } 380 } 381 382 383 @media screen and (max-width: 768px) { 384 .distill-site-header.responsive {position: relative; min-height: 500px; } 385 .distill-site-header.responsive a.nav-toggle { 386 position: absolute; 387 right: 0; 388 top: 0; 389 } 390 .distill-site-header.responsive a, 391 .distill-site-header.responsive .nav-dropdown { 392 display: block; 393 text-align: left; 394 } 395 .distill-site-header.responsive .nav-left, 396 .distill-site-header.responsive .nav-right { 397 width: 100%; 398 } 399 .distill-site-header.responsive .nav-dropdown {float: none;} 400 .distill-site-header.responsive .nav-dropdown-content {position: relative;} 401 .distill-site-header.responsive .nav-dropdown .nav-dropbtn { 402 display: block; 403 width: 100%; 404 text-align: left; 405 } 406 } 407 408 /* Site Footer */ 409 410 .distill-site-footer { 411 width: 100%; 412 overflow: hidden; 413 box-sizing: border-box; 414 z-index: 3; 415 margin-top: 30px; 416 padding-top: 30px; 417 padding-bottom: 30px; 418 text-align: center; 419 } 420 421 /* Headroom */ 422 423 d-title { 424 padding-top: 6rem; 425 } 426 427 @media print { 428 d-title { 429 padding-top: 4rem; 430 } 431 } 432 433 .headroom { 434 z-index: 1000; 435 position: fixed; 436 top: 0; 437 left: 0; 438 right: 0; 439 } 440 441 .headroom--transition { 442 transition: all .4s ease-in-out; 443 } 444 445 .headroom--unpinned { 446 top: -100px; 447 } 448 449 .headroom--pinned { 450 top: 0; 451 } 452 453 /* adjust viewport for navbar height */ 454 /* helps vertically center bootstrap (non-distill) content */ 455 .min-vh-100 { 456 min-height: calc(100vh - 100px) !important; 457 } 458 459 </style> 460 461
461<script src="site_libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
461 462 <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/> 463 <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/> 464
464<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
464 465
465<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
465 466
466<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
466 467 468
468<script type="application/javascript"> 469 470 function getMeta(metaName) { 471 var metas = document.getElementsByTagName('meta'); 472 for (let i = 0; i < metas.length; i++) { 473 if (metas[i].getAttribute('name') === metaName) { 474 return metas[i].getAttribute('content'); 475 } 476 } 477 return ''; 478 } 479 480 function offsetURL(url) { 481 var offset = getMeta('distill:offset'); 482 return offset ? offset + '/' + url : url; 483 } 484 485 function createFuseIndex() { 486 487 // create fuse index 488 var options = { 489 keys: [ 490 { name: 'title', weight: 20 }, 491 { name: 'categories', weight: 15 }, 492 { name: 'description', weight: 10 }, 493 { name: 'contents', weight: 5 }, 494 ], 495 ignoreLocation: true, 496 threshold: 0 497 }; 498 var fuse = new window.Fuse([], options); 499 500 // fetch the main search.json 501 return fetch(offsetURL('search.json')) 502 .then(function(response) { 503 if (response.status == 200) { 504 return response.json().then(function(json) { 505 // index main articles 506 json.articles.forEach(function(article) { 507 fuse.add(article); 508 }); 509 // download collections and index their articles 510 return Promise.all(json.collections.map(function(collection) { 511 return fetch(offsetURL(collection)).then(function(response) { 512 if (response.status === 200) { 513 return response.json().then(function(articles) { 514 articles.forEach(function(article) { 515 fuse.add(article); 516 }); 517 }) 518 } else { 519 return Promise.reject( 520 new Error('Unexpected status from search index request: ' + 521 response.status) 522 ); 523 } 524 }); 525 })).then(function() { 526 return fuse; 527 }); 528 }); 529 530 } else { 531 return Promise.reject( 532 new Error('Unexpected status from search index request: ' + 533 response.status) 534 ); 535 } 536 }); 537 } 538 539 window.document.addEventListener("DOMContentLoaded", function (event) { 540 541 // get search element (bail if we don't have one) 542 var searchEl = window.document.getElementById('distill-search'); 543 if (!searchEl) 544 return; 545 546 createFuseIndex() 547 .then(function(fuse) { 548 549 // make search box visible 550 searchEl.classList.remove('hidden'); 551 552 // initialize autocomplete 553 var options = { 554 autoselect: true, 555 hint: false, 556 minLength: 2, 557 }; 558 window.autocomplete(searchEl, options, [{ 559 source: function(query, callback) { 560 const searchOptions = { 561 isCaseSensitive: false, 562 shouldSort: true, 563 minMatchCharLength: 2, 564 limit: 10, 565 }; 566 var results = fuse.search(query, searchOptions); 567 callback(results 568 .map(function(result) { return result.item; }) 569 ); 570 }, 571 templates: { 572 suggestion: function(suggestion) { 573 var img = suggestion.preview && Object.keys(suggestion.preview).length > 0 574 ? `<img src="${offsetURL(suggestion.preview)}"</img>` 575 : ''; 576 var html = ` 577 <div class="search-item"> 578 <h3>${suggestion.title}</h3> 579 <div class="search-item-description"> 580 ${suggestion.description || ''} 581 </div> 582 <div class="search-item-preview"> 583 ${img} 584 </div> 585 </div> 586 `; 587 return html; 588 } 589 } 590 }]).on('autocomplete:selected', function(event, suggestion) { 591 window.location.href = offsetURL(suggestion.path); 592 }); 593 // remove inline display style on autocompleter (we want to 594 // manage responsive display via css) 595 $('.algolia-autocomplete').css("display", ""); 596 }) 597 .catch(function(error) { 598 console.log(error); 599 }); 600 601 }); 602 603 </script>
603 604 605 <style type="text/css"> 606 607 .nav-search { 608 font-size: x-small; 609 } 610 611 /* Algolioa Autocomplete */ 612 613 .algolia-autocomplete { 614 display: inline-block; 615 margin-left: 10px; 616 vertical-align: sub; 617 background-color: white; 618 color: black; 619 padding: 6px; 620 padding-top: 8px; 621 padding-bottom: 0; 622 border-radius: 6px; 623 border: 1px #0F2E3D solid; 624 width: 180px; 625 } 626 627 628 @media screen and (max-width: 768px) { 629 .distill-site-nav .algolia-autocomplete { 630 display: none; 631 visibility: hidden; 632 } 633 .distill-site-nav.responsive .algolia-autocomplete { 634 display: inline-block; 635 visibility: visible; 636 } 637 .distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu { 638 margin-left: 0; 639 width: 400px; 640 max-height: 400px; 641 } 642 } 643 644 .algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint { 645 width: 90%; 646 outline: none; 647 border: none; 648 } 649 650 .algolia-autocomplete .aa-hint { 651 color: #999; 652 } 653 .algolia-autocomplete .aa-dropdown-menu { 654 width: 550px; 655 max-height: 70vh; 656 overflow-x: visible; 657 overflow-y: scroll; 658 padding: 5px; 659 margin-top: 3px; 660 margin-left: -150px; 661 background-color: #fff; 662 border-radius: 5px; 663 border: 1px solid #999; 664 border-top: none; 665 } 666 667 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion { 668 cursor: pointer; 669 padding: 5px 4px; 670 border-bottom: 1px solid #eee; 671 } 672 673 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type { 674 border-bottom: none; 675 margin-bottom: 2px; 676 } 677 678 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item { 679 overflow: hidden; 680 font-size: 0.8em; 681 line-height: 1.4em; 682 } 683 684 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 { 685 font-size: 1rem; 686 margin-block-start: 0; 687 margin-block-end: 5px; 688 } 689 690 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description { 691 display: inline-block; 692 overflow: hidden; 693 height: 2.8em; 694 width: 80%; 695 margin-right: 4%; 696 } 697 698 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview { 699 display: inline-block; 700 width: 15%; 701 } 702 703 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img { 704 height: 3em; 705 width: auto; 706 display: none; 707 } 708 709 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] { 710 display: initial; 711 } 712 713 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor { 714 background-color: #eee; 715 } 716 .algolia-autocomplete .aa-dropdown-menu .aa-suggestion em { 717 font-weight: bold; 718 font-style: normal; 719 } 720 721 </style> 722 723 724 <!--/radix_placeholder_navigation_in_header--> 725 <!--radix_placeholder_distill--> 726 727 <style type="text/css"> 728 729 body { 730 background-color: white; 731 } 732 733 .pandoc-table { 734 width: 100%; 735 } 736 737 .pandoc-table>caption { 738 margin-bottom: 10px; 739 } 740 741 .pandoc-table th:not([align]) { 742 text-align: left; 743 } 744 745 .pagedtable-footer { 746 font-size: 15px; 747 } 748 749 d-byline .byline { 750 grid-template-columns: 2fr 2fr; 751 } 752 753 d-byline .byline h3 { 754 margin-block-start: 1.5em; 755 } 756 757 d-byline .byline .authors-affiliations h3 { 758 margin-block-start: 0.5em; 759 } 760 761 .authors-affiliations .orcid-id { 762 width: 16px; 763 height:16px; 764 margin-left: 4px; 765 margin-right: 4px; 766 vertical-align: middle; 767 padding-bottom: 2px; 768 } 769 770 d-title .dt-tags { 771 margin-top: 1em; 772 grid-column: text; 773 } 774 775 .dt-tags .dt-tag { 776 text-decoration: none; 777 display: inline-block; 778 color: rgba(0,0,0,0.6); 779 padding: 0em 0.4em; 780 margin-right: 0.5em; 781 margin-bottom: 0.4em; 782 font-size: 70%; 783 border: 1px solid rgba(0,0,0,0.2); 784 border-radius: 3px; 785 text-transform: uppercase; 786 font-weight: 500; 787 } 788 789 d-article table.gt_table td, 790 d-article table.gt_table th { 791 border-bottom: none; 792 font-size: 100%; 793 } 794 795 .html-widget { 796 margin-bottom: 2.0em; 797 } 798 799 .l-screen-inset { 800 padding-right: 16px; 801 } 802 803 .l-screen .caption { 804 margin-left: 10px; 805 } 806 807 .shaded { 808 background: rgb(247, 247, 247); 809 padding-top: 20px; 810 padding-bottom: 20px; 811 border-top: 1px solid rgba(0, 0, 0, 0.1); 812 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 813 } 814 815 .shaded .html-widget { 816 margin-bottom: 0; 817 border: 1px solid rgba(0, 0, 0, 0.1); 818 } 819 820 .shaded .shaded-content { 821 background: white; 822 } 823 824 .text-output { 825 margin-top: 0; 826 line-height: 1.5em; 827 } 828 829 .hidden { 830 display: none !important; 831 } 832 833 d-article { 834 padding-top: 2.5rem; 835 padding-bottom: 30px; 836 } 837 838 d-appendix { 839 padding-top: 30px; 840 } 841 842 d-article>p>img { 843 width: 100%; 844 } 845 846 d-article h2 { 847 margin: 1rem 0 1.5rem 0; 848 } 849 850 d-article h3 { 851 margin-top: 1.5rem; 852 } 853 854 d-article iframe { 855 border: 1px solid rgba(0, 0, 0, 0.1); 856 margin-bottom: 2.0em; 857 width: 100%; 858 } 859 860 /* Tweak code blocks */ 861 862 d-article div.sourceCode code, 863 d-article pre code {
864 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 865 } 866 867 d-article pre, 868 d-article div.sourceCode, 869 d-article div.sourceCode pre { 870 overflow: auto; 871 } 872 873 d-article div.sourceCode { 874 background-color: white; 875 } 876 877 d-article div.sourceCode pre { 878 padding-left: 10px; 879 font-size: 12px; 880 border-left: 2px solid rgba(0,0,0,0.1); 881 } 882 883 d-article pre { 884 font-size: 12px; 885 color: black; 886 background: none; 887 margin-top: 0; 888 text-align: left; 889 white-space: pre; 890 word-spacing: normal; 891 word-break: normal; 892 word-wrap: normal; 893 line-height: 1.5; 894 895 -moz-tab-size: 4; 896 -o-tab-size: 4; 897 tab-size: 4; 898 899 -webkit-hyphens: none; 900 -moz-hyphens: none; 901 -ms-hyphens: none; 902 hyphens: none; 903 } 904 905 d-article pre a { 906 border-bottom: none; 907 } 908 909 d-article pre a:hover { 910 border-bottom: none; 911 text-decoration: underline; 912 } 913 914 d-article details { 915 grid-column: text; 916 margin-bottom: 0.8em; 917 } 918 919 @media(min-width: 768px) { 920 921 d-article pre, 922 d-article div.sourceCode, 923 d-article div.sourceCode pre { 924 overflow: visible !important; 925 } 926 927 d-article div.sourceCode pre { 928 padding-left: 18px; 929 font-size: 14px; 930 } 931 932 d-article pre { 933 font-size: 14px; 934 } 935 936 } 937 938 figure img.external { 939 background: white; 940 border: 1px solid rgba(0, 0, 0, 0.1); 941 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 942 padding: 18px; 943 box-sizing: border-box; 944 } 945 946 /* CSS for d-contents */ 947 948 .d-contents { 949 grid-column: text; 950 color: rgba(0,0,0,0.8); 951 font-size: 0.9em; 952 padding-bottom: 1em; 953 margin-bottom: 1em; 954 padding-bottom: 0.5em; 955 margin-bottom: 1em; 956 padding-left: 0.25em; 957 justify-self: start; 958 } 959 960 @media(min-width: 1000px) { 961 .d-contents.d-contents-float { 962 height: 0; 963 grid-column-start: 1; 964 grid-column-end: 4; 965 justify-self: center; 966 padding-right: 3em; 967 padding-left: 2em; 968 } 969 } 970 971 .d-contents nav h3 { 972 font-size: 18px; 973 margin-top: 0; 974 margin-bottom: 1em; 975 } 976 977 .d-contents li { 978 list-style-type: none 979 } 980 981 .d-contents nav > ul { 982 padding-left: 0; 983 } 984 985 .d-contents ul { 986 padding-left: 1em 987 } 988 989 .d-contents nav ul li { 990 margin-top: 0.6em; 991 margin-bottom: 0.2em; 992 } 993 994 .d-contents nav a { 995 font-size: 13px; 996 border-bottom: none; 997 text-decoration: none 998 color: rgba(0, 0, 0, 0.8); 999 } 1000 1001 .d-contents nav a:hover { 1002 text-decoration: underline solid rgba(0, 0, 0, 0.6) 1003 } 1004 1005 .d-contents nav > ul > li > a { 1006 font-weight: 600; 1007 } 1008 1009 .d-contents nav > ul > li > ul { 1010 font-weight: inherit; 1011 } 1012 1013 .d-contents nav > ul > li > ul > li { 1014 margin-top: 0.2em; 1015 } 1016 1017 1018 .d-contents nav ul { 1019 margin-top: 0; 1020 margin-bottom: 0.25em; 1021 } 1022 1023 .d-article-with-toc h2:nth-child(2) { 1024 margin-top: 0; 1025 } 1026 1027 1028 /* Figure */ 1029 1030 .figure { 1031 position: relative; 1032 margin-bottom: 2.5em; 1033 margin-top: 1.5em; 1034 } 1035 1036 .figure .caption { 1037 color: rgba(0, 0, 0, 0.6); 1038 font-size: 12px; 1039 line-height: 1.5em; 1040 } 1041 1042 .figure img.external { 1043 background: white; 1044 border: 1px solid rgba(0, 0, 0, 0.1); 1045 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 1046 padding: 18px; 1047 box-sizing: border-box; 1048 } 1049 1050 .figure .caption a { 1051 color: rgba(0, 0, 0, 0.6); 1052 } 1053 1054 .figure .caption b, 1055 .figure .caption strong, { 1056 font-weight: 600; 1057 color: rgba(0, 0, 0, 1.0); 1058 } 1059 1060 /* Citations */ 1061 1062 d-article .citation { 1063 color: inherit; 1064 cursor: inherit; 1065 } 1066 1067 div.hanging-indent{ 1068 margin-left: 1em; text-indent: -1em; 1069 } 1070 1071 /* Citation hover box */ 1072 1073 .tippy-box[data-theme~=light-border] { 1074 background-color: rgba(250, 250, 250, 0.95); 1075 } 1076 1077 .tippy-content > p { 1078 margin-bottom: 0; 1079 padding: 2px; 1080 } 1081 1082 1083 /* Tweak 1000px media break to show more text */ 1084 1085 @media(min-width: 1000px) { 1086 .base-grid, 1087 distill-header, 1088 d-title, 1089 d-abstract, 1090 d-article, 1091 d-appendix, 1092 distill-appendix, 1093 d-byline, 1094 d-footnote-list, 1095 d-citation-list, 1096 distill-footer { 1097 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]; 1098 grid-column-gap: 16px; 1099 } 1100 1101 .grid { 1102 grid-column-gap: 16px; 1103 } 1104 1105 d-article { 1106 font-size: 1.06rem; 1107 line-height: 1.7em; 1108 } 1109 figure .caption, .figure .caption, figure figcaption { 1110 font-size: 13px; 1111 } 1112 } 1113 1114 @media(min-width: 1180px) { 1115 .base-grid, 1116 distill-header, 1117 d-title, 1118 d-abstract, 1119 d-article, 1120 d-appendix, 1121 distill-appendix, 1122 d-byline, 1123 d-footnote-list, 1124 d-citation-list, 1125 distill-footer { 1126 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]; 1127 grid-column-gap: 32px; 1128 } 1129 1130 .grid { 1131 grid-column-gap: 32px; 1132 } 1133 } 1134 1135 1136 /* Get the citation styles for the appendix (not auto-injected on render since 1137 we do our own rendering of the citation appendix) */ 1138 1139 d-appendix .citation-appendix, 1140 .d-appendix .citation-appendix { 1141 font-size: 11px; 1142 line-height: 15px; 1143 border-left: 1px solid rgba(0, 0, 0, 0.1); 1144 padding-left: 18px; 1145 border: 1px solid rgba(0,0,0,0.1); 1146 background: rgba(0, 0, 0, 0.02); 1147 padding: 10px 18px; 1148 border-radius: 3px; 1149 color: rgba(150, 150, 150, 1); 1150 overflow: hidden; 1151 margin-top: -12px; 1152 white-space: pre-wrap; 1153 word-wrap: break-word; 1154 } 1155 1156 /* Include appendix styles here so they can be overridden */ 1157 1158 d-appendix { 1159 contain: layout style; 1160 font-size: 0.8em; 1161 line-height: 1.7em; 1162 margin-top: 60px; 1163 margin-bottom: 0; 1164 border-top: 1px solid rgba(0, 0, 0, 0.1); 1165 color: rgba(0,0,0,0.5); 1166 padding-top: 60px; 1167 padding-bottom: 48px; 1168 } 1169 1170 d-appendix h3 { 1171 grid-column: page-start / text-start; 1172 font-size: 15px; 1173 font-weight: 500; 1174 margin-top: 1em; 1175 margin-bottom: 0; 1176 color: rgba(0,0,0,0.65); 1177 } 1178 1179 d-appendix h3 + * { 1180 margin-top: 1em; 1181 } 1182 1183 d-appendix ol { 1184 padding: 0 0 0 15px; 1185 } 1186 1187 @media (min-width: 768px) { 1188 d-appendix ol { 1189 padding: 0 0 0 30px; 1190 margin-left: -30px; 1191 } 1192 } 1193 1194 d-appendix li { 1195 margin-bottom: 1em; 1196 } 1197 1198 d-appendix a { 1199 color: rgba(0, 0, 0, 0.6); 1200 } 1201 1202 d-appendix > * { 1203 grid-column: text; 1204 } 1205 1206 d-appendix > d-footnote-list, 1207 d-appendix > d-citation-list, 1208 d-appendix > distill-appendix { 1209 grid-column: screen; 1210 } 1211 1212 /* Include footnote styles here so they can be overridden */ 1213 1214 d-footnote-list { 1215 contain: layout style; 1216 } 1217 1218 d-footnote-list > * { 1219 grid-column: text; 1220 } 1221
1222 d-footnote-list a.footnote-backlink { 1223 color: rgba(0,0,0,0.3); 1224 padding-left: 0.5em; 1225 } 1226 1227 1228 1229 /* Anchor.js */ 1230 1231 .anchorjs-link { 1232 /*transition: all .25s linear; */ 1233 text-decoration: none; 1234 border-bottom: none; 1235 } 1236 *:hover > .anchorjs-link { 1237 margin-left: -1.125em !important; 1238 text-decoration: none; 1239 border-bottom: none; 1240 } 1241 1242 /* Social footer */ 1243 1244 .social_footer { 1245 margin-top: 30px; 1246 margin-bottom: 0; 1247 color: rgba(0,0,0,0.67); 1248 } 1249 1250 .disqus-comments { 1251 margin-right: 30px; 1252 } 1253 1254 .disqus-comment-count { 1255 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1256 cursor: pointer; 1257 } 1258 1259 #disqus_thread { 1260 margin-top: 30px; 1261 } 1262 1263 .article-sharing a { 1264 border-bottom: none; 1265 margin-right: 8px; 1266 } 1267 1268 .article-sharing a:hover { 1269 border-bottom: none; 1270 } 1271 1272 .sidebar-section.subscribe { 1273 font-size: 12px; 1274 line-height: 1.6em; 1275 } 1276 1277 .subscribe p { 1278 margin-bottom: 0.5em; 1279 } 1280 1281 1282 .article-footer .subscribe { 1283 font-size: 15px; 1284 margin-top: 45px; 1285 } 1286 1287 1288 .sidebar-section.custom { 1289 font-size: 12px; 1290 line-height: 1.6em; 1291 } 1292 1293 .custom p { 1294 margin-bottom: 0.5em; 1295 } 1296 1297 /* Styles for listing layout (hide title) */ 1298 .layout-listing d-title, .layout-listing .d-title { 1299 display: none; 1300 } 1301 1302 /* Styles for posts lists (not auto-injected) */ 1303 1304 1305 .posts-with-sidebar { 1306 padding-left: 45px; 1307 padding-right: 45px; 1308 } 1309 1310 .posts-list .description h2, 1311 .posts-list .description p { 1312 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1313 } 1314 1315 .posts-list .description h2 { 1316 font-weight: 700; 1317 border-bottom: none; 1318 padding-bottom: 0; 1319 } 1320 1321 .posts-list h2.post-tag { 1322 border-bottom: 1px solid rgba(0, 0, 0, 0.2); 1323 padding-bottom: 12px; 1324 } 1325 .posts-list { 1326 margin-top: 60px; 1327 margin-bottom: 24px; 1328 } 1329 1330 .posts-list .post-preview { 1331 text-decoration: none; 1332 overflow: hidden; 1333 display: block; 1334 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 1335 padding: 24px 0; 1336 } 1337 1338 .post-preview-last { 1339 border-bottom: none !important; 1340 } 1341 1342 .posts-list .posts-list-caption { 1343 grid-column: screen; 1344 font-weight: 400; 1345 } 1346 1347 .posts-list .post-preview h2 { 1348 margin: 0 0 6px 0; 1349 line-height: 1.2em; 1350 font-style: normal; 1351 font-size: 24px; 1352 } 1353 1354 .posts-list .post-preview p { 1355 margin: 0 0 12px 0; 1356 line-height: 1.4em; 1357 font-size: 16px; 1358 } 1359 1360 .posts-list .post-preview .thumbnail { 1361 box-sizing: border-box; 1362 margin-bottom: 24px; 1363 position: relative; 1364 max-width: 500px; 1365 } 1366 .posts-list .post-preview img { 1367 width: 100%; 1368 display: block; 1369 } 1370 1371 .posts-list .metadata { 1372 font-size: 12px; 1373 line-height: 1.4em; 1374 margin-bottom: 18px; 1375 } 1376 1377 .posts-list .metadata > * { 1378 display: inline-block; 1379 } 1380 1381 .posts-list .metadata .publishedDate { 1382 margin-right: 2em; 1383 } 1384 1385 .posts-list .metadata .dt-authors { 1386 display: block; 1387 margin-top: 0.3em; 1388 margin-right: 2em; 1389 } 1390 1391 .posts-list .dt-tags { 1392 display: block; 1393 line-height: 1em; 1394 } 1395 1396 .posts-list .dt-tags .dt-tag { 1397 display: inline-block; 1398 color: rgba(0,0,0,0.6); 1399 padding: 0.3em 0.4em; 1400 margin-right: 0.2em; 1401 margin-bottom: 0.4em; 1402 font-size: 60%; 1403 border: 1px solid rgba(0,0,0,0.2); 1404 border-radius: 3px; 1405 text-transform: uppercase; 1406 font-weight: 500; 1407 } 1408 1409 .posts-list img { 1410 opacity: 1; 1411 } 1412 1413 .posts-list img[data-src] { 1414 opacity: 0; 1415 } 1416 1417 .posts-more { 1418 clear: both; 1419 } 1420 1421 1422 .posts-sidebar { 1423 font-size: 16px; 1424 } 1425 1426 .posts-sidebar h3 { 1427 font-size: 16px; 1428 margin-top: 0; 1429 margin-bottom: 0.5em; 1430 font-weight: 400; 1431 text-transform: uppercase; 1432 } 1433 1434 .sidebar-section { 1435 margin-bottom: 30px; 1436 } 1437 1438 .categories ul { 1439 list-style-type: none; 1440 margin: 0; 1441 padding: 0; 1442 } 1443 1444 .categories li { 1445 color: rgba(0, 0, 0, 0.8); 1446 margin-bottom: 0; 1447 } 1448 1449 .categories li>a { 1450 border-bottom: none; 1451 } 1452 1453 .categories li>a:hover { 1454 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1455 } 1456 1457 .categories .active { 1458 font-weight: 600; 1459 } 1460 1461 .categories .category-count { 1462 color: rgba(0, 0, 0, 0.4); 1463 } 1464 1465 1466 @media(min-width: 768px) { 1467 .posts-list .post-preview h2 { 1468 font-size: 26px; 1469 } 1470 .posts-list .post-preview .thumbnail { 1471 float: right; 1472 width: 30%; 1473 margin-bottom: 0; 1474 } 1475 .posts-list .post-preview .description { 1476 float: left; 1477 width: 45%; 1478 } 1479 .posts-list .post-preview .metadata { 1480 float: left; 1481 width: 20%; 1482 margin-top: 8px; 1483 } 1484 .posts-list .post-preview p { 1485 margin: 0 0 12px 0; 1486 line-height: 1.5em; 1487 font-size: 16px; 1488 } 1489 .posts-with-sidebar .posts-list { 1490 float: left; 1491 width: 75%; 1492 } 1493 .posts-with-sidebar .posts-sidebar { 1494 float: right; 1495 width: 20%; 1496 margin-top: 60px; 1497 padding-top: 24px; 1498 padding-bottom: 24px; 1499 } 1500 } 1501 1502 1503 /* Improve display for browsers without grid (IE/Edge <= 15) */ 1504 1505 .downlevel { 1506 line-height: 1.6em; 1507 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1508 margin: 0; 1509 } 1510 1511 .downlevel .d-title { 1512 padding-top: 6rem; 1513 padding-bottom: 1.5rem; 1514 } 1515 1516 .downlevel .d-title h1 { 1517 font-size: 50px; 1518 font-weight: 700; 1519 line-height: 1.1em; 1520 margin: 0 0 0.5rem; 1521 } 1522 1523 .downlevel .d-title p { 1524 font-weight: 300; 1525 font-size: 1.2rem; 1526 line-height: 1.55em; 1527 margin-top: 0; 1528 } 1529 1530 .downlevel .d-byline { 1531 padding-top: 0.8em; 1532 padding-bottom: 0.8em; 1533 font-size: 0.8rem; 1534 line-height: 1.8em; 1535 } 1536 1537 .downlevel .section-separator { 1538 border: none; 1539 border-top: 1px solid rgba(0, 0, 0, 0.1); 1540 } 1541 1542 .downlevel .d-article { 1543 font-size: 1.06rem; 1544 line-height: 1.7em; 1545 padding-top: 1rem; 1546 padding-bottom: 2rem; 1547 } 1548 1549 1550 .downlevel .d-appendix { 1551 padding-left: 0; 1552 padding-right: 0; 1553 max-width: none; 1554 font-size: 0.8em; 1555 line-height: 1.7em; 1556 margin-bottom: 0; 1557 color: rgba(0,0,0,0.5); 1558 padding-top: 40px; 1559 padding-bottom: 48px; 1560 } 1561 1562 .downlevel .footnotes ol { 1563 padding-left: 13px; 1564 } 1565 1566 .downlevel .base-grid, 1567 .downlevel .distill-header, 1568 .downlevel .d-title, 1569 .downlevel .d-abstract, 1570 .downlevel .d-article, 1571 .downlevel .d-appendix, 1572 .downlevel .distill-appendix, 1573 .downlevel .d-byline, 1574 .downlevel .d-footnote-list, 1575 .downlevel .d-citation-list, 1576 .downlevel .distill-footer, 1577 .downlevel .appendix-bottom, 1578 .downlevel .posts-container { 1579 padding-left: 40px; 1580 padding-right: 40px; 1581 } 1582 1583 @media(min-width: 768px) { 1584 .downlevel .base-grid, 1585 .downlevel .distill-header, 1586 .downlevel .d-title, 1587 .downlevel .d-abstract, 1588 .downlevel .d-article, 1589 .downlevel .d-appendix, 1590 .downlevel .distill-appendix, 1591 .downlevel .d-byline, 1592 .downlevel .d-footnote-list, 1593 .downlevel .d-citation-list, 1594 .downlevel .distill-footer, 1595 .downlevel .appendix-bottom, 1596 .downlevel .posts-container { 1597 padding-left: 150px; 1598 padding-right: 150px; 1599 max-width: 900px; 1600 } 1601 } 1602 1603 .downlevel pre code { 1604 display: block; 1605 border-left: 2px solid rgba(0, 0, 0, .1); 1606 padding: 0 0 0 20px; 1607 font-size: 14px; 1608 } 1609 1610 .downlevel code, .downlevel pre { 1611 color: black; 1612 background: none;
1613 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 1614 text-align: left; 1615 white-space: pre; 1616 word-spacing: normal; 1617 word-break: normal; 1618 word-wrap: normal; 1619 line-height: 1.5; 1620 1621 -moz-tab-size: 4; 1622 -o-tab-size: 4; 1623 tab-size: 4; 1624 1625 -webkit-hyphens: none; 1626 -moz-hyphens: none; 1627 -ms-hyphens: none; 1628 hyphens: none; 1629 } 1630 1631 .downlevel .posts-list .post-preview { 1632 color: inherit; 1633 } 1634 1635 1636 1637 </style> 1638 1639
1639<script type="application/javascript"> 1640 1641 function is_downlevel_browser() { 1642 if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"}, 1643 window.navigator.userAgent)) { 1644 return true; 1645 } else { 1646 return window.load_distill_framework === undefined; 1647 } 1648 } 1649 1650 // show body when load is complete 1651 function on_load_complete() { 1652 1653 // add anchors 1654 if (window.anchors) { 1655 window.anchors.options.placement = 'left'; 1656 window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5'); 1657 } 1658 1659 1660 // set body to visible 1661 document.body.style.visibility = 'visible'; 1662 1663 // force redraw for leaflet widgets 1664 if (window.HTMLWidgets) { 1665 var maps = window.HTMLWidgets.findAll(".leaflet"); 1666 $.each(maps, function(i, el) { 1667 var map = this.getMap(); 1668 map.invalidateSize(); 1669 map.eachLayer(function(layer) { 1670 if (layer instanceof L.TileLayer) 1671 layer.redraw(); 1672 }); 1673 }); 1674 } 1675 1676 // trigger 'shown' so htmlwidgets resize 1677 $('d-article').trigger('shown'); 1678 } 1679 1680 function init_distill() { 1681 1682 init_common(); 1683 1684 // create front matter 1685 var front_matter = $('<d-front-matter></d-front-matter>'); 1686 $('#distill-front-matter').wrap(front_matter); 1687 1688 // create d-title 1689 $('.d-title').changeElementType('d-title'); 1690 1691 // create d-byline 1692 var byline = $('<d-byline></d-byline>'); 1693 $('.d-byline').replaceWith(byline); 1694 1695 // create d-article 1696 var article = $('<d-article></d-article>'); 1697 $('.d-article').wrap(article).children().unwrap(); 1698 1699 // move posts container into article 1700 $('.posts-container').appendTo($('d-article')); 1701 1702 // create d-appendix 1703 $('.d-appendix').changeElementType('d-appendix'); 1704 1705 // flag indicating that we have appendix items 1706 var appendix = $('.appendix-bottom').children('h3').length > 0; 1707 1708 // replace footnotes with <d-footnote> 1709 $('.footnote-ref').each(function(i, val) { 1710 appendix = true; 1711 var href = $(this).attr('href'); 1712 var id = href.replace('#', ''); 1713 var fn = $('#' + id); 1714 var fn_p = $('#' + id + '>p'); 1715 fn_p.find('.footnote-back').remove(); 1716 var text = fn_p.html(); 1717 var dtfn = $('<d-footnote></d-footnote>'); 1718 dtfn.html(text); 1719 $(this).replaceWith(dtfn); 1720 }); 1721 // remove footnotes 1722 $('.footnotes').remove(); 1723 1724 // move refs into #references-listing 1725 $('#references-listing').replaceWith($('#refs')); 1726 1727 $('h1.appendix, h2.appendix').each(function(i, val) { 1728 $(this).changeElementType('h3'); 1729 }); 1730 $('h3.appendix').each(function(i, val) { 1731 var id = $(this).attr('id'); 1732 $('.d-contents a[href="#' + id + '"]').parent().remove(); 1733 appendix = true; 1734 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix')); 1735 }); 1736 1737 // show d-appendix if we have appendix content 1738 $("d-appendix").css('display', appendix ? 'grid' : 'none'); 1739 1740 // localize layout chunks to just output 1741 $('.layout-chunk').each(function(i, val) { 1742 1743 // capture layout 1744 var layout = $(this).attr('data-layout'); 1745 1746 // apply layout to markdown level block elements 1747 var elements = $(this).children().not('details, div.sourceCode, pre, script'); 1748 elements.each(function(i, el) { 1749 var layout_div = $('<div class="' + layout + '"></div>'); 1750 if (layout_div.hasClass('shaded')) { 1751 var shaded_content = $('<div class="shaded-content"></div>'); 1752 $(this).wrap(shaded_content); 1753 $(this).parent().wrap(layout_div); 1754 } else { 1755 $(this).wrap(layout_div); 1756 } 1757 }); 1758 1759 1760 // unwrap the layout-chunk div 1761 $(this).children().unwrap(); 1762 }); 1763 1764 // remove code block used to force highlighting css 1765 $('.distill-force-highlighting-css').parent().remove(); 1766 1767 // remove empty line numbers inserted by pandoc when using a 1768 // custom syntax highlighting theme 1769 $('code.sourceCode a:empty').remove(); 1770 1771 // load distill framework 1772 load_distill_framework(); 1773 1774 // wait for window.distillRunlevel == 4 to do post processing 1775 function distill_post_process() { 1776 1777 if (!window.distillRunlevel || window.distillRunlevel < 4) 1778 return; 1779 1780 // hide author/affiliations entirely if we have no authors 1781 var front_matter = JSON.parse($("#distill-front-matter").html()); 1782 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1783 if (!have_authors) 1784 $('d-byline').addClass('hidden'); 1785 1786 // article with toc class 1787 $('.d-contents').parent().addClass('d-article-with-toc'); 1788 1789 // strip links that point to # 1790 $('.authors-affiliations').find('a[href="#"]').removeAttr('href'); 1791 1792 // add orcid ids 1793 $('.authors-affiliations').find('.author').each(function(i, el) {
1794 var orcid_id = front_matter.authors[i].orcidID; 1795 if (orcid_id) { 1796 var a = $('<a></a>'); 1797 a.attr('href', 'https://orcid.org/' + orcid_id); 1798 var img = $('<img></img>'); 1799 img.addClass('orcid-id'); 1800 img.attr('alt', 'ORCID ID'); 1801 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=='); 1802 a.append(img); 1803 $(this).append(a); 1804 } 1805 }); 1806 1807 // hide elements of author/affiliations grid that have no value 1808 function hide_byline_column(caption) { 1809 $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden'); 1810 } 1811 1812 // affiliations 1813 var have_affiliations = false; 1814 for (var i = 0; i<front_matter.authors.length; ++i) { 1815 var author = front_matter.authors[i]; 1816 if (author.affiliation !== " ") { 1817 have_affiliations = true; 1818 break; 1819 } 1820 } 1821 if (!have_affiliations) 1822 $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden'); 1823 1824 // published date 1825 if (!front_matter.publishedDate) 1826 hide_byline_column("Published"); 1827 1828 // document object identifier 1829 var doi = $('d-byline').find('h3:contains("DOI")'); 1830 var doi_p = doi.next().empty(); 1831 if (!front_matter.doi) { 1832 // if we have a citation and valid citationText then link to that 1833 if ($('#citation').length > 0 && front_matter.citationText) { 1834 doi.html('Citation'); 1835 $('<a href="#citation"></a>') 1836 .text(front_matter.citationText) 1837 .appendTo(doi_p); 1838 } else { 1839 hide_byline_column("DOI"); 1840 } 1841 } else { 1842 $('<a></a>') 1843 .attr('href', "https://doi.org/" + front_matter.doi) 1844 .html(front_matter.doi) 1845 .appendTo(doi_p); 1846 } 1847 1848 // change plural form of authors/affiliations 1849 if (front_matter.authors.length === 1) { 1850 var grid = $('.authors-affiliations'); 1851 grid.children('h3:contains("Authors")').text('Author'); 1852 grid.children('h3:contains("Affiliations")').text('Affiliation'); 1853 } 1854 1855 // remove d-appendix and d-footnote-list local styles 1856 $('d-appendix > style:first-child').remove(); 1857 $('d-footnote-list > style:first-child').remove(); 1858 1859 // move appendix-bottom entries to the bottom 1860 $('.appendix-bottom').appendTo('d-appendix').children().unwrap(); 1861 $('.appendix-bottom').remove(); 1862 1863 // hoverable references 1864 $('span.citation[data-cites]').each(function() { 1865 const citeChild = $(this).children()[0]
1866 // Do not process if @xyz has been used without escaping and without bibliography activated 1867 // https://github.com/rstudio/distill/issues/466 1868 if (citeChild === undefined) return true 1869 1870 if (citeChild.nodeName == "D-FOOTNOTE") { 1871 var fn = citeChild 1872 $(this).html(fn.shadowRoot.querySelector("sup")) 1873 $(this).id = fn.id 1874 fn.remove() 1875 } 1876 var refs = $(this).attr('data-cites').split(" "); 1877 var refHtml = refs.map(function(ref) { 1878 // Could use CSS.escape too here, we insure backward compatibility in navigator 1879 return "<p>" + $('div[id="ref-' + ref + '"]').html() + "</p>"; 1880 }).join("\n"); 1881 window.tippy(this, { 1882 allowHTML: true, 1883 content: refHtml, 1884 maxWidth: 500, 1885 interactive: true, 1886 interactiveBorder: 10, 1887 theme: 'light-border', 1888 placement: 'bottom-start' 1889 }); 1890 }); 1891 1892 // fix footnotes in tables (#411) 1893 // replacing broken distill.pub feature 1894 $('table d-footnote').each(function() { 1895 // we replace internal showAtNode methode which is triggered when hovering a footnote 1896 this.hoverBox.showAtNode = function(node) { 1897 // ported from https://github.com/distillpub/template/pull/105/files 1898 calcOffset = function(elem) { 1899 let x = elem.offsetLeft; 1900 let y = elem.offsetTop; 1901 // Traverse upwards until an `absolute` element is found or `elem` 1902 // becomes null. 1903 while (elem = elem.offsetParent && elem.style.position != 'absolute') { 1904 x += elem.offsetLeft; 1905 y += elem.offsetTop; 1906 } 1907 1908 return { left: x, top: y }; 1909 } 1910 // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop 1911 const bbox = node.getBoundingClientRect(); 1912 const offset = calcOffset(node); 1913 this.show([offset.left + bbox.width, offset.top + bbox.height]); 1914 } 1915 }) 1916 1917 // clear polling timer 1918 clearInterval(tid); 1919 1920 // show body now that everything is ready 1921 on_load_complete(); 1922 } 1923 1924 var tid = setInterval(distill_post_process, 50); 1925 distill_post_process(); 1926 1927 } 1928 1929 function init_downlevel() { 1930 1931 init_common(); 1932 1933 // insert hr after d-title 1934 $('.d-title').after($('<hr class="section-separator"/>')); 1935 1936 // check if we have authors 1937 var front_matter = JSON.parse($("#distill-front-matter").html()); 1938 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1939
1940 // manage byline/border 1941 if (!have_authors) 1942 $('.d-byline').remove(); 1943 $('.d-byline').after($('<hr class="section-separator"/>')); 1944 $('.d-byline a').remove(); 1945 1946 // remove toc 1947 $('.d-contents').remove(); 1948 1949 // move appendix elements 1950 $('h1.appendix, h2.appendix').each(function(i, val) { 1951 $(this).changeElementType('h3'); 1952 }); 1953 $('h3.appendix').each(function(i, val) { 1954 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix')); 1955 }); 1956 1957 1958 // inject headers into references and footnotes 1959 var refs_header = $('<h3></h3>'); 1960 refs_header.text('References'); 1961 $('#refs').prepend(refs_header); 1962 1963 var footnotes_header = $('<h3></h3'); 1964 footnotes_header.text('Footnotes'); 1965 $('.footnotes').children('hr').first().replaceWith(footnotes_header); 1966 1967 // move appendix-bottom entries to the bottom 1968 $('.appendix-bottom').appendTo('.d-appendix').children().unwrap(); 1969 $('.appendix-bottom').remove(); 1970 1971 // remove appendix if it's empty 1972 if ($('.d-appendix').children().length === 0) 1973 $('.d-appendix').remove(); 1974 1975 // prepend separator above appendix 1976 $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>')); 1977 1978 // trim code 1979 $('pre>code').each(function(i, val) { 1980 $(this).html($.trim($(this).html())); 1981 }); 1982 1983 // move posts-container right before article 1984 $('.posts-container').insertBefore($('.d-article')); 1985 1986 $('body').addClass('downlevel'); 1987 1988 on_load_complete(); 1989 } 1990 1991 1992 function init_common() { 1993 1994 // jquery plugin to change element types 1995 (function($) { 1996 $.fn.changeElementType = function(newType) { 1997 var attrs = {}; 1998 1999 $.each(this[0].attributes, function(idx, attr) { 2000 attrs[attr.nodeName] = attr.nodeValue; 2001 }); 2002 2003 this.replaceWith(function() { 2004 return $("<" + newType + "/>", attrs).append($(this).contents()); 2005 }); 2006 }; 2007 })(jQuery); 2008 2009 // prevent underline for linked images 2010 $('a > img').parent().css({'border-bottom' : 'none'}); 2011 2012 // mark non-body figures created by knitr chunks as 100% width 2013 $('.layout-chunk').each(function(i, val) { 2014 var figures = $(this).find('img, .html-widget'); 2015 // ignore leaflet img layers (#106) 2016 figures = figures.filter(':not(img[class*="leaflet"])') 2017 if ($(this).attr('data-layout') !== "l-body") { 2018 figures.css('width', '100%'); 2019 } else { 2020 figures.css('max-width', '100%'); 2021 figures.filter("[width]").each(function(i, val) { 2022 var fig = $(this); 2023 fig.css('width', fig.attr('width') + 'px'); 2024 }); 2025 2026 } 2027 }); 2028 2029 // auto-append index.html to post-preview links in file: protocol 2030 // and in rstudio ide preview 2031 $('.post-preview').each(function(i, val) { 2032 if (window.location.protocol === "file:") 2033 $(this).attr('href', $(this).attr('href') + "index.html"); 2034 }); 2035 2036 // get rid of index.html references in header 2037 if (window.location.protocol !== "file:") { 2038 $('.distill-site-header a[href]').each(function(i,val) { 2039 $(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./")); 2040 }); 2041 } 2042 2043 // add class to pandoc style tables 2044 $('tr.header').parent('thead').parent('table').addClass('pandoc-table'); 2045 $('.kable-table').children('table').addClass('pandoc-table'); 2046 2047 // add figcaption style to table captions 2048 $('caption').parent('table').addClass("figcaption"); 2049 2050 // initialize posts list 2051 if (window.init_posts_list) 2052 window.init_posts_list(); 2053 2054 // implmement disqus comment link 2055 $('.disqus-comment-count').click(function() { 2056 window.headroom_prevent_pin = true; 2057 $('#disqus_thread').toggleClass('hidden'); 2058 if (!$('#disqus_thread').hasClass('hidden')) { 2059 var offset = $(this).offset(); 2060 $(window).resize(); 2061 $('html, body').animate({ 2062 scrollTop: offset.top - 35 2063 }); 2064 } 2065 }); 2066 } 2067 2068 document.addEventListener('DOMContentLoaded', function() { 2069 if (is_downlevel_browser()) 2070 init_downlevel(); 2071 else 2072 window.addEventListener('WebComponentsReady', init_distill); 2073 }); 2074 2075 </script>
2075 2076 2077 <style type="text/css"> 2078 /* base variables */ 2079 2080 /* Edit the CSS properties in this file to create a custom 2081 Distill theme. Only edit values in the right column 2082 for each row; values shown are the CSS defaults. 2083 To return any property to the default, 2084 you may set its value to: unset 2085 All rows must end with a semi-colon. */ 2086 2087 /* Optional: embed custom fonts here with `@import` */ 2088 /* This must remain at the top of this file. */ 2089 2090 2091 2092 html { 2093 /*-- Main font sizes --*/ 2094 --title-size: 50px; 2095 --body-size: 1.06rem; 2096 --code-size: 14px; 2097 --aside-size: 12px; 2098 --fig-cap-size: 13px; 2099 /*-- Main font colors --*/ 2100 --title-color: #000000; 2101 --header-color: rgba(0, 0, 0, 0.8); 2102 --body-color: rgba(0, 0, 0, 0.8); 2103 --aside-color: rgba(0, 0, 0, 0.6); 2104 --fig-cap-color: rgba(0, 0, 0, 0.6); 2105 /*-- Specify custom fonts ~~~ must be imported above --*/ 2106 --heading-font: sans-serif; 2107 --mono-font: monospace; 2108 --body-font: sans-serif; 2109 --navbar-font: sans-serif; /* websites + blogs only */ 2110 } 2111 2112 /*-- ARTICLE METADATA --*/ 2113 d-byline { 2114 --heading-size: 0.6rem; 2115 --heading-color: rgba(0, 0, 0, 0.5); 2116 --body-size: 0.8rem; 2117 --body-color: rgba(0, 0, 0, 0.8); 2118 } 2119 2120 /*-- ARTICLE TABLE OF CONTENTS --*/ 2121 .d-contents { 2122 --heading-size: 18px; 2123 --contents-size: 13px; 2124 } 2125 2126 /*-- ARTICLE APPENDIX --*/ 2127 d-appendix { 2128 --heading-size: 15px; 2129 --heading-color: rgba(0, 0, 0, 0.65); 2130 --text-size: 0.8em; 2131 --text-color: rgba(0, 0, 0, 0.5); 2132 } 2133 2134 /*-- WEBSITE HEADER + FOOTER --*/ 2135 /* These properties only apply to Distill sites and blogs */ 2136 2137 .distill-site-header { 2138 --title-size: 18px; 2139 --text-color: rgba(255, 255, 255, 0.8); 2140 --text-size: 15px; 2141 --hover-color: white; 2142 --bkgd-color: #0F2E3D; 2143 } 2144 2145 .distill-site-footer { 2146 --text-color: rgba(255, 255, 255, 0.8); 2147 --text-size: 15px; 2148 --hover-color: white; 2149 --bkgd-color: #0F2E3D; 2150 } 2151 2152 /*-- Additional custom styles --*/ 2153 /* Add any additional CSS rules below */ 2154 </style> 2155 <style type="text/css"> 2156 /* base variables */ 2157 2158 /* Edit the CSS properties in this file to create a custom 2159 Distill theme. Only edit values in the right column 2160 for each row; values shown are the CSS defaults. 2161 To return any property to the default, 2162 you may set its value to: unset 2163 All rows must end with a semi-colon. */ 2164 2165 /* Optional: embed custom fonts here with `@import` */ 2166 /* This must remain at the top of this file. */ 2167 @import url('https://fonts.googleapis.com/css2?family=Amiri'); 2168 2169 2170 2171 html { 2172 /*-- Main font sizes --*/ 2173 --title-size: 50px; 2174 --body-size: 1.06rem; 2175 --code-size: 14px; 2176 --aside-size: 12px; 2177 --fig-cap-size: 13px; 2178 /*-- Main font colors --*/ 2179 --title-color: #000000; 2180 --header-color: rgba(0, 0, 0, 0.8); 2181 --body-color: rgba(0, 0, 0, 0.8); 2182 --aside-color: rgba(0, 0, 0, 0.6); 2183 --fig-cap-color: rgba(0, 0, 0, 0.6); 2184 /*-- Specify custom fonts ~~~ must be imported above --*/ 2185 --heading-font: "Amiri", serif; 2186 --mono-font: monospace; 2187 --body-font: sans-serif; 2188 --navbar-font: "Amiri", serif; 2189 } 2190 2191 /*-- ARTICLE METADATA --*/ 2192 d-byline { 2193 --heading-size: 0.6rem; 2194 --heading-color: rgba(0, 0, 0, 0.5); 2195 --body-size: 0.8rem; 2196 --body-color: rgba(0, 0, 0, 0.8); 2197 } 2198 2199 /*-- ARTICLE TABLE OF CONTENTS --*/ 2200 .d-contents { 2201 --heading-size: 18px; 2202 --contents-size: 13px; 2203 } 2204 2205 /*-- ARTICLE APPENDIX --*/ 2206 d-appendix { 2207 --heading-size: 15px; 2208 --heading-color: rgba(0, 0, 0, 0.65); 2209 --text-size: 0.8em; 2210 --text-color: rgba(0, 0, 0, 0.5); 2211 } 2212 2213 /*-- WEBSITE HEADER + FOOTER --*/ 2214 /* These properties only apply to Distill sites and blogs */ 2215 2216 .distill-site-header { 2217 --title-size: 18px; 2218 --text-color: rgba(255, 255, 255, 0.8); 2219 --text-size: 15px; 2220 --hover-color: white; 2221 --bkgd-color: #0F2E3D; 2222 } 2223 2224 .distill-site-footer { 2225 --text-color: rgba(255, 255, 255, 0.8); 2226 --text-size: 15px; 2227 --hover-color: white; 2228 --bkgd-color: #0F2E3D; 2229 } 2230 2231 /*-- Additional custom styles --*/ 2232 /* Add any additional CSS rules below */ 2233 </style> 2234 <style type="text/css"> 2235 /* base style */ 2236 2237 /* FONT FAMILIES */ 2238 2239 :root { 2240 --heading-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
2241 --mono-default: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 2242 --body-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 2243 } 2244 2245 body, 2246 .posts-list .post-preview p, 2247 .posts-list .description p { 2248 font-family: var(--body-font), var(--body-default); 2249 } 2250 2251 h1, h2, h3, h4, h5, h6, 2252 .posts-list .post-preview h2, 2253 .posts-list .description h2 { 2254 font-family: var(--heading-font), var(--heading-default); 2255 } 2256 2257 d-article div.sourceCode code, 2258 d-article pre code { 2259 font-family: var(--mono-font), var(--mono-default); 2260 } 2261 2262 2263 /*-- TITLE --*/ 2264 d-title h1, 2265 .posts-list > h1 { 2266 color: var(--title-color, black); 2267 } 2268 2269 d-title h1 { 2270 font-size: var(--title-size, 50px); 2271 } 2272 2273 /*-- HEADERS --*/ 2274 d-article h1, 2275 d-article h2, 2276 d-article h3, 2277 d-article h4, 2278 d-article h5, 2279 d-article h6 { 2280 color: var(--header-color, rgba(0, 0, 0, 0.8)); 2281 } 2282 2283 /*-- BODY --*/ 2284 d-article > p, /* only text inside of <p> tags */ 2285 d-article > ul, /* lists */ 2286 d-article > ol { 2287 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2288 font-size: var(--body-size, 1.06rem); 2289 } 2290 2291 2292 /*-- CODE --*/ 2293 d-article div.sourceCode code, 2294 d-article pre code { 2295 font-size: var(--code-size, 14px); 2296 } 2297 2298 /*-- ASIDE --*/ 2299 d-article aside { 2300 font-size: var(--aside-size, 12px); 2301 color: var(--aside-color, rgba(0, 0, 0, 0.6)); 2302 } 2303 2304 /*-- FIGURE CAPTIONS --*/ 2305 figure .caption, 2306 figure figcaption, 2307 .figure .caption { 2308 font-size: var(--fig-cap-size, 13px); 2309 color: var(--fig-cap-color, rgba(0, 0, 0, 0.6)); 2310 } 2311 2312 /*-- METADATA --*/ 2313 d-byline h3 { 2314 font-size: var(--heading-size, 0.6rem); 2315 color: var(--heading-color, rgba(0, 0, 0, 0.5)); 2316 } 2317 2318 d-byline { 2319 font-size: var(--body-size, 0.8rem); 2320 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2321 } 2322 2323 d-byline a, 2324 d-article d-byline a { 2325 color: var(--body-color, rgba(0, 0, 0, 0.8)); 2326 } 2327 2328 /*-- TABLE OF CONTENTS --*/ 2329 .d-contents nav h3 { 2330 font-size: var(--heading-size, 18px); 2331 } 2332 2333 .d-contents nav a { 2334 font-size: var(--contents-size, 13px); 2335 } 2336 2337 /*-- APPENDIX --*/ 2338 d-appendix h3 { 2339 font-size: var(--heading-size, 15px); 2340 color: var(--heading-color, rgba(0, 0, 0, 0.65)); 2341 } 2342 2343 d-appendix { 2344 font-size: var(--text-size, 0.8em); 2345 color: var(--text-color, rgba(0, 0, 0, 0.5)); 2346 } 2347 2348 d-appendix d-footnote-list a.footnote-backlink { 2349 color: var(--text-color, rgba(0, 0, 0, 0.5)); 2350 } 2351 2352 /*-- WEBSITE HEADER + FOOTER --*/ 2353 .distill-site-header .title { 2354 font-size: var(--title-size, 18px); 2355 font-family: var(--navbar-font), var(--heading-default); 2356 } 2357 2358 .distill-site-header a, 2359 .nav-dropdown .nav-dropbtn { 2360 font-family: var(--navbar-font), var(--heading-default); 2361 } 2362 2363 .nav-dropdown .nav-dropbtn { 2364 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2365 font-size: var(--text-size, 15px); 2366 } 2367 2368 .distill-site-header a:hover, 2369 .nav-dropdown:hover .nav-dropbtn { 2370 color: var(--hover-color, white); 2371 } 2372 2373 .distill-site-header { 2374 font-size: var(--text-size, 15px); 2375 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2376 background-color: var(--bkgd-color, #0F2E3D); 2377 } 2378 2379 .distill-site-footer { 2380 font-size: var(--text-size, 15px); 2381 color: var(--text-color, rgba(255, 255, 255, 0.8)); 2382 background-color: var(--bkgd-color, #0F2E3D); 2383 } 2384 2385 .distill-site-footer a:hover { 2386 color: var(--hover-color, white); 2387 }</style> 2388 <!--/radix_placeholder_distill--> 2389
2389<script src="site_libs/header-attrs-2.14/header-attrs.js"></script>
2389 2390
2390<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2390 2391 <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" /> 2392 <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" /> 2393
2393<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2393 2394
2394<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2394 2395
2395<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2395 2396
2396<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2396 2397
2397<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2397 2398 <!--radix_placeholder_site_in_header--> 2399 <!--/radix_placeholder_site_in_header--> 2400 2401 2402</head> 2403 2404<body> 2405 2406<!--radix_placeholder_front_matter--> 2407
2408<script id="distill-front-matter" type="text/json"> 2409{"title":"Publicaciones","authors":[]} 2410</script>
2410 2411 2412<!--/radix_placeholder_front_matter--> 2413<!--radix_placeholder_navigation_before_body--> 2414<header class="header header--fixed" role="banner"> 2415<nav class="distill-site-nav distill-site-header"> 2416<div class="nav-left"> 2417<a class='title' href='/'>Rafael Zambrano</a> 2418<input id="distill-search" class="nav-search hidden" type="text" placeholder="Search..."/> 2419</div> 2420<div class="nav-right"> 2421<a href='/'>Perfil</a> 2422<a href='/blog'>Proyectos</a> 2423<a href='/publicaciones'>Publicaciones</a> 2424<a href="https://github.com/rafzamb"> 2425<i class="fa fa-github" aria-hidden="true"></i> 2426</a> 2427<a href="https://www.linkedin.com/in/rafael-zambrano/"> 2428<i class="fa fa-linkedin" aria-hidden="true"></i> 2429</a> 2430<a href="https://twitter.com/rafa_zamr/"> 2431<i class="fa fa-twitter" aria-hidden="true"></i> 2432</a> 2433<a href="blog.xml"> 2434<i class="fa fa-rss" aria-hidden="true"></i> 2435</a> 2436<a href="javascript:void(0);" class="nav-toggle">☰</a> 2437</div> 2438</nav> 2439</header> 2440<!--/radix_placeholder_navigation_before_body--> 2441<!--radix_placeholder_site_before_body--> 2442<!--/radix_placeholder_site_before_body--> 2443 2444<div class="d-title"> 2445<h1>Publicaciones</h1> 2446<!--radix_placeholder_categories--> 2447<!--/radix_placeholder_categories--> 2448 2449</div> 2450 2451 2452<div class="d-article"> 2453<ul> 2454<li><p>Zambrano, R. (2021). Predicción de ocurrencia de delitos: implementación de modelos predictivos en base a los casos registrados en CABA durante el periodo 2017-2019. 2455<a href="http://bibliotecadigital.econ.uba.ar/download/tpos/1502-1919_ZambranoMedinaRA.pdf"><strong>Link de publicación</strong></a></p></li> 2456<li><p>Zambrano, R. (2021). Un enfoque espaciotemporal para la predicción de delitos en la ciudad de Buenos Aires. Revista de investigación en modelos matemáticos aplicados a la gestión y la economÃa. 2457<a href="http://www.economicas.uba.ar/wp-content/uploads/2016/04/Zambrano-Rafael-1.pdf"><strong>Link de publicación</strong></a></p></li> 2458</ul> 2459<div class="sourceCode" id="cb1"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div> 2460<!--radix_placeholder_article_footer--> 2461<!--/radix_placeholder_article_footer--> 2462</div> 2463 2464<div class="d-appendix"> 2465</div> 2466 2467 2468<!--radix_placeholder_site_after_body--> 2469<!--/radix_placeholder_site_after_body--> 2470<!--radix_placeholder_appendices--> 2471<div class="appendix-bottom"> 2472<h3 id="reuse">Reuse</h3> 2473<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p> 2474</div> 2475<!--/radix_placeholder_appendices--> 2476<!--radix_placeholder_navigation_after_body--> 2477<div class="distill-site-nav distill-site-footer"> 2478<p>© Rafael Zambrano 2020. Made with the R <a 2479href="https://rstudio.github.io/distill/">distill</a> package.</p> 2480</div> 2481<!--/radix_placeholder_navigation_after_body--> 2482 2483 2484</body> 2485 2486</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.