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
|