asciidoctor-dita-topic 1.3.1 → 1.3.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dita-topic.rb +54 -45
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62fa0187c3b7c336aefe18fe37acf00f67c477ca621852712bffa72c4f376a5a
4
- data.tar.gz: 4f758d9811bfd1417499cc2f32bc66f5a6a46c48917156ed3807d7351968bc31
3
+ metadata.gz: 4fc29eafdbe1a2cdf7ef447e252ecdcabc80af754902559bcf228e38e3b2fe04
4
+ data.tar.gz: 3ebd2721f248a9ad8dc20d428bfeb0fe6b0f1f74e8b9a24b2e62860b2bfc140f
5
5
  SHA512:
6
- metadata.gz: 2aa4841c7b6302ce390c71c94de4e7f68ef8c69beca991f01a8d75c59e69b76026490f4892232dffeb6a630f88c99f151c453f954f68a8c22f7f7f75f024157b
7
- data.tar.gz: 4d1c4bb35c464b7c00dcb6dfb9a6977b1265a65e027a99319cc021ae7277d67f3281d0e7f6f1d0abe5005419ccba7efc97d8681bc4fb36dd28e9da17cb98f8d2
6
+ metadata.gz: f5da5464ce466a101f87d0a047f87debb40bbb4a5ac185a5702a422e68cc9e6c4ba6bb5d5599acd38393e0e7f29824296a3a09391de91f503eecc7740f721801
7
+ data.tar.gz: cb90250840fa7fa9d8ac808dc1bbdec7b85f8f2a2378cad970c95e6705f3456331478571fc5616b365dc0dda552f800d68628f507bebb92857761b3d560866d9
data/lib/dita-topic.rb CHANGED
@@ -130,7 +130,7 @@ class DitaTopic < Asciidoctor::Converter::Base
130
130
 
131
131
  # Return the XML output:
132
132
  <<~EOF.chomp
133
- <note type="#{node.attr 'name'}"#{compose_metadata node.role}>#{node.content}</note>
133
+ <note type="#{node.attr 'name'}"#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</note>
134
134
  EOF
135
135
  end
136
136
 
@@ -138,12 +138,12 @@ class DitaTopic < Asciidoctor::Converter::Base
138
138
  # Check if the audio macro has a title specified:
139
139
  if node.title?
140
140
  <<~EOF.chomp
141
- <object data="#{node.media_uri(node.attr 'target')}"#{compose_metadata node.role}>
141
+ <object data="#{node.media_uri(node.attr 'target')}"#{compose_id node.id}#{compose_metadata node.role}>
142
142
  <desc>#{node.title}</desc>
143
143
  </object>
144
144
  EOF
145
145
  else
146
- %(<object data="#{node.media_uri(node.attr 'target')}"#{compose_metadata node.role} />)
146
+ %(<object data="#{node.media_uri(node.attr 'target')}"#{compose_id node.id}#{compose_metadata node.role} />)
147
147
  end
148
148
  end
149
149
 
@@ -158,7 +158,7 @@ class DitaTopic < Asciidoctor::Converter::Base
158
158
  number = 0
159
159
 
160
160
  # Open the definition list:
161
- result = [%(<dl outputclass="callout-list"#{compose_metadata node.role}>)]
161
+ result = [%(<dl outputclass="callout-list"#{compose_id node.id}#{compose_metadata node.role}>)]
162
162
 
163
163
  # Process individual list items:
164
164
  node.items.each do |item|
@@ -198,7 +198,7 @@ class DitaTopic < Asciidoctor::Converter::Base
198
198
  return compose_qanda_dlist node if node.style == 'qanda'
199
199
 
200
200
  # Open the definition list:
201
- result = [%(<dl#{compose_metadata node.role}>)]
201
+ result = [%(<dl#{compose_id node.id}#{compose_metadata node.role}>)]
202
202
 
203
203
  # Process individual list items:
204
204
  node.items.each do |terms, description|
@@ -260,7 +260,7 @@ class DitaTopic < Asciidoctor::Converter::Base
260
260
  end
261
261
 
262
262
  # Return the XML output:
263
- %(<p outputclass="title sect#{node.level}"#{compose_metadata node.role}><b>#{node.title}</b></p>)
263
+ %(<p outputclass="title sect#{node.level}"#{compose_id node.id}#{compose_metadata node.role}><b>#{node.title}</b></p>)
264
264
  end
265
265
 
266
266
  def convert_image node
@@ -276,7 +276,7 @@ class DitaTopic < Asciidoctor::Converter::Base
276
276
  # Check if the image has a title specified:
277
277
  if node.title?
278
278
  <<~EOF.chomp
279
- <fig#{compose_metadata node.role}>
279
+ <fig#{compose_id node.id}#{compose_metadata node.role}>
280
280
  <title>#{node.title}</title>
281
281
  <image href="#{node.image_uri(node.attr 'target')}"#{width}#{height}#{scale} placement="break">
282
282
  <alt>#{node.alt}</alt>
@@ -285,7 +285,7 @@ class DitaTopic < Asciidoctor::Converter::Base
285
285
  EOF
286
286
  else
287
287
  <<~EOF.chomp
288
- <image href="#{node.image_uri(node.attr 'target')}"#{width}#{height}#{scale} placement="break"#{compose_metadata node.role}>
288
+ <image href="#{node.image_uri(node.attr 'target')}"#{width}#{height}#{scale} placement="break"#{compose_id node.id}#{compose_metadata node.role}>
289
289
  <alt>#{node.alt}</alt>
290
290
  </image>
291
291
  EOF
@@ -297,7 +297,7 @@ class DitaTopic < Asciidoctor::Converter::Base
297
297
  case node.type
298
298
  when :link
299
299
  # Compose an external link:
300
- %(<xref href="#{node.target}" scope="external"#{compose_metadata node.role}>#{node.text}</xref>)
300
+ %(<xref href="#{node.target}" scope="external"#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</xref>)
301
301
  when :xref
302
302
  # NOTE: While AsciiDoc is happy to reference an ID that is not
303
303
  # defined in the same AsciiDoc file, DITA requires the topic ID as
@@ -453,9 +453,9 @@ class DitaTopic < Asciidoctor::Converter::Base
453
453
  # Determine the inline markup type:
454
454
  case node.type
455
455
  when :emphasis
456
- %(<i#{compose_metadata node.role}>#{node.text}</i>)
456
+ %(<i#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</i>)
457
457
  when :strong
458
- %(<b#{compose_metadata node.role}>#{node.text}</b>)
458
+ %(<b#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</b>)
459
459
  when :monospaced
460
460
  # Set the default element value:
461
461
  element = 'codeph'
@@ -479,11 +479,11 @@ class DitaTopic < Asciidoctor::Converter::Base
479
479
  end
480
480
 
481
481
  # Return the result:
482
- %(<#{element}#{compose_metadata node.role}>#{node.text}</#{element}>)
482
+ %(<#{element}#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</#{element}>)
483
483
  when :superscript
484
- %(<sup#{compose_metadata node.role}>#{node.text}</sup>)
484
+ %(<sup#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</sup>)
485
485
  when :subscript
486
- %(<sub#{compose_metadata node.role}>#{node.text}</sub>)
486
+ %(<sub#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</sub>)
487
487
  when :double
488
488
  %(&#8220;#{node.text}&#8221;)
489
489
  when :single
@@ -501,7 +501,7 @@ class DitaTopic < Asciidoctor::Converter::Base
501
501
  # Add comments around the STEM content:
502
502
  %(<!-- latexmath start -->#{node.text}<!-- latexmath end -->)
503
503
  else
504
- %(<ph#{compose_metadata node.role}>#{node.text}</ph>)
504
+ %(<ph#{compose_id node.id}#{compose_metadata node.role}>#{node.text}</ph>)
505
505
  end
506
506
  end
507
507
 
@@ -510,11 +510,7 @@ class DitaTopic < Asciidoctor::Converter::Base
510
510
  language = (node.attributes.key? 'language') ? %( outputclass="language-#{node.attributes['language']}") : ''
511
511
 
512
512
  # Compose the XML output:
513
- result = <<~EOF.chomp
514
- <codeblock#{language}#{compose_metadata node.role}>
515
- #{node.content}
516
- </codeblock>
517
- EOF
513
+ result = %(<codeblock#{language}#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</codeblock>)
518
514
 
519
515
  # Return the XML output:
520
516
  add_block_title result, node
@@ -522,11 +518,7 @@ class DitaTopic < Asciidoctor::Converter::Base
522
518
 
523
519
  def convert_literal node
524
520
  # Compose the XML output:
525
- result = <<~EOF.chomp
526
- <pre#{compose_metadata node.role}>
527
- #{node.content}
528
- </pre>
529
- EOF
521
+ result = %(<pre#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</pre>)
530
522
 
531
523
  # Return the XML output:
532
524
  add_block_title result, node
@@ -534,17 +526,21 @@ class DitaTopic < Asciidoctor::Converter::Base
534
526
 
535
527
  def convert_olist node
536
528
  # Open the ordered list:
537
- result = [%(<ol#{compose_metadata node.role}>)]
529
+ result = [%(<ol#{compose_id node.id}#{compose_metadata node.role}>)]
538
530
 
539
531
  # Process individual list items:
540
532
  node.items.each do |item|
533
+ # Compose the metadata attributes:
534
+ metadata, text = extract_attributes item.text
535
+ metadata = compose_metadata item.role if item.role
536
+
541
537
  # Check if the list item contains multiple block elements:
542
538
  if item.blocks?
543
- result << %(<li#{compose_metadata item.role}>#{item.text})
539
+ result << %(<li#{compose_id item.id}#{metadata}>#{text})
544
540
  result << item.content
545
541
  result << %(</li>)
546
542
  else
547
- result << %(<li#{compose_metadata item.role}>#{item.text}</li>)
543
+ result << %(<li#{compose_id item.id}#{metadata}>#{text}</li>)
548
544
  end
549
545
  end
550
546
 
@@ -566,12 +562,12 @@ class DitaTopic < Asciidoctor::Converter::Base
566
562
  node.content
567
563
  elsif node.content_model == :compound
568
564
  <<~EOF.chomp
569
- <div#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node.role}>
565
+ <div#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_id node.id}#{compose_metadata node.role}>
570
566
  #{compose_floating_title node.title}#{node.content}
571
567
  </div>
572
568
  EOF
573
569
  else
574
- %(#{compose_floating_title node.title}<p#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node.role}>#{node.content}</p>)
570
+ %(#{compose_floating_title node.title}<p#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</p>)
575
571
  end
576
572
  end
577
573
 
@@ -587,9 +583,9 @@ class DitaTopic < Asciidoctor::Converter::Base
587
583
 
588
584
  def convert_paragraph node
589
585
  if (node.attr 'role') and (node.attr 'role').split.include? '_abstract'
590
- add_block_title %(<p outputclass="abstract"#{compose_metadata node.role}>#{node.content}</p>), node
586
+ add_block_title %(<p outputclass="abstract"#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</p>), node
591
587
  else
592
- add_block_title %(<p#{compose_metadata node.role}>#{node.content}</p>), node
588
+ add_block_title %(<p#{compose_id node.id}#{compose_metadata node.role}>#{node.content}</p>), node
593
589
  end
594
590
  end
595
591
 
@@ -607,13 +603,13 @@ class DitaTopic < Asciidoctor::Converter::Base
607
603
  # Check if the content contains multiple block elements:
608
604
  if node.content_model == :compound
609
605
  <<~EOF.chomp
610
- <lq#{compose_metadata node.role}>
606
+ <lq#{compose_id node.id}#{compose_metadata node.role}>
611
607
  #{compose_floating_title node.title}#{node.content}#{author}#{source}
612
608
  </lq>
613
609
  EOF
614
610
  else
615
611
  <<~EOF.chomp
616
- <lq#{compose_metadata node.role}>
612
+ <lq#{compose_id node.id}#{compose_metadata node.role}>
617
613
  #{compose_floating_title node.title}<p>#{node.content}</p>#{author}#{source}
618
614
  </lq>
619
615
  EOF
@@ -659,13 +655,13 @@ class DitaTopic < Asciidoctor::Converter::Base
659
655
  # Check if the content contains multiple block elements:
660
656
  if node.content_model == :compound
661
657
  <<~EOF.chomp
662
- <div outputclass="sidebar"#{compose_metadata node.role}>
658
+ <div outputclass="sidebar"#{compose_id node.id}#{compose_metadata node.role}>
663
659
  #{compose_floating_title node.title}#{node.content}
664
660
  </div>
665
661
  EOF
666
662
  else
667
663
  <<~EOF.chomp
668
- <div outputclass="sidebar"#{compose_metadata node.role}>
664
+ <div outputclass="sidebar"#{compose_id node.id}#{compose_metadata node.role}>
669
665
  #{compose_floating_title node.title}<p>#{node.content}</p>
670
666
  </div>
671
667
  EOF
@@ -680,7 +676,7 @@ class DitaTopic < Asciidoctor::Converter::Base
680
676
 
681
677
  def convert_table node
682
678
  # Open the table:
683
- result = [%(<table#{compose_metadata node.role}>)]
679
+ result = [%(<table#{compose_id node.id}#{compose_metadata node.role}>)]
684
680
 
685
681
  # Check if the title is specified:
686
682
  result << %(<title>#{node.title}</title>) if node.title?
@@ -770,10 +766,14 @@ class DitaTopic < Asciidoctor::Converter::Base
770
766
 
771
767
  def convert_ulist node
772
768
  # Open the unordered list:
773
- result = [%(<ul#{compose_metadata node.role}>)]
769
+ result = [%(<ul#{compose_id node.id}#{compose_metadata node.role}>)]
774
770
 
775
771
  # Process individual list items:
776
772
  node.items.each do |item|
773
+ # Compose the metadata attributes:
774
+ metadata, text = extract_attributes item.text
775
+ metadata = compose_metadata item.role if item.role
776
+
777
777
  # Check if the list item is part of a checklist:
778
778
  unless item.attr? 'checkbox'
779
779
  check_box = ''
@@ -783,11 +783,11 @@ class DitaTopic < Asciidoctor::Converter::Base
783
783
 
784
784
  # Check if the list item contains multiple block elements:
785
785
  if item.blocks?
786
- result << %(<li#{compose_metadata item.role}>#{check_box}#{item.text})
786
+ result << %(<li#{compose_id item.id}#{metadata}>#{check_box}#{text})
787
787
  result << item.content
788
788
  result << %(</li>)
789
789
  else
790
- result << %(<li#{compose_metadata item.role}>#{check_box}#{item.text}</li>)
790
+ result << %(<li#{compose_id item.id}#{metadata}>#{check_box}#{text}</li>)
791
791
  end
792
792
  end
793
793
 
@@ -807,7 +807,7 @@ class DitaTopic < Asciidoctor::Converter::Base
807
807
 
808
808
  # Return the XML output:
809
809
  <<~EOF.chomp
810
- <lines#{compose_metadata node.role}>
810
+ <lines#{compose_id node.id}#{compose_metadata node.role}>
811
811
  #{node.content}#{author}#{source}
812
812
  </lines>
813
813
  EOF
@@ -842,18 +842,18 @@ class DitaTopic < Asciidoctor::Converter::Base
842
842
  # Check if the audio macro has a title specified:
843
843
  if node.title?
844
844
  <<~EOF.chomp
845
- <object data="#{target_url}"#{width}#{height}#{compose_metadata node.role}>
845
+ <object data="#{target_url}"#{width}#{height}#{compose_id node.id}#{compose_metadata node.role}>
846
846
  <desc>#{node.title}</desc>
847
847
  </object>
848
848
  EOF
849
849
  else
850
- %(<object data="#{target_url}"#{width}#{height}#{compose_metadata node.role} />)
850
+ %(<object data="#{target_url}"#{width}#{height}#{compose_id node.id}#{compose_metadata node.role} />)
851
851
  end
852
852
  end
853
853
 
854
854
  def compose_qanda_dlist node
855
855
  # Open the ordered list:
856
- result = [%(<ol#{compose_metadata node.role}>)]
856
+ result = [%(<ol#{compose_id node.id}#{compose_metadata node.role}>)]
857
857
 
858
858
  # Process individual list items:
859
859
  node.items.each do |terms, description|
@@ -884,7 +884,7 @@ class DitaTopic < Asciidoctor::Converter::Base
884
884
 
885
885
  def compose_horizontal_dlist node
886
886
  # Open the table:
887
- result = [%(<table outputclass="horizontal-dlist"#{compose_metadata node.role}>)]
887
+ result = [%(<table outputclass="horizontal-dlist"#{compose_id node.id}#{compose_metadata node.role}>)]
888
888
 
889
889
  # Check if the title is specified:
890
890
  result << %(<title>#{node.title}</title>) if node.title?
@@ -1061,6 +1061,15 @@ class DitaTopic < Asciidoctor::Converter::Base
1061
1061
  end
1062
1062
  end
1063
1063
 
1064
+ def extract_attributes text
1065
+ # Extract metadata attributes from an empty ph element:
1066
+ if /^\s*<ph(?<attributes> [^>]+)><\/ph>\s*/ =~ text
1067
+ return attributes, text.sub(/^\s*<ph[^>]+><\/ph>\s*/, '')
1068
+ else
1069
+ return '', text
1070
+ end
1071
+ end
1072
+
1064
1073
  def format_message message
1065
1074
  # Compose the warning or error message:
1066
1075
  file_name = (defined? @file_name) ? %( #{@file_name}:) : ''
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor-dita-topic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaromir Hradilek