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.
- checksums.yaml +4 -4
- data/lib/dita-topic.rb +54 -45
- 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: 4fc29eafdbe1a2cdf7ef447e252ecdcabc80af754902559bcf228e38e3b2fe04
|
4
|
+
data.tar.gz: 3ebd2721f248a9ad8dc20d428bfeb0fe6b0f1f74e8b9a24b2e62860b2bfc140f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
%(“#{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
|
-
%(<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 =
|
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 =
|
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#{
|
539
|
+
result << %(<li#{compose_id item.id}#{metadata}>#{text})
|
544
540
|
result << item.content
|
545
541
|
result << %(</li>)
|
546
542
|
else
|
547
|
-
result << %(<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#{
|
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#{
|
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}:) : ''
|