asciidoctor-revealjs 2.0.1 → 3.0.0.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|