kramdown-asciidoc 2.0.1 → 2.1.0
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/CHANGELOG.adoc +21 -0
- data/README.adoc +1 -1
- data/kramdown-asciidoc.gemspec +1 -1
- data/lib/kramdown-asciidoc/cli.rb +4 -0
- data/lib/kramdown-asciidoc/converter.rb +31 -9
- data/lib/kramdown-asciidoc/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72f332cee31234bcb8b870e8216bb76062a85a66cbdaf05c8aa3a1829677564a
|
4
|
+
data.tar.gz: e80097972c53c804615741fa8e4b7fe7eb185d173dbb14242ff3c9d7ab1ddf9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b48abf36246bf94d96f6c5f8ff75962f90ae0ec216c947fd9052d865d0e30a3d2b1cbe50a5d84592c95f2dc830c5c3bd82a56f82410bac3c5c082546d3030407
|
7
|
+
data.tar.gz: 6654bbe89a6e3dea310df6df79cad09ab0cd911ca0c562d057827dc5751ab79a03ad8d1914dfe69b3346b01356c4e0fc46611beb19705573918fee7d77bc6006
|
data/CHANGELOG.adoc
CHANGED
@@ -5,6 +5,27 @@
|
|
5
5
|
This document provides a high-level view of the changes to {project-name} by release.
|
6
6
|
For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
|
7
7
|
|
8
|
+
== 2.1.0 (2022-07-04) - @mojavelinux
|
9
|
+
|
10
|
+
=== Added
|
11
|
+
|
12
|
+
* Add support for multi-paragraph admonitions (#72)
|
13
|
+
* Add support for GFM-style admonitions (#103)
|
14
|
+
* Convert checkbox at start of items in a checklist (#94)
|
15
|
+
* Allow diagram languages to be specified and convert matching fenced code blocks to diagram literal blocks (#76)
|
16
|
+
|
17
|
+
=== Fixed
|
18
|
+
|
19
|
+
* Separate adjacent delimited literal blocks
|
20
|
+
|
21
|
+
=== Changed
|
22
|
+
|
23
|
+
* Upgrade kramdown to 2.4.x
|
24
|
+
|
25
|
+
=== Details
|
26
|
+
|
27
|
+
{url-repo}/releases/tag/v2.1.0[git tag] | {url-repo}/compare/v2.0.1\...v2.1.0[full diff]
|
28
|
+
|
8
29
|
== 2.0.1 (2022-06-29) - @mojavelinux
|
9
30
|
|
10
31
|
=== Fixed
|
data/README.adoc
CHANGED
data/kramdown-asciidoc.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
|
32
32
|
s.require_paths = ['lib']
|
33
33
|
|
34
|
-
s.add_runtime_dependency 'kramdown', '~> 2.
|
34
|
+
s.add_runtime_dependency 'kramdown', '~> 2.4.0'
|
35
35
|
s.add_runtime_dependency 'rexml', '~> 3.2.0'
|
36
36
|
s.add_runtime_dependency 'kramdown-parser-gfm', '~> 1.1.0'
|
37
37
|
|
@@ -35,6 +35,10 @@ module AsciiDoc
|
|
35
35
|
options[:attributes][key] = val
|
36
36
|
end
|
37
37
|
|
38
|
+
opts.on '--diagram-languages=VALUES', 'Specify source languages to treat as diagrams (default: plantuml,mermaid)' do |names|
|
39
|
+
options[:diagram_languages] = names.split ','
|
40
|
+
end
|
41
|
+
|
38
42
|
opts.on '--wrap=preserve|none|ventilate', [:none, :preserve, :ventilate], 'Set how lines are wrapped in the AsciiDoc document (default: preserve)' do |wrap|
|
39
43
|
options[:wrap] = wrap
|
40
44
|
end
|
@@ -92,6 +92,7 @@ module AsciiDoc
|
|
92
92
|
@ids_seen = {}
|
93
93
|
@footnote_ids = ::Set.new
|
94
94
|
@auto_links = opts.fetch :auto_links, true
|
95
|
+
@diagram_languages = opts[:diagram_languages] || %w(plantuml mermaid)
|
95
96
|
@heading_offset = opts[:heading_offset] || 0
|
96
97
|
@imagesdir = opts[:imagesdir] || @attributes['imagesdir']
|
97
98
|
@wrap = opts[:wrap] || :preserve
|
@@ -185,7 +186,8 @@ module AsciiDoc
|
|
185
186
|
elsif (child_i.type == :strong || child_i.type == :em) &&
|
186
187
|
(marker_el = child_i.children[0]) && ((marker = ADMON_FORMATTED_MARKERS[marker_el.value]) ||
|
187
188
|
((marker = ADMON_LABELS[marker_el.value]) && (child_ii = to_element children[1]).type == :text &&
|
188
|
-
((child_ii_text = child_ii.value).start_with? ': ')
|
189
|
+
(((child_ii_text = child_ii.value).start_with? ': ') ||
|
190
|
+
(opts[:parent].type == :blockquote && (child_ii_text.start_with? ?\n)))))
|
189
191
|
children = children.drop 1
|
190
192
|
children[0] = clone child_ii, value: (child_ii_text.slice 1, child_ii_text.length) if child_ii
|
191
193
|
# Q: should we only rstrip?
|
@@ -203,8 +205,16 @@ module AsciiDoc
|
|
203
205
|
(writer = opts[:writer]).start_block
|
204
206
|
traverse el, (opts.merge writer: (block_writer = Writer.new), blockquote_depth: (depth = opts[:blockquote_depth] || 0) + 1)
|
205
207
|
contents = block_writer.body
|
206
|
-
if contents[0].start_with?(*ADMON_MARKERS_ASCIIDOC)
|
207
|
-
|
208
|
+
if contents[0].start_with?(*ADMON_MARKERS_ASCIIDOC)
|
209
|
+
if contents.include? ''
|
210
|
+
style, _, contents[0] = contents[0].partition ': '
|
211
|
+
writer.add_line %([#{style}])
|
212
|
+
writer.start_delimited_block '='
|
213
|
+
writer.add_lines contents
|
214
|
+
writer.end_delimited_block
|
215
|
+
else
|
216
|
+
writer.add_lines contents
|
217
|
+
end
|
208
218
|
else
|
209
219
|
if contents.size > 1 && ::String === (last_line = contents[-1]) && (last_line.start_with? '-- ')
|
210
220
|
attribution = (attribution_line = contents.pop).slice 3, attribution_line.length
|
@@ -224,7 +234,8 @@ module AsciiDoc
|
|
224
234
|
def convert_codeblock el, opts
|
225
235
|
writer = opts[:writer]
|
226
236
|
# NOTE hack to down-convert level-5 heading to block title
|
227
|
-
if (current_line = writer.current_line) &&
|
237
|
+
if (current_line = writer.current_line) &&
|
238
|
+
((current_line.start_with? '.') ? (current_line == '....' || (current_line.start_with? '. ')) : true)
|
228
239
|
writer.start_block
|
229
240
|
end
|
230
241
|
lines = el.value.rstrip.split LF
|
@@ -232,14 +243,21 @@ module AsciiDoc
|
|
232
243
|
if (lang = el.attr['class'])
|
233
244
|
# NOTE Kramdown always prefixes class with language-
|
234
245
|
# TODO remap lang if requested
|
235
|
-
|
246
|
+
lang = lang.slice 9, lang.length
|
247
|
+
if @diagram_languages.include? lang
|
248
|
+
diagram = true
|
249
|
+
writer.add_line %([#{lang}])
|
250
|
+
else
|
251
|
+
writer.add_line %([,#{lang}])
|
252
|
+
end
|
236
253
|
elsif (prompt = first_line && (first_line.start_with? '$ '))
|
237
254
|
writer.add_line %([,#{lang = 'console'}]) if lines.include? ''
|
238
255
|
end
|
239
256
|
if lang || (el.options[:fenced] && !prompt)
|
240
|
-
|
257
|
+
delimiter = diagram ? '....' : '----'
|
258
|
+
writer.add_line delimiter
|
241
259
|
writer.add_lines lines
|
242
|
-
writer.add_line
|
260
|
+
writer.add_line delimiter
|
243
261
|
elsif !prompt && ((lines.include? '') || (first_line && (ListMarkerRx.match? first_line)))
|
244
262
|
writer.add_line '....'
|
245
263
|
writer.add_lines lines
|
@@ -585,8 +603,12 @@ module AsciiDoc
|
|
585
603
|
when 'sub'
|
586
604
|
opts[:writer].append %(~#{contents}~)
|
587
605
|
else
|
588
|
-
|
589
|
-
|
606
|
+
if tag == 'input' && el.attr['type'] == 'checkbox' && el.attr['class'] == 'task-list-item-checkbox'
|
607
|
+
opts[:writer].append %([#{el.attr['checked'] ? 'x' : ' '}] )
|
608
|
+
else
|
609
|
+
attrs = (attrs = el.attr).empty? ? '' : attrs.map {|k, v| %( #{k}="#{v}") }.join
|
610
|
+
opts[:writer].append %(+++<#{tag}#{attrs}>+++#{contents}+++</#{tag}>+++)
|
611
|
+
end
|
590
612
|
end
|
591
613
|
end
|
592
614
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kramdown-asciidoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rexml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|