asciidoctor-revealjs 2.0.1 → 3.0.0.pre.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +51 -0
- data/Gemfile +2 -2
- data/README.adoc +96 -35
- data/Rakefile +2 -1
- data/asciidoctor-revealjs.gemspec +6 -3
- data/examples/font-awesome.adoc +24 -0
- data/examples/multi-destination-content.adoc +2 -0
- data/examples/source-rouge.adoc +41 -0
- data/examples/tables-styles.adoc +141 -0
- data/lib/asciidoctor-revealjs.rb +2 -0
- data/lib/asciidoctor-revealjs/converter.rb +143 -66
- data/lib/asciidoctor-revealjs/highlightjs.rb +41 -0
- data/lib/asciidoctor-revealjs/version.rb +1 -1
- data/templates/asciidoctor_revealjs.css.slim +45 -0
- data/templates/document.html.slim +17 -19
- data/templates/listing.html.slim +18 -34
- data/templates/section.html.slim +6 -1
- metadata +41 -9
    
        data/lib/asciidoctor-revealjs.rb
    CHANGED
    
    | @@ -1,8 +1,10 @@ | |
| 1 1 | 
             
            if RUBY_ENGINE == 'opal'
         | 
| 2 2 | 
             
              require 'asciidoctor-revealjs/converter'
         | 
| 3 3 | 
             
              require 'asciidoctor-revealjs/version'
         | 
| 4 | 
            +
              require 'asciidoctor-revealjs/highlightjs'
         | 
| 4 5 | 
             
            else
         | 
| 5 6 | 
             
              require 'asciidoctor' unless defined? Asciidoctor::Converter
         | 
| 6 7 | 
             
              require_relative 'asciidoctor-revealjs/converter'
         | 
| 7 8 | 
             
              require_relative 'asciidoctor-revealjs/version'
         | 
| 9 | 
            +
              require_relative 'asciidoctor-revealjs/highlightjs'
         | 
| 8 10 | 
             
            end
         | 
| @@ -137,7 +137,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 137 137 | 
             
              #------------------------------- End of Helpers -------------------------------#
         | 
| 138 138 |  | 
| 139 139 |  | 
| 140 | 
            -
              register_for "revealjs"
         | 
| 140 | 
            +
              register_for "revealjs", "reveal.js"
         | 
| 141 141 |  | 
| 142 142 | 
             
              def initialize(backend, opts = {})
         | 
| 143 143 | 
             
                super
         | 
| @@ -347,7 +347,52 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 347 347 | 
             
                node.extend(Helpers)
         | 
| 348 348 | 
             
                node.instance_eval do
         | 
| 349 349 | 
             
                  converter.set_local_variables(binding, opts) unless opts.empty?
         | 
| 350 | 
            -
                  _buf = ''; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n  float: right;\n}\n\n/* callouts */\n.conum[data-value] {display:inline-block;color:#fff!important;background-color:rgba(50,150,50,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]:after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze); 
         | 
| 350 | 
            +
                  _buf = ''; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n  float: right;\n}\n\n.reveal .listingblock.stretch > .content {\n  height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre {\n  height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre > code {\n  height: 100%;\n  max-height: 100%;\n}\n\n/* tables */\ntable{border-collapse:collapse;border-spacing:0}\ntable{margin-bottom:1.25em;border:solid 1px #dedede}\ntable thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;text-align:left}\ntable tr th,table tr td{padding:.5625em .625em;font-size:inherit}\ntable thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}\ntd.tableblock>.content{margin-bottom:1.25em}\ntd.tableblock>.content>:last-child{margin-bottom:-1.25em}\ntable.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}\ntable.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}\ntable.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}\ntable.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}\ntable.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}\ntable.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}\ntable.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}\ntable.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}\ntable.frame-all{border-width:1px}\ntable.frame-sides{border-width:0 1px}\ntable.frame-topbot,table.frame-ends{border-width:1px 0}\n.reveal table th.halign-left,.reveal table td.halign-left{text-align:left}\n.reveal table th.halign-right,.reveal table td.halign-right{text-align:right}\n.reveal table th.halign-center,.reveal table td.halign-center{text-align:center}\n.reveal table th.valign-top,.reveal table td.valign-top{vertical-align:top}\n.reveal table th.valign-bottom,.reveal table td.valign-bottom{vertical-align:bottom}\n.reveal table th.valign-middle,.reveal table td.valign-middle{vertical-align:middle}\ntable thead th,table tfoot th{font-weight:bold}\ntbody tr th{display:table-cell;line-height:1.6}\ntbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{font-weight:bold}\nthead{display:table-header-group}\n\n.reveal table.grid-none th,.reveal table.grid-none td{border-bottom:0!important}\n\n/* callouts */\n.conum[data-value] {display:inline-block;color:#fff!important;background-color:rgba(50,150,50,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]:after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze); 
         | 
| 351 | 
            +
                  ; 
         | 
| 352 | 
            +
                  ; 
         | 
| 353 | 
            +
                  ; 
         | 
| 354 | 
            +
                  ; 
         | 
| 355 | 
            +
                  ; 
         | 
| 356 | 
            +
                  ; 
         | 
| 357 | 
            +
                  ; 
         | 
| 358 | 
            +
                  ; 
         | 
| 359 | 
            +
                  ; 
         | 
| 360 | 
            +
                  ; 
         | 
| 361 | 
            +
                  ; 
         | 
| 362 | 
            +
                  ; 
         | 
| 363 | 
            +
                  ; 
         | 
| 364 | 
            +
                  ; 
         | 
| 365 | 
            +
                  ; 
         | 
| 366 | 
            +
                  ; 
         | 
| 367 | 
            +
                  ; 
         | 
| 368 | 
            +
                  ; 
         | 
| 369 | 
            +
                  ; 
         | 
| 370 | 
            +
                  ; 
         | 
| 371 | 
            +
                  ; 
         | 
| 372 | 
            +
                  ; 
         | 
| 373 | 
            +
                  ; 
         | 
| 374 | 
            +
                  ; 
         | 
| 375 | 
            +
                  ; 
         | 
| 376 | 
            +
                  ; 
         | 
| 377 | 
            +
                  ; 
         | 
| 378 | 
            +
                  ; 
         | 
| 379 | 
            +
                  ; 
         | 
| 380 | 
            +
                  ; 
         | 
| 381 | 
            +
                  ; 
         | 
| 382 | 
            +
                  ; 
         | 
| 383 | 
            +
                  ; 
         | 
| 384 | 
            +
                  ; 
         | 
| 385 | 
            +
                  ; 
         | 
| 386 | 
            +
                  ; 
         | 
| 387 | 
            +
                  ; 
         | 
| 388 | 
            +
                  ; 
         | 
| 389 | 
            +
                  ; 
         | 
| 390 | 
            +
                  ; 
         | 
| 391 | 
            +
                  ; 
         | 
| 392 | 
            +
                  ; 
         | 
| 393 | 
            +
                  ; 
         | 
| 394 | 
            +
                  ; 
         | 
| 395 | 
            +
                  ; 
         | 
| 351 396 | 
             
                  ; 
         | 
| 352 397 | 
             
                  ; 
         | 
| 353 398 | 
             
                  ; 
         | 
| @@ -535,7 +580,8 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 535 580 | 
             
                  ; [:description, :keywords, :author, :copyright].each do |key|; 
         | 
| 536 581 | 
             
                  ; if attr? key; 
         | 
| 537 582 | 
             
                  ; _buf << ("<meta".freeze); _slim_codeattributes2 = key; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" name".freeze); else; _buf << (" name=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = (attr key); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" content".freeze); else; _buf << (" content=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 538 | 
            -
                  ; end; end;  | 
| 583 | 
            +
                  ; end; end; linkcss = (attr? 'linkcss'); 
         | 
| 584 | 
            +
                  ; _buf << ("<title>".freeze); _buf << (((doctitle sanitize: true, use_fallback: true)).to_s); 
         | 
| 539 585 | 
             
                  ; _buf << ("</title><meta content=\"yes\" name=\"apple-mobile-web-app-capable\"><meta content=\"black-translucent\" name=\"apple-mobile-web-app-status-bar-style\"><meta content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui\" name=\"viewport\"><link href=\"".freeze); 
         | 
| 540 586 | 
             
                  ; 
         | 
| 541 587 | 
             
                  ; 
         | 
| @@ -545,7 +591,52 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 545 591 | 
             
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes4 = (attr :revealjs_customtheme); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _buf << (" id=\"theme\">".freeze); 
         | 
| 546 592 | 
             
                  ; else; 
         | 
| 547 593 | 
             
                  ; _buf << ("<link rel=\"stylesheet\" href=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/css/theme/".freeze); _buf << ((attr 'revealjs_theme', 'black').to_s); _buf << (".css\" id=\"theme\">".freeze); 
         | 
| 548 | 
            -
                  ; end; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n  float: right;\n}\n\n/* callouts */\n.conum[data-value] {display:inline-block;color:#fff!important;background-color:rgba(50,150,50,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]:after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze); 
         | 
| 594 | 
            +
                  ; end; _buf << ("<!--This CSS is generated by the Asciidoctor-Reveal.js converter to further integrate AsciiDoc's existing semantic with Reveal.js--><style type=\"text/css\">.reveal div.right {\n  float: right;\n}\n\n.reveal .listingblock.stretch > .content {\n  height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre {\n  height: 100%;\n}\n\n.reveal .listingblock.stretch > .content > pre > code {\n  height: 100%;\n  max-height: 100%;\n}\n\n/* tables */\ntable{border-collapse:collapse;border-spacing:0}\ntable{margin-bottom:1.25em;border:solid 1px #dedede}\ntable thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;text-align:left}\ntable tr th,table tr td{padding:.5625em .625em;font-size:inherit}\ntable thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}\ntd.tableblock>.content{margin-bottom:1.25em}\ntd.tableblock>.content>:last-child{margin-bottom:-1.25em}\ntable.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}\ntable.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}\ntable.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}\ntable.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}\ntable.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}\ntable.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}\ntable.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}\ntable.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}\ntable.frame-all{border-width:1px}\ntable.frame-sides{border-width:0 1px}\ntable.frame-topbot,table.frame-ends{border-width:1px 0}\n.reveal table th.halign-left,.reveal table td.halign-left{text-align:left}\n.reveal table th.halign-right,.reveal table td.halign-right{text-align:right}\n.reveal table th.halign-center,.reveal table td.halign-center{text-align:center}\n.reveal table th.valign-top,.reveal table td.valign-top{vertical-align:top}\n.reveal table th.valign-bottom,.reveal table td.valign-bottom{vertical-align:bottom}\n.reveal table th.valign-middle,.reveal table td.valign-middle{vertical-align:middle}\ntable thead th,table tfoot th{font-weight:bold}\ntbody tr th{display:table-cell;line-height:1.6}\ntbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{font-weight:bold}\nthead{display:table-header-group}\n\n.reveal table.grid-none th,.reveal table.grid-none td{border-bottom:0!important}\n\n/* callouts */\n.conum[data-value] {display:inline-block;color:#fff!important;background-color:rgba(50,150,50,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:\"Open Sans\",\"DejaVu Sans\",sans-serif;font-style:normal;font-weight:bold}\n.conum[data-value] *{color:#fff!important}\n.conum[data-value]+b{display:none}\n.conum[data-value]:after{content:attr(data-value)}\npre .conum[data-value]{position:relative;top:-.125em}\nb.conum *{color:inherit!important}\n.conum:not([data-value]):empty{display:none}</style>".freeze); 
         | 
| 595 | 
            +
                  ; 
         | 
| 596 | 
            +
                  ; 
         | 
| 597 | 
            +
                  ; 
         | 
| 598 | 
            +
                  ; 
         | 
| 599 | 
            +
                  ; 
         | 
| 600 | 
            +
                  ; 
         | 
| 601 | 
            +
                  ; 
         | 
| 602 | 
            +
                  ; 
         | 
| 603 | 
            +
                  ; 
         | 
| 604 | 
            +
                  ; 
         | 
| 605 | 
            +
                  ; 
         | 
| 606 | 
            +
                  ; 
         | 
| 607 | 
            +
                  ; 
         | 
| 608 | 
            +
                  ; 
         | 
| 609 | 
            +
                  ; 
         | 
| 610 | 
            +
                  ; 
         | 
| 611 | 
            +
                  ; 
         | 
| 612 | 
            +
                  ; 
         | 
| 613 | 
            +
                  ; 
         | 
| 614 | 
            +
                  ; 
         | 
| 615 | 
            +
                  ; 
         | 
| 616 | 
            +
                  ; 
         | 
| 617 | 
            +
                  ; 
         | 
| 618 | 
            +
                  ; 
         | 
| 619 | 
            +
                  ; 
         | 
| 620 | 
            +
                  ; 
         | 
| 621 | 
            +
                  ; 
         | 
| 622 | 
            +
                  ; 
         | 
| 623 | 
            +
                  ; 
         | 
| 624 | 
            +
                  ; 
         | 
| 625 | 
            +
                  ; 
         | 
| 626 | 
            +
                  ; 
         | 
| 627 | 
            +
                  ; 
         | 
| 628 | 
            +
                  ; 
         | 
| 629 | 
            +
                  ; 
         | 
| 630 | 
            +
                  ; 
         | 
| 631 | 
            +
                  ; 
         | 
| 632 | 
            +
                  ; 
         | 
| 633 | 
            +
                  ; 
         | 
| 634 | 
            +
                  ; 
         | 
| 635 | 
            +
                  ; 
         | 
| 636 | 
            +
                  ; 
         | 
| 637 | 
            +
                  ; 
         | 
| 638 | 
            +
                  ; 
         | 
| 639 | 
            +
                  ; 
         | 
| 549 640 | 
             
                  ; 
         | 
| 550 641 | 
             
                  ; 
         | 
| 551 642 | 
             
                  ; 
         | 
| @@ -561,8 +652,9 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 561 652 | 
             
                  ; 
         | 
| 562 653 | 
             
                  ; 
         | 
| 563 654 | 
             
                  ; if attr? :icons, 'font'; 
         | 
| 655 | 
            +
                  ; 
         | 
| 564 656 | 
             
                  ; if attr? 'iconfont-remote'; 
         | 
| 565 | 
            -
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes5 = (attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/ | 
| 657 | 
            +
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes5 = (attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.8.2/css/all.min.css)); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 566 658 | 
             
                  ; else; 
         | 
| 567 659 | 
             
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes6 = (normalize_web_path %(#{attr 'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false); if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 568 660 | 
             
                  ; end; end; if attr? :stem; 
         | 
| @@ -583,24 +675,10 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 583 675 | 
             
                  ; _buf << ((eqnums_opt).to_s); _buf << ("}\n});</script><script src=\"".freeze); 
         | 
| 584 676 | 
             
                  ; 
         | 
| 585 677 | 
             
                  ; _buf << ((cdn_base).to_s); _buf << ("/mathjax/2.4.0/MathJax.js?config=TeX-MML-AM_HTMLorMML\"></script>".freeze); 
         | 
| 586 | 
            -
                  ;  | 
| 587 | 
            -
                  ;  | 
| 588 | 
            -
                  ; if ( | 
| 589 | 
            -
                  ;  | 
| 590 | 
            -
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes7 = normalize_web_path('asciidoctor-coderay.css', (attr :stylesdir, '')); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 591 | 
            -
                  ; else; 
         | 
| 592 | 
            -
                  ; _buf << ("<style>".freeze); _buf << ((Asciidoctor::Stylesheets.instance.coderay_stylesheet_data).to_s); 
         | 
| 593 | 
            -
                  ; _buf << ("</style>".freeze); end; end; when 'pygments'; 
         | 
| 594 | 
            -
                  ; if (attr 'pygments-css', 'class') == 'class'; 
         | 
| 595 | 
            -
                  ; if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss); 
         | 
| 596 | 
            -
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes8 = normalize_web_path('asciidoctor-pygments.css', (attr :stylesdir, '')); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 597 | 
            -
                  ; else; 
         | 
| 598 | 
            -
                  ; _buf << ("<style>".freeze); _buf << ((Asciidoctor::Stylesheets.instance.pygments_stylesheet_data(attr 'pygments-style')).to_s); 
         | 
| 599 | 
            -
                  ; _buf << ("</style>".freeze); end; end; 
         | 
| 600 | 
            -
                  ; end; if attr? 'highlightjs-theme'; 
         | 
| 601 | 
            -
                  ; _buf << ("<link".freeze); _slim_codeattributes9 = (attr 'highlightjs-theme'); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _buf << (" rel=\"stylesheet\">".freeze); 
         | 
| 602 | 
            -
                  ; else; 
         | 
| 603 | 
            -
                  ; _buf << ("<link href=\"".freeze); _buf << ((revealjsdir).to_s); _buf << ("/lib/css/zenburn.css\" rel=\"stylesheet\">".freeze); 
         | 
| 678 | 
            +
                  ; 
         | 
| 679 | 
            +
                  ; end; syntax_hl = self.syntax_highlighter; 
         | 
| 680 | 
            +
                  ; if syntax_hl && (syntax_hl.docinfo? :head); 
         | 
| 681 | 
            +
                  ; _buf << ((syntax_hl.docinfo :head, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/').to_s); 
         | 
| 604 682 | 
             
                  ; 
         | 
| 605 683 | 
             
                  ; end; _buf << ("<script>var link = document.createElement( 'link' );\nlink.rel = 'stylesheet';\nlink.type = 'text/css';\nlink.href = window.location.search.match( /print-pdf/gi ) ? \"".freeze); 
         | 
| 606 684 | 
             
                  ; 
         | 
| @@ -613,7 +691,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 613 691 | 
             
                  ; unless (docinfo_content = docinfo :header, '.html').empty?; 
         | 
| 614 692 | 
             
                  ; _buf << ((docinfo_content).to_s); 
         | 
| 615 693 | 
             
                  ; end; if attr? :customcss; 
         | 
| 616 | 
            -
                  ; _buf << ("<link rel=\"stylesheet\"".freeze);  | 
| 694 | 
            +
                  ; _buf << ("<link rel=\"stylesheet\"".freeze); _slim_codeattributes7 = ((customcss = attr :customcss).empty? ? 'asciidoctor-revealjs.css' : customcss); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" href".freeze); else; _buf << (" href=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 617 695 | 
             
                  ; end; _buf << ("</head><body><div class=\"reveal\"><div class=\"slides\">".freeze); 
         | 
| 618 696 | 
             
                  ; 
         | 
| 619 697 | 
             
                  ; 
         | 
| @@ -635,7 +713,8 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 635 713 | 
             
                  ; 
         | 
| 636 714 | 
             
                  ; 
         | 
| 637 715 | 
             
                  ; 
         | 
| 638 | 
            -
                  ;  | 
| 716 | 
            +
                  ; 
         | 
| 717 | 
            +
                  ; _buf << ("<section".freeze); _temple_html_attributeremover1 = ''; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "title"; _temple_html_attributemerger1[1] = ''; _slim_codeattributes8 = role; if Array === _slim_codeattributes8; _slim_codeattributes8 = _slim_codeattributes8.flatten; _slim_codeattributes8.map!(&:to_s); _slim_codeattributes8.reject!(&:empty?); _temple_html_attributemerger1[1] << ((_slim_codeattributes8.join(" ")).to_s); else; _temple_html_attributemerger1[1] << ((_slim_codeattributes8).to_s); end; _temple_html_attributemerger1[1]; _temple_html_attributeremover1 << ((_temple_html_attributemerger1.reject(&:empty?).join(" ")).to_s); _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _buf << (" data-state=\"title\"".freeze); _slim_codeattributes9 = (attr 'title-slide-transition'); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (attr 'title-slide-transition-speed'); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr 'title-slide-background'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-background".freeze); else; _buf << (" data-background=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr 'title-slide-background-size'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = bg_image; if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = bg_video; if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr 'title-slide-background-video-loop'); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr 'title-slide-background-video-muted'); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes17 = (attr "background-opacity"); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes18 = (attr 'title-slide-background-iframe'); if _slim_codeattributes18; if _slim_codeattributes18 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes18).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes19 = (attr 'title-slide-background-color'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr 'title-slide-background-repeat'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = (attr 'title-slide-background-position'); if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = (attr 'title-slide-background-transition'); if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 639 718 | 
             
                  ; if (_title_obj = doctitle partition: true, use_fallback: true).subtitle?; 
         | 
| 640 719 | 
             
                  ; _buf << ("<h1>".freeze); _buf << ((slice_text _title_obj.title, (_slice = header.option? :slice)).to_s); 
         | 
| 641 720 | 
             
                  ; _buf << ("</h1><h2>".freeze); _buf << ((slice_text _title_obj.subtitle, _slice).to_s); 
         | 
| @@ -764,7 +843,13 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 764 843 | 
             
                  ; 
         | 
| 765 844 | 
             
                  ; 
         | 
| 766 845 | 
             
                  ; _buf << ((attr 'revealjs_minscale', 0.2).to_s); _buf << (",\n  maxScale: ".freeze); 
         | 
| 767 | 
            -
                  ; _buf << ((attr 'revealjs_maxscale', 1.5).to_s); _buf << (",\n\n  //  | 
| 846 | 
            +
                  ; _buf << ((attr 'revealjs_maxscale', 1.5).to_s); _buf << (",\n\n  // PDF Export Options\n  // Put each fragment on a separate page\n  pdfSeparateFragments: ".freeze); 
         | 
| 847 | 
            +
                  ; 
         | 
| 848 | 
            +
                  ; 
         | 
| 849 | 
            +
                  ; 
         | 
| 850 | 
            +
                  ; _buf << ((to_boolean(attr 'revealjs_pdfseparatefragments', true)).to_s); _buf << (",\n  // For slides that do not fit on a page, max number of pages\n  pdfMaxPagesPerSlide: ".freeze); 
         | 
| 851 | 
            +
                  ; 
         | 
| 852 | 
            +
                  ; _buf << ((attr 'revealjs_pdfmaxpagesperslide', 1).to_s); _buf << (",\n\n  // Optional libraries used to extend on reveal.js\n  dependencies: [\n      { src: '".freeze); 
         | 
| 768 853 | 
             
                  ; 
         | 
| 769 854 | 
             
                  ; 
         | 
| 770 855 | 
             
                  ; 
         | 
| @@ -781,7 +866,10 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 781 866 | 
             
                  ; _buf << (((attr? 'revealjs_plugins_configuration') ? File.read(attr('revealjs_plugins_configuration', '')) : "").to_s); 
         | 
| 782 867 | 
             
                  ; _buf << ("\n\n});</script>".freeze); 
         | 
| 783 868 | 
             
                  ; 
         | 
| 784 | 
            -
                  ;  | 
| 869 | 
            +
                  ; if syntax_hl && (syntax_hl.docinfo? :footer); 
         | 
| 870 | 
            +
                  ; _buf << ((syntax_hl.docinfo :footer, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/').to_s); 
         | 
| 871 | 
            +
                  ; 
         | 
| 872 | 
            +
                  ; end; unless (docinfo_content = (docinfo :footer, '.html')).empty?; 
         | 
| 785 873 | 
             
                  ; _buf << ((docinfo_content).to_s); 
         | 
| 786 874 | 
             
                  ; end; _buf << ("</body></html>".freeze); _buf
         | 
| 787 875 | 
             
                end
         | 
| @@ -968,42 +1056,26 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 968 1056 | 
             
                node.extend(Helpers)
         | 
| 969 1057 | 
             
                node.instance_eval do
         | 
| 970 1058 | 
             
                  converter.set_local_variables(binding, opts) unless opts.empty?
         | 
| 971 | 
            -
                  _buf = '';  | 
| 972 | 
            -
                  ;  | 
| 973 | 
            -
                  ;  | 
| 974 | 
            -
                  ; 
         | 
| 975 | 
            -
                  ; 
         | 
| 976 | 
            -
                  ;  | 
| 977 | 
            -
                  ;  | 
| 978 | 
            -
                  ;  | 
| 979 | 
            -
                  ;  | 
| 980 | 
            -
                  ;  | 
| 981 | 
            -
                  ;  | 
| 982 | 
            -
                  ;  | 
| 983 | 
            -
                  ;  | 
| 984 | 
            -
                  ;  | 
| 985 | 
            -
                  ;  | 
| 986 | 
            -
                  ;  | 
| 987 | 
            -
                  ;  | 
| 988 | 
            -
                  ;  | 
| 989 | 
            -
                  ;  | 
| 990 | 
            -
                  ;  | 
| 991 | 
            -
                  ; pre_class << "language-#{language}" if language; 
         | 
| 992 | 
            -
                  ; code_class = nil; 
         | 
| 993 | 
            -
                  ; when 'html-pipeline'; 
         | 
| 994 | 
            -
                  ; pre_lang = language; 
         | 
| 995 | 
            -
                  ; pre_class = code_class = nil; 
         | 
| 996 | 
            -
                  ; nowrap = false; 
         | 
| 997 | 
            -
                  ; when 'highlightjs', 'highlight.js'; 
         | 
| 998 | 
            -
                  ; code_noescape=true; 
         | 
| 999 | 
            -
                  ; end; pre_class << 'nowrap' if nowrap; 
         | 
| 1000 | 
            -
                  ; pre_class << 'listingblock'; 
         | 
| 1001 | 
            -
                  ; pre_class << role if role; 
         | 
| 1002 | 
            -
                  ; _buf << ("<pre".freeze); _temple_html_attributeremover1 = ''; _slim_codeattributes1 = pre_class; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes1.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes1).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes2 = pre_lang; if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" lang".freeze); else; _buf << (" lang=\"".freeze); _buf << ((_slim_codeattributes2).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes3 = @id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _buf << ("><code".freeze); 
         | 
| 1003 | 
            -
                  ; _slim_codeattributes4 = code_noescape; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" data-noescape".freeze); else; _buf << (" data-noescape=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover2 = ''; _slim_codeattributes5 = code_class; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes5.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes5).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((content).to_s); 
         | 
| 1004 | 
            -
                  ; _buf << ("</code></pre>".freeze); else; 
         | 
| 1005 | 
            -
                  ; _buf << ("<pre".freeze); _temple_html_attributeremover3 = ''; _slim_codeattributes6 = (nowrap ? 'nowrap' : nil); if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover3 << ((_slim_codeattributes6.join(" ")).to_s); else; _temple_html_attributeremover3 << ((_slim_codeattributes6).to_s); end; _temple_html_attributeremover3; if !_temple_html_attributeremover3.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover3).to_s); _buf << ("\"".freeze); end; _buf << (">".freeze); _buf << ((content).to_s); 
         | 
| 1006 | 
            -
                  ; _buf << ("</pre>".freeze); end; _buf
         | 
| 1059 | 
            +
                  _buf = ''; nowrap = (option? 'nowrap') || !(document.attr? 'prewrap'); 
         | 
| 1060 | 
            +
                  ; syntax_hl = document.syntax_highlighter; 
         | 
| 1061 | 
            +
                  ; if @style == 'source'; 
         | 
| 1062 | 
            +
                  ; lang = attr :language; 
         | 
| 1063 | 
            +
                  ; if syntax_hl; 
         | 
| 1064 | 
            +
                  ; doc_attrs = document.attributes; 
         | 
| 1065 | 
            +
                  ; css_mode = (doc_attrs[%(#{syntax_hl.name}-css)] || :class).to_sym; 
         | 
| 1066 | 
            +
                  ; style = doc_attrs[%(#{syntax_hl.name}-style)]; 
         | 
| 1067 | 
            +
                  ; opts = syntax_hl.highlight? ? { css_mode: css_mode, style: style } : {}; 
         | 
| 1068 | 
            +
                  ; opts[:nowrap] = nowrap; 
         | 
| 1069 | 
            +
                  ; else; 
         | 
| 1070 | 
            +
                  ; pre_open = %(<pre class="highlight#{nowrap ? ' nowrap' : ''}"><code#{lang ? %[ class="language-#{lang}" data-lang="#{lang}"] : ''}>); 
         | 
| 1071 | 
            +
                  ; pre_close = '</code></pre>'; 
         | 
| 1072 | 
            +
                  ; end; else; 
         | 
| 1073 | 
            +
                  ; pre_open = %(<pre#{nowrap ? ' class="nowrap"' : ''}>); 
         | 
| 1074 | 
            +
                  ; pre_close = '</pre>'; 
         | 
| 1075 | 
            +
                  ; end; id_attribute = id ? %( id="#{id}") : ''; 
         | 
| 1076 | 
            +
                  ; title_element = title? ? %(<div class="title">#{captioned_title}</div>\n) : ''; 
         | 
| 1077 | 
            +
                  ; _buf << ((%(<div#{id_attribute} class="listingblock#{(role = self.role) ? " #{role}" : ''}">#{title_element}<div class="content">#{syntax_hl ? (syntax_hl.format self, lang, opts) : pre_open + (content || '') + pre_close}</div></div>)).to_s); 
         | 
| 1078 | 
            +
                  ; _buf
         | 
| 1007 1079 | 
             
                end
         | 
| 1008 1080 | 
             
              end
         | 
| 1009 1081 |  | 
| @@ -1037,7 +1109,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 1037 1109 | 
             
                  ; 
         | 
| 1038 1110 | 
             
                  ; 
         | 
| 1039 1111 | 
             
                  ; data_background_image, data_background_size, data_background_repeat,
         | 
| 1040 | 
            -
                  data_background_transition = nil; 
         | 
| 1112 | 
            +
                  data_background_position, data_background_transition = nil; 
         | 
| 1041 1113 | 
             
                  ; 
         | 
| 1042 1114 | 
             
                  ; 
         | 
| 1043 1115 | 
             
                  ; section_images = blocks.map do |block|; 
         | 
| @@ -1053,6 +1125,7 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 1053 1125 | 
             
                  ; data_background_size = bg_image.attr 'size'; 
         | 
| 1054 1126 | 
             
                  ; data_background_repeat = bg_image.attr 'repeat'; 
         | 
| 1055 1127 | 
             
                  ; data_background_transition = bg_image.attr 'transition'; 
         | 
| 1128 | 
            +
                  ; data_background_position = bg_image.attr 'position'; 
         | 
| 1056 1129 | 
             
                  ; 
         | 
| 1057 1130 | 
             
                  ; 
         | 
| 1058 1131 | 
             
                  ; end; if attr? 'background-image'; 
         | 
| @@ -1079,7 +1152,9 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 1079 1152 | 
             
                  ; 
         | 
| 1080 1153 | 
             
                  ; 
         | 
| 1081 1154 | 
             
                  ; 
         | 
| 1082 | 
            -
                  ;  | 
| 1155 | 
            +
                  ; 
         | 
| 1156 | 
            +
                  ; 
         | 
| 1157 | 
            +
                  ; _slim_codeattributes1 = (titleless ? nil : id); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes1).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover1 = ''; _slim_codeattributes2 = roles; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << ((_slim_codeattributes2.join(" ")).to_s); else; _temple_html_attributeremover1 << ((_slim_codeattributes2).to_s); end; _temple_html_attributeremover1; if !_temple_html_attributeremover1.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover1).to_s); _buf << ("\"".freeze); end; _slim_codeattributes3 = (attr 'transition'); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes3).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes4 = (attr 'transition-speed'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes4).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes5 = data_background_color; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes5).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes6 = data_background_image; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes6).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes7 = (data_background_size || attr('background-size')); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes7).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes8 = (data_background_repeat || attr('background-repeat')); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes8).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes9 = (data_background_transition || attr('background-transition')); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes9).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes10 = (data_background_position || attr('background-position')); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes10).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes11 = (attr "background-iframe"); if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes11).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes12 = (attr "background-video"); if _slim_codeattributes12; if _slim_codeattributes12 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes12).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes13 = ((attr? 'background-video-loop') || (option? 'loop')); if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes13).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes14 = ((attr? 'background-video-muted') || (option? 'muted')); if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes14).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes15 = (attr "background-opacity"); if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes15).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes16 = (attr 'state'); if _slim_codeattributes16; if _slim_codeattributes16 == true; _buf << (" data-state".freeze); else; _buf << (" data-state=\"".freeze); _buf << ((_slim_codeattributes16).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 1083 1158 | 
             
                  ; 
         | 
| 1084 1159 | 
             
                  ; unless hide_title; 
         | 
| 1085 1160 | 
             
                  ; _buf << ("<h2>".freeze); _buf << ((title).to_s); 
         | 
| @@ -1108,7 +1183,9 @@ class Asciidoctor::Revealjs::Converter < ::Asciidoctor::Converter::Base | |
| 1108 1183 | 
             
                  ; 
         | 
| 1109 1184 | 
             
                  ; 
         | 
| 1110 1185 | 
             
                  ; 
         | 
| 1111 | 
            -
                  ;  | 
| 1186 | 
            +
                  ; 
         | 
| 1187 | 
            +
                  ; 
         | 
| 1188 | 
            +
                  ; _buf << ("<section".freeze); _slim_codeattributes17 = (titleless ? nil : id); if _slim_codeattributes17; if _slim_codeattributes17 == true; _buf << (" id".freeze); else; _buf << (" id=\"".freeze); _buf << ((_slim_codeattributes17).to_s); _buf << ("\"".freeze); end; end; _temple_html_attributeremover2 = ''; _slim_codeattributes18 = roles; if Array === _slim_codeattributes18; _slim_codeattributes18 = _slim_codeattributes18.flatten; _slim_codeattributes18.map!(&:to_s); _slim_codeattributes18.reject!(&:empty?); _temple_html_attributeremover2 << ((_slim_codeattributes18.join(" ")).to_s); else; _temple_html_attributeremover2 << ((_slim_codeattributes18).to_s); end; _temple_html_attributeremover2; if !_temple_html_attributeremover2.empty?; _buf << (" class=\"".freeze); _buf << ((_temple_html_attributeremover2).to_s); _buf << ("\"".freeze); end; _slim_codeattributes19 = (attr 'transition'); if _slim_codeattributes19; if _slim_codeattributes19 == true; _buf << (" data-transition".freeze); else; _buf << (" data-transition=\"".freeze); _buf << ((_slim_codeattributes19).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes20 = (attr 'transition-speed'); if _slim_codeattributes20; if _slim_codeattributes20 == true; _buf << (" data-transition-speed".freeze); else; _buf << (" data-transition-speed=\"".freeze); _buf << ((_slim_codeattributes20).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes21 = data_background_color; if _slim_codeattributes21; if _slim_codeattributes21 == true; _buf << (" data-background-color".freeze); else; _buf << (" data-background-color=\"".freeze); _buf << ((_slim_codeattributes21).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes22 = data_background_image; if _slim_codeattributes22; if _slim_codeattributes22 == true; _buf << (" data-background-image".freeze); else; _buf << (" data-background-image=\"".freeze); _buf << ((_slim_codeattributes22).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes23 = (data_background_size || attr('background-size')); if _slim_codeattributes23; if _slim_codeattributes23 == true; _buf << (" data-background-size".freeze); else; _buf << (" data-background-size=\"".freeze); _buf << ((_slim_codeattributes23).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes24 = (data_background_repeat || attr('background-repeat')); if _slim_codeattributes24; if _slim_codeattributes24 == true; _buf << (" data-background-repeat".freeze); else; _buf << (" data-background-repeat=\"".freeze); _buf << ((_slim_codeattributes24).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes25 = (data_background_transition || attr('background-transition')); if _slim_codeattributes25; if _slim_codeattributes25 == true; _buf << (" data-background-transition".freeze); else; _buf << (" data-background-transition=\"".freeze); _buf << ((_slim_codeattributes25).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes26 = (data_background_position || attr('background-position')); if _slim_codeattributes26; if _slim_codeattributes26 == true; _buf << (" data-background-position".freeze); else; _buf << (" data-background-position=\"".freeze); _buf << ((_slim_codeattributes26).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes27 = (attr "background-iframe"); if _slim_codeattributes27; if _slim_codeattributes27 == true; _buf << (" data-background-iframe".freeze); else; _buf << (" data-background-iframe=\"".freeze); _buf << ((_slim_codeattributes27).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes28 = (attr "background-video"); if _slim_codeattributes28; if _slim_codeattributes28 == true; _buf << (" data-background-video".freeze); else; _buf << (" data-background-video=\"".freeze); _buf << ((_slim_codeattributes28).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes29 = ((attr? 'background-video-loop') || (option? 'loop')); if _slim_codeattributes29; if _slim_codeattributes29 == true; _buf << (" data-background-video-loop".freeze); else; _buf << (" data-background-video-loop=\"".freeze); _buf << ((_slim_codeattributes29).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes30 = ((attr? 'background-video-muted') || (option? 'muted')); if _slim_codeattributes30; if _slim_codeattributes30 == true; _buf << (" data-background-video-muted".freeze); else; _buf << (" data-background-video-muted=\"".freeze); _buf << ((_slim_codeattributes30).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes31 = (attr "background-opacity"); if _slim_codeattributes31; if _slim_codeattributes31 == true; _buf << (" data-background-opacity".freeze); else; _buf << (" data-background-opacity=\"".freeze); _buf << ((_slim_codeattributes31).to_s); _buf << ("\"".freeze); end; end; _slim_codeattributes32 = (attr 'state'); if _slim_codeattributes32; if _slim_codeattributes32 == true; _buf << (" data-state".freeze); else; _buf << (" data-state=\"".freeze); _buf << ((_slim_codeattributes32).to_s); _buf << ("\"".freeze); end; end; _buf << (">".freeze); 
         | 
| 1112 1189 | 
             
                  ; 
         | 
| 1113 1190 | 
             
                  ; unless hide_title; 
         | 
| 1114 1191 | 
             
                  ; _buf << ("<h2>".freeze); _buf << ((title).to_s); 
         | 
| @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            module Asciidoctor
         | 
| 3 | 
            +
              module Revealjs
         | 
| 4 | 
            +
                module SyntaxHighlighter
         | 
| 5 | 
            +
                  # Override the built-in highlight.js syntax highlighter
         | 
| 6 | 
            +
                  class HighlightJsAdapter < Asciidoctor::SyntaxHighlighter::Base
         | 
| 7 | 
            +
                    register_for 'highlightjs', 'highlight.js'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                    def initialize *args
         | 
| 10 | 
            +
                      super
         | 
| 11 | 
            +
                      @name = @pre_class = 'highlightjs'
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    def format node, lang, opts
         | 
| 15 | 
            +
                      super node, lang, (opts.merge transform: proc { |_, code|
         | 
| 16 | 
            +
                        code['class'] = %(language-#{lang || 'none'} hljs)
         | 
| 17 | 
            +
                        code['data-noescape'] = true
         | 
| 18 | 
            +
                      })
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    def docinfo? location
         | 
| 22 | 
            +
                      location == :footer
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    def docinfo location, doc, opts
         | 
| 26 | 
            +
                      if RUBY_ENGINE == 'opal' && JAVASCRIPT_PLATFORM == 'node'
         | 
| 27 | 
            +
                        revealjsdir = (doc.attr :revealjsdir, 'node_modules/reveal.js')
         | 
| 28 | 
            +
                      else
         | 
| 29 | 
            +
                        revealjsdir = (doc.attr :revealjsdir, 'reveal.js')
         | 
| 30 | 
            +
                      end
         | 
| 31 | 
            +
                      if doc.attr? 'highlightjs-theme'
         | 
| 32 | 
            +
                        theme_href = doc.attr 'highlightjs-theme'
         | 
| 33 | 
            +
                      else
         | 
| 34 | 
            +
                        theme_href = "#{revealjsdir}/lib/css/zenburn.css"
         | 
| 35 | 
            +
                      end
         | 
| 36 | 
            +
                      %(<link rel="stylesheet" href="#{theme_href}"#{opts[:self_closing_tag_slash]}>)
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
            end
         | 
| @@ -4,6 +4,51 @@ css: | |
| 4 4 | 
             
                float: right;
         | 
| 5 5 | 
             
              }
         | 
| 6 6 |  | 
| 7 | 
            +
              .reveal .listingblock.stretch > .content {
         | 
| 8 | 
            +
                height: 100%;
         | 
| 9 | 
            +
              }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              .reveal .listingblock.stretch > .content > pre {
         | 
| 12 | 
            +
                height: 100%;
         | 
| 13 | 
            +
              }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              .reveal .listingblock.stretch > .content > pre > code {
         | 
| 16 | 
            +
                height: 100%;
         | 
| 17 | 
            +
                max-height: 100%;
         | 
| 18 | 
            +
              }
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              /* tables */
         | 
| 21 | 
            +
              table{border-collapse:collapse;border-spacing:0}
         | 
| 22 | 
            +
              table{margin-bottom:1.25em;border:solid 1px #dedede}
         | 
| 23 | 
            +
              table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;text-align:left}
         | 
| 24 | 
            +
              table tr th,table tr td{padding:.5625em .625em;font-size:inherit}
         | 
| 25 | 
            +
              table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
         | 
| 26 | 
            +
              td.tableblock>.content{margin-bottom:1.25em}
         | 
| 27 | 
            +
              td.tableblock>.content>:last-child{margin-bottom:-1.25em}
         | 
| 28 | 
            +
              table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
         | 
| 29 | 
            +
              table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
         | 
| 30 | 
            +
              table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
         | 
| 31 | 
            +
              table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
         | 
| 32 | 
            +
              table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
         | 
| 33 | 
            +
              table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
         | 
| 34 | 
            +
              table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
         | 
| 35 | 
            +
              table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
         | 
| 36 | 
            +
              table.frame-all{border-width:1px}
         | 
| 37 | 
            +
              table.frame-sides{border-width:0 1px}
         | 
| 38 | 
            +
              table.frame-topbot,table.frame-ends{border-width:1px 0}
         | 
| 39 | 
            +
              .reveal table th.halign-left,.reveal table td.halign-left{text-align:left}
         | 
| 40 | 
            +
              .reveal table th.halign-right,.reveal table td.halign-right{text-align:right}
         | 
| 41 | 
            +
              .reveal table th.halign-center,.reveal table td.halign-center{text-align:center}
         | 
| 42 | 
            +
              .reveal table th.valign-top,.reveal table td.valign-top{vertical-align:top}
         | 
| 43 | 
            +
              .reveal table th.valign-bottom,.reveal table td.valign-bottom{vertical-align:bottom}
         | 
| 44 | 
            +
              .reveal table th.valign-middle,.reveal table td.valign-middle{vertical-align:middle}
         | 
| 45 | 
            +
              table thead th,table tfoot th{font-weight:bold}
         | 
| 46 | 
            +
              tbody tr th{display:table-cell;line-height:1.6}
         | 
| 47 | 
            +
              tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{font-weight:bold}
         | 
| 48 | 
            +
              thead{display:table-header-group}
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              .reveal table.grid-none th,.reveal table.grid-none td{border-bottom:0!important}
         | 
| 51 | 
            +
             | 
| 7 52 | 
             
              /* callouts */
         | 
| 8 53 | 
             
              .conum[data-value] {display:inline-block;color:#fff!important;background-color:rgba(50,150,50,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
         | 
| 9 54 | 
             
              .conum[data-value] *{color:#fff!important}
         | 
| @@ -12,6 +12,7 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 12 12 | 
             
                - [:description, :keywords, :author, :copyright].each do |key|
         | 
| 13 13 | 
             
                  - if attr? key
         | 
| 14 14 | 
             
                    meta name=key content=(attr key)
         | 
| 15 | 
            +
                - linkcss = (attr? 'linkcss')
         | 
| 15 16 | 
             
                title=(doctitle sanitize: true, use_fallback: true)
         | 
| 16 17 | 
             
                meta content="yes" name="apple-mobile-web-app-capable"
         | 
| 17 18 | 
             
                meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"
         | 
| @@ -24,8 +25,9 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 24 25 | 
             
                  link rel='stylesheet' href='#{revealjsdir}/css/theme/#{attr 'revealjs_theme', 'black'}.css' id='theme'
         | 
| 25 26 | 
             
                include asciidoctor_revealjs.css.slim
         | 
| 26 27 | 
             
                - if attr? :icons, 'font'
         | 
| 28 | 
            +
                  / iconfont-remote is implicitly set by Asciidoctor core. See https://github.com/asciidoctor/asciidoctor.org/issues/361
         | 
| 27 29 | 
             
                  - if attr? 'iconfont-remote'
         | 
| 28 | 
            -
                    link rel='stylesheet' href=(attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/ | 
| 30 | 
            +
                    link rel='stylesheet' href=(attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.8.2/css/all.min.css))
         | 
| 29 31 | 
             
                  - else
         | 
| 30 32 | 
             
                    link rel='stylesheet' href=(normalize_web_path %(#{attr 'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false)
         | 
| 31 33 | 
             
                - if attr? :stem
         | 
| @@ -46,24 +48,10 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 46 48 | 
             
                      TeX: {#{eqnums_opt}}
         | 
| 47 49 | 
             
                      });
         | 
| 48 50 | 
             
                  script src='#{cdn_base}/mathjax/2.4.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                -  | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
                      link rel='stylesheet' href=normalize_web_path('asciidoctor-coderay.css', (attr :stylesdir, ''))
         | 
| 54 | 
            -
                    - else
         | 
| 55 | 
            -
                      style=Asciidoctor::Stylesheets.instance.coderay_stylesheet_data
         | 
| 56 | 
            -
                - when 'pygments'
         | 
| 57 | 
            -
                  - if (attr 'pygments-css', 'class') == 'class'
         | 
| 58 | 
            -
                    - if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss)
         | 
| 59 | 
            -
                      link rel='stylesheet' href=normalize_web_path('asciidoctor-pygments.css', (attr :stylesdir, ''))
         | 
| 60 | 
            -
                    - else
         | 
| 61 | 
            -
                      style=Asciidoctor::Stylesheets.instance.pygments_stylesheet_data(attr 'pygments-style')
         | 
| 62 | 
            -
                / For syntax highlighting
         | 
| 63 | 
            -
                - if attr? 'highlightjs-theme'
         | 
| 64 | 
            -
                  link href=(attr 'highlightjs-theme') rel="stylesheet"
         | 
| 65 | 
            -
                - else
         | 
| 66 | 
            -
                  link href="#{revealjsdir}/lib/css/zenburn.css" rel="stylesheet"
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                - syntax_hl = self.syntax_highlighter
         | 
| 53 | 
            +
                - if syntax_hl && (syntax_hl.docinfo? :head)
         | 
| 54 | 
            +
                  =syntax_hl.docinfo :head, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/'
         | 
| 67 55 | 
             
                / If the query includes 'print-pdf', use the PDF print sheet
         | 
| 68 56 | 
             
                javascript:
         | 
| 69 57 | 
             
                  var link = document.createElement( 'link' );
         | 
| @@ -94,6 +82,7 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 94 82 | 
             
                        data-background-video=bg_video
         | 
| 95 83 | 
             
                        data-background-video-loop=(attr 'title-slide-background-video-loop')
         | 
| 96 84 | 
             
                        data-background-video-muted=(attr 'title-slide-background-video-muted')
         | 
| 85 | 
            +
                        data-background-opacity=(attr "background-opacity")
         | 
| 97 86 | 
             
                        data-background-iframe=(attr 'title-slide-background-iframe')
         | 
| 98 87 | 
             
                        data-background-color=(attr 'title-slide-background-color')
         | 
| 99 88 | 
             
                        data-background-repeat=(attr 'title-slide-background-repeat')
         | 
| @@ -229,6 +218,12 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 229 218 | 
             
                    minScale: #{attr 'revealjs_minscale', 0.2},
         | 
| 230 219 | 
             
                    maxScale: #{attr 'revealjs_maxscale', 1.5},
         | 
| 231 220 |  | 
| 221 | 
            +
                    // PDF Export Options
         | 
| 222 | 
            +
                    // Put each fragment on a separate page
         | 
| 223 | 
            +
                    pdfSeparateFragments: #{to_boolean(attr 'revealjs_pdfseparatefragments', true)},
         | 
| 224 | 
            +
                    // For slides that do not fit on a page, max number of pages
         | 
| 225 | 
            +
                    pdfMaxPagesPerSlide: #{attr 'revealjs_pdfmaxpagesperslide', 1},
         | 
| 226 | 
            +
             | 
| 232 227 | 
             
                    // Optional libraries used to extend on reveal.js
         | 
| 233 228 | 
             
                    dependencies: [
         | 
| 234 229 | 
             
                        { src: '#{revealjsdir}/lib/js/classList.js', condition: function() { return !document.body.classList; } },
         | 
| @@ -244,5 +239,8 @@ html lang=(attr :lang, 'en' unless attr? :nolang) | |
| 244 239 | 
             
                    #{(attr? 'revealjs_plugins_configuration') ? File.read(attr('revealjs_plugins_configuration', '')) : ""}
         | 
| 245 240 |  | 
| 246 241 | 
             
                  });
         | 
| 242 | 
            +
                - if syntax_hl && (syntax_hl.docinfo? :footer)
         | 
| 243 | 
            +
                  =syntax_hl.docinfo :footer, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/'
         | 
| 244 | 
            +
             | 
| 247 245 | 
             
                - unless (docinfo_content = (docinfo :footer, '.html')).empty?
         | 
| 248 246 | 
             
                  =docinfo_content
         |