asciidoctor-dita-topic 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dita-topic.rb +48 -48
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62fa0187c3b7c336aefe18fe37acf00f67c477ca621852712bffa72c4f376a5a
|
4
|
+
data.tar.gz: 4f758d9811bfd1417499cc2f32bc66f5a6a46c48917156ed3807d7351968bc31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2aa4841c7b6302ce390c71c94de4e7f68ef8c69beca991f01a8d75c59e69b76026490f4892232dffeb6a630f88c99f151c453f954f68a8c22f7f7f75f024157b
|
7
|
+
data.tar.gz: 4d1c4bb35c464b7c00dcb6dfb9a6977b1265a65e027a99319cc021ae7277d67f3281d0e7f6f1d0abe5005419ccba7efc97d8681bc4fb36dd28e9da17cb98f8d2
|
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}>#{node.content}</note>
|
133
|
+
<note type="#{node.attr 'name'}"#{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}>
|
141
|
+
<object data="#{node.media_uri(node.attr 'target')}"#{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} />)
|
146
|
+
%(<object data="#{node.media_uri(node.attr 'target')}"#{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}>)]
|
161
|
+
result = [%(<dl outputclass="callout-list"#{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}>)]
|
201
|
+
result = [%(<dl#{compose_metadata node.role}>)]
|
202
202
|
|
203
203
|
# Process individual list items:
|
204
204
|
node.items.each do |terms, description|
|
@@ -242,7 +242,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
242
242
|
|
243
243
|
# Return the XML output:
|
244
244
|
<<~EOF.chomp
|
245
|
-
<example#{compose_id node.id}#{compose_metadata node}>
|
245
|
+
<example#{compose_id node.id}#{compose_metadata node.role}>
|
246
246
|
#{node.title ? %(<title>#{node.title}</title>\n) : ''}#{node.content}
|
247
247
|
</example>
|
248
248
|
EOF
|
@@ -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}><b>#{node.title}</b></p>)
|
263
|
+
%(<p outputclass="title sect#{node.level}"#{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}>
|
279
|
+
<fig#{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}>
|
288
|
+
<image href="#{node.image_uri(node.attr 'target')}"#{width}#{height}#{scale} placement="break"#{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}>#{node.text}</xref>)
|
300
|
+
%(<xref href="#{node.target}" scope="external"#{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
|
@@ -312,7 +312,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
312
312
|
logger.warn format_message "Possible invalid reference: #{node.target}" if node.target.include? '#'
|
313
313
|
|
314
314
|
# Compose a cross reference:
|
315
|
-
return %(<xref href="#{node.target}"#{compose_metadata node}>#{node.text || path}</xref>)
|
315
|
+
return %(<xref href="#{node.target}"#{compose_metadata node.role}>#{node.text || path}</xref>)
|
316
316
|
end
|
317
317
|
|
318
318
|
# Determine whether the ID reference target is in this document:
|
@@ -320,18 +320,18 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
320
320
|
# Determine whether the ID reference target is the document id:
|
321
321
|
if target == node.document.id
|
322
322
|
# Compose the unchanged cross reference:
|
323
|
-
return node.text ? %(<xref href="##{target}"#{compose_metadata node}>#{node.text}</xref>) : %(<xref href="##{target}" />)
|
323
|
+
return node.text ? %(<xref href="##{target}"#{compose_metadata node.role}>#{node.text}</xref>) : %(<xref href="##{target}" />)
|
324
324
|
end
|
325
325
|
|
326
326
|
# Compose the adjusted cross reference:
|
327
|
-
return node.text ? %(<xref href="#./#{target}"#{compose_metadata node}>#{node.text}</xref>) : %(<xref href="#./#{target}" />)
|
327
|
+
return node.text ? %(<xref href="#./#{target}"#{compose_metadata node.role}>#{node.text}</xref>) : %(<xref href="#./#{target}" />)
|
328
328
|
end
|
329
329
|
|
330
330
|
# Issue a warning as the cross reference is unlikely to work:
|
331
331
|
logger.warn format_message "Possible invalid reference: #{node.target}"
|
332
332
|
|
333
333
|
# Compose the cross reference:
|
334
|
-
node.text ? %(<xref href="#{node.target}"#{compose_metadata node}>#{node.text}</xref>) : %(<xref href="#{node.target}" />)
|
334
|
+
node.text ? %(<xref href="#{node.target}"#{compose_metadata node.role}>#{node.text}</xref>) : %(<xref href="#{node.target}" />)
|
335
335
|
when :ref
|
336
336
|
# NOTE: DITA does not have a dedicated element for inline anchors or
|
337
337
|
# a direct equivalent of the <span> element from HTML. The solution
|
@@ -403,7 +403,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
403
403
|
height = '' if height.include? '%'
|
404
404
|
|
405
405
|
# Return the XML output:
|
406
|
-
%(<image href="#{node.image_uri node.target}"#{width}#{height} placement="inline"#{compose_metadata node}><alt>#{node.alt}</alt></image>)
|
406
|
+
%(<image href="#{node.image_uri node.target}"#{width}#{height} placement="inline"#{compose_metadata node.role}><alt>#{node.alt}</alt></image>)
|
407
407
|
end
|
408
408
|
|
409
409
|
def convert_inline_indexterm node
|
@@ -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}>#{node.text}</i>)
|
456
|
+
%(<i#{compose_metadata node.role}>#{node.text}</i>)
|
457
457
|
when :strong
|
458
|
-
%(<b#{compose_metadata node}>#{node.text}</b>)
|
458
|
+
%(<b#{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}>#{node.text}</#{element}>)
|
482
|
+
%(<#{element}#{compose_metadata node.role}>#{node.text}</#{element}>)
|
483
483
|
when :superscript
|
484
|
-
%(<sup#{compose_metadata node}>#{node.text}</sup>)
|
484
|
+
%(<sup#{compose_metadata node.role}>#{node.text}</sup>)
|
485
485
|
when :subscript
|
486
|
-
%(<sub#{compose_metadata node}>#{node.text}</sub>)
|
486
|
+
%(<sub#{compose_metadata node.role}>#{node.text}</sub>)
|
487
487
|
when :double
|
488
488
|
%(“#{node.text}”)
|
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
|
-
node.text
|
504
|
+
%(<ph#{compose_metadata node.role}>#{node.text}</ph>)
|
505
505
|
end
|
506
506
|
end
|
507
507
|
|
@@ -511,7 +511,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
511
511
|
|
512
512
|
# Compose the XML output:
|
513
513
|
result = <<~EOF.chomp
|
514
|
-
<codeblock#{language}#{compose_metadata node}>
|
514
|
+
<codeblock#{language}#{compose_metadata node.role}>
|
515
515
|
#{node.content}
|
516
516
|
</codeblock>
|
517
517
|
EOF
|
@@ -523,7 +523,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
523
523
|
def convert_literal node
|
524
524
|
# Compose the XML output:
|
525
525
|
result = <<~EOF.chomp
|
526
|
-
<pre#{compose_metadata node}>
|
526
|
+
<pre#{compose_metadata node.role}>
|
527
527
|
#{node.content}
|
528
528
|
</pre>
|
529
529
|
EOF
|
@@ -534,17 +534,17 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
534
534
|
|
535
535
|
def convert_olist node
|
536
536
|
# Open the ordered list:
|
537
|
-
result = [%(<ol#{compose_metadata node}>)]
|
537
|
+
result = [%(<ol#{compose_metadata node.role}>)]
|
538
538
|
|
539
539
|
# Process individual list items:
|
540
540
|
node.items.each do |item|
|
541
541
|
# Check if the list item contains multiple block elements:
|
542
542
|
if item.blocks?
|
543
|
-
result << %(<li>#{item.text})
|
543
|
+
result << %(<li#{compose_metadata item.role}>#{item.text})
|
544
544
|
result << item.content
|
545
545
|
result << %(</li>)
|
546
546
|
else
|
547
|
-
result << %(<li>#{item.text}</li>)
|
547
|
+
result << %(<li#{compose_metadata item.role}>#{item.text}</li>)
|
548
548
|
end
|
549
549
|
end
|
550
550
|
|
@@ -566,12 +566,12 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
566
566
|
node.content
|
567
567
|
elsif node.content_model == :compound
|
568
568
|
<<~EOF.chomp
|
569
|
-
<div#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node}>
|
569
|
+
<div#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node.role}>
|
570
570
|
#{compose_floating_title node.title}#{node.content}
|
571
571
|
</div>
|
572
572
|
EOF
|
573
573
|
else
|
574
|
-
%(#{compose_floating_title node.title}<p#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node}>#{node.content}</p>)
|
574
|
+
%(#{compose_floating_title node.title}<p#{(node.style == 'abstract') ? ' outputclass="abstract"' : ''}#{compose_metadata node.role}>#{node.content}</p>)
|
575
575
|
end
|
576
576
|
end
|
577
577
|
|
@@ -587,9 +587,9 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
587
587
|
|
588
588
|
def convert_paragraph node
|
589
589
|
if (node.attr 'role') and (node.attr 'role').split.include? '_abstract'
|
590
|
-
add_block_title %(<p outputclass="abstract"#{compose_metadata node}>#{node.content}</p>), node
|
590
|
+
add_block_title %(<p outputclass="abstract"#{compose_metadata node.role}>#{node.content}</p>), node
|
591
591
|
else
|
592
|
-
add_block_title %(<p#{compose_metadata node}>#{node.content}</p>), node
|
592
|
+
add_block_title %(<p#{compose_metadata node.role}>#{node.content}</p>), node
|
593
593
|
end
|
594
594
|
end
|
595
595
|
|
@@ -607,13 +607,13 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
607
607
|
# Check if the content contains multiple block elements:
|
608
608
|
if node.content_model == :compound
|
609
609
|
<<~EOF.chomp
|
610
|
-
<lq#{compose_metadata node}>
|
610
|
+
<lq#{compose_metadata node.role}>
|
611
611
|
#{compose_floating_title node.title}#{node.content}#{author}#{source}
|
612
612
|
</lq>
|
613
613
|
EOF
|
614
614
|
else
|
615
615
|
<<~EOF.chomp
|
616
|
-
<lq#{compose_metadata node}>
|
616
|
+
<lq#{compose_metadata node.role}>
|
617
617
|
#{compose_floating_title node.title}<p>#{node.content}</p>#{author}#{source}
|
618
618
|
</lq>
|
619
619
|
EOF
|
@@ -639,7 +639,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
639
639
|
|
640
640
|
# Return the XML output:
|
641
641
|
<<~EOF.chomp
|
642
|
-
<section#{compose_id node.id}#{outputclass}#{compose_metadata node}>
|
642
|
+
<section#{compose_id node.id}#{outputclass}#{compose_metadata node.role}>
|
643
643
|
<title>#{node.title}</title>
|
644
644
|
#{node.content}
|
645
645
|
</section>
|
@@ -659,13 +659,13 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
659
659
|
# Check if the content contains multiple block elements:
|
660
660
|
if node.content_model == :compound
|
661
661
|
<<~EOF.chomp
|
662
|
-
<div outputclass="sidebar"#{compose_metadata node}>
|
662
|
+
<div outputclass="sidebar"#{compose_metadata node.role}>
|
663
663
|
#{compose_floating_title node.title}#{node.content}
|
664
664
|
</div>
|
665
665
|
EOF
|
666
666
|
else
|
667
667
|
<<~EOF.chomp
|
668
|
-
<div outputclass="sidebar"#{compose_metadata node}>
|
668
|
+
<div outputclass="sidebar"#{compose_metadata node.role}>
|
669
669
|
#{compose_floating_title node.title}<p>#{node.content}</p>
|
670
670
|
</div>
|
671
671
|
EOF
|
@@ -680,7 +680,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
680
680
|
|
681
681
|
def convert_table node
|
682
682
|
# Open the table:
|
683
|
-
result = [%(<table#{compose_metadata node}>)]
|
683
|
+
result = [%(<table#{compose_metadata node.role}>)]
|
684
684
|
|
685
685
|
# Check if the title is specified:
|
686
686
|
result << %(<title>#{node.title}</title>) if node.title?
|
@@ -770,7 +770,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
770
770
|
|
771
771
|
def convert_ulist node
|
772
772
|
# Open the unordered list:
|
773
|
-
result = [%(<ul#{compose_metadata node}>)]
|
773
|
+
result = [%(<ul#{compose_metadata node.role}>)]
|
774
774
|
|
775
775
|
# Process individual list items:
|
776
776
|
node.items.each do |item|
|
@@ -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>#{check_box}#{item.text})
|
786
|
+
result << %(<li#{compose_metadata item.role}>#{check_box}#{item.text})
|
787
787
|
result << item.content
|
788
788
|
result << %(</li>)
|
789
789
|
else
|
790
|
-
result << %(<li>#{check_box}#{item.text}</li>)
|
790
|
+
result << %(<li#{compose_metadata item.role}>#{check_box}#{item.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}>
|
810
|
+
<lines#{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}>
|
845
|
+
<object data="#{target_url}"#{width}#{height}#{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} />)
|
850
|
+
%(<object data="#{target_url}"#{width}#{height}#{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}>)]
|
856
|
+
result = [%(<ol#{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}>)]
|
887
|
+
result = [%(<table outputclass="horizontal-dlist"#{compose_metadata node.role}>)]
|
888
888
|
|
889
889
|
# Check if the title is specified:
|
890
890
|
result << %(<title>#{node.title}</title>) if node.title?
|
@@ -962,7 +962,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
962
962
|
|
963
963
|
# Return the XML output:
|
964
964
|
<<~EOF.chomp
|
965
|
-
<p outputclass="title"#{compose_metadata node}><b>#{node.title}</b></p>
|
965
|
+
<p outputclass="title"#{compose_metadata node.role}><b>#{node.title}</b></p>
|
966
966
|
#{content}
|
967
967
|
EOF
|
968
968
|
end
|
@@ -1024,9 +1024,9 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
1024
1024
|
return outputclass
|
1025
1025
|
end
|
1026
1026
|
|
1027
|
-
def compose_metadata
|
1027
|
+
def compose_metadata roles
|
1028
1028
|
# Check if the role is defined:
|
1029
|
-
return '' unless
|
1029
|
+
return '' unless roles
|
1030
1030
|
|
1031
1031
|
# Set the initial value:
|
1032
1032
|
result = {}
|
@@ -1035,7 +1035,7 @@ class DitaTopic < Asciidoctor::Converter::Base
|
|
1035
1035
|
valid = ['platform', 'product', 'audience', 'otherprops']
|
1036
1036
|
|
1037
1037
|
# Process each role:
|
1038
|
-
|
1038
|
+
roles.split.each do |role|
|
1039
1039
|
# Ignore roles that do not follow the attribute:value format:
|
1040
1040
|
next unless role.include? ':'
|
1041
1041
|
|