asciidoctor-html5s 0.3.0 → 0.4.0

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.
@@ -5,6 +5,6 @@
5
5
  ol.toc-list class="level-#{slevel}"
6
6
  - sections.each do |sec|
7
7
  li
8
- a href="##{sec.id}" =section_title sec
8
+ a href="##{sec.id}" =(section_title sec, drop_anchors: true)
9
9
  - if (sec.level < toclevels) && (child_toc = converter.convert sec, 'outline')
10
10
  = child_toc
@@ -1,7 +1,7 @@
1
1
  = block_with_caption :top, :class=>'table-block'
2
2
  table [
3
- class=["frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", spread?]
4
- style=style_value(width: ("#{attr :tablepcwidth}%" if !autowidth? && !spread? || (local_attr :width)),
3
+ class=["frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", stretch?, ("stripes-#{attr :stripes}" if attr? :stripes)]
4
+ style=style_value(width: ("#{attr :tablepcwidth}%" if !autowidth? && !stretch? || (local_attr :width)),
5
5
  float: (attr :float)) ]
6
6
  - unless (attr :rowcount).zero?
7
7
  colgroup
@@ -10,7 +10,7 @@
10
10
  col
11
11
  - else
12
12
  - columns.each do |col|
13
- col style="width: #{col.attr :colpcwidth}%;"
13
+ col style=style_value(width: ("#{col.attr :colpcwidth}%" if !autowidth? col))
14
14
  - [:head, :foot, :body].reject { |tblsec| rows[tblsec].empty? }.each do |tblsec|
15
15
  <t#{tblsec}>
16
16
  - rows[tblsec].each do |row|
@@ -27,13 +27,11 @@
27
27
  - case cell.style
28
28
  - when :asciidoc
29
29
  =cell.content
30
- - when :verse
31
- .verse: pre =cell.text
32
30
  - when :literal
33
31
  .literal: pre =cell.text
34
32
  - else
35
- - if cell.content.one?
36
- =cell.content.first
33
+ - if (content = cell.content).one?
34
+ =content.first
37
35
  - else
38
- - cell.content.each do |text|
36
+ - content.each do |text|
39
37
  p =text
@@ -3,9 +3,9 @@
3
3
  ul class=(checklist || style)
4
4
  - items.each do |item|
5
5
  - if checklist && (item.attr? :checkbox)
6
- li.task-list-item
6
+ li.task-list-item id=item.id class=item.role
7
7
  input.task-list-item-checkbox type='checkbox' disabled=true checked=(item.attr? :checked)
8
8
  =<item.text
9
9
  - else
10
- li
10
+ li id=item.id class=item.role
11
11
  =(print_item_content item)
@@ -13,6 +13,7 @@
13
13
  height=(attr :height)
14
14
  poster=(media_uri(attr :poster) if attr? :poster)
15
15
  autoplay=(option? 'autoplay')
16
+ muted=(option? 'muted')
16
17
  controls=!(option? 'nocontrols')
17
18
  loop=(option? 'loop') ]
18
19
  | Your browser does not support the video tag.
@@ -3,6 +3,10 @@ require 'asciidoctor/html5s/converter'
3
3
  require 'asciidoctor/html5s/replacements'
4
4
  require 'asciidoctor/html5s/attached_colist_treeprocessor'
5
5
 
6
+ if defined? Asciidoctor::SyntaxHighlighter
7
+ require 'asciidoctor/html5s/html_pipeline_highlighter'
8
+ end
9
+
6
10
  unless RUBY_PLATFORM == 'opal'
7
11
  require 'asciidoctor/extensions'
8
12
 
@@ -9,6 +9,8 @@ module Asciidoctor::Html5s
9
9
  class AttachedColistTreeprocessor < ::Asciidoctor::Extensions::Treeprocessor
10
10
 
11
11
  def process(document)
12
+ return if document.backend != 'html5s'
13
+
12
14
  document.find_by(context: :colist) do |colist|
13
15
  blocks = colist.parent.blocks
14
16
  colist_idx = blocks.find_index(colist)
@@ -6,7 +6,6 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
6
6
  #------------------------------ Begin of Helpers ------------------------------#
7
7
 
8
8
  require 'asciidoctor/html5s'
9
- require 'asciidoctor/html5s/logger'
10
9
  require 'date' unless RUBY_PLATFORM == 'opal'
11
10
 
12
11
  # Add custom functions to this module that you want to use in your Slim
@@ -15,10 +14,11 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
15
14
  module Helpers
16
15
 
17
16
  # URIs of external assets.
18
- FONT_AWESOME_URI = '//cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css'
19
- HIGHLIGHTJS_BASE_URI = '//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/'
20
- KATEX_CSS_URI = '//cdn.jsdelivr.net/npm/katex@0.9.0/dist/katex.min.css'
21
- KATEX_JS_URI = '//cdn.jsdelivr.net/npm/katex@0.9.0/dist/katex.min.js'
17
+ CDN_BASE_URI = 'https://cdnjs.cloudflare.com/ajax/libs' # for highlighters in Asciidoctor >=2.0.0
18
+ FONT_AWESOME_URI = 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css'
19
+ HIGHLIGHTJS_BASE_URI = 'https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.15.1/build/'
20
+ KATEX_CSS_URI = 'https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css'
21
+ KATEX_JS_URI = 'https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js'
22
22
 
23
23
  # Defaults
24
24
  DEFAULT_HIGHLIGHTJS_THEME = 'github'
@@ -60,7 +60,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
60
60
 
61
61
  # @return [Logger]
62
62
  def log
63
- @_html5s_logger ||= ::Asciidoctor::Html5s::Logging.default_logger
63
+ ::Asciidoctor::LoggerManager.logger
64
64
  end
65
65
 
66
66
  ##
@@ -383,15 +383,29 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
383
383
  # Returns the captioned section's title, optionally numbered.
384
384
  #
385
385
  # @param sec [Asciidoctor::Section] the section node (default: self).
386
+ # @param drop_anchors [Boolean] Remove +<a>+ tags from the title?
386
387
  # @return [String]
387
388
  #
388
- def section_title(sec = self)
389
- sectnumlevels = document.attr(:sectnumlevels, DEFAULT_SECTNUMLEVELS).to_i
389
+ def section_title(sec = self, drop_anchors: false)
390
+ title =
391
+ if sec.caption
392
+ sec.captioned_title
393
+ elsif sec.numbered && sec.level <= document.attr(:sectnumlevels, DEFAULT_SECTNUMLEVELS).to_i
394
+ if sec.level < 2 && document.doctype == 'book' && %w[chapter part].include?(sec.sectname)
395
+ signifier = document.attr("#{sec.sectname}-signifier")
396
+ sectnum = sec.sectname == 'part' ? sec.sectnum(nil, ':') : sec.sectnum
397
+ "#{signifier&.+ ' '}#{sectnum} #{sec.title}"
398
+ else
399
+ "#{sec.sectnum} #{sec.title}"
400
+ end
401
+ else
402
+ sec.title
403
+ end
390
404
 
391
- if sec.numbered && !sec.caption && sec.level <= sectnumlevels
392
- [sec.sectnum, sec.captioned_title].join(' ')
405
+ if drop_anchors && title.include?('<a')
406
+ title.gsub(/<(?:a[^>+]+|\/a)>/, '')
393
407
  else
394
- sec.captioned_title
408
+ title
395
409
  end
396
410
  end
397
411
 
@@ -403,7 +417,12 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
403
417
  end
404
418
 
405
419
  def link_rel
406
- 'noopener' if option?('noopener') || attr(:window) == '_blank'
420
+ rel = [
421
+ ('nofollow' if option?('nofollow')),
422
+ ('noopener' if option?('noopener') || local_attr(:window) == '_blank')
423
+ ].compact
424
+
425
+ rel.empty? ? nil : rel.join(' ')
407
426
  end
408
427
 
409
428
  #--------------------------------------------------------
@@ -462,15 +481,19 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
462
481
  #
463
482
 
464
483
  ##
465
- # @return [String] a canonical name of the source-highlighter to be used as
466
- # a style class.
467
- def highlighter
468
- @_html5s_highlighter ||=
469
- case (highlighter = document.attr('source-highlighter'))
470
- when 'coderay'; 'CodeRay'
471
- when 'highlight.js'; 'highlightjs'
472
- else highlighter
473
- end
484
+ # See {Asciidoctor::SyntaxHighlighter#format}.
485
+ #
486
+ # @return [String, nil] a rendered HTML.
487
+ def formatted_source
488
+ hl = document.syntax_highlighter or return nil
489
+
490
+ opts = { nowrap: nowrap? }
491
+ if hl.highlight?
492
+ opts[:css_mode] = document.attr("#{hl.name}-css", :class).to_sym
493
+ opts[:style] = document.attr("#{hl.name}-style")
494
+ end
495
+
496
+ hl.format(self, source_lang, opts)
474
497
  end
475
498
 
476
499
  ##
@@ -488,6 +511,15 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
488
511
  local_attr :language, false
489
512
  end
490
513
 
514
+ # This is needed only for Asciidoctor <2.0.0.
515
+ def source_code_class
516
+ if document.attr? 'source-highlighter', 'highlightjs'
517
+ "language-#{source_lang || 'none'} hljs"
518
+ elsif source_lang
519
+ "language-#{source_lang}"
520
+ end
521
+ end
522
+
491
523
  #--------------------------------------------------------
492
524
  # block_open
493
525
  #
@@ -509,7 +541,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
509
541
  def partintro_allowed?
510
542
  if result = (level != 0 || parent.context != :section || document.doctype != 'book')
511
543
  log.warn "asciidoctor: ERROR: partintro block can only be used when doctype
512
- is book and it's a child of a book part. Excluding block content."
544
+ is book and must be a child of a book part. Excluding block content."
513
545
  end
514
546
  !result
515
547
  end
@@ -518,13 +550,13 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
518
550
  # block_table
519
551
  #
520
552
 
521
- def autowidth?
522
- option? :autowidth
553
+ def autowidth?(node = self)
554
+ node.option? :autowidth
523
555
  end
524
556
 
525
- def spread?
557
+ def stretch?
526
558
  if !autowidth? || local_attr?('width')
527
- 'spread' if attr? :tablepcwidth, 100
559
+ 'stretch' if attr? :tablepcwidth, 100
528
560
  end
529
561
  end
530
562
 
@@ -542,7 +574,8 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
542
574
  when :vimeo
543
575
  params = {
544
576
  autoplay: (1 if option? 'autoplay'),
545
- loop: (1 if option? 'loop')
577
+ loop: (1 if option? 'loop'),
578
+ muted: (1 if option? 'muted')
546
579
  }
547
580
  start_anchor = "#at=#{attr :start}" if attr? :start
548
581
  "//player.vimeo.com/video/#{attr :target}#{start_anchor}#{url_query params}"
@@ -556,6 +589,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
556
589
  list: (attr :list, list_id),
557
590
  autoplay: (1 if option? 'autoplay'),
558
591
  loop: (1 if option? 'loop'),
592
+ muted: (1 if option? 'muted'),
559
593
  controls: (0 if option? 'nocontrols')
560
594
  }
561
595
  "//www.youtube.com/embed/#{video_id}#{url_query params}"
@@ -610,10 +644,9 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
610
644
  stylesheet = attr :stylesheet
611
645
  stylesdir = attr :stylesdir, ''
612
646
  default_style = ::Asciidoctor::DEFAULT_STYLESHEET_KEYS.include? stylesheet
613
- linkcss = attr?(:linkcss) || safe >= ::Asciidoctor::SafeMode::SECURE
614
647
  ss = ::Asciidoctor::Stylesheets.instance
615
648
 
616
- if linkcss
649
+ if attr?(:linkcss)
617
650
  path = default_style ? ::Asciidoctor::DEFAULT_STYLESHEET_NAME : stylesheet
618
651
  styles << { href: [stylesdir, path] }
619
652
  elsif default_style
@@ -636,23 +669,15 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
636
669
  scripts << { text: KATEX_RENDER_CODE }
637
670
  end
638
671
 
639
- case attr 'source-highlighter'
640
- when 'coderay'
641
- if attr('coderay-css', 'class') == 'class'
642
- if linkcss
643
- styles << { href: [stylesdir, ss.coderay_stylesheet_name] }
644
- else
645
- styles << { text: ss.coderay_stylesheet_data }
646
- end
647
- end
648
-
649
- when 'highlightjs'
650
- hjs_base = attr :highlightjsdir, HIGHLIGHTJS_BASE_URI
651
- hjs_theme = attr 'highlightjs-theme', DEFAULT_HIGHLIGHTJS_THEME
672
+ if !defined?(::Asciidoctor::SyntaxHighlighter) # Asciidoctor <2.0.0
673
+ if attr? 'source-highlighter', 'highlightjs'
674
+ hjs_base = attr :highlightjsdir, HIGHLIGHTJS_BASE_URI
675
+ hjs_theme = attr 'highlightjs-theme', DEFAULT_HIGHLIGHTJS_THEME
652
676
 
653
- scripts << { src: [hjs_base, 'highlight.min.js'] }
654
- scripts << { text: 'hljs.initHighlightingOnLoad()' }
655
- styles << { href: [hjs_base, "styles/#{hjs_theme}.min.css"] }
677
+ scripts << { src: [hjs_base, 'highlight.min.js'] }
678
+ scripts << { text: 'hljs.initHighlightingOnLoad()' }
679
+ styles << { href: [hjs_base, "styles/#{hjs_theme}.min.css"] }
680
+ end
656
681
  end
657
682
 
658
683
  styles.each do |item|
@@ -671,6 +696,15 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
671
696
  end
672
697
  end
673
698
 
699
+ if defined?(::Asciidoctor::SyntaxHighlighter) && (hl = syntax_highlighter) # Asciidoctor >=2.0.0
700
+ # XXX: We don't care about the declared location and put all to head.
701
+ [:head, :footer].each do |location|
702
+ if hl.docinfo?(location)
703
+ tags << hl.docinfo(location, self, cdn_base_url: CDN_BASE_URI, linkcss: attr?(:linkcss))
704
+ end
705
+ end
706
+ end
707
+
674
708
  tags.join("\n")
675
709
  end
676
710
 
@@ -685,27 +719,21 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
685
719
  text
686
720
  elsif (path = local_attr :path)
687
721
  path
688
- elsif document.respond_to? :catalog # Asciidoctor >=1.5.6
722
+ else
689
723
  ref = document.catalog[:refs][attr :refid]
690
724
  if ref.kind_of? Asciidoctor::AbstractNode
691
- ref.xreftext((@_html5s_xrefstyle ||= document.attributes['xrefstyle']))
725
+ ref.xreftext(attr(:xrefstyle, nil, true))
692
726
  end
693
- else # Asciidoctor < 1.5.6
694
- document.references[:ids][attr :refid || target]
695
727
  end
696
728
  (str || "[#{attr :refid}]").tr_s("\n", ' ')
697
729
  end
698
730
 
699
731
  # @return [String, nil] text of the bibref anchor, or +nil+ if not found.
700
732
  def bibref_text
701
- if document.respond_to? :catalog # Asciidoctor >=1.5.6
702
- if ::Asciidoctor::VERSION[0] == '1'
703
- text
704
- else # Asciidoctor >= 2.0.0
705
- "[#{reftext || id}]"
706
- end
707
- else
708
- "[#{target}]"
733
+ if ::Asciidoctor::VERSION[0] == '1'
734
+ text
735
+ else # Asciidoctor >= 2.0.0
736
+ "[#{reftext || id}]"
709
737
  end
710
738
  end
711
739
 
@@ -850,13 +878,17 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
850
878
  node.instance_eval do
851
879
  _buf = []; _slim_controls1 = block_with_caption :top, :class=>'listing-block' do; _slim_controls2 = [];
852
880
  ; if style == 'source';
853
- ; if highlighter == 'html-pipeline';
881
+ ; highlighter = document.attr('source-highlighter');
882
+ ;
883
+ ; if defined?(::Asciidoctor::SyntaxHighlighter) && document.syntax_highlighter;
884
+ ; _slim_controls2 << (formatted_source);
885
+ ;
886
+ ; elsif highlighter == 'html-pipeline';
854
887
  ; _slim_controls2 << ("<pre><code"); _slim_codeattributes1 = source_lang; if _slim_codeattributes1; if _slim_codeattributes1 == true; _slim_controls2 << (" data-lang"); else; _slim_controls2 << (" data-lang=\""); _slim_controls2 << (_slim_codeattributes1); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">"); _slim_controls2 << (content);
855
888
  ; _slim_controls2 << ("</code></pre>"); else;
856
- ; unless highlighter == 'CodeRay';
857
- ; code_class = "language-#{source_lang}" if source_lang;
858
- ; end; _slim_controls2 << ("<pre"); _temple_html_attributeremover1 = []; _slim_codeattributes2 = [highlighter, 'highlight', ('linenums' if attr? :linenums), nowrap?]; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_controls2 << ("><code");
859
- ; _temple_html_attributeremover2 = []; _slim_codeattributes3 = code_class; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes3.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes3); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover2); _slim_controls2 << ("\""); end; _slim_codeattributes4 = source_lang; if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" data-lang"); else; _slim_controls2 << (" data-lang=\""); _slim_controls2 << (_slim_codeattributes4); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">"); _slim_controls2 << (content);
889
+ ;
890
+ ; _slim_controls2 << ("<pre"); _temple_html_attributeremover1 = []; _slim_codeattributes2 = [highlighter, 'highlight', ('linenums' if attr? :linenums), nowrap?]; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_controls2 << ("><code");
891
+ ; _temple_html_attributeremover2 = []; _slim_codeattributes3 = source_code_class; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes3.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes3); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover2); _slim_controls2 << ("\""); end; _slim_codeattributes4 = source_lang; if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" data-lang"); else; _slim_controls2 << (" data-lang=\""); _slim_controls2 << (_slim_codeattributes4); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">"); _slim_controls2 << (content);
860
892
  ; _slim_controls2 << ("</code></pre>"); end; else;
861
893
  ; _slim_controls2 << ("<pre"); _temple_html_attributeremover3 = []; _slim_codeattributes5 = nowrap?; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover3 << (_slim_codeattributes5.join(" ")); else; _temple_html_attributeremover3 << (_slim_codeattributes5); end; _temple_html_attributeremover3 = _temple_html_attributeremover3.join(""); if !_temple_html_attributeremover3.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover3); _slim_controls2 << ("\""); end; _slim_controls2 << (">"); _slim_controls2 << (content);
862
894
  ; _slim_controls2 << ("</pre>");
@@ -920,7 +952,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
920
952
  _buf = []; _slim_controls1 = block_with_title :class=>['olist', style] do; _slim_controls2 = [];
921
953
  ; _slim_controls2 << ("<ol"); _temple_html_attributeremover1 = []; _slim_codeattributes1 = style; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes1.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes1); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_codeattributes2 = (attr :start); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" start"); else; _slim_controls2 << (" start=\""); _slim_controls2 << (_slim_codeattributes2); _slim_controls2 << ("\""); end; end; _slim_codeattributes3 = list_marker_keyword; if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" type"); else; _slim_controls2 << (" type=\""); _slim_controls2 << (_slim_codeattributes3); _slim_controls2 << ("\""); end; end; _slim_codeattributes4 = (option? 'reversed'); if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" reversed"); else; _slim_controls2 << (" reversed=\""); _slim_controls2 << (_slim_codeattributes4); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">");
922
954
  ; items.each do |item|;
923
- ; _slim_controls2 << ("<li>"); _slim_controls2 << ((print_item_content item));
955
+ ; _slim_controls2 << ("<li"); _slim_codeattributes5 = item.id; if _slim_codeattributes5; if _slim_codeattributes5 == true; _slim_controls2 << (" id"); else; _slim_controls2 << (" id=\""); _slim_controls2 << (_slim_codeattributes5); _slim_controls2 << ("\""); end; end; _temple_html_attributeremover2 = []; _slim_codeattributes6 = item.role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes6.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes6); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover2); _slim_controls2 << ("\""); end; _slim_controls2 << (">"); _slim_controls2 << ((print_item_content item));
924
956
  ; _slim_controls2 << ("</li>"); end; _slim_controls2 << ("</ol>"); _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); _buf = _buf.join("")
925
957
  end
926
958
  end
@@ -983,7 +1015,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
983
1015
  _buf = []; _slim_controls1 = block_with_caption :top, :class=>'table-block' do; _slim_controls2 = [];
984
1016
  ;
985
1017
  ;
986
- ; _slim_controls2 << ("<table"); _temple_html_attributeremover1 = []; _slim_codeattributes1 = ["frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", spread?]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes1.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes1); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_codeattributes2 = style_value(width: ("#{attr :tablepcwidth}%" if !autowidth? && !spread? || (local_attr :width)),
1018
+ ; _slim_controls2 << ("<table"); _temple_html_attributeremover1 = []; _slim_codeattributes1 = ["frame-#{attr :frame, 'all'}", "grid-#{attr :grid, 'all'}", stretch?, ("stripes-#{attr :stripes}" if attr? :stripes)]; if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes1.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes1); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_codeattributes2 = style_value(width: ("#{attr :tablepcwidth}%" if !autowidth? && !stretch? || (local_attr :width)),
987
1019
  float: (attr :float)); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" style"); else; _slim_controls2 << (" style=\""); _slim_controls2 << (_slim_codeattributes2); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">");
988
1020
  ; unless (attr :rowcount).zero?;
989
1021
  ; _slim_controls2 << ("<colgroup>");
@@ -992,7 +1024,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
992
1024
  ; _slim_controls2 << ("<col>");
993
1025
  ; end; else;
994
1026
  ; columns.each do |col|;
995
- ; _slim_controls2 << ("<col style=\"width: "); _slim_controls2 << (col.attr :colpcwidth); _slim_controls2 << ("%;\">");
1027
+ ; _slim_controls2 << ("<col"); _slim_codeattributes3 = style_value(width: ("#{col.attr :colpcwidth}%" if !autowidth? col)); if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" style"); else; _slim_controls2 << (" style=\""); _slim_controls2 << (_slim_codeattributes3); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">");
996
1028
  ; end; end; _slim_controls2 << ("</colgroup>"); [:head, :foot, :body].reject { |tblsec| rows[tblsec].empty? }.each do |tblsec|;
997
1029
  ; _slim_controls2 << ("<t"); _slim_controls2 << (tblsec); _slim_controls2 << (">");
998
1030
  ; rows[tblsec].each do |row|;
@@ -1009,15 +1041,13 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1009
1041
  ; case cell.style;
1010
1042
  ; when :asciidoc;
1011
1043
  ; _slim_controls4 << (cell.content);
1012
- ; when :verse;
1013
- ; _slim_controls4 << ("<div class=\"verse\"><pre>"); _slim_controls4 << (cell.text);
1014
- ; _slim_controls4 << ("</pre></div>"); when :literal;
1044
+ ; when :literal;
1015
1045
  ; _slim_controls4 << ("<div class=\"literal\"><pre>"); _slim_controls4 << (cell.text);
1016
1046
  ; _slim_controls4 << ("</pre></div>"); else;
1017
- ; if cell.content.one?;
1018
- ; _slim_controls4 << (cell.content.first);
1047
+ ; if (content = cell.content).one?;
1048
+ ; _slim_controls4 << (content.first);
1019
1049
  ; else;
1020
- ; cell.content.each do |text|;
1050
+ ; content.each do |text|;
1021
1051
  ; _slim_controls4 << ("<p>"); _slim_controls4 << (text);
1022
1052
  ; _slim_controls4 << ("</p>"); end; end; end; end; _slim_controls4 = _slim_controls4.join(""); end; _slim_controls2 << (_slim_controls3); end; _slim_controls2 << ("</tr>"); end; end; end; _slim_controls2 << ("</table>"); _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); _buf = _buf.join("")
1023
1053
  end
@@ -1057,16 +1087,14 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1057
1087
  node.instance_eval do
1058
1088
  _buf = []; case type;
1059
1089
  ; when :xref;
1060
- ; _buf << ("<a"); _slim_codeattributes1 = target; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" href"); else; _buf << (" href=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _buf << (">"); _buf << (xref_text);
1090
+ ; _buf << ("<a"); _slim_codeattributes1 = target; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" href"); else; _buf << (" href=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes2 = role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _buf << (">"); _buf << (xref_text);
1061
1091
  ; _buf << ("</a>"); when :ref;
1062
- ;
1063
- ; _buf << ("<a"); _slim_codeattributes2 = (id || target); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes2); _buf << ("\""); end; end; _buf << (" aria-hidden=\"true\"></a>");
1092
+ ; _buf << ("<a"); _slim_codeattributes3 = id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _buf << (" aria-hidden=\"true\"></a>");
1064
1093
  ; when :bibref;
1065
- ;
1066
- ; _buf << ("<a"); _slim_codeattributes3 = (id || target); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _buf << (" aria-hidden=\"true\"></a>");
1094
+ ; _buf << ("<a"); _slim_codeattributes4 = id; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes4); _buf << ("\""); end; end; _buf << (" aria-hidden=\"true\"></a>");
1067
1095
  ; _buf << (bibref_text);
1068
1096
  ; else;
1069
- ; _buf << ("<a"); _slim_codeattributes4 = id; if _slim_codeattributes4; if _slim_codeattributes4 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes4); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes5 = role; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes5.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes5); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _slim_codeattributes6 = target; if _slim_codeattributes6; if _slim_codeattributes6 == true; _buf << (" href"); else; _buf << (" href=\""); _buf << (_slim_codeattributes6); _buf << ("\""); end; end; _slim_codeattributes7 = (attr :window); if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" target"); else; _buf << (" target=\""); _buf << (_slim_codeattributes7); _buf << ("\""); end; end; _slim_codeattributes8 = link_rel; if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" rel"); else; _buf << (" rel=\""); _buf << (_slim_codeattributes8); _buf << ("\""); end; end; _slim_codeattributes9 = (attr :title); if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" title"); else; _buf << (" title=\""); _buf << (_slim_codeattributes9); _buf << ("\""); end; end; _buf << (">"); _buf << (text);
1097
+ ; _buf << ("<a"); _slim_codeattributes5 = id; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes5); _buf << ("\""); end; end; _temple_html_attributeremover2 = []; _slim_codeattributes6 = role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes6.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes6); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover2); _buf << ("\""); end; _slim_codeattributes7 = target; if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" href"); else; _buf << (" href=\""); _buf << (_slim_codeattributes7); _buf << ("\""); end; end; _slim_codeattributes8 = (attr :window); if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" target"); else; _buf << (" target=\""); _buf << (_slim_codeattributes8); _buf << ("\""); end; end; _slim_codeattributes9 = link_rel; if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" rel"); else; _buf << (" rel=\""); _buf << (_slim_codeattributes9); _buf << ("\""); end; end; _slim_codeattributes10 = (attr :title); if _slim_codeattributes10; if _slim_codeattributes10 == true; _buf << (" title"); else; _buf << (" title=\""); _buf << (_slim_codeattributes10); _buf << ("\""); end; end; _buf << (">"); _buf << (text);
1070
1098
  ; _buf << ("</a>"); end; _buf = _buf.join("")
1071
1099
  end
1072
1100
  end
@@ -1106,34 +1134,32 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1106
1134
  def inline_quoted(node, opts = {})
1107
1135
  node.extend(Helpers)
1108
1136
  node.instance_eval do
1109
- _buf = []; unless id.nil?;
1110
- ; _buf << ("<a"); _slim_codeattributes1 = id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _buf << (" aria-hidden=\"true\"></a>");
1111
- ; end; case type;
1137
+ _buf = []; case type;
1112
1138
  ; when :emphasis;
1113
- ; _buf << ("<em"); _temple_html_attributeremover1 = []; _slim_codeattributes2 = role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _buf << (">"); _buf << (text);
1139
+ ; _buf << ("<em"); _slim_codeattributes1 = id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes2 = role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _buf << (">"); _buf << (text);
1114
1140
  ; _buf << ("</em>"); when :strong;
1115
- ; _buf << ("<strong"); _temple_html_attributeremover2 = []; _slim_codeattributes3 = role; if Array === _slim_codeattributes3; _slim_codeattributes3 = _slim_codeattributes3.flatten; _slim_codeattributes3.map!(&:to_s); _slim_codeattributes3.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes3.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes3); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover2); _buf << ("\""); end; _buf << (">"); _buf << (text);
1141
+ ; _buf << ("<strong"); _slim_codeattributes3 = id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _temple_html_attributeremover2 = []; _slim_codeattributes4 = role; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover2 << (_slim_codeattributes4.join(" ")); else; _temple_html_attributeremover2 << (_slim_codeattributes4); end; _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover2); _buf << ("\""); end; _buf << (">"); _buf << (text);
1116
1142
  ; _buf << ("</strong>"); when :monospaced;
1117
- ; _buf << ("<code"); _temple_html_attributeremover3 = []; _slim_codeattributes4 = role; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover3 << (_slim_codeattributes4.join(" ")); else; _temple_html_attributeremover3 << (_slim_codeattributes4); end; _temple_html_attributeremover3 = _temple_html_attributeremover3.join(""); if !_temple_html_attributeremover3.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover3); _buf << ("\""); end; _buf << (">"); _buf << (text);
1143
+ ; _buf << ("<code"); _slim_codeattributes5 = id; if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes5); _buf << ("\""); end; end; _temple_html_attributeremover3 = []; _slim_codeattributes6 = role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover3 << (_slim_codeattributes6.join(" ")); else; _temple_html_attributeremover3 << (_slim_codeattributes6); end; _temple_html_attributeremover3 = _temple_html_attributeremover3.join(""); if !_temple_html_attributeremover3.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover3); _buf << ("\""); end; _buf << (">"); _buf << (text);
1118
1144
  ; _buf << ("</code>"); when :superscript;
1119
- ; _buf << ("<sup"); _temple_html_attributeremover4 = []; _slim_codeattributes5 = role; if Array === _slim_codeattributes5; _slim_codeattributes5 = _slim_codeattributes5.flatten; _slim_codeattributes5.map!(&:to_s); _slim_codeattributes5.reject!(&:empty?); _temple_html_attributeremover4 << (_slim_codeattributes5.join(" ")); else; _temple_html_attributeremover4 << (_slim_codeattributes5); end; _temple_html_attributeremover4 = _temple_html_attributeremover4.join(""); if !_temple_html_attributeremover4.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover4); _buf << ("\""); end; _buf << (">"); _buf << (text);
1145
+ ; _buf << ("<sup"); _slim_codeattributes7 = id; if _slim_codeattributes7; if _slim_codeattributes7 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes7); _buf << ("\""); end; end; _temple_html_attributeremover4 = []; _slim_codeattributes8 = role; if Array === _slim_codeattributes8; _slim_codeattributes8 = _slim_codeattributes8.flatten; _slim_codeattributes8.map!(&:to_s); _slim_codeattributes8.reject!(&:empty?); _temple_html_attributeremover4 << (_slim_codeattributes8.join(" ")); else; _temple_html_attributeremover4 << (_slim_codeattributes8); end; _temple_html_attributeremover4 = _temple_html_attributeremover4.join(""); if !_temple_html_attributeremover4.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover4); _buf << ("\""); end; _buf << (">"); _buf << (text);
1120
1146
  ; _buf << ("</sup>"); when :subscript;
1121
- ; _buf << ("<sub"); _temple_html_attributeremover5 = []; _slim_codeattributes6 = role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover5 << (_slim_codeattributes6.join(" ")); else; _temple_html_attributeremover5 << (_slim_codeattributes6); end; _temple_html_attributeremover5 = _temple_html_attributeremover5.join(""); if !_temple_html_attributeremover5.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover5); _buf << ("\""); end; _buf << (">"); _buf << (text);
1147
+ ; _buf << ("<sub"); _slim_codeattributes9 = id; if _slim_codeattributes9; if _slim_codeattributes9 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes9); _buf << ("\""); end; end; _temple_html_attributeremover5 = []; _slim_codeattributes10 = role; if Array === _slim_codeattributes10; _slim_codeattributes10 = _slim_codeattributes10.flatten; _slim_codeattributes10.map!(&:to_s); _slim_codeattributes10.reject!(&:empty?); _temple_html_attributeremover5 << (_slim_codeattributes10.join(" ")); else; _temple_html_attributeremover5 << (_slim_codeattributes10); end; _temple_html_attributeremover5 = _temple_html_attributeremover5.join(""); if !_temple_html_attributeremover5.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover5); _buf << ("\""); end; _buf << (">"); _buf << (text);
1122
1148
  ; _buf << ("</sub>"); when :mark;
1123
- ; _buf << ("<mark"); _temple_html_attributeremover6 = []; _slim_codeattributes7 = role; if Array === _slim_codeattributes7; _slim_codeattributes7 = _slim_codeattributes7.flatten; _slim_codeattributes7.map!(&:to_s); _slim_codeattributes7.reject!(&:empty?); _temple_html_attributeremover6 << (_slim_codeattributes7.join(" ")); else; _temple_html_attributeremover6 << (_slim_codeattributes7); end; _temple_html_attributeremover6 = _temple_html_attributeremover6.join(""); if !_temple_html_attributeremover6.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover6); _buf << ("\""); end; _buf << (">"); _buf << (text);
1149
+ ; _buf << ("<mark"); _slim_codeattributes11 = id; if _slim_codeattributes11; if _slim_codeattributes11 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes11); _buf << ("\""); end; end; _temple_html_attributeremover6 = []; _slim_codeattributes12 = role; if Array === _slim_codeattributes12; _slim_codeattributes12 = _slim_codeattributes12.flatten; _slim_codeattributes12.map!(&:to_s); _slim_codeattributes12.reject!(&:empty?); _temple_html_attributeremover6 << (_slim_codeattributes12.join(" ")); else; _temple_html_attributeremover6 << (_slim_codeattributes12); end; _temple_html_attributeremover6 = _temple_html_attributeremover6.join(""); if !_temple_html_attributeremover6.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover6); _buf << ("\""); end; _buf << (">"); _buf << (text);
1124
1150
  ; _buf << ("</mark>"); when :double;
1125
- ; _slim_controls1 = html_tag_if role?, :span, :class=>role do; _slim_controls2 = [];
1151
+ ; _slim_controls1 = html_tag_if role? || id, :span, :id=>id, :class=>role do; _slim_controls2 = [];
1126
1152
  ; _slim_controls2 << ((double_quoted text));
1127
1153
  ; _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); when :single;
1128
- ; _slim_controls3 = html_tag_if role?, :span, :class=>role do; _slim_controls4 = [];
1154
+ ; _slim_controls3 = html_tag_if role? || id, :span, :id=>id, :class=>role do; _slim_controls4 = [];
1129
1155
  ; _slim_controls4 << ((single_quoted text));
1130
1156
  ; _slim_controls4 = _slim_controls4.join(""); end; _buf << (_slim_controls3); when :asciimath, :latexmath;
1131
- ; _buf << ("<span class=\"math\""); _slim_codeattributes8 = stem_lang; if _slim_codeattributes8; if _slim_codeattributes8 == true; _buf << (" data-lang"); else; _buf << (" data-lang=\""); _buf << (_slim_codeattributes8); _buf << ("\""); end; end; _buf << (">"); _buf << ((delimit_stem text, type));
1157
+ ; _buf << ("<span class=\"math\""); _slim_codeattributes13 = id; if _slim_codeattributes13; if _slim_codeattributes13 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes13); _buf << ("\""); end; end; _slim_codeattributes14 = stem_lang; if _slim_codeattributes14; if _slim_codeattributes14 == true; _buf << (" data-lang"); else; _buf << (" data-lang=\""); _buf << (_slim_codeattributes14); _buf << ("\""); end; end; _buf << (">"); _buf << ((delimit_stem text, type));
1132
1158
  ; _buf << ("</span>"); else;
1133
1159
  ; if role == 'line-through' || role == 'del';
1134
- ; _buf << ("<del>"); _buf << (text);
1160
+ ; _buf << ("<del"); _slim_codeattributes15 = id; if _slim_codeattributes15; if _slim_codeattributes15 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes15); _buf << ("\""); end; end; _buf << (">"); _buf << (text);
1135
1161
  ; _buf << ("</del>"); else;
1136
- ; _slim_controls5 = html_tag_if role?, :span, :class=>role do; _slim_controls6 = [];
1162
+ ; _slim_controls5 = html_tag_if role? || id, :span, :id=>id, :class=>role do; _slim_controls6 = [];
1137
1163
  ; _slim_controls6 << (text);
1138
1164
  ; _slim_controls6 = _slim_controls6.join(""); end; _buf << (_slim_controls5); end; end; _buf = _buf.join("")
1139
1165
  end
@@ -1199,7 +1225,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1199
1225
  def embedded(node, opts = {})
1200
1226
  node.extend(Helpers)
1201
1227
  node.instance_eval do
1202
- _buf = []; if !notitle && has_header?;
1228
+ _buf = []; if !notitle && header?;
1203
1229
  ; _buf << ("<h1"); _slim_codeattributes1 = id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _buf << (">"); _buf << (header.title);
1204
1230
  ; _buf << ("</h1>"); end; if node.sections? && (attr? :toc) && (attr 'toc-placement', 'auto') == 'auto';
1205
1231
  ; _buf << ("<nav id=\"toc\""); _temple_html_attributeremover1 = []; _slim_codeattributes2 = (document.attr 'toc-class', 'toc'); if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _buf << (" role=\"doc-toc\"><h2 id=\"toc-title\">");
@@ -1229,10 +1255,14 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1229
1255
  node.extend(Helpers)
1230
1256
  node.instance_eval do
1231
1257
  _buf = []; _buf << ("<!DOCTYPE html><html");
1232
- ; _slim_codeattributes1 = (attr :lang, 'en' unless attr? :nolang); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" lang"); else; _buf << (" lang=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _buf << ("><head><meta");
1258
+ ; _slim_codeattributes1 = (attr :lang, 'en' unless attr? :nolang); if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" lang"); else; _buf << (" lang=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _buf << (">");
1259
+ ;
1260
+ ;
1233
1261
  ;
1234
- ; _slim_codeattributes2 = (attr :encoding, 'UTF-8'); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" charset"); else; _buf << (" charset=\""); _buf << (_slim_codeattributes2); _buf << ("\""); end; end; _buf << ("><!--[if IE]><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><![endif]--><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"generator\" content=\"Asciidoctor ");
1235
1262
  ;
1263
+ ; document_content = content;
1264
+ ; _buf << ("<head><meta");
1265
+ ; _slim_codeattributes2 = (attr :encoding, 'UTF-8'); if _slim_codeattributes2; if _slim_codeattributes2 == true; _buf << (" charset"); else; _buf << (" charset=\""); _buf << (_slim_codeattributes2); _buf << ("\""); end; end; _buf << ("><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"generator\" content=\"Asciidoctor ");
1236
1266
  ;
1237
1267
  ;
1238
1268
  ; _buf << (attr 'asciidoctor-version'); _buf << ("\">");
@@ -1248,10 +1278,14 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1248
1278
  ; end; _buf << ("</head><body");
1249
1279
  ;
1250
1280
  ;
1251
- ; _slim_codeattributes3 = id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes4 = [(attr :doctype), ("#{attr 'toc-class'} toc-#{attr 'toc-position', 'left'}" if (attr? 'toc-class') && (attr? :toc) && (attr? 'toc-placement', 'auto'))]; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes4.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes4); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _slim_codeattributes5 = style_value(max_width: (attr 'max-width')); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" style"); else; _buf << (" style=\""); _buf << (_slim_codeattributes5); _buf << ("\""); end; end; _buf << (">");
1252
- ; unless noheader;
1281
+ ; _slim_codeattributes3 = id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes4 = [(attr :doctype),
1282
+ ("#{attr 'toc-class'} toc-#{attr 'toc-position', 'left'}" if (attr? 'toc-class') && (attr? :toc) && (attr? 'toc-placement', 'auto')),
1283
+ (attr :docrole) || (attr :role)]; if Array === _slim_codeattributes4; _slim_codeattributes4 = _slim_codeattributes4.flatten; _slim_codeattributes4.map!(&:to_s); _slim_codeattributes4.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes4.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes4); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _slim_codeattributes5 = style_value(max_width: (attr 'max-width')); if _slim_codeattributes5; if _slim_codeattributes5 == true; _buf << (" style"); else; _buf << (" style=\""); _buf << (_slim_codeattributes5); _buf << ("\""); end; end; _buf << (">");
1284
+ ; unless (docinfo_content = (docinfo :header)).empty?;
1285
+ ; _buf << (docinfo_content);
1286
+ ; end; unless noheader;
1253
1287
  ; _buf << ("<header>");
1254
- ; if has_header?;
1288
+ ; if header?;
1255
1289
  ; unless notitle;
1256
1290
  ; _buf << ("<h1>"); _buf << (header.title);
1257
1291
  ; _buf << ("</h1>"); end; if [:author, :revnumber, :revdate, :revremark].any? {|a| attr? a };
@@ -1283,7 +1317,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1283
1317
  ; _buf << (converter.convert document, 'outline');
1284
1318
  ; _buf << ("</nav>");
1285
1319
  ; end;
1286
- ; _buf << ("</header>"); end; _buf << ("<div id=\"content\">"); _buf << (content);
1320
+ ; _buf << ("</header>"); end; _buf << ("<div id=\"content\">"); _buf << (document_content);
1287
1321
  ; _buf << ("</div>"); unless !footnotes? || (attr? :nofootnotes);
1288
1322
  ; _buf << ("<section class=\"footnotes\" aria-label=\"Footnotes\" role=\"doc-endnotes\"><hr><ol class=\"footnotes\">");
1289
1323
  ;
@@ -1331,7 +1365,8 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1331
1365
  ;
1332
1366
  ;
1333
1367
  ;
1334
- ; _slim_controls2 << ("<video"); _slim_codeattributes6 = video_uri; if _slim_codeattributes6; if _slim_codeattributes6 == true; _slim_controls2 << (" src"); else; _slim_controls2 << (" src=\""); _slim_controls2 << (_slim_codeattributes6); _slim_controls2 << ("\""); end; end; _slim_codeattributes7 = (attr :width); if _slim_codeattributes7; if _slim_codeattributes7 == true; _slim_controls2 << (" width"); else; _slim_controls2 << (" width=\""); _slim_controls2 << (_slim_codeattributes7); _slim_controls2 << ("\""); end; end; _slim_codeattributes8 = (attr :height); if _slim_codeattributes8; if _slim_codeattributes8 == true; _slim_controls2 << (" height"); else; _slim_controls2 << (" height=\""); _slim_controls2 << (_slim_codeattributes8); _slim_controls2 << ("\""); end; end; _slim_codeattributes9 = (media_uri(attr :poster) if attr? :poster); if _slim_codeattributes9; if _slim_codeattributes9 == true; _slim_controls2 << (" poster"); else; _slim_controls2 << (" poster=\""); _slim_controls2 << (_slim_codeattributes9); _slim_controls2 << ("\""); end; end; _slim_codeattributes10 = (option? 'autoplay'); if _slim_codeattributes10; if _slim_codeattributes10 == true; _slim_controls2 << (" autoplay"); else; _slim_controls2 << (" autoplay=\""); _slim_controls2 << (_slim_codeattributes10); _slim_controls2 << ("\""); end; end; _slim_codeattributes11 = !(option? 'nocontrols'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _slim_controls2 << (" controls"); else; _slim_controls2 << (" controls=\""); _slim_controls2 << (_slim_codeattributes11); _slim_controls2 << ("\""); end; end; _slim_codeattributes12 = (option? 'loop'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _slim_controls2 << (" loop"); else; _slim_controls2 << (" loop=\""); _slim_controls2 << (_slim_codeattributes12); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">Your browser does not support the video tag.</video>");
1368
+ ;
1369
+ ; _slim_controls2 << ("<video"); _slim_codeattributes6 = video_uri; if _slim_codeattributes6; if _slim_codeattributes6 == true; _slim_controls2 << (" src"); else; _slim_controls2 << (" src=\""); _slim_controls2 << (_slim_codeattributes6); _slim_controls2 << ("\""); end; end; _slim_codeattributes7 = (attr :width); if _slim_codeattributes7; if _slim_codeattributes7 == true; _slim_controls2 << (" width"); else; _slim_controls2 << (" width=\""); _slim_controls2 << (_slim_codeattributes7); _slim_controls2 << ("\""); end; end; _slim_codeattributes8 = (attr :height); if _slim_codeattributes8; if _slim_codeattributes8 == true; _slim_controls2 << (" height"); else; _slim_controls2 << (" height=\""); _slim_controls2 << (_slim_codeattributes8); _slim_controls2 << ("\""); end; end; _slim_codeattributes9 = (media_uri(attr :poster) if attr? :poster); if _slim_codeattributes9; if _slim_codeattributes9 == true; _slim_controls2 << (" poster"); else; _slim_controls2 << (" poster=\""); _slim_controls2 << (_slim_codeattributes9); _slim_controls2 << ("\""); end; end; _slim_codeattributes10 = (option? 'autoplay'); if _slim_codeattributes10; if _slim_codeattributes10 == true; _slim_controls2 << (" autoplay"); else; _slim_controls2 << (" autoplay=\""); _slim_controls2 << (_slim_codeattributes10); _slim_controls2 << ("\""); end; end; _slim_codeattributes11 = (option? 'muted'); if _slim_codeattributes11; if _slim_codeattributes11 == true; _slim_controls2 << (" muted"); else; _slim_controls2 << (" muted=\""); _slim_controls2 << (_slim_codeattributes11); _slim_controls2 << ("\""); end; end; _slim_codeattributes12 = !(option? 'nocontrols'); if _slim_codeattributes12; if _slim_codeattributes12 == true; _slim_controls2 << (" controls"); else; _slim_controls2 << (" controls=\""); _slim_controls2 << (_slim_codeattributes12); _slim_controls2 << ("\""); end; end; _slim_codeattributes13 = (option? 'loop'); if _slim_codeattributes13; if _slim_codeattributes13 == true; _slim_controls2 << (" loop"); else; _slim_controls2 << (" loop=\""); _slim_controls2 << (_slim_codeattributes13); _slim_controls2 << ("\""); end; end; _slim_controls2 << (">Your browser does not support the video tag.</video>");
1335
1370
  ;
1336
1371
  ; end; _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); _buf = _buf.join("")
1337
1372
  end
@@ -1345,11 +1380,11 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1345
1380
  ; _slim_controls2 << ("<ul"); _temple_html_attributeremover1 = []; _slim_codeattributes1 = (checklist || style); if Array === _slim_codeattributes1; _slim_codeattributes1 = _slim_codeattributes1.flatten; _slim_codeattributes1.map!(&:to_s); _slim_codeattributes1.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes1.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes1); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover1); _slim_controls2 << ("\""); end; _slim_controls2 << (">");
1346
1381
  ; items.each do |item|;
1347
1382
  ; if checklist && (item.attr? :checkbox);
1348
- ; _slim_controls2 << ("<li class=\"task-list-item\"><input class=\"task-list-item-checkbox\" type=\"checkbox\" disabled");
1349
- ; _slim_codeattributes2 = (item.attr? :checked); if _slim_codeattributes2; if _slim_codeattributes2 == true; _slim_controls2 << (" checked"); else; _slim_controls2 << (" checked=\""); _slim_controls2 << (_slim_codeattributes2); _slim_controls2 << ("\""); end; end; _slim_controls2 << ("> ");
1383
+ ; _slim_controls2 << ("<li"); _temple_html_attributeremover2 = []; _temple_html_attributemerger1 = []; _temple_html_attributemerger1[0] = "task-list-item"; _temple_html_attributemerger1[1] = []; _slim_codeattributes2 = item.role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributemerger1[1] << (_slim_codeattributes2.join(" ")); else; _temple_html_attributemerger1[1] << (_slim_codeattributes2); end; _temple_html_attributemerger1[1] = _temple_html_attributemerger1[1].join(""); _temple_html_attributeremover2 << (_temple_html_attributemerger1.reject(&:empty?).join(" ")); _temple_html_attributeremover2 = _temple_html_attributeremover2.join(""); if !_temple_html_attributeremover2.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover2); _slim_controls2 << ("\""); end; _slim_codeattributes3 = item.id; if _slim_codeattributes3; if _slim_codeattributes3 == true; _slim_controls2 << (" id"); else; _slim_controls2 << (" id=\""); _slim_controls2 << (_slim_codeattributes3); _slim_controls2 << ("\""); end; end; _slim_controls2 << ("><input class=\"task-list-item-checkbox\" type=\"checkbox\" disabled");
1384
+ ; _slim_codeattributes4 = (item.attr? :checked); if _slim_codeattributes4; if _slim_codeattributes4 == true; _slim_controls2 << (" checked"); else; _slim_controls2 << (" checked=\""); _slim_controls2 << (_slim_codeattributes4); _slim_controls2 << ("\""); end; end; _slim_controls2 << ("> ");
1350
1385
  ; _slim_controls2 << (item.text);
1351
1386
  ; _slim_controls2 << ("</li>"); else;
1352
- ; _slim_controls2 << ("<li>");
1387
+ ; _slim_controls2 << ("<li"); _slim_codeattributes5 = item.id; if _slim_codeattributes5; if _slim_codeattributes5 == true; _slim_controls2 << (" id"); else; _slim_controls2 << (" id=\""); _slim_controls2 << (_slim_codeattributes5); _slim_controls2 << ("\""); end; end; _temple_html_attributeremover3 = []; _slim_codeattributes6 = item.role; if Array === _slim_codeattributes6; _slim_codeattributes6 = _slim_codeattributes6.flatten; _slim_codeattributes6.map!(&:to_s); _slim_codeattributes6.reject!(&:empty?); _temple_html_attributeremover3 << (_slim_codeattributes6.join(" ")); else; _temple_html_attributeremover3 << (_slim_codeattributes6); end; _temple_html_attributeremover3 = _temple_html_attributeremover3.join(""); if !_temple_html_attributeremover3.empty?; _slim_controls2 << (" class=\""); _slim_controls2 << (_temple_html_attributeremover3); _slim_controls2 << ("\""); end; _slim_controls2 << (">");
1353
1388
  ; _slim_controls2 << ((print_item_content item));
1354
1389
  ; _slim_controls2 << ("</li>"); end; end; _slim_controls2 << ("</ul>"); _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); _buf = _buf.join("")
1355
1390
  end
@@ -1442,7 +1477,7 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1442
1477
  ; _buf << ("<ol class=\"toc-list level-"); _buf << (slevel); _buf << ("\">");
1443
1478
  ; sections.each do |sec|;
1444
1479
  ; _buf << ("<li><a href=\"#");
1445
- ; _buf << (sec.id); _buf << ("\">"); _buf << (section_title sec);
1480
+ ; _buf << (sec.id); _buf << ("\">"); _buf << ((section_title sec, drop_anchors: true));
1446
1481
  ; _buf << ("</a>"); if (sec.level < toclevels) && (child_toc = converter.convert sec, 'outline');
1447
1482
  ; _buf << (child_toc);
1448
1483
  ; end; _buf << ("</li>"); end; _buf << ("</ol>"); end; _buf = _buf.join("")
@@ -1452,10 +1487,18 @@ class Asciidoctor::Html5s::Converter < ::Asciidoctor::Converter::Base
1452
1487
  def example(node, opts = {})
1453
1488
  node.extend(Helpers)
1454
1489
  node.instance_eval do
1455
- _buf = []; _slim_controls1 = block_with_caption :top, :class=>'example-block' do; _slim_controls2 = [];
1490
+ _buf = []; if option? :collapsible;
1491
+ ; _buf << ("<details"); _slim_codeattributes1 = id; if _slim_codeattributes1; if _slim_codeattributes1 == true; _buf << (" id"); else; _buf << (" id=\""); _buf << (_slim_codeattributes1); _buf << ("\""); end; end; _temple_html_attributeremover1 = []; _slim_codeattributes2 = role; if Array === _slim_codeattributes2; _slim_codeattributes2 = _slim_codeattributes2.flatten; _slim_codeattributes2.map!(&:to_s); _slim_codeattributes2.reject!(&:empty?); _temple_html_attributeremover1 << (_slim_codeattributes2.join(" ")); else; _temple_html_attributeremover1 << (_slim_codeattributes2); end; _temple_html_attributeremover1 = _temple_html_attributeremover1.join(""); if !_temple_html_attributeremover1.empty?; _buf << (" class=\""); _buf << (_temple_html_attributeremover1); _buf << ("\""); end; _slim_codeattributes3 = (option? :open); if _slim_codeattributes3; if _slim_codeattributes3 == true; _buf << (" open"); else; _buf << (" open=\""); _buf << (_slim_codeattributes3); _buf << ("\""); end; end; _buf << (">");
1492
+ ; if title;
1493
+ ; _buf << ("<summary>");
1494
+ ; _buf << (title);
1495
+ ; _buf << ("</summary>"); end; _buf << ("<div class=\"content\">");
1496
+ ; _buf << (content);
1497
+ ; _buf << ("</div></details>"); else;
1498
+ ; _slim_controls1 = block_with_caption :top, :class=>'example-block' do; _slim_controls2 = [];
1456
1499
  ; _slim_controls2 << ("<div class=\"example\">");
1457
1500
  ; _slim_controls2 << (content);
1458
- ; _slim_controls2 << ("</div>"); _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); _buf = _buf.join("")
1501
+ ; _slim_controls2 << ("</div>"); _slim_controls2 = _slim_controls2.join(""); end; _buf << (_slim_controls1); end; _buf = _buf.join("")
1459
1502
  end
1460
1503
  end
1461
1504