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=6528cc8d-a3b4-4a0a-a2d2-d15ce1886084 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"> 26a.sourceLine { display: inline-block; line-height: 1.25; } 27a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; } 28a.sourceLine:empty { height: 1.2em; } 29.sourceCode { overflow: visible; } 30code.sourceCode { white-space: pre; position: relative; } 31div.sourceCode { margin: 1em 0; } 32pre.sourceCode { margin: 0; } 33@media screen { 34div.sourceCode { overflow: auto; } 35} 36@media print { 37code.sourceCode { white-space: pre-wrap; } 38a.sourceLine { text-indent: -1em; padding-left: 1em; } 39} 40pre.numberSource a.sourceLine 41 { position: relative; left: -4em; } 42pre.numberSource a.sourceLine::before 43 { content: attr(data-line-number); 44 position: relative; left: -1em; text-align: right; vertical-align: baseline; 45 border: none; pointer-events: all; display: inline-block; 46 -webkit-touch-callout: none; -webkit-user-select: none; 47 -khtml-user-select: none; -moz-user-select: none; 48 -ms-user-select: none; user-select: none; 49 padding: 0 4px; width: 4em; 50 color: #aaaaaa; 51 } 52pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } 53div.sourceCode 54 { } 55@media screen { 56a.sourceLine::before { text-decoration: underline; } 57} 58code span.al { color: #ad0000; } /* Alert */ 59code span.an { color: #5e5e5e; } /* Annotation */ 60code span.at { color: #20794d; } /* Attribute */ 61code span.bn { color: #ad0000; } /* BaseN */ 62code span.bu { } /* BuiltIn */ 63code span.cf { color: #007ba5; } /* 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: #007ba5; } /* Keyword */ 78code span.op { color: #5e5e5e; } /* Operator */ 79code span.ot { color: #007ba5; } /* Other */ 80code span.pp { color: #ad0000; } /* Preprocessor */ 81code span.sc { color: #20794d; } /* 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 <!--radix_placeholder_meta_tags--> 90 <title>Solimini site: About this site</title> 91 92 <meta property="description" itemprop="description" content="Some additional details"/> 93 94 95 96 <!-- https://developers.facebook.com/docs/sharing/webmasters#markup --> 97 <meta property="og:title" content="Solimini site: About this site"/> 98 <meta property="og:type" content="article"/> 99 <meta property="og:description" content="Some additional details"/> 100 <meta property="og:locale" content="en_US"/> 101 <meta property="og:site_name" content="Solimini site"/> 102 103 <!-- https://dev.twitter.com/cards/types/summary --> 104 <meta property="twitter:card" content="summary"/> 105 <meta property="twitter:title" content="Solimini site: About this site"/> 106 <meta property="twitter:description" content="Some additional details"/> 107 <meta property="twitter:site" content="@Angelo_Solimini"/> 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"]}},"value":[{"type":"character","attributes":{},"value":["About this site"]},{"type":"character","attributes":{},"value":["Some additional details"]}]} 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-1.11.3/jquery.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 } 792 793 .html-widget { 794 margin-bottom: 2.0em; 795 } 796 797 .l-screen-inset { 798 padding-right: 16px; 799 } 800 801 .l-screen .caption { 802 margin-left: 10px; 803 } 804 805 .shaded { 806 background: rgb(247, 247, 247); 807 padding-top: 20px; 808 padding-bottom: 20px; 809 border-top: 1px solid rgba(0, 0, 0, 0.1); 810 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 811 } 812 813 .shaded .html-widget { 814 margin-bottom: 0; 815 border: 1px solid rgba(0, 0, 0, 0.1); 816 } 817 818 .shaded .shaded-content { 819 background: white; 820 } 821 822 .text-output { 823 margin-top: 0; 824 line-height: 1.5em; 825 } 826 827 .hidden { 828 display: none !important; 829 } 830 831 d-article { 832 padding-top: 2.5rem; 833 padding-bottom: 30px; 834 } 835 836 d-appendix { 837 padding-top: 30px; 838 } 839 840 d-article>p>img { 841 width: 100%; 842 } 843 844 d-article h2 { 845 margin: 1rem 0 1.5rem 0; 846 } 847 848 d-article h3 { 849 margin-top: 1.5rem; 850 } 851 852 d-article iframe { 853 border: 1px solid rgba(0, 0, 0, 0.1); 854 margin-bottom: 2.0em; 855 width: 100%; 856 } 857 858 /* Tweak code blocks */ 859 860 d-article div.sourceCode code, 861 d-article pre code {
862 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 863 } 864 865 d-article pre, 866 d-article div.sourceCode, 867 d-article div.sourceCode pre { 868 overflow: auto; 869 } 870 871 d-article div.sourceCode { 872 background-color: white; 873 } 874 875 d-article div.sourceCode pre { 876 padding-left: 10px; 877 font-size: 12px; 878 border-left: 2px solid rgba(0,0,0,0.1); 879 } 880 881 d-article pre { 882 font-size: 12px; 883 color: black; 884 background: none; 885 margin-top: 0; 886 text-align: left; 887 white-space: pre; 888 word-spacing: normal; 889 word-break: normal; 890 word-wrap: normal; 891 line-height: 1.5; 892 893 -moz-tab-size: 4; 894 -o-tab-size: 4; 895 tab-size: 4; 896 897 -webkit-hyphens: none; 898 -moz-hyphens: none; 899 -ms-hyphens: none; 900 hyphens: none; 901 } 902 903 d-article pre a { 904 border-bottom: none; 905 } 906 907 d-article pre a:hover { 908 border-bottom: none; 909 text-decoration: underline; 910 } 911 912 d-article details { 913 grid-column: text; 914 margin-bottom: 0.8em; 915 } 916 917 @media(min-width: 768px) { 918 919 d-article pre, 920 d-article div.sourceCode, 921 d-article div.sourceCode pre { 922 overflow: visible !important; 923 } 924 925 d-article div.sourceCode pre { 926 padding-left: 18px; 927 font-size: 14px; 928 } 929 930 d-article pre { 931 font-size: 14px; 932 } 933 934 } 935 936 figure img.external { 937 background: white; 938 border: 1px solid rgba(0, 0, 0, 0.1); 939 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 940 padding: 18px; 941 box-sizing: border-box; 942 } 943 944 /* CSS for d-contents */ 945 946 .d-contents { 947 grid-column: text; 948 color: rgba(0,0,0,0.8); 949 font-size: 0.9em; 950 padding-bottom: 1em; 951 margin-bottom: 1em; 952 padding-bottom: 0.5em; 953 margin-bottom: 1em; 954 padding-left: 0.25em; 955 justify-self: start; 956 } 957 958 @media(min-width: 1000px) { 959 .d-contents.d-contents-float { 960 height: 0; 961 grid-column-start: 1; 962 grid-column-end: 4; 963 justify-self: center; 964 padding-right: 3em; 965 padding-left: 2em; 966 } 967 } 968 969 .d-contents nav h3 { 970 font-size: 18px; 971 margin-top: 0; 972 margin-bottom: 1em; 973 } 974 975 .d-contents li { 976 list-style-type: none 977 } 978 979 .d-contents nav > ul { 980 padding-left: 0; 981 } 982 983 .d-contents ul { 984 padding-left: 1em 985 } 986 987 .d-contents nav ul li { 988 margin-top: 0.6em; 989 margin-bottom: 0.2em; 990 } 991 992 .d-contents nav a { 993 font-size: 13px; 994 border-bottom: none; 995 text-decoration: none 996 color: rgba(0, 0, 0, 0.8); 997 } 998 999 .d-contents nav a:hover { 1000 text-decoration: underline solid rgba(0, 0, 0, 0.6) 1001 } 1002 1003 .d-contents nav > ul > li > a { 1004 font-weight: 600; 1005 } 1006 1007 .d-contents nav > ul > li > ul { 1008 font-weight: inherit; 1009 } 1010 1011 .d-contents nav > ul > li > ul > li { 1012 margin-top: 0.2em; 1013 } 1014 1015 1016 .d-contents nav ul { 1017 margin-top: 0; 1018 margin-bottom: 0.25em; 1019 } 1020 1021 .d-article-with-toc h2:nth-child(2) { 1022 margin-top: 0; 1023 } 1024 1025 1026 /* Figure */ 1027 1028 .figure { 1029 position: relative; 1030 margin-bottom: 2.5em; 1031 margin-top: 1.5em; 1032 } 1033 1034 .figure img { 1035 width: 100%; 1036 } 1037 1038 .figure .caption { 1039 color: rgba(0, 0, 0, 0.6); 1040 font-size: 12px; 1041 line-height: 1.5em; 1042 } 1043 1044 .figure img.external { 1045 background: white; 1046 border: 1px solid rgba(0, 0, 0, 0.1); 1047 box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); 1048 padding: 18px; 1049 box-sizing: border-box; 1050 } 1051 1052 .figure .caption a { 1053 color: rgba(0, 0, 0, 0.6); 1054 } 1055 1056 .figure .caption b, 1057 .figure .caption strong, { 1058 font-weight: 600; 1059 color: rgba(0, 0, 0, 1.0); 1060 } 1061 1062 /* Citations */ 1063 1064 d-article .citation { 1065 color: inherit; 1066 cursor: inherit; 1067 } 1068 1069 div.hanging-indent{ 1070 margin-left: 1em; text-indent: -1em; 1071 } 1072 1073 /* Citation hover box */ 1074 1075 .tippy-box[data-theme~=light-border] { 1076 background-color: rgba(250, 250, 250, 0.95); 1077 } 1078 1079 .tippy-content > p { 1080 margin-bottom: 0; 1081 padding: 2px; 1082 } 1083 1084 1085 /* Tweak 1000px media break to show more text */ 1086 1087 @media(min-width: 1000px) { 1088 .base-grid, 1089 distill-header, 1090 d-title, 1091 d-abstract, 1092 d-article, 1093 d-appendix, 1094 distill-appendix, 1095 d-byline, 1096 d-footnote-list, 1097 d-citation-list, 1098 distill-footer { 1099 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]; 1100 grid-column-gap: 16px; 1101 } 1102 1103 .grid { 1104 grid-column-gap: 16px; 1105 } 1106 1107 d-article { 1108 font-size: 1.06rem; 1109 line-height: 1.7em; 1110 } 1111 figure .caption, .figure .caption, figure figcaption { 1112 font-size: 13px; 1113 } 1114 } 1115 1116 @media(min-width: 1180px) { 1117 .base-grid, 1118 distill-header, 1119 d-title, 1120 d-abstract, 1121 d-article, 1122 d-appendix, 1123 distill-appendix, 1124 d-byline, 1125 d-footnote-list, 1126 d-citation-list, 1127 distill-footer { 1128 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]; 1129 grid-column-gap: 32px; 1130 } 1131 1132 .grid { 1133 grid-column-gap: 32px; 1134 } 1135 } 1136 1137
1138 /* Get the citation styles for the appendix (not auto-injected on render since 1139 we do our own rendering of the citation appendix) */ 1140 1141 d-appendix .citation-appendix, 1142 .d-appendix .citation-appendix { 1143 font-size: 11px; 1144 line-height: 15px; 1145 border-left: 1px solid rgba(0, 0, 0, 0.1); 1146 padding-left: 18px; 1147 border: 1px solid rgba(0,0,0,0.1); 1148 background: rgba(0, 0, 0, 0.02); 1149 padding: 10px 18px; 1150 border-radius: 3px; 1151 color: rgba(150, 150, 150, 1); 1152 overflow: hidden; 1153 margin-top: -12px; 1154 white-space: pre-wrap; 1155 word-wrap: break-word; 1156 } 1157 1158 /* Include appendix styles here so they can be overridden */ 1159 1160 d-appendix { 1161 contain: layout style; 1162 font-size: 0.8em; 1163 line-height: 1.7em; 1164 margin-top: 60px; 1165 margin-bottom: 0; 1166 border-top: 1px solid rgba(0, 0, 0, 0.1); 1167 color: rgba(0,0,0,0.5); 1168 padding-top: 60px; 1169 padding-bottom: 48px; 1170 } 1171 1172 d-appendix h3 { 1173 grid-column: page-start / text-start; 1174 font-size: 15px; 1175 font-weight: 500; 1176 margin-top: 1em; 1177 margin-bottom: 0; 1178 color: rgba(0,0,0,0.65); 1179 } 1180 1181 d-appendix h3 + * { 1182 margin-top: 1em; 1183 } 1184 1185 d-appendix ol { 1186 padding: 0 0 0 15px; 1187 } 1188 1189 @media (min-width: 768px) { 1190 d-appendix ol { 1191 padding: 0 0 0 30px; 1192 margin-left: -30px; 1193 } 1194 } 1195 1196 d-appendix li { 1197 margin-bottom: 1em; 1198 } 1199 1200 d-appendix a { 1201 color: rgba(0, 0, 0, 0.6); 1202 } 1203 1204 d-appendix > * { 1205 grid-column: text; 1206 } 1207 1208 d-appendix > d-footnote-list, 1209 d-appendix > d-citation-list, 1210 d-appendix > distill-appendix { 1211 grid-column: screen; 1212 } 1213 1214 /* Include footnote styles here so they can be overridden */ 1215 1216 d-footnote-list { 1217 contain: layout style; 1218 } 1219 1220 d-footnote-list > * { 1221 grid-column: text; 1222 } 1223 1224 d-footnote-list a.footnote-backlink { 1225 color: rgba(0,0,0,0.3); 1226 padding-left: 0.5em; 1227 } 1228 1229 1230 1231 /* Anchor.js */ 1232 1233 .anchorjs-link { 1234 /*transition: all .25s linear; */ 1235 text-decoration: none; 1236 border-bottom: none; 1237 } 1238 *:hover > .anchorjs-link { 1239 margin-left: -1.125em !important; 1240 text-decoration: none; 1241 border-bottom: none; 1242 } 1243 1244 /* Social footer */ 1245 1246 .social_footer { 1247 margin-top: 30px; 1248 margin-bottom: 0; 1249 color: rgba(0,0,0,0.67); 1250 } 1251 1252 .disqus-comments { 1253 margin-right: 30px; 1254 } 1255 1256 .disqus-comment-count { 1257 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1258 cursor: pointer; 1259 } 1260 1261 #disqus_thread { 1262 margin-top: 30px; 1263 } 1264 1265 .article-sharing a { 1266 border-bottom: none; 1267 margin-right: 8px; 1268 } 1269 1270 .article-sharing a:hover { 1271 border-bottom: none; 1272 } 1273 1274 .sidebar-section.subscribe { 1275 font-size: 12px; 1276 line-height: 1.6em; 1277 } 1278 1279 .subscribe p { 1280 margin-bottom: 0.5em; 1281 } 1282 1283 1284 .article-footer .subscribe { 1285 font-size: 15px; 1286 margin-top: 45px; 1287 } 1288 1289 1290 .sidebar-section.custom { 1291 font-size: 12px; 1292 line-height: 1.6em; 1293 } 1294 1295 .custom p { 1296 margin-bottom: 0.5em; 1297 } 1298 1299 /* Styles for listing layout (hide title) */ 1300 .layout-listing d-title, .layout-listing .d-title { 1301 display: none; 1302 } 1303 1304 /* Styles for posts lists (not auto-injected) */ 1305 1306 1307 .posts-with-sidebar { 1308 padding-left: 45px; 1309 padding-right: 45px; 1310 } 1311 1312 .posts-list .description h2, 1313 .posts-list .description p { 1314 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1315 } 1316 1317 .posts-list .description h2 { 1318 font-weight: 700; 1319 border-bottom: none; 1320 padding-bottom: 0; 1321 } 1322 1323 .posts-list h2.post-tag { 1324 border-bottom: 1px solid rgba(0, 0, 0, 0.2); 1325 padding-bottom: 12px; 1326 } 1327 .posts-list { 1328 margin-top: 60px; 1329 margin-bottom: 24px; 1330 } 1331 1332 .posts-list .post-preview { 1333 text-decoration: none; 1334 overflow: hidden; 1335 display: block; 1336 border-bottom: 1px solid rgba(0, 0, 0, 0.1); 1337 padding: 24px 0; 1338 } 1339 1340 .post-preview-last { 1341 border-bottom: none !important; 1342 } 1343 1344 .posts-list .posts-list-caption { 1345 grid-column: screen; 1346 font-weight: 400; 1347 } 1348 1349 .posts-list .post-preview h2 { 1350 margin: 0 0 6px 0; 1351 line-height: 1.2em; 1352 font-style: normal; 1353 font-size: 24px; 1354 } 1355 1356 .posts-list .post-preview p { 1357 margin: 0 0 12px 0; 1358 line-height: 1.4em; 1359 font-size: 16px; 1360 } 1361 1362 .posts-list .post-preview .thumbnail { 1363 box-sizing: border-box; 1364 margin-bottom: 24px; 1365 position: relative; 1366 max-width: 500px; 1367 } 1368 .posts-list .post-preview img { 1369 width: 100%; 1370 display: block; 1371 } 1372 1373 .posts-list .metadata { 1374 font-size: 12px; 1375 line-height: 1.4em; 1376 margin-bottom: 18px; 1377 } 1378 1379 .posts-list .metadata > * { 1380 display: inline-block; 1381 } 1382 1383 .posts-list .metadata .publishedDate { 1384 margin-right: 2em; 1385 } 1386 1387 .posts-list .metadata .dt-authors { 1388 display: block; 1389 margin-top: 0.3em; 1390 margin-right: 2em; 1391 } 1392 1393 .posts-list .dt-tags { 1394 display: block; 1395 line-height: 1em; 1396 } 1397 1398 .posts-list .dt-tags .dt-tag { 1399 display: inline-block; 1400 color: rgba(0,0,0,0.6); 1401 padding: 0.3em 0.4em; 1402 margin-right: 0.2em; 1403 margin-bottom: 0.4em; 1404 font-size: 60%; 1405 border: 1px solid rgba(0,0,0,0.2); 1406 border-radius: 3px; 1407 text-transform: uppercase; 1408 font-weight: 500; 1409 } 1410 1411 .posts-list img { 1412 opacity: 1; 1413 } 1414 1415 .posts-list img[data-src] { 1416 opacity: 0; 1417 } 1418 1419 .posts-more { 1420 clear: both; 1421 } 1422 1423
1424 .posts-sidebar { 1425 font-size: 16px; 1426 } 1427 1428 .posts-sidebar h3 { 1429 font-size: 16px; 1430 margin-top: 0; 1431 margin-bottom: 0.5em; 1432 font-weight: 400; 1433 text-transform: uppercase; 1434 } 1435 1436 .sidebar-section { 1437 margin-bottom: 30px; 1438 } 1439 1440 .categories ul { 1441 list-style-type: none; 1442 margin: 0; 1443 padding: 0; 1444 } 1445 1446 .categories li { 1447 color: rgba(0, 0, 0, 0.8); 1448 margin-bottom: 0; 1449 } 1450 1451 .categories li>a { 1452 border-bottom: none; 1453 } 1454 1455 .categories li>a:hover { 1456 border-bottom: 1px solid rgba(0, 0, 0, 0.4); 1457 } 1458 1459 .categories .active { 1460 font-weight: 600; 1461 } 1462 1463 .categories .category-count { 1464 color: rgba(0, 0, 0, 0.4); 1465 } 1466 1467 1468 @media(min-width: 768px) { 1469 .posts-list .post-preview h2 { 1470 font-size: 26px; 1471 } 1472 .posts-list .post-preview .thumbnail { 1473 float: right; 1474 width: 30%; 1475 margin-bottom: 0; 1476 } 1477 .posts-list .post-preview .description { 1478 float: left; 1479 width: 45%; 1480 } 1481 .posts-list .post-preview .metadata { 1482 float: left; 1483 width: 20%; 1484 margin-top: 8px; 1485 } 1486 .posts-list .post-preview p { 1487 margin: 0 0 12px 0; 1488 line-height: 1.5em; 1489 font-size: 16px; 1490 } 1491 .posts-with-sidebar .posts-list { 1492 float: left; 1493 width: 75%; 1494 } 1495 .posts-with-sidebar .posts-sidebar { 1496 float: right; 1497 width: 20%; 1498 margin-top: 60px; 1499 padding-top: 24px; 1500 padding-bottom: 24px; 1501 } 1502 } 1503 1504 1505 /* Improve display for browsers without grid (IE/Edge <= 15) */ 1506 1507 .downlevel { 1508 line-height: 1.6em; 1509 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; 1510 margin: 0; 1511 } 1512 1513 .downlevel .d-title { 1514 padding-top: 6rem; 1515 padding-bottom: 1.5rem; 1516 } 1517 1518 .downlevel .d-title h1 { 1519 font-size: 50px; 1520 font-weight: 700; 1521 line-height: 1.1em; 1522 margin: 0 0 0.5rem; 1523 } 1524 1525 .downlevel .d-title p { 1526 font-weight: 300; 1527 font-size: 1.2rem; 1528 line-height: 1.55em; 1529 margin-top: 0; 1530 } 1531 1532 .downlevel .d-byline { 1533 padding-top: 0.8em; 1534 padding-bottom: 0.8em; 1535 font-size: 0.8rem; 1536 line-height: 1.8em; 1537 } 1538 1539 .downlevel .section-separator { 1540 border: none; 1541 border-top: 1px solid rgba(0, 0, 0, 0.1); 1542 } 1543 1544 .downlevel .d-article { 1545 font-size: 1.06rem; 1546 line-height: 1.7em; 1547 padding-top: 1rem; 1548 padding-bottom: 2rem; 1549 } 1550 1551 1552 .downlevel .d-appendix { 1553 padding-left: 0; 1554 padding-right: 0; 1555 max-width: none; 1556 font-size: 0.8em; 1557 line-height: 1.7em; 1558 margin-bottom: 0; 1559 color: rgba(0,0,0,0.5); 1560 padding-top: 40px; 1561 padding-bottom: 48px; 1562 } 1563 1564 .downlevel .footnotes ol { 1565 padding-left: 13px; 1566 } 1567 1568 .downlevel .base-grid, 1569 .downlevel .distill-header, 1570 .downlevel .d-title, 1571 .downlevel .d-abstract, 1572 .downlevel .d-article, 1573 .downlevel .d-appendix, 1574 .downlevel .distill-appendix, 1575 .downlevel .d-byline, 1576 .downlevel .d-footnote-list, 1577 .downlevel .d-citation-list, 1578 .downlevel .distill-footer, 1579 .downlevel .appendix-bottom, 1580 .downlevel .posts-container { 1581 padding-left: 40px; 1582 padding-right: 40px; 1583 } 1584 1585 @media(min-width: 768px) { 1586 .downlevel .base-grid, 1587 .downlevel .distill-header, 1588 .downlevel .d-title, 1589 .downlevel .d-abstract, 1590 .downlevel .d-article, 1591 .downlevel .d-appendix, 1592 .downlevel .distill-appendix, 1593 .downlevel .d-byline, 1594 .downlevel .d-footnote-list, 1595 .downlevel .d-citation-list, 1596 .downlevel .distill-footer, 1597 .downlevel .appendix-bottom, 1598 .downlevel .posts-container { 1599 padding-left: 150px; 1600 padding-right: 150px; 1601 max-width: 900px; 1602 } 1603 } 1604 1605 .downlevel pre code { 1606 display: block; 1607 border-left: 2px solid rgba(0, 0, 0, .1); 1608 padding: 0 0 0 20px; 1609 font-size: 14px; 1610 } 1611 1612 .downlevel code, .downlevel pre { 1613 color: black; 1614 background: none; 1615 font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 1616 text-align: left; 1617 white-space: pre; 1618 word-spacing: normal; 1619 word-break: normal; 1620 word-wrap: normal; 1621 line-height: 1.5; 1622 1623 -moz-tab-size: 4; 1624 -o-tab-size: 4; 1625 tab-size: 4; 1626 1627 -webkit-hyphens: none; 1628 -moz-hyphens: none; 1629 -ms-hyphens: none; 1630 hyphens: none; 1631 } 1632 1633 .downlevel .posts-list .post-preview { 1634 color: inherit; 1635 } 1636 1637
1638 1639 </style> 1640 1641
1641<script type="application/javascript"> 1642 1643 function is_downlevel_browser() { 1644 if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"}, 1645 window.navigator.userAgent)) { 1646 return true; 1647 } else { 1648 return window.load_distill_framework === undefined; 1649 } 1650 } 1651 1652 // show body when load is complete 1653 function on_load_complete() { 1654 1655 // add anchors 1656 if (window.anchors) { 1657 window.anchors.options.placement = 'left'; 1658 window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5'); 1659 } 1660 1661 1662 // set body to visible 1663 document.body.style.visibility = 'visible'; 1664 1665 // force redraw for leaflet widgets 1666 if (window.HTMLWidgets) { 1667 var maps = window.HTMLWidgets.findAll(".leaflet"); 1668 $.each(maps, function(i, el) { 1669 var map = this.getMap(); 1670 map.invalidateSize(); 1671 map.eachLayer(function(layer) { 1672 if (layer instanceof L.TileLayer) 1673 layer.redraw(); 1674 }); 1675 }); 1676 } 1677 1678 // trigger 'shown' so htmlwidgets resize 1679 $('d-article').trigger('shown'); 1680 } 1681 1682 function init_distill() { 1683 1684 init_common(); 1685 1686 // create front matter 1687 var front_matter = $('<d-front-matter></d-front-matter>'); 1688 $('#distill-front-matter').wrap(front_matter); 1689 1690 // create d-title 1691 $('.d-title').changeElementType('d-title'); 1692 1693 // create d-byline 1694 var byline = $('<d-byline></d-byline>'); 1695 $('.d-byline').replaceWith(byline); 1696 1697 // create d-article 1698 var article = $('<d-article></d-article>'); 1699 $('.d-article').wrap(article).children().unwrap(); 1700 1701 // move posts container into article 1702 $('.posts-container').appendTo($('d-article')); 1703 1704 // create d-appendix 1705 $('.d-appendix').changeElementType('d-appendix'); 1706 1707 // flag indicating that we have appendix items 1708 var appendix = $('.appendix-bottom').children('h3').length > 0; 1709 1710 // replace footnotes with <d-footnote> 1711 $('.footnote-ref').each(function(i, val) { 1712 appendix = true; 1713 var href = $(this).attr('href'); 1714 var id = href.replace('#', ''); 1715 var fn = $('#' + id); 1716 var fn_p = $('#' + id + '>p'); 1717 fn_p.find('.footnote-back').remove(); 1718 var text = fn_p.html(); 1719 var dtfn = $('<d-footnote></d-footnote>'); 1720 dtfn.html(text); 1721 $(this).replaceWith(dtfn); 1722 }); 1723 // remove footnotes 1724 $('.footnotes').remove(); 1725 1726 // move refs into #references-listing 1727 $('#references-listing').replaceWith($('#refs')); 1728 1729 $('h1.appendix, h2.appendix').each(function(i, val) { 1730 $(this).changeElementType('h3'); 1731 }); 1732 $('h3.appendix').each(function(i, val) { 1733 var id = $(this).attr('id'); 1734 $('.d-contents a[href="#' + id + '"]').parent().remove(); 1735 appendix = true; 1736 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix')); 1737 }); 1738 1739 // show d-appendix if we have appendix content 1740 $("d-appendix").css('display', appendix ? 'grid' : 'none'); 1741 1742 // localize layout chunks to just output 1743 $('.layout-chunk').each(function(i, val) { 1744 1745 // capture layout 1746 var layout = $(this).attr('data-layout'); 1747 1748 // apply layout to markdown level block elements 1749 var elements = $(this).children().not('details, div.sourceCode, pre, script'); 1750 elements.each(function(i, el) { 1751 var layout_div = $('<div class="' + layout + '"></div>'); 1752 if (layout_div.hasClass('shaded')) { 1753 var shaded_content = $('<div class="shaded-content"></div>'); 1754 $(this).wrap(shaded_content); 1755 $(this).parent().wrap(layout_div); 1756 } else { 1757 $(this).wrap(layout_div); 1758 } 1759 }); 1760 1761 1762 // unwrap the layout-chunk div 1763 $(this).children().unwrap(); 1764 }); 1765 1766 // remove code block used to force highlighting css 1767 $('.distill-force-highlighting-css').parent().remove(); 1768 1769 // remove empty line numbers inserted by pandoc when using a 1770 // custom syntax highlighting theme 1771 $('code.sourceCode a:empty').remove(); 1772 1773 // load distill framework 1774 load_distill_framework(); 1775 1776 // wait for window.distillRunlevel == 4 to do post processing 1777 function distill_post_process() { 1778 1779 if (!window.distillRunlevel || window.distillRunlevel < 4) 1780 return; 1781 1782 // hide author/affiliations entirely if we have no authors 1783 var front_matter = JSON.parse($("#distill-front-matter").html()); 1784 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1785 if (!have_authors) 1786 $('d-byline').addClass('hidden'); 1787 1788 // article with toc class 1789 $('.d-contents').parent().addClass('d-article-with-toc'); 1790 1791 // strip links that point to # 1792 $('.authors-affiliations').find('a[href="#"]').removeAttr('href'); 1793 1794 // add orcid ids 1795 $('.authors-affiliations').find('.author').each(function(i, el) {
1796 var orcid_id = front_matter.authors[i].orcidID; 1797 if (orcid_id) { 1798 var a = $('<a></a>'); 1799 a.attr('href', 'https://orcid.org/' + orcid_id); 1800 var img = $('<img></img>'); 1801 img.addClass('orcid-id'); 1802 img.attr('alt', 'ORCID ID'); 1803 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=='); 1804 a.append(img); 1805 $(this).append(a); 1806 } 1807 }); 1808 1809 // hide elements of author/affiliations grid that have no value 1810 function hide_byline_column(caption) { 1811 $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden'); 1812 } 1813 1814 // affiliations 1815 var have_affiliations = false; 1816 for (var i = 0; i<front_matter.authors.length; ++i) { 1817 var author = front_matter.authors[i]; 1818 if (author.affiliation !== " ") { 1819 have_affiliations = true; 1820 break; 1821 } 1822 } 1823 if (!have_affiliations) 1824 $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden'); 1825 1826 // published date 1827 if (!front_matter.publishedDate) 1828 hide_byline_column("Published"); 1829 1830 // document object identifier 1831 var doi = $('d-byline').find('h3:contains("DOI")'); 1832 var doi_p = doi.next().empty(); 1833 if (!front_matter.doi) { 1834 // if we have a citation and valid citationText then link to that 1835 if ($('#citation').length > 0 && front_matter.citationText) { 1836 doi.html('Citation'); 1837 $('<a href="#citation"></a>') 1838 .text(front_matter.citationText) 1839 .appendTo(doi_p); 1840 } else { 1841 hide_byline_column("DOI"); 1842 } 1843 } else { 1844 $('<a></a>') 1845 .attr('href', "https://doi.org/" + front_matter.doi) 1846 .html(front_matter.doi) 1847 .appendTo(doi_p); 1848 } 1849 1850 // change plural form of authors/affiliations 1851 if (front_matter.authors.length === 1) { 1852 var grid = $('.authors-affiliations'); 1853 grid.children('h3:contains("Authors")').text('Author'); 1854 grid.children('h3:contains("Affiliations")').text('Affiliation'); 1855 } 1856 1857 // remove d-appendix and d-footnote-list local styles 1858 $('d-appendix > style:first-child').remove(); 1859 $('d-footnote-list > style:first-child').remove(); 1860 1861 // move appendix-bottom entries to the bottom 1862 $('.appendix-bottom').appendTo('d-appendix').children().unwrap(); 1863 $('.appendix-bottom').remove(); 1864 1865 // hoverable references 1866 $('span.citation[data-cites]').each(function() { 1867 var refHtml = $('#ref-' + $(this).attr('data-cites')).html(); 1868 window.tippy(this, { 1869 allowHTML: true, 1870 content: refHtml, 1871 maxWidth: 500, 1872 interactive: true, 1873 interactiveBorder: 10, 1874 theme: 'light-border', 1875 placement: 'bottom-start' 1876 }); 1877 }); 1878 1879 // clear polling timer 1880 clearInterval(tid); 1881 1882 // show body now that everything is ready 1883 on_load_complete(); 1884 } 1885 1886 var tid = setInterval(distill_post_process, 50); 1887 distill_post_process(); 1888 1889 } 1890 1891 function init_downlevel() { 1892 1893 init_common(); 1894 1895 // insert hr after d-title 1896 $('.d-title').after($('<hr class="section-separator"/>')); 1897 1898 // check if we have authors 1899 var front_matter = JSON.parse($("#distill-front-matter").html()); 1900 var have_authors = front_matter.authors && front_matter.authors.length > 0; 1901
1902 // manage byline/border 1903 if (!have_authors) 1904 $('.d-byline').remove(); 1905 $('.d-byline').after($('<hr class="section-separator"/>')); 1906 $('.d-byline a').remove(); 1907 1908 // remove toc 1909 $('.d-contents').remove(); 1910 1911 // move appendix elements 1912 $('h1.appendix, h2.appendix').each(function(i, val) { 1913 $(this).changeElementType('h3'); 1914 }); 1915 $('h3.appendix').each(function(i, val) { 1916 $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix')); 1917 }); 1918 1919 1920 // inject headers into references and footnotes 1921 var refs_header = $('<h3></h3>'); 1922 refs_header.text('References'); 1923 $('#refs').prepend(refs_header); 1924 1925 var footnotes_header = $('<h3></h3'); 1926 footnotes_header.text('Footnotes'); 1927 $('.footnotes').children('hr').first().replaceWith(footnotes_header); 1928 1929 // move appendix-bottom entries to the bottom 1930 $('.appendix-bottom').appendTo('.d-appendix').children().unwrap(); 1931 $('.appendix-bottom').remove(); 1932 1933 // remove appendix if it's empty 1934 if ($('.d-appendix').children().length === 0) 1935 $('.d-appendix').remove(); 1936 1937 // prepend separator above appendix 1938 $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>')); 1939 1940 // trim code 1941 $('pre>code').each(function(i, val) { 1942 $(this).html($.trim($(this).html())); 1943 }); 1944 1945 // move posts-container right before article 1946 $('.posts-container').insertBefore($('.d-article')); 1947 1948 $('body').addClass('downlevel'); 1949 1950 on_load_complete(); 1951 } 1952 1953 1954 function init_common() { 1955 1956 // jquery plugin to change element types 1957 (function($) { 1958 $.fn.changeElementType = function(newType) { 1959 var attrs = {}; 1960 1961 $.each(this[0].attributes, function(idx, attr) { 1962 attrs[attr.nodeName] = attr.nodeValue; 1963 }); 1964 1965 this.replaceWith(function() { 1966 return $("<" + newType + "/>", attrs).append($(this).contents()); 1967 }); 1968 }; 1969 })(jQuery); 1970 1971 // prevent underline for linked images 1972 $('a > img').parent().css({'border-bottom' : 'none'}); 1973 1974 // mark non-body figures created by knitr chunks as 100% width 1975 $('.layout-chunk').each(function(i, val) { 1976 var figures = $(this).find('img, .html-widget'); 1977 if ($(this).attr('data-layout') !== "l-body") { 1978 figures.css('width', '100%'); 1979 } else { 1980 figures.css('max-width', '100%'); 1981 figures.filter("[width]").each(function(i, val) { 1982 var fig = $(this); 1983 fig.css('width', fig.attr('width') + 'px'); 1984 }); 1985 1986 } 1987 }); 1988 1989 // auto-append index.html to post-preview links in file: protocol 1990 // and in rstudio ide preview 1991 $('.post-preview').each(function(i, val) { 1992 if (window.location.protocol === "file:") 1993 $(this).attr('href', $(this).attr('href') + "index.html"); 1994 }); 1995 1996 // get rid of index.html references in header 1997 if (window.location.protocol !== "file:") { 1998 $('.distill-site-header a[href]').each(function(i,val) { 1999 $(this).attr('href', $(this).attr('href').replace("index.html", "./")); 2000 }); 2001 } 2002 2003 // add class to pandoc style tables 2004 $('tr.header').parent('thead').parent('table').addClass('pandoc-table'); 2005 $('.kable-table').children('table').addClass('pandoc-table'); 2006 2007 // add figcaption style to table captions 2008 $('caption').parent('table').addClass("figcaption"); 2009 2010 // initialize posts list 2011 if (window.init_posts_list) 2012 window.init_posts_list(); 2013 2014 // implmement disqus comment link 2015 $('.disqus-comment-count').click(function() { 2016 window.headroom_prevent_pin = true; 2017 $('#disqus_thread').toggleClass('hidden'); 2018 if (!$('#disqus_thread').hasClass('hidden')) { 2019 var offset = $(this).offset(); 2020 $(window).resize(); 2021 $('html, body').animate({ 2022 scrollTop: offset.top - 35 2023 }); 2024 } 2025 }); 2026 } 2027 2028 document.addEventListener('DOMContentLoaded', function() { 2029 if (is_downlevel_browser()) 2030 init_downlevel(); 2031 else 2032 window.addEventListener('WebComponentsReady', init_distill); 2033 }); 2034
2035 </script>
2035 2036 2037 <!--/radix_placeholder_distill--> 2038
2038<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2038 2039 <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" /> 2040 <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" /> 2041
2041<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2041 2042
2042<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2042 2043
2043<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2043 2044
2044<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2044 2045
2045<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2045 2046 <!--radix_placeholder_site_in_header--> 2047 <!--/radix_placeholder_site_in_header--> 2048 2049 2050</head> 2051 2052<body> 2053 2054<!--radix_placeholder_front_matter--> 2055
2056<script id="distill-front-matter" type="text/json"> 2057{"title":"About this site","description":"Some additional details","authors":[]} 2058</script>
2058 2059 2060<!--/radix_placeholder_front_matter--> 2061<!--radix_placeholder_navigation_before_body--> 2062<header class="header header--fixed" role="banner"> 2063<nav class="distill-site-nav distill-site-header"> 2064<div class="nav-left"> 2065<a class='title' href='/'>Solimini site</a> 2066<input id="distill-search" class="nav-search hidden" type="text" placeholder="Search..."/> 2067</div> 2068<div class="nav-right"> 2069<a href='/'>Home</a> 2070<a href='/my-research'>Research</a> 2071<a href='/insegnamento'>Insegnamento</a> 2072<div class="nav-dropdown"> 2073<button class="nav-dropbtn"> 2074Corsi R 2075 2076<span class="down-arrow">▾</span> 2077</button> 2078<div class="nav-dropdown-content"> 2079<a href='/descrizione-corso'>Descrizione corso</a> 2080<hr/> 2081<a href='/iscrizioni'>Contatti</a> 2082</div> 2083</div> 2084<a href='/about'>About</a> 2085<a href="https://twitter.com/Angelo_Solimini"> 2086<i class="fab fa-twitter" aria-hidden="true"></i> 2087</a> 2088<a href="javascript:void(0);" class="nav-toggle">☰</a> 2089</div> 2090</nav> 2091</header> 2092<!--/radix_placeholder_navigation_before_body--> 2093<!--radix_placeholder_site_before_body--> 2094<!--/radix_placeholder_site_before_body--> 2095 2096<div class="d-title"> 2097<h1>About this site</h1> 2098<!--radix_placeholder_categories--> 2099<!--/radix_placeholder_categories--> 2100<p>Some additional details</p> 2101</div> 2102 2103 2104<div class="d-article"> 2105<p><a href="https://web.uniroma1.it/trasparenza/sites/default/files/cvSolimini_aifinidellapubblicazione.pdf">see full cv</a> (sporadically updated)</p> 2106<p>Full publication list is also available through the <a href="https://iris.uniroma1.it/simple-search?query=&rpp=10&sort_by=bi_sort_2_sort&order=DESC&filter_field_1=author&filter_type_1=contains&filter_value_1=solimini#.YTYXgRMzbPA">Sapienza Iris catalugue</a></p> 2107<div class="sourceCode" id="cb1"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div> 2108<!--radix_placeholder_article_footer--> 2109<!--/radix_placeholder_article_footer--> 2110</div> 2111 2112<div class="d-appendix"> 2113</div> 2114 2115 2116<!--radix_placeholder_site_after_body--> 2117<!--/radix_placeholder_site_after_body--> 2118<!--radix_placeholder_appendices--> 2119<div class="appendix-bottom"></div> 2120<!--/radix_placeholder_appendices--> 2121<!--radix_placeholder_navigation_after_body--> 2122<!--/radix_placeholder_navigation_after_body--> 2123 2124</body> 2125 2126</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.