asciidoctor-latex 1.5.0.5.dev → 1.5.0.7.dev
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/asciidoc_tex_macros.tex +3 -1
- data/data/extras.css +125 -5
- data/doc/Asciidoctor.html +19 -4
- data/doc/Asciidoctor/Block.html +1074 -426
- data/doc/Asciidoctor/Converter/Html5Converter.html +28 -4
- data/doc/Asciidoctor/Document.html +73 -89
- data/doc/Asciidoctor/Inline.html +154 -134
- data/doc/Asciidoctor/LaTeX.html +5 -5
- data/doc/Asciidoctor/LaTeX/Chem.html +2 -2
- data/doc/Asciidoctor/LaTeX/ChemInlineMacro.html +7 -5
- data/doc/Asciidoctor/LaTeX/ClickBlock.html +13 -7
- data/doc/Asciidoctor/LaTeX/ClickStyleInsert.html +10 -9
- data/doc/Asciidoctor/LaTeX/Converter.html +33 -22
- data/doc/Asciidoctor/LaTeX/Dollar.html +2 -2
- data/doc/Asciidoctor/LaTeX/EntToUni.html +2 -2
- data/doc/Asciidoctor/LaTeX/EnvironmentBlock.html +26 -12
- data/doc/Asciidoctor/LaTeX/HTMLPostprocessor.html +15 -9
- data/doc/Asciidoctor/LaTeX/Html5ConverterExtensions.html +701 -180
- data/doc/Asciidoctor/LaTeX/InjectHTML.html +3 -3
- data/doc/Asciidoctor/LaTeX/MacroInsert.html +2 -2
- data/doc/Asciidoctor/LaTeX/TeXBlock.html +2 -2
- data/doc/Asciidoctor/LaTeX/TeXPostProcess.html +49 -49
- data/doc/Asciidoctor/LaTeX/TeXPreprocessor.html +93 -22
- data/doc/Asciidoctor/LaTeX/TexPostprocessor.html +8 -4
- data/doc/Asciidoctor/List.html +54 -116
- data/doc/Asciidoctor/Section.html +23 -19
- data/doc/Asciidoctor/Table.html +25 -25
- data/doc/PreambleProcessor.html +2 -2
- data/doc/String.html +257 -4
- data/doc/_index.html +54 -5
- data/doc/class_list.html +1 -1
- data/doc/file.LICENSE.html +2 -2
- data/doc/file.README.html +113 -51
- data/doc/file_list.html +3 -0
- data/doc/index.html +113 -51
- data/doc/method_list.html +253 -55
- data/doc/top-level-namespace.html +25 -4
- data/lib/asciidoctor/latex/converter.rb +171 -45
- data/lib/asciidoctor/latex/{css.rb → css_doc_info.rb} +0 -0
- data/lib/asciidoctor/latex/environment_block.rb +137 -0
- data/lib/asciidoctor/latex/inject_html.rb +25 -13
- data/lib/asciidoctor/latex/inline_macros.rb +44 -2
- data/lib/asciidoctor/latex/macro_preprocessor.rb +28 -0
- data/lib/asciidoctor/latex/node_processors.rb +23 -2
- data/lib/asciidoctor/latex/sectnumoffset-treeprocessor.rb +43 -0
- data/lib/asciidoctor/latex/tex_postprocessor.rb +1 -1
- data/lib/asciidoctor/latex/tex_preprocessor.rb +2 -2
- data/lib/asciidoctor/latex/version.rb +1 -1
- data/spec/make_index_spec.rb +104 -0
- data/test/examples/tex/block_preamble.tex +0 -4
- metadata +8 -4
@@ -10,7 +10,7 @@ module Asciidoctor::LaTeX
|
|
10
10
|
class InjectHTML < Asciidoctor::Extensions::Postprocessor
|
11
11
|
|
12
12
|
def process document, output
|
13
|
-
output
|
13
|
+
output.gsub('</head>', $click_insertion)
|
14
14
|
end
|
15
15
|
|
16
16
|
end
|
@@ -23,24 +23,36 @@ module Asciidoctor::LaTeX
|
|
23
23
|
</style>
|
24
24
|
|
25
25
|
|
26
|
-
<script type="text/javascript" src="
|
26
|
+
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
|
27
27
|
|
28
28
|
<script>
|
29
29
|
|
30
|
-
$(document).ready(function(){
|
31
|
-
$('.openblock.click').click( function() { $(this).find('.content').slideToggle('200');
|
32
|
-
$.reloadMathJax() } )
|
33
|
-
$('.openblock.click').find('.content').hide()
|
34
|
-
});
|
35
30
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
31
|
+
|
32
|
+
var ready2;
|
33
|
+
|
34
|
+
ready2 = function() {
|
35
|
+
|
36
|
+
$(document).ready(function(){
|
37
|
+
|
38
|
+
$('.openblock.click').click( function() { $(this).find('.content').slideToggle('200'); } )
|
39
|
+
$('.openblock.click').find('.content').hide()
|
40
|
+
|
41
|
+
|
42
|
+
$('.listingblock.click').click( function() { $(this).find('.content').slideToggle('200') } )
|
43
|
+
$('.listingblock.click').find('.content').hide()
|
44
|
+
|
45
|
+
});
|
46
|
+
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
$(document).ready(ready2);
|
53
|
+
$(document).on('page:load', ready2);
|
40
54
|
|
41
55
|
|
42
|
-
$(document).ready(ready);
|
43
|
-
$(document).on('page:load', ready);
|
44
56
|
</script>
|
45
57
|
|
46
58
|
</head>
|
@@ -12,8 +12,50 @@ module Asciidoctor::LaTeX
|
|
12
12
|
use_dsl
|
13
13
|
named :chem
|
14
14
|
def process parent, target, attributes
|
15
|
-
text = attributes.values * ', ' # iky!
|
16
|
-
|
15
|
+
# text = attributes.values * ', ' # iky!
|
16
|
+
array = attributes.values
|
17
|
+
%(\\(\\ce{ #{array[0]} }\\))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# MODEL: <a href=#gloss_entry_cammin class=glossterm id=glossterm_cammin >cammin</a>
|
22
|
+
class GlossInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
|
23
|
+
use_dsl
|
24
|
+
named :glossterm
|
25
|
+
|
26
|
+
def glossterm(term)
|
27
|
+
identifier = term.gsub(' ', '_').gsub(/\W/, '')
|
28
|
+
id = 'glossterm_' + identifier
|
29
|
+
css_class = 'glossterm'
|
30
|
+
href = '#glossentry_' + identifier
|
31
|
+
"<a href=#{href} class=#{css_class} id=#{id} >#{term}</a>"
|
32
|
+
end
|
33
|
+
|
34
|
+
def process parent, target, attributes
|
35
|
+
term = attributes.values[0]
|
36
|
+
glossterm(term)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class IndexTermInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
|
41
|
+
use_dsl
|
42
|
+
named :index_term
|
43
|
+
def process parent, target, attributes
|
44
|
+
array = attributes.values
|
45
|
+
css = array.pop
|
46
|
+
index = array.pop
|
47
|
+
reference_array = array.pop.split(',')
|
48
|
+
if reference_array.count == 1
|
49
|
+
reference = reference_array.pop
|
50
|
+
else
|
51
|
+
reference = ''
|
52
|
+
end
|
53
|
+
reference ||= ''
|
54
|
+
if css == 'invisible'
|
55
|
+
"<span class='invisible' id='index_term_#{index}'>#{reference}</span>"
|
56
|
+
else
|
57
|
+
"<span class='index_term' id='index_term_#{index}'>#{reference}</span>"
|
58
|
+
end
|
17
59
|
end
|
18
60
|
end
|
19
61
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'asciidoctor'
|
2
|
+
require 'asciidoctor/extensions'
|
3
|
+
|
4
|
+
|
5
|
+
module Asciidoctor::LaTeX
|
6
|
+
class MacroPreprocessor < Asciidoctor::Extensions::Preprocessor
|
7
|
+
|
8
|
+
|
9
|
+
def process document, reader
|
10
|
+
regex = /{{(.*?)}}/
|
11
|
+
return reader if reader.eof?
|
12
|
+
replacement_lines = reader.read_lines.map do |line|
|
13
|
+
if line.include? '{{'
|
14
|
+
scan = line.scan regex
|
15
|
+
scan.each do |match|
|
16
|
+
target = match[0]
|
17
|
+
puts "target: #{target}".red
|
18
|
+
line = line.gsub("{{#{target}}}", "glossterm::[#{target}]")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
line
|
22
|
+
end
|
23
|
+
reader.unshift_lines replacement_lines
|
24
|
+
reader
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -161,7 +161,7 @@ module Asciidoctor
|
|
161
161
|
doc << processed_content
|
162
162
|
|
163
163
|
unless embedded?
|
164
|
-
# Now write the
|
164
|
+
# Now write the definitions of the new environments
|
165
165
|
# discovered to file
|
166
166
|
definitions = ""
|
167
167
|
|
@@ -476,12 +476,32 @@ module Asciidoctor
|
|
476
476
|
handle_box
|
477
477
|
when 'texmacro'
|
478
478
|
handle_texmacro
|
479
|
+
when 'include_latex'
|
480
|
+
handle_include_latex
|
479
481
|
else
|
480
482
|
handle_plain(env)
|
481
483
|
end
|
482
484
|
end
|
483
485
|
|
484
486
|
def handle_texmacro
|
487
|
+
"%% User tex macros:\n#{self.content}\n%% end of user macros\n"
|
488
|
+
end
|
489
|
+
|
490
|
+
# Example:
|
491
|
+
# [env.include_latex]
|
492
|
+
# --
|
493
|
+
# \nput abc.text
|
494
|
+
# \usepackage{def}
|
495
|
+
# --
|
496
|
+
# Nothing appears in the HTML,
|
497
|
+
# bu lines
|
498
|
+
# \nput abc.text
|
499
|
+
# \usepackage{def}
|
500
|
+
# appear in the generated tex file.
|
501
|
+
def handle_include_latex
|
502
|
+
puts "Hi Boss, it's me again!"
|
503
|
+
puts self.content
|
504
|
+
puts "---------------"
|
485
505
|
self.content
|
486
506
|
end
|
487
507
|
|
@@ -680,7 +700,8 @@ module Asciidoctor
|
|
680
700
|
end
|
681
701
|
|
682
702
|
def preamble_process
|
683
|
-
"\\begin\{preamble\}\n#{self.content}\n\\end\{preamble\}\n"
|
703
|
+
# "\\begin\{preamble\}\n%% HO HO HO!\n#{self.content}\n\\end\{preamble\}\n"
|
704
|
+
self.content
|
684
705
|
end
|
685
706
|
|
686
707
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
|
2
|
+
|
3
|
+
include ::Asciidoctor
|
4
|
+
|
5
|
+
Extensions.register do
|
6
|
+
# A treeprocessor that increments each level-1 section number by the value of
|
7
|
+
# the `sectnumoffset` attribute.
|
8
|
+
#
|
9
|
+
# In addition, if `subsectnumoffset` is defined and greater than zero,
|
10
|
+
# the numbers of subsections in the first section encountered will
|
11
|
+
# be incremented by the offset.
|
12
|
+
#
|
13
|
+
# The numbers of all subsections will be
|
14
|
+
# incremented automatically since those values are calculated dynamically.
|
15
|
+
#
|
16
|
+
# Run using:
|
17
|
+
#
|
18
|
+
# asciidoctor -r ./lib/sectnumoffset-treeprocessor.rb -a sectnums -a sectnumoffset=1 lib/sectnumoffset-treeprocessor/sample.adoc
|
19
|
+
#
|
20
|
+
#
|
21
|
+
treeprocessor do
|
22
|
+
process do |document|
|
23
|
+
if (document.attr? 'sectnums') && (sectnumoffset = (document.attr 'sectnumoffset', 0).to_i) > 0
|
24
|
+
subsectnumoffset = (document.attr 'subsectnumoffset', 0).to_i
|
25
|
+
warn "subsectnumoffset: #{subsectnumoffset}".red if $VERBOSE
|
26
|
+
section_count = 0
|
27
|
+
if subsectnumoffset > 0
|
28
|
+
warn "Insert parent section at 'head' of document with offset #{sectnumoffset}".cyan if $VERBOSE
|
29
|
+
end
|
30
|
+
((document.find_by context: :section) || []).each do |sect|
|
31
|
+
next unless sect.level <= 2
|
32
|
+
if sect.level == 1
|
33
|
+
section_count += 1
|
34
|
+
sect.number += sectnumoffset
|
35
|
+
elsif sect.level == 2 && section_count == 1
|
36
|
+
sect.number += subsectnumoffset
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -42,7 +42,7 @@ module Asciidoctor::LaTeX
|
|
42
42
|
# if match_data
|
43
43
|
# output = output.gsub(match_data[0], match_data[1])
|
44
44
|
# end
|
45
|
-
output
|
45
|
+
output.gsub('!!!BACKSLASH', '\\')
|
46
46
|
# output.gsub('%', '\%') This messes up the html bigtimw
|
47
47
|
end
|
48
48
|
|
@@ -73,14 +73,14 @@ module Asciidoctor::LaTeX
|
|
73
73
|
# end
|
74
74
|
# if line =~ /\&/
|
75
75
|
# line = line.gsub('&', '\\\&')
|
76
|
-
#
|
76
|
+
# en
|
77
77
|
# We do need to make this substitution, but ONLY ouutside
|
78
78
|
# of mathematical text.
|
79
79
|
# Please $FIXME!
|
80
80
|
#
|
81
81
|
# We would like to ensure that underscores in names,
|
82
82
|
# e.g., MACRO_NAME, do not cause LaTeX bugs. However,
|
83
|
-
# the code below introduces a more serious bug:
|
83
|
+
# the code below introduces a more serious bug: expressions
|
84
84
|
# lik4 $\int_0^1 x^n dx$ are mapped to $\int\_0^1 x^n dx$.
|
85
85
|
# I'm not sure this problem can be solved using regex's:
|
86
86
|
# we need to apply a substitution to a line when there is a match
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require_relative '../add_ons/make_index'
|
2
|
+
|
3
|
+
describe TextIndex do
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
|
9
|
+
@text = <<EOF
|
10
|
+
This is a test of ((Foo)).
|
11
|
+
That is to say, we went to the ((bar)).
|
12
|
+
However, ((Foo)) was nowhere to be found!
|
13
|
+
EOF
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'can be initialized from a string', :string_setup do
|
20
|
+
ti = TextIndex.new(string: @text)
|
21
|
+
expect(ti.lines.count).to eq(3)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'can be initialized from a file', :file_setup do
|
25
|
+
ti = TextIndex.new(string: @text)
|
26
|
+
expect(ti.lines.count).to eq(3)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'scans the array lines, producing an array of index terms', :scan do
|
30
|
+
|
31
|
+
ti = TextIndex.new(string: @text)
|
32
|
+
ti.scan
|
33
|
+
expect(ti.term_array).to eq(["Foo", "bar", "Foo"])
|
34
|
+
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'scans a string, producing and array of its terms', :scan_string do
|
39
|
+
terms = TextIndex.scan_string('This is a test of ((Foo)). Afterwards we will go to the ((bar)).')
|
40
|
+
expect(terms).to eq(["Foo", "bar"])
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'produces a list of index terms from a piece of text' , :index_map do
|
44
|
+
ti = TextIndex.new(string: @text)
|
45
|
+
ti.scan
|
46
|
+
ti.make_index_map
|
47
|
+
expect(ti.index_map).to be_instance_of(Hash)
|
48
|
+
expect(ti.index_map["Foo"]).to eq([0,2])
|
49
|
+
expect(ti.index_map["bar"]).to eq([1])
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'transforms a string, replacing terms with the corresponding asciidoc element', :transform_line do
|
53
|
+
input = 'This is a test of ((Foo)). Afterwards we will go to the ((bar)).'
|
54
|
+
ti = TextIndex.new(string: input)
|
55
|
+
ti.scan
|
56
|
+
ti.make_index_map
|
57
|
+
output = ti.transform_line(input)
|
58
|
+
expected_output = 'This is a test of index_term::[Foo, 0].'
|
59
|
+
expected_output << ' Afterwards we will go to the index_term::[bar, 1].'
|
60
|
+
expect(output).to eq(expected_output)
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
it 'transforms an array of lines, writing the output to a file', :transform_lines do
|
65
|
+
ti = TextIndex.new(string: @text)
|
66
|
+
ti.scan
|
67
|
+
ti.make_index_map
|
68
|
+
ti.transform_lines('out.adoc')
|
69
|
+
output = File.read('out.adoc')
|
70
|
+
expected_output = <<EOF
|
71
|
+
This is a test of index_term::[Foo, 0].
|
72
|
+
That is to say, we went to the index_term::[bar, 1].
|
73
|
+
However, index_term::[Foo, 2] was nowhere to be found!
|
74
|
+
EOF
|
75
|
+
expect(output).to eq(expected_output)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'creates the data structure for the index', :index_array do
|
79
|
+
ti = TextIndex.new(string: @text)
|
80
|
+
ti.scan
|
81
|
+
ti.make_index_map
|
82
|
+
expected_index_array = [['bar', [1]], ['Foo', [0,2]]]
|
83
|
+
expect(ti.index_array).to eq(expected_index_array)
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'creates an Asciidoc version of the index', :ad_version do
|
88
|
+
ti = TextIndex.new(string: @text)
|
89
|
+
ti.scan
|
90
|
+
ti.make_index_map
|
91
|
+
ti.make_index
|
92
|
+
expected_index_text = "<<index_term_1, bar>> +\n<<index_term_0, Foo>>, <<index_term_2, 2>> +\n"
|
93
|
+
expect(ti.index).to eq(expected_index_text)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'transforms the marked index terms and appends an index to the generated asciidoc file', :preprocess do
|
97
|
+
ti = TextIndex.new(string: @text)
|
98
|
+
ti.preprocess('out.adoc')
|
99
|
+
output = File.read('out.adoc')
|
100
|
+
expected_output = "This is a test of index_term::[Foo, 0].\nThat is to say, we went to the index_term::[bar, 1].\nHowever, index_term::[Foo, 2] was nowhere to be found!\n\n\n== Index\n\n<<index_term_1, bar>> +\n<<index_term_0, Foo>>, <<index_term_2, 2>> +\n"
|
101
|
+
expect(output).to eq(expected_output)
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
@@ -1,15 +1,11 @@
|
|
1
1
|
%== .basic ==%
|
2
|
-
\begin{preamble}
|
3
2
|
This journey begins on a bleary Monday morning.
|
4
3
|
Our intrepid team is in desperate need of double shot mochas, but the milk expired eight days ago.
|
5
|
-
\end{preamble}
|
6
4
|
\hypertarget{x-cavern-glow}{\section*{Cavern Glow}}
|
7
5
|
The river rages through the cavern, rattling its content.
|
8
6
|
|
9
7
|
%== .toc_placement_preamble ==%
|
10
|
-
\begin{preamble}
|
11
8
|
This journey begins on a bleary Monday morning.
|
12
9
|
Our intrepid team is in desperate need of double shot mochas, but the milk expired eight days ago.
|
13
|
-
\end{preamble}
|
14
10
|
\hypertarget{x-cavern-glow}{\section*{Cavern Glow}}
|
15
11
|
The river rages through the cavern, rattling its content.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-latex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0.
|
4
|
+
version: 1.5.0.7.dev
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Carlson
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-05-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: asciidoctor
|
@@ -171,20 +171,23 @@ files:
|
|
171
171
|
- lib/asciidoctor/latex/converter.rb
|
172
172
|
- lib/asciidoctor/latex/core_ext/colored_string.rb
|
173
173
|
- lib/asciidoctor/latex/core_ext/utility.rb
|
174
|
-
- lib/asciidoctor/latex/
|
174
|
+
- lib/asciidoctor/latex/css_doc_info.rb
|
175
175
|
- lib/asciidoctor/latex/dollar.rb
|
176
176
|
- lib/asciidoctor/latex/ent_to_uni.rb
|
177
177
|
- lib/asciidoctor/latex/environment_block.rb
|
178
178
|
- lib/asciidoctor/latex/inject_html.rb
|
179
179
|
- lib/asciidoctor/latex/inline_macros.rb
|
180
180
|
- lib/asciidoctor/latex/macro_insert.rb
|
181
|
+
- lib/asciidoctor/latex/macro_preprocessor.rb
|
181
182
|
- lib/asciidoctor/latex/node_processors.rb
|
182
183
|
- lib/asciidoctor/latex/prepend_processor.rb
|
183
184
|
- lib/asciidoctor/latex/preprocess.rb
|
185
|
+
- lib/asciidoctor/latex/sectnumoffset-treeprocessor.rb
|
184
186
|
- lib/asciidoctor/latex/tex_block.rb
|
185
187
|
- lib/asciidoctor/latex/tex_postprocessor.rb
|
186
188
|
- lib/asciidoctor/latex/tex_preprocessor.rb
|
187
189
|
- lib/asciidoctor/latex/version.rb
|
190
|
+
- spec/make_index_spec.rb
|
188
191
|
- test/examples/adoc/ampersand.adoc
|
189
192
|
- test/examples/adoc/block_olist.adoc
|
190
193
|
- test/examples/adoc/block_ulist.adoc
|
@@ -315,11 +318,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
318
|
version: 1.3.1
|
316
319
|
requirements: []
|
317
320
|
rubyforge_project:
|
318
|
-
rubygems_version: 2.
|
321
|
+
rubygems_version: 2.6.2
|
319
322
|
signing_key:
|
320
323
|
specification_version: 4
|
321
324
|
summary: Converts AsciiDoc documents to LaTeX, provides LaTeX extensions to Asciidoc
|
322
325
|
test_files:
|
326
|
+
- spec/make_index_spec.rb
|
323
327
|
- test/examples/adoc/ampersand.adoc
|
324
328
|
- test/examples/adoc/block_olist.adoc
|
325
329
|
- test/examples/adoc/block_ulist.adoc
|