asciidoctor 1.5.8 → 2.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CHANGELOG.adoc +628 -45
  4. data/LICENSE +2 -1
  5. data/README-de.adoc +28 -38
  6. data/README-fr.adoc +30 -43
  7. data/README-jp.adoc +255 -201
  8. data/README-zh_CN.adoc +40 -44
  9. data/README.adoc +170 -143
  10. data/asciidoctor.gemspec +22 -34
  11. data/bin/asciidoctor +5 -4
  12. data/data/locale/attributes-ar.adoc +4 -3
  13. data/data/locale/attributes-be.adoc +23 -0
  14. data/data/locale/attributes-bg.adoc +4 -3
  15. data/data/locale/attributes-ca.adoc +6 -5
  16. data/data/locale/attributes-cs.adoc +4 -3
  17. data/data/locale/attributes-da.adoc +6 -5
  18. data/data/locale/attributes-de.adoc +6 -5
  19. data/data/locale/attributes-en.adoc +4 -4
  20. data/data/locale/attributes-es.adoc +6 -5
  21. data/data/locale/attributes-fa.adoc +4 -3
  22. data/data/locale/attributes-fi.adoc +4 -3
  23. data/data/locale/attributes-fr.adoc +8 -7
  24. data/data/locale/attributes-hu.adoc +4 -3
  25. data/data/locale/attributes-id.adoc +4 -3
  26. data/data/locale/attributes-it.adoc +6 -5
  27. data/data/locale/attributes-ja.adoc +4 -3
  28. data/data/locale/{attributes-kr.adoc → attributes-ko.adoc} +4 -3
  29. data/data/locale/attributes-nb.adoc +4 -3
  30. data/data/locale/attributes-nl.adoc +6 -5
  31. data/data/locale/attributes-nn.adoc +4 -3
  32. data/data/locale/attributes-pl.adoc +8 -7
  33. data/data/locale/attributes-pt.adoc +6 -5
  34. data/data/locale/attributes-pt_BR.adoc +6 -5
  35. data/data/locale/attributes-ro.adoc +4 -3
  36. data/data/locale/attributes-ru.adoc +6 -5
  37. data/data/locale/attributes-sr.adoc +4 -4
  38. data/data/locale/attributes-sr_Latn.adoc +4 -4
  39. data/data/locale/attributes-sv.adoc +4 -4
  40. data/data/locale/attributes-th.adoc +23 -0
  41. data/data/locale/attributes-tr.adoc +4 -3
  42. data/data/locale/attributes-uk.adoc +6 -5
  43. data/data/locale/attributes-vi.adoc +23 -0
  44. data/data/locale/attributes-zh_CN.adoc +4 -3
  45. data/data/locale/attributes-zh_TW.adoc +4 -3
  46. data/data/reference/syntax.adoc +296 -0
  47. data/data/stylesheets/asciidoctor-default.css +120 -114
  48. data/data/stylesheets/coderay-asciidoctor.css +15 -17
  49. data/lib/asciidoctor/abstract_block.rb +146 -140
  50. data/lib/asciidoctor/abstract_node.rb +152 -170
  51. data/lib/asciidoctor/attribute_list.rb +77 -89
  52. data/lib/asciidoctor/block.rb +29 -28
  53. data/lib/asciidoctor/callouts.rb +4 -2
  54. data/lib/asciidoctor/cli/invoker.rb +20 -24
  55. data/lib/asciidoctor/cli/options.rb +107 -96
  56. data/lib/asciidoctor/cli.rb +3 -2
  57. data/lib/asciidoctor/convert.rb +199 -0
  58. data/lib/asciidoctor/converter/composite.rb +40 -48
  59. data/lib/asciidoctor/converter/docbook5.rb +627 -644
  60. data/lib/asciidoctor/converter/html5.rb +1053 -951
  61. data/lib/asciidoctor/converter/manpage.rb +581 -532
  62. data/lib/asciidoctor/converter/template.rb +232 -271
  63. data/lib/asciidoctor/converter.rb +370 -185
  64. data/lib/asciidoctor/core_ext/float/truncate.rb +20 -0
  65. data/lib/asciidoctor/core_ext/hash/merge.rb +8 -0
  66. data/lib/asciidoctor/core_ext/match_data/names.rb +7 -0
  67. data/lib/asciidoctor/core_ext/nil_or_empty.rb +1 -0
  68. data/lib/asciidoctor/core_ext/regexp/is_match.rb +4 -2
  69. data/lib/asciidoctor/core_ext.rb +8 -17
  70. data/lib/asciidoctor/document.rb +503 -461
  71. data/lib/asciidoctor/extensions.rb +127 -174
  72. data/lib/asciidoctor/helpers.rb +184 -107
  73. data/lib/asciidoctor/inline.rb +9 -12
  74. data/lib/asciidoctor/list.rb +11 -29
  75. data/lib/asciidoctor/load.rb +119 -0
  76. data/lib/asciidoctor/logging.rb +22 -17
  77. data/lib/asciidoctor/parser.rb +673 -719
  78. data/lib/asciidoctor/path_resolver.rb +48 -33
  79. data/lib/asciidoctor/reader.rb +383 -338
  80. data/lib/asciidoctor/rouge_ext.rb +39 -0
  81. data/lib/asciidoctor/rx.rb +723 -0
  82. data/lib/asciidoctor/section.rb +17 -16
  83. data/lib/asciidoctor/stylesheets.rb +19 -37
  84. data/lib/asciidoctor/substitutors.rb +926 -1022
  85. data/lib/asciidoctor/syntax_highlighter/coderay.rb +88 -0
  86. data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +34 -0
  87. data/lib/asciidoctor/syntax_highlighter/html_pipeline.rb +10 -0
  88. data/lib/asciidoctor/syntax_highlighter/prettify.rb +30 -0
  89. data/lib/asciidoctor/syntax_highlighter/pygments.rb +157 -0
  90. data/lib/asciidoctor/syntax_highlighter/rouge.rb +143 -0
  91. data/lib/asciidoctor/syntax_highlighter.rb +253 -0
  92. data/lib/asciidoctor/table.rb +152 -114
  93. data/lib/asciidoctor/timings.rb +7 -5
  94. data/lib/asciidoctor/version.rb +2 -1
  95. data/lib/asciidoctor/writer.rb +30 -0
  96. data/lib/asciidoctor.rb +266 -1340
  97. data/man/asciidoctor.1 +49 -47
  98. data/man/asciidoctor.adoc +54 -45
  99. metadata +50 -245
  100. data/CONTRIBUTING.adoc +0 -185
  101. data/Gemfile +0 -60
  102. data/Rakefile +0 -129
  103. data/bin/asciidoctor-safe +0 -15
  104. data/features/open_block.feature +0 -92
  105. data/features/pass_block.feature +0 -66
  106. data/features/step_definitions.rb +0 -49
  107. data/features/text_formatting.feature +0 -57
  108. data/features/xref.feature +0 -1039
  109. data/lib/asciidoctor/converter/base.rb +0 -59
  110. data/lib/asciidoctor/converter/docbook45.rb +0 -93
  111. data/lib/asciidoctor/converter/factory.rb +0 -226
  112. data/lib/asciidoctor/core_ext/1.8.7/base64/strict_encode64.rb +0 -6
  113. data/lib/asciidoctor/core_ext/1.8.7/concurrent/hash.rb +0 -5
  114. data/lib/asciidoctor/core_ext/1.8.7/hash/key.rb +0 -4
  115. data/lib/asciidoctor/core_ext/1.8.7/io/binread.rb +0 -6
  116. data/lib/asciidoctor/core_ext/1.8.7/io/write.rb +0 -5
  117. data/lib/asciidoctor/core_ext/1.8.7/string/chr.rb +0 -6
  118. data/lib/asciidoctor/core_ext/1.8.7/string/limit_bytesize.rb +0 -29
  119. data/lib/asciidoctor/core_ext/1.8.7/symbol/empty.rb +0 -6
  120. data/lib/asciidoctor/core_ext/1.8.7/symbol/length.rb +0 -6
  121. data/lib/asciidoctor/core_ext/string/limit_bytesize.rb +0 -10
  122. data/test/api_test.rb +0 -1240
  123. data/test/attribute_list_test.rb +0 -242
  124. data/test/attributes_test.rb +0 -1623
  125. data/test/blocks_test.rb +0 -3870
  126. data/test/converter_test.rb +0 -470
  127. data/test/document_test.rb +0 -1853
  128. data/test/extensions_test.rb +0 -1560
  129. data/test/fixtures/asciidoc_index.txt +0 -521
  130. data/test/fixtures/basic-docinfo-footer.html +0 -6
  131. data/test/fixtures/basic-docinfo-footer.xml +0 -8
  132. data/test/fixtures/basic-docinfo.html +0 -1
  133. data/test/fixtures/basic-docinfo.xml +0 -4
  134. data/test/fixtures/basic.asciidoc +0 -5
  135. data/test/fixtures/chapter-a.adoc +0 -3
  136. data/test/fixtures/child-include.adoc +0 -5
  137. data/test/fixtures/circle.svg +0 -9
  138. data/test/fixtures/custom-backends/erb/html5/block_paragraph.html.erb +0 -6
  139. data/test/fixtures/custom-backends/haml/docbook45/block_paragraph.xml.haml +0 -6
  140. data/test/fixtures/custom-backends/haml/html5/block_paragraph.html.haml +0 -3
  141. data/test/fixtures/custom-backends/haml/html5/block_sidebar.html.haml +0 -5
  142. data/test/fixtures/custom-backends/haml/html5-tweaks/block_paragraph.html.haml +0 -1
  143. data/test/fixtures/custom-backends/slim/docbook45/block_paragraph.xml.slim +0 -6
  144. data/test/fixtures/custom-backends/slim/html5/block_paragraph.html.slim +0 -3
  145. data/test/fixtures/custom-backends/slim/html5/block_sidebar.html.slim +0 -5
  146. data/test/fixtures/custom-docinfodir/basic-docinfo.html +0 -1
  147. data/test/fixtures/custom-docinfodir/docinfo.html +0 -1
  148. data/test/fixtures/docinfo-footer.html +0 -1
  149. data/test/fixtures/docinfo-footer.xml +0 -9
  150. data/test/fixtures/docinfo.html +0 -1
  151. data/test/fixtures/docinfo.xml +0 -3
  152. data/test/fixtures/doctime-localtime.adoc +0 -2
  153. data/test/fixtures/dot.gif +0 -0
  154. data/test/fixtures/encoding.asciidoc +0 -13
  155. data/test/fixtures/file-with-missing-include.adoc +0 -1
  156. data/test/fixtures/grandchild-include.adoc +0 -3
  157. data/test/fixtures/hello-asciidoctor.pdf +0 -69
  158. data/test/fixtures/include-file.asciidoc +0 -24
  159. data/test/fixtures/include-file.jsx +0 -8
  160. data/test/fixtures/include-file.ml +0 -3
  161. data/test/fixtures/include-file.xml +0 -5
  162. data/test/fixtures/lists.adoc +0 -96
  163. data/test/fixtures/master.adoc +0 -5
  164. data/test/fixtures/mismatched-end-tag.adoc +0 -7
  165. data/test/fixtures/other-chapters.adoc +0 -11
  166. data/test/fixtures/outer-include.adoc +0 -5
  167. data/test/fixtures/parent-include-restricted.adoc +0 -5
  168. data/test/fixtures/parent-include.adoc +0 -5
  169. data/test/fixtures/sample.asciidoc +0 -30
  170. data/test/fixtures/section-a.adoc +0 -4
  171. data/test/fixtures/stylesheets/custom.css +0 -3
  172. data/test/fixtures/subdir/index.adoc +0 -3
  173. data/test/fixtures/subdir/inner-include.adoc +0 -3
  174. data/test/fixtures/subdir/middle-include.adoc +0 -5
  175. data/test/fixtures/subs-docinfo.html +0 -2
  176. data/test/fixtures/subs.adoc +0 -6
  177. data/test/fixtures/tagged-class-enclosed.rb +0 -25
  178. data/test/fixtures/tagged-class.rb +0 -23
  179. data/test/fixtures/tip.gif +0 -0
  180. data/test/fixtures/unclosed-tag.adoc +0 -3
  181. data/test/fixtures/unexpected-end-tag.adoc +0 -4
  182. data/test/invoker_test.rb +0 -745
  183. data/test/links_test.rb +0 -855
  184. data/test/lists_test.rb +0 -5151
  185. data/test/logger_test.rb +0 -211
  186. data/test/manpage_test.rb +0 -660
  187. data/test/options_test.rb +0 -262
  188. data/test/paragraphs_test.rb +0 -562
  189. data/test/parser_test.rb +0 -742
  190. data/test/paths_test.rb +0 -395
  191. data/test/preamble_test.rb +0 -173
  192. data/test/reader_test.rb +0 -2161
  193. data/test/sections_test.rb +0 -3575
  194. data/test/substitutions_test.rb +0 -2066
  195. data/test/tables_test.rb +0 -2036
  196. data/test/test_helper.rb +0 -447
  197. data/test/text_test.rb +0 -309
data/test/logger_test.rb DELETED
@@ -1,211 +0,0 @@
1
- # encoding: UTF-8
2
- unless defined? ASCIIDOCTOR_PROJECT_DIR
3
- $: << File.dirname(__FILE__); $:.uniq!
4
- require 'test_helper'
5
- end
6
-
7
- context 'Logger' do
8
- MyLogger = Class.new Logger
9
-
10
- context 'LoggerManager' do
11
- test 'provides access to logger via static logger method' do
12
- logger = Asciidoctor::LoggerManager.logger
13
- refute_nil logger
14
- assert_kind_of Logger, logger
15
- end
16
-
17
- test 'allows logger instance to be changed' do
18
- old_logger = Asciidoctor::LoggerManager.logger
19
- new_logger = MyLogger.new $stdout
20
- begin
21
- Asciidoctor::LoggerManager.logger = new_logger
22
- assert_same new_logger, Asciidoctor::LoggerManager.logger
23
- ensure
24
- Asciidoctor::LoggerManager.logger = old_logger
25
- end
26
- end
27
-
28
- test 'setting logger instance to falsy value resets instance to default logger' do
29
- old_logger = Asciidoctor::LoggerManager.logger
30
- begin
31
- Asciidoctor::LoggerManager.logger = MyLogger.new $stdout
32
- Asciidoctor::LoggerManager.logger = nil
33
- refute_nil Asciidoctor::LoggerManager.logger
34
- assert_kind_of Logger, Asciidoctor::LoggerManager.logger
35
- ensure
36
- Asciidoctor::LoggerManager.logger = old_logger
37
- end
38
- end
39
-
40
- test 'creates logger instance from static logger_class property' do
41
- old_logger_class = Asciidoctor::LoggerManager.logger_class
42
- old_logger = Asciidoctor::LoggerManager.logger
43
- begin
44
- Asciidoctor::LoggerManager.logger_class = MyLogger
45
- Asciidoctor::LoggerManager.logger = nil
46
- refute_nil Asciidoctor::LoggerManager.logger
47
- assert_kind_of MyLogger, Asciidoctor::LoggerManager.logger
48
- ensure
49
- Asciidoctor::LoggerManager.logger_class = old_logger_class
50
- Asciidoctor::LoggerManager.logger = old_logger
51
- end
52
- end
53
- end
54
-
55
- context 'Logger' do
56
- test 'configures default logger with progname set to asciidoctor' do
57
- assert_equal 'asciidoctor', Asciidoctor::LoggerManager.logger.progname
58
- end
59
-
60
- test 'configures default logger with level set to WARN' do
61
- assert_equal Logger::Severity::WARN, Asciidoctor::LoggerManager.logger.level
62
- end
63
-
64
- test 'configures default logger to write messages to $stderr' do
65
- out_string, err_string = redirect_streams do |out, err|
66
- Asciidoctor::LoggerManager.logger.warn 'this is a call'
67
- [out.string, err.string]
68
- end
69
- assert_empty out_string
70
- refute_empty err_string
71
- assert_includes err_string, 'this is a call'
72
- end
73
-
74
- test 'configures default logger to use a formatter that matches traditional format' do
75
- err_string = redirect_streams do |_, err|
76
- Asciidoctor::LoggerManager.logger.warn 'this is a call'
77
- Asciidoctor::LoggerManager.logger.fatal 'it cannot be done'
78
- err.string
79
- end
80
- assert_includes err_string, %(asciidoctor: WARNING: this is a call)
81
- assert_includes err_string, %(asciidoctor: FAILED: it cannot be done)
82
- end
83
- end
84
-
85
- context ':logger API option' do
86
- test 'should be able to set logger when invoking load API' do
87
- old_logger = Asciidoctor::LoggerManager.logger
88
- new_logger = MyLogger.new $stdout
89
- begin
90
- Asciidoctor.load 'contents', :logger => new_logger
91
- assert_same new_logger, Asciidoctor::LoggerManager.logger
92
- ensure
93
- Asciidoctor::LoggerManager.logger = old_logger
94
- end
95
- end
96
-
97
- test 'should be able to set logger when invoking load_file API' do
98
- old_logger = Asciidoctor::LoggerManager.logger
99
- new_logger = MyLogger.new $stdout
100
- begin
101
- Asciidoctor.load_file fixture_path('basic.asciidoc'), :logger => new_logger
102
- assert_same new_logger, Asciidoctor::LoggerManager.logger
103
- ensure
104
- Asciidoctor::LoggerManager.logger = old_logger
105
- end
106
- end
107
-
108
- test 'should be able to set logger when invoking convert API' do
109
- old_logger = Asciidoctor::LoggerManager.logger
110
- new_logger = MyLogger.new $stdout
111
- begin
112
- Asciidoctor.convert 'contents', :logger => new_logger
113
- assert_same new_logger, Asciidoctor::LoggerManager.logger
114
- ensure
115
- Asciidoctor::LoggerManager.logger = old_logger
116
- end
117
- end
118
-
119
- test 'should be able to set logger when invoking convert_file API' do
120
- old_logger = Asciidoctor::LoggerManager.logger
121
- new_logger = MyLogger.new $stdout
122
- begin
123
- Asciidoctor.convert_file fixture_path('basic.asciidoc'), :to_file => false, :logger => new_logger
124
- assert_same new_logger, Asciidoctor::LoggerManager.logger
125
- ensure
126
- Asciidoctor::LoggerManager.logger = old_logger
127
- end
128
- end
129
- end
130
-
131
- context 'Logging' do
132
- test 'including Logging gives instance methods on module access to logging infrastructure' do
133
- module SampleModuleA
134
- include Asciidoctor::Logging
135
- def get_logger
136
- logger
137
- end
138
- end
139
-
140
- class SampleClassA
141
- include SampleModuleA
142
- end
143
- assert_same Asciidoctor::LoggerManager.logger, SampleClassA.new.get_logger
144
- assert SampleClassA.private_method_defined? :logger
145
- end
146
-
147
- test 'including Logging gives static methods on module access to logging infrastructure' do
148
- module SampleModuleB
149
- include Asciidoctor::Logging
150
- def self.get_logger
151
- logger
152
- end
153
- end
154
-
155
- assert_same Asciidoctor::LoggerManager.logger, SampleModuleB.get_logger
156
- end
157
-
158
- test 'including Logging gives instance methods on class access to logging infrastructure' do
159
- class SampleClassC
160
- include Asciidoctor::Logging
161
- def get_logger
162
- logger
163
- end
164
- end
165
-
166
- assert_same Asciidoctor::LoggerManager.logger, SampleClassC.new.get_logger
167
- assert SampleClassC.private_method_defined? :logger
168
- end
169
-
170
- test 'including Logging gives static methods on class access to logging infrastructure' do
171
- class SampleClassD
172
- include Asciidoctor::Logging
173
- def self.get_logger
174
- logger
175
- end
176
- end
177
-
178
- assert_same Asciidoctor::LoggerManager.logger, SampleClassD.get_logger
179
- end
180
-
181
- test 'can create an auto-formatting message with context' do
182
- class SampleClassE
183
- include Asciidoctor::Logging
184
- def create_message cursor
185
- message_with_context 'Asciidoctor was here', :source_location => cursor
186
- end
187
- end
188
-
189
- cursor = Asciidoctor::Reader::Cursor.new 'file.adoc', fixturedir, 'file.adoc', 5
190
- message = SampleClassE.new.create_message cursor
191
- assert_equal 'Asciidoctor was here', message[:text]
192
- assert_same cursor, message[:source_location]
193
- assert_equal 'file.adoc: line 5: Asciidoctor was here', message.inspect
194
- end
195
-
196
- test 'writes message prefixed with program name and source location to stderr' do
197
- input = <<-EOS
198
- [#first]
199
- first paragraph
200
-
201
- [#first]
202
- another first paragraph
203
- EOS
204
- messages = redirect_streams do |_, err|
205
- convert_string_to_embedded input
206
- err.string
207
- end
208
- assert_equal 'asciidoctor: WARNING: <stdin>: line 5: id assigned to block already in use: first', messages.chomp
209
- end
210
- end
211
- end