reverse_adoc 0.3.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22407f5a4ca3839adba7a35be1c31492f2c051a2a9862b84ecb44f7992b1ece1
4
- data.tar.gz: 55bbbb5169f22a48ed4cac0d5653a30ddf92163827d8e2cc7ba0699098ac0d70
3
+ metadata.gz: c47e4d9eb1123a3b243cbb8f525eb3a4e5292d3cb721d09b1a0dc5a308521c24
4
+ data.tar.gz: 15602c27effe49fd669aa0114c655b30879d71fefe1019a5333962860e88375d
5
5
  SHA512:
6
- metadata.gz: e3860543e71ec3c4c372cdf9b96a51128bf1579e53e0d110879e39ccab90b4b08754f13fa28edfa96a24b4cbb2974a7aa65e23c8d6326e42e85fa7ff55b05063
7
- data.tar.gz: 0e043787955792419c2bd521a1c2a96cf2c3a0f022ad00c2ff8e74107d5e89d3c745774c55857f5a857f394ef05c6c82123402e1d18320670f4c4cc38e6fe376
6
+ metadata.gz: ce264bc1decfc19683b4fc5c5f72d96a71be82bfb5ffbbe7f6c1e2428ca78eae48f6df66d473e712c925f04afa8fca887c858549dddf2fe0568dd953b2fe6a01
7
+ data.tar.gz: 460f744b26878bf13783393f8a0776dd74c15450072cc9b7654221da3b122c28457353aec3560a8f3bb5c88db70cf8568e84cafae63b29154539ba789f0d1045
@@ -16,19 +16,9 @@ jobs:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- ruby: [ '2.7', '2.6', '2.5', '2.4' ]
19
+ ruby: [ '3.0', '2.7', '2.6', '2.5', '2.4' ]
20
20
  os: [ ubuntu-latest, windows-latest, macos-latest ]
21
21
  experimental: [ false ]
22
- include:
23
- - ruby: '3.0'
24
- os: 'ubuntu-latest'
25
- experimental: true
26
- - ruby: '3.0'
27
- os: 'windows-latest'
28
- experimental: true
29
- - ruby: '3.0'
30
- os: 'macos-latest'
31
- experimental: true
32
22
  steps:
33
23
  - uses: actions/checkout@master
34
24
 
@@ -0,0 +1,45 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: release
4
+
5
+ on:
6
+ workflow_dispatch:
7
+ inputs:
8
+ next_version:
9
+ description: |
10
+ Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
11
+ required: true
12
+ default: 'skip'
13
+ push:
14
+ tags: [ v* ]
15
+
16
+ jobs:
17
+ release:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v2
21
+
22
+ - uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: '2.6'
25
+ bundler-cache: true
26
+
27
+ - run: gem install gem-release
28
+
29
+ - if: ${{ github.event_name == 'workflow_dispatch' }} && ${{ github.event.inputs.next_version != 'skip' }}
30
+ run: |
31
+ git config user.name github-actions
32
+ git config user.email github-actions@github.com
33
+ gem bump --version ${{ github.event.inputs.next_version }} --tag --push
34
+
35
+ - name: publish to rubygems.org
36
+ env:
37
+ RUBYGEMS_API_KEY: ${{secrets.METANORMA_CI_RUBYGEMS_API_KEY}}
38
+ run: |
39
+ gem install gem-release
40
+ envsubst << 'EOF' > ~/.gem/credentials
41
+ ---
42
+ :rubygems_api_key: ${RUBYGEMS_API_KEY}
43
+ EOF
44
+ chmod 0600 ~/.gem/credentials
45
+ gem release
data/.hound.yml CHANGED
@@ -1,3 +1,5 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
1
3
  ruby:
2
- Enabled: true
4
+ enabled: true
3
5
  config_file: .rubocop.yml
data/.rubocop.yml CHANGED
@@ -1,20 +1,10 @@
1
- # This project follows the Ribose OSS style guide.
2
- # https://github.com/riboseinc/oss-guides
3
- # All project-specific additions and overrides should be specified in this file.
4
-
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
5
3
  inherit_from:
6
4
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
- AllCops:
8
- TargetRubyVersion: 2.4
9
- Rails:
10
- Enabled: false
11
5
 
12
- # Dependencies are ordered for purpose.
13
- Gemspec/OrderedDependencies:
14
- Enabled: false
6
+ # local repo-specific modifications
7
+ # ...
15
8
 
16
- # TODO Rather than disabling, change severity to "info" in Rubocop 1.9+.
17
- Layout:
18
- Enabled: false
19
- Style/StringLiterals:
20
- Enabled: false
9
+ AllCops:
10
+ TargetRubyVersion: 2.4
@@ -1,6 +1,5 @@
1
1
  module ReverseAdoc
2
2
  class Cleaner
3
-
4
3
  def tidy(string)
5
4
  result = remove_inner_whitespaces(string)
6
5
  result = remove_newlines(result)
@@ -14,7 +13,7 @@ module ReverseAdoc
14
13
  end
15
14
 
16
15
  def remove_leading_newlines(string)
17
- string.gsub(/\A\n+/, '')
16
+ string.gsub(/\A\n+/, "")
18
17
  end
19
18
 
20
19
  def remove_inner_whitespaces(string)
@@ -25,7 +24,7 @@ module ReverseAdoc
25
24
  end
26
25
  string.each_line.inject("") do |memo, line|
27
26
  memo + preserve_border_whitespaces(line) do
28
- line.strip.gsub(/[ \t]{2,}/, ' ')
27
+ line.strip.gsub(/[ \t]{2,}/, " ")
29
28
  end
30
29
  end
31
30
  end
@@ -37,64 +36,67 @@ module ReverseAdoc
37
36
  def clean_tag_borders(string)
38
37
  result = string.gsub(/\s?\*{2,}.*?\*{2,}\s?/) do |match|
39
38
  preserve_border_whitespaces(match, default_border: ReverseAdoc.config.tag_border) do
40
- match.strip.sub('** ', '**').sub(' **', '**')
39
+ match.strip.sub("** ", "**").sub(" **", "**")
41
40
  end
42
41
  end
43
42
 
44
- result = result.gsub(/\s?\_{2,}.*?\_{2,}\s?/) do |match|
43
+ result = result.gsub(/\s?_{2,}.*?_{2,}\s?/) do |match|
45
44
  preserve_border_whitespaces(match, default_border: ReverseAdoc.config.tag_border) do
46
- match.strip.sub('__ ', '__').sub(' __', '__')
45
+ match.strip.sub("__ ", "__").sub(" __", "__")
47
46
  end
48
47
  end
49
48
 
50
49
  result = result.gsub(/\s?~{2,}.*?~{2,}\s?/) do |match|
51
50
  preserve_border_whitespaces(match, default_border: ReverseAdoc.config.tag_border) do
52
- match.strip.sub('~~ ', '~~').sub(' ~~', '~~')
51
+ match.strip.sub("~~ ", "~~").sub(" ~~", "~~")
53
52
  end
54
53
  end
55
54
 
56
55
  result.gsub(/\s?\[.*?\]\s?/) do |match|
57
56
  preserve_border_whitespaces(match) do
58
- match.strip.sub('[ ', '[').sub(' ]', ']')
57
+ match.strip.sub("[ ", "[").sub(" ]", "]")
59
58
  end
60
59
  end
61
60
  end
62
61
 
63
62
  def clean_punctuation_characters(string)
64
- string.gsub(/(\*\*|~~|__)\s([\.!\?'"])/, "\\1".strip + "\\2")
63
+ string.gsub(/(\*\*|~~|__)\s([.!?'"])/, "\\1".strip + "\\2")
65
64
  end
66
65
 
67
- # preprocesses HTML, rather than postprocessing it
66
+ # preprocesses HTML, rather than postprocessing it
68
67
  def preprocess_word_html(string)
69
68
  clean_headings(scrub_whitespace(string.dup))
70
69
  end
71
70
 
72
71
  def scrub_whitespace(string)
73
- string.gsub!(/&nbsp;|\&#xA0;|\u00a0/i, '&#xA0;') # HTML encoded spaces
74
- string.sub!(/^\A[[:space:]]+/m, '') # document leading whitespace
75
- string.sub!(/[[:space:]]+\z$/m, '') # document trailing whitespace
76
- string.gsub!(/([ ]+)$/, ' ') # line trailing whitespace
77
- string.gsub!(/\n\n\n\n/, "\n\n") # Quadruple line breaks
78
- #string.delete!('?| ') # Unicode non-breaking spaces, injected as tabs
72
+ string.gsub!(/&nbsp;|&#xA0;|\u00a0/i, "&#xA0;") # HTML encoded spaces
73
+ string.sub!(/^\A[[:space:]]+/m, "") # document leading whitespace
74
+ string.sub!(/[[:space:]]+\z$/m, "") # document trailing whitespace
75
+ string.gsub!(/( +)$/, " ") # line trailing whitespace
76
+ string.gsub!(/\n\n\n\n/, "\n\n") # Quadruple line breaks
77
+ # string.delete!('?| ') # Unicode non-breaking spaces, injected as tabs
79
78
  string
80
79
  end
81
80
 
82
81
  # following added by me
83
82
  def clean_headings(string)
84
- string.gsub!(%r{<h([1-9])[^>]*></h\1>}, " ") # I don't know why Libre Office is inserting them, but they need to go
83
+ string.gsub!(%r{<h([1-9])[^>]*></h\1>}, " ")
84
+ # I don't know why Libre Office is inserting them, but they need to go
85
85
  string.gsub!(%r{<h([1-9])[^>]* style="vertical-align: super;[^>]*>(.+?)</h\1>},
86
- "<sup>\\2</sup>") # I absolutely don't know why Libre Office is rendering superscripts as h1
86
+ "<sup>\\2</sup>")
87
+ # I absolutely don't know why Libre Office is rendering superscripts as h1
87
88
  string
88
89
  end
89
90
 
90
91
  private
91
92
 
92
- def preserve_border_whitespaces(string, options = {}, &block)
93
- return string if string =~ /\A\s*\Z/
94
- default_border = options.fetch(:default_border, '')
93
+ def preserve_border_whitespaces(string, options = {})
94
+ return string if /\A\s*\Z/.match?(string)
95
+
96
+ default_border = options.fetch(:default_border, "")
95
97
  # If the string contains part of a link so the characters [,],(,)
96
98
  # then don't add any extra spaces
97
- default_border = '' if string =~ /[\[\(\]\)]/
99
+ default_border = "" if /[\[(\])]/.match?(string)
98
100
  string_start = present_or_default(string[/\A\s*/], default_border)
99
101
  string_end = present_or_default(string[/\s*\Z/], default_border)
100
102
  result = yield
@@ -108,6 +110,5 @@ module ReverseAdoc
108
110
  string
109
111
  end
110
112
  end
111
-
112
113
  end
113
114
  end
@@ -1,51 +1,51 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'reverse_adoc/converters/a'
4
- require 'reverse_adoc/converters/aside'
5
- require 'reverse_adoc/converters/audio'
6
- require 'reverse_adoc/converters/blockquote'
7
- require 'reverse_adoc/converters/br'
8
- require 'reverse_adoc/converters/bypass'
9
- require 'reverse_adoc/converters/code'
10
- require 'reverse_adoc/converters/div'
11
- require 'reverse_adoc/converters/drop'
12
- require 'reverse_adoc/converters/em'
13
- require 'reverse_adoc/converters/figure'
14
- require 'reverse_adoc/converters/h'
15
- require 'reverse_adoc/converters/head'
16
- require 'reverse_adoc/converters/hr'
17
- require 'reverse_adoc/converters/ignore'
18
- require 'reverse_adoc/converters/img'
19
- require 'reverse_adoc/converters/mark'
20
- require 'reverse_adoc/converters/li'
21
- require 'reverse_adoc/converters/ol'
22
- require 'reverse_adoc/converters/p'
23
- require 'reverse_adoc/converters/pass_through'
24
- require 'reverse_adoc/converters/pre'
25
- require 'reverse_adoc/converters/q'
26
- require 'reverse_adoc/converters/strong'
27
- require 'reverse_adoc/converters/sup'
28
- require 'reverse_adoc/converters/sub'
29
- require 'reverse_adoc/converters/table'
30
- require 'reverse_adoc/converters/td'
31
- require 'reverse_adoc/converters/th'
32
- require 'reverse_adoc/converters/text'
33
- require 'reverse_adoc/converters/tr'
34
- require 'reverse_adoc/converters/video'
35
- require 'reverse_adoc/converters/math'
3
+ require "reverse_adoc/converters/a"
4
+ require "reverse_adoc/converters/aside"
5
+ require "reverse_adoc/converters/audio"
6
+ require "reverse_adoc/converters/blockquote"
7
+ require "reverse_adoc/converters/br"
8
+ require "reverse_adoc/converters/bypass"
9
+ require "reverse_adoc/converters/code"
10
+ require "reverse_adoc/converters/div"
11
+ require "reverse_adoc/converters/drop"
12
+ require "reverse_adoc/converters/em"
13
+ require "reverse_adoc/converters/figure"
14
+ require "reverse_adoc/converters/h"
15
+ require "reverse_adoc/converters/head"
16
+ require "reverse_adoc/converters/hr"
17
+ require "reverse_adoc/converters/ignore"
18
+ require "reverse_adoc/converters/img"
19
+ require "reverse_adoc/converters/mark"
20
+ require "reverse_adoc/converters/li"
21
+ require "reverse_adoc/converters/ol"
22
+ require "reverse_adoc/converters/p"
23
+ require "reverse_adoc/converters/pass_through"
24
+ require "reverse_adoc/converters/pre"
25
+ require "reverse_adoc/converters/q"
26
+ require "reverse_adoc/converters/strong"
27
+ require "reverse_adoc/converters/sup"
28
+ require "reverse_adoc/converters/sub"
29
+ require "reverse_adoc/converters/table"
30
+ require "reverse_adoc/converters/td"
31
+ require "reverse_adoc/converters/th"
32
+ require "reverse_adoc/converters/text"
33
+ require "reverse_adoc/converters/tr"
34
+ require "reverse_adoc/converters/video"
35
+ require "reverse_adoc/converters/math"
36
36
 
37
37
  module ReverseAdoc
38
38
  class HtmlConverter
39
39
  def self.convert(input, options = {})
40
40
  root = if input.is_a?(String)
41
41
  then Nokogiri::HTML(input).root
42
- elsif input.is_a?(Nokogiri::XML::Document)
42
+ elsif input.is_a?(Nokogiri::XML::Document)
43
43
  then input.root
44
- elsif input.is_a?(Nokogiri::XML::Node)
44
+ elsif input.is_a?(Nokogiri::XML::Node)
45
45
  then input
46
- end
46
+ end
47
47
 
48
- root || (return '')
48
+ root || (return "")
49
49
 
50
50
  ReverseAdoc.config.with(options) do
51
51
  result = ReverseAdoc::Converters.lookup(root.name).convert(root)
@@ -1,3 +1,3 @@
1
1
  module ReverseAdoc
2
- VERSION = '0.3.1'
2
+ VERSION = "0.3.3".freeze
3
3
  end
data/reverse_adoc.gemspec CHANGED
@@ -1,5 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ $:.push File.expand_path("lib", __dir__)
3
4
  require "reverse_adoc/version"
4
5
 
5
6
  Gem::Specification.new do |s|
@@ -9,30 +10,30 @@ Gem::Specification.new do |s|
9
10
  s.email = ["open.source@ribose.com"]
10
11
 
11
12
  s.homepage = "http://github.com/metanorma/reverse_adoc"
12
- s.summary = %q{Generate AsciiDoc from HTML and Microsoft Word via CLI or library.}
13
- s.description = %q{Generate AsciiDoc from HTML and Microsoft Word via CLI or library.}
13
+ s.summary = "Generate AsciiDoc from HTML and Microsoft Word via CLI or library."
14
+ s.description = "Generate AsciiDoc from HTML and Microsoft Word via CLI or library."
14
15
  s.license = "BSD-2-Clause"
15
16
 
16
17
  s.files = `git ls-files`.split("\n")
17
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- exe/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.executables = `git ls-files -- exe/*`.split("\n").map { |f| File.basename(f) }
19
20
  s.bindir = "exe"
20
21
  s.require_paths = ["lib"]
21
22
  s.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
22
23
 
23
24
  # specify any dependencies here; for example:
24
- s.add_dependency 'nokogiri', "~> 1.10.4"
25
- s.add_dependency 'mathml2asciimath'
26
- s.add_dependency 'marcel', "~> 1.0.0"
27
- s.add_development_dependency 'rspec'
28
- s.add_development_dependency 'simplecov'
29
- s.add_development_dependency 'rake'
30
- s.add_development_dependency 'redcarpet'
31
- s.add_development_dependency 'codeclimate-test-reporter'
25
+ s.add_dependency "marcel", "~> 1.0.0"
26
+ s.add_dependency "mathml2asciimath"
27
+ s.add_dependency "nokogiri", "~> 1.11"
28
+ s.add_development_dependency "codeclimate-test-reporter"
29
+ s.add_development_dependency "rake"
30
+ s.add_development_dependency "redcarpet"
31
+ s.add_development_dependency "rspec"
32
+ s.add_development_dependency "simplecov"
32
33
 
33
34
  # spec.add_runtime_dependency "thor"
34
35
 
35
36
  # All the following are for bin/w2m
36
- s.add_dependency 'word-to-markdown'
37
- s.add_dependency 'premailer', '~> 1.11.0'
37
+ s.add_dependency "premailer", "~> 1.11.0"
38
+ s.add_dependency "word-to-markdown"
38
39
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reverse_adoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-04 00:00:00.000000000 Z
11
+ date: 2021-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: nokogiri
14
+ name: marcel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.4
19
+ version: 1.0.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: 1.10.4
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mathml2asciimath
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: marcel
42
+ name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: '1.11'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: '1.11'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: codeclimate-test-reporter
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: simplecov
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rake
84
+ name: redcarpet
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: redcarpet
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: codeclimate-test-reporter
112
+ name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,33 +123,33 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: word-to-markdown
126
+ name: premailer
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 1.11.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: 1.11.0
139
139
  - !ruby/object:Gem::Dependency
140
- name: premailer
140
+ name: word-to-markdown
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 1.11.0
145
+ version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.11.0
152
+ version: '0'
153
153
  description: Generate AsciiDoc from HTML and Microsoft Word via CLI or library.
154
154
  email:
155
155
  - open.source@ribose.com
@@ -161,6 +161,7 @@ extra_rdoc_files: []
161
161
  files:
162
162
  - ".editorconfig"
163
163
  - ".github/workflows/rake.yml"
164
+ - ".github/workflows/release.yml"
164
165
  - ".gitignore"
165
166
  - ".hound.yml"
166
167
  - ".rubocop.yml"
@@ -281,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
282
  - !ruby/object:Gem::Version
282
283
  version: '0'
283
284
  requirements: []
284
- rubygems_version: 3.0.3
285
+ rubygems_version: 3.1.4
285
286
  signing_key:
286
287
  specification_version: 4
287
288
  summary: Generate AsciiDoc from HTML and Microsoft Word via CLI or library.