reverse_adoc 1.0.1 → 2.0.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/Gemfile +3 -3
- data/README.adoc +4 -294
- data/Rakefile +2 -13
- data/reverse_adoc.gemspec +2 -20
- metadata +5 -246
- data/.editorconfig +0 -15
- data/.github/workflows/rake.yml +0 -15
- data/.gitignore +0 -10
- data/.hound.yml +0 -5
- data/.rubocop.yml +0 -10
- data/LICENSE.txt +0 -25
- data/exe/reverse_adoc +0 -70
- data/exe/w2a +0 -72
- data/lib/reverse_adoc/cleaner.rb +0 -113
- data/lib/reverse_adoc/config.rb +0 -54
- data/lib/reverse_adoc/converters/a.rb +0 -42
- data/lib/reverse_adoc/converters/aside.rb +0 -16
- data/lib/reverse_adoc/converters/audio.rb +0 -29
- data/lib/reverse_adoc/converters/base.rb +0 -100
- data/lib/reverse_adoc/converters/blockquote.rb +0 -27
- data/lib/reverse_adoc/converters/br.rb +0 -15
- data/lib/reverse_adoc/converters/bypass.rb +0 -81
- data/lib/reverse_adoc/converters/code.rb +0 -56
- data/lib/reverse_adoc/converters/div.rb +0 -18
- data/lib/reverse_adoc/converters/drop.rb +0 -22
- data/lib/reverse_adoc/converters/em.rb +0 -55
- data/lib/reverse_adoc/converters/figure.rb +0 -25
- data/lib/reverse_adoc/converters/h.rb +0 -42
- data/lib/reverse_adoc/converters/head.rb +0 -23
- data/lib/reverse_adoc/converters/hr.rb +0 -15
- data/lib/reverse_adoc/converters/ignore.rb +0 -16
- data/lib/reverse_adoc/converters/img.rb +0 -93
- data/lib/reverse_adoc/converters/li.rb +0 -17
- data/lib/reverse_adoc/converters/mark.rb +0 -21
- data/lib/reverse_adoc/converters/math.rb +0 -31
- data/lib/reverse_adoc/converters/ol.rb +0 -64
- data/lib/reverse_adoc/converters/p.rb +0 -23
- data/lib/reverse_adoc/converters/pass_through.rb +0 -13
- data/lib/reverse_adoc/converters/pre.rb +0 -55
- data/lib/reverse_adoc/converters/q.rb +0 -16
- data/lib/reverse_adoc/converters/strong.rb +0 -52
- data/lib/reverse_adoc/converters/sub.rb +0 -16
- data/lib/reverse_adoc/converters/sup.rb +0 -16
- data/lib/reverse_adoc/converters/table.rb +0 -69
- data/lib/reverse_adoc/converters/td.rb +0 -83
- data/lib/reverse_adoc/converters/text.rb +0 -65
- data/lib/reverse_adoc/converters/th.rb +0 -14
- data/lib/reverse_adoc/converters/tr.rb +0 -22
- data/lib/reverse_adoc/converters/video.rb +0 -29
- data/lib/reverse_adoc/converters.rb +0 -32
- data/lib/reverse_adoc/errors.rb +0 -10
- data/lib/reverse_adoc/html_converter.rb +0 -61
- data/lib/reverse_adoc/version.rb +0 -3
- data/lib/reverse_adoc.rb +0 -27
- data/spec/assets/anchors.html +0 -30
- data/spec/assets/basic.html +0 -61
- data/spec/assets/code.html +0 -22
- data/spec/assets/escapables.html +0 -17
- data/spec/assets/external_images.docx +0 -0
- data/spec/assets/external_images.html +0 -35
- data/spec/assets/from_the_wild.html +0 -23
- data/spec/assets/full_example.html +0 -49
- data/spec/assets/html_fragment.html +0 -3
- data/spec/assets/lists.html +0 -137
- data/spec/assets/minimum.html +0 -4
- data/spec/assets/paragraphs.html +0 -24
- data/spec/assets/quotation.html +0 -12
- data/spec/assets/tables.html +0 -99
- data/spec/assets/unknown_tags.html +0 -9
- data/spec/bin/reverse_adoc_spec.rb +0 -33
- data/spec/bin/w2a_spec.rb +0 -35
- data/spec/components/anchors_spec.rb +0 -32
- data/spec/components/basic_spec.rb +0 -63
- data/spec/components/code_spec.rb +0 -25
- data/spec/components/escapables_spec.rb +0 -30
- data/spec/components/from_the_wild_spec.rb +0 -15
- data/spec/components/html_fragment_spec.rb +0 -9
- data/spec/components/lists_spec.rb +0 -90
- data/spec/components/paragraphs_spec.rb +0 -14
- data/spec/components/quotation_spec.rb +0 -12
- data/spec/components/tables_spec.rb +0 -42
- data/spec/components/unknown_tags_spec.rb +0 -41
- data/spec/lib/reverse_adoc/cleaner_spec.rb +0 -180
- data/spec/lib/reverse_adoc/config_spec.rb +0 -25
- data/spec/lib/reverse_adoc/converters/aside_spec.rb +0 -11
- data/spec/lib/reverse_adoc/converters/audio_spec.rb +0 -15
- data/spec/lib/reverse_adoc/converters/blockquote_spec.rb +0 -23
- data/spec/lib/reverse_adoc/converters/br_spec.rb +0 -9
- data/spec/lib/reverse_adoc/converters/code_spec.rb +0 -15
- data/spec/lib/reverse_adoc/converters/div_spec.rb +0 -15
- data/spec/lib/reverse_adoc/converters/figure_spec.rb +0 -10
- data/spec/lib/reverse_adoc/converters/img_spec.rb +0 -25
- data/spec/lib/reverse_adoc/converters/li_spec.rb +0 -11
- data/spec/lib/reverse_adoc/converters/mark_spec.rb +0 -10
- data/spec/lib/reverse_adoc/converters/p_spec.rb +0 -10
- data/spec/lib/reverse_adoc/converters/pre_spec.rb +0 -43
- data/spec/lib/reverse_adoc/converters/q_spec.rb +0 -10
- data/spec/lib/reverse_adoc/converters/strong_spec.rb +0 -21
- data/spec/lib/reverse_adoc/converters/text_spec.rb +0 -67
- data/spec/lib/reverse_adoc/converters/video_spec.rb +0 -15
- data/spec/lib/reverse_adoc/converters_spec.rb +0 -22
- data/spec/lib/reverse_adoc.rb +0 -90
- data/spec/spec_helper.rb +0 -25
- data/spec/support/shell_helpers.rb +0 -15
@@ -1,49 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<body>
|
3
|
-
<ul>
|
4
|
-
<li>li 1</li>
|
5
|
-
<li>li 2</li>
|
6
|
-
<li>li 3</li>
|
7
|
-
</ul>
|
8
|
-
<ul>
|
9
|
-
<li>li 1</li>
|
10
|
-
<li>li 2</li>
|
11
|
-
<li>li 3</li>
|
12
|
-
</ul>
|
13
|
-
<ol>
|
14
|
-
<li>li 1</li>
|
15
|
-
<li>
|
16
|
-
<ul>
|
17
|
-
<li>eins</li>
|
18
|
-
<li>eins</li>
|
19
|
-
<li>eins</li>
|
20
|
-
</ul>
|
21
|
-
</li>
|
22
|
-
</ol>
|
23
|
-
<ol>
|
24
|
-
<li>li 1</li>
|
25
|
-
<li>li 2</li>
|
26
|
-
</ol>
|
27
|
-
<h1>h1</h1>
|
28
|
-
<h2>h2</h2>
|
29
|
-
<h3>h3</h3>
|
30
|
-
<h4>h4</h4>
|
31
|
-
<p>
|
32
|
-
Hallo <em>em</em> Text
|
33
|
-
</p>
|
34
|
-
<p>
|
35
|
-
<strong>strong</strong>
|
36
|
-
</p>
|
37
|
-
<pre>
|
38
|
-
<code>Block of code</code>
|
39
|
-
</pre>
|
40
|
-
|
41
|
-
<blockquote>
|
42
|
-
<p>First quoted paragraph</p>
|
43
|
-
<p>Second quoted paragraph</p>
|
44
|
-
</blockquote>
|
45
|
-
<a href="http://www.bla.com">link</a>
|
46
|
-
<img src="http://raw.com">
|
47
|
-
<hr>
|
48
|
-
</body>
|
49
|
-
</html>
|
data/spec/assets/lists.html
DELETED
@@ -1,137 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<body>
|
3
|
-
<p>some text...</p>
|
4
|
-
|
5
|
-
<ul>
|
6
|
-
<li>unordered list entry</li>
|
7
|
-
<li>unordered list entry 2</li>
|
8
|
-
</ul>
|
9
|
-
|
10
|
-
<ol>
|
11
|
-
<li>ordered list entry</li>
|
12
|
-
<li>ordered list entry 2</li>
|
13
|
-
</ol>
|
14
|
-
|
15
|
-
<ol start="3">
|
16
|
-
<li>another ordered list entry</li>
|
17
|
-
</ol>
|
18
|
-
|
19
|
-
<ol reversed>
|
20
|
-
<li>a reversed ordered list entry</li>
|
21
|
-
</ol>
|
22
|
-
|
23
|
-
<ol>
|
24
|
-
<li>list entry 1st hierarchy</li>
|
25
|
-
<li>
|
26
|
-
<ul>
|
27
|
-
<li>nested unsorted list entry</li>
|
28
|
-
<li>
|
29
|
-
<ol>
|
30
|
-
<li>deep nested list entry</li>
|
31
|
-
</ol>
|
32
|
-
</li>
|
33
|
-
</ul>
|
34
|
-
</li>
|
35
|
-
</ol>
|
36
|
-
|
37
|
-
<ol id="1">
|
38
|
-
<li>arabic1</li>
|
39
|
-
</ol>
|
40
|
-
|
41
|
-
<ul id="A">
|
42
|
-
<li>upperalpha1</li>
|
43
|
-
</ul>
|
44
|
-
|
45
|
-
<ol style="1">
|
46
|
-
<li>arabic</li>
|
47
|
-
</ol>
|
48
|
-
|
49
|
-
<ol style="A">
|
50
|
-
<li>upperalpha</li>
|
51
|
-
</ol>
|
52
|
-
|
53
|
-
<ol style="a">
|
54
|
-
<li>loweralpha</li>
|
55
|
-
</ol>
|
56
|
-
|
57
|
-
<ol style="I">
|
58
|
-
<li>upperroman</li>
|
59
|
-
</ol>
|
60
|
-
|
61
|
-
<ol style="i">
|
62
|
-
<li>lowerroman</li>
|
63
|
-
</ol>
|
64
|
-
|
65
|
-
<ul type="disc">
|
66
|
-
<li>disc</li>
|
67
|
-
</ul>
|
68
|
-
|
69
|
-
<p>a nested list with no whitespace:</p>
|
70
|
-
<ul><li>item a</li><li>item b<ul><li>item bb</li><li>item bc</li></ul></li></ul>
|
71
|
-
|
72
|
-
<p>a nested list with lots of whitespace:</p>
|
73
|
-
<ul> <li> item wa </li> <li> item wb <ul> <li> item wbb </li> <li> item wbc </li> </ul> </li> </ul>
|
74
|
-
|
75
|
-
<ul>
|
76
|
-
<li class="toclevel-1 tocsection-1"><a href="Basic_concepts"><span class="tocnumber">1</span> <span class="toctext">Basic concepts</span></a></li>
|
77
|
-
<li class="toclevel-1 tocsection-2"><a href="History_of_the_idea"><span class="tocnumber">2</span> <span class="toctext">History of the idea</span></a></li>
|
78
|
-
<li class="toclevel-1 tocsection-3"><a href="Intelligence_explosion"><span class="tocnumber">3</span> <span class="toctext">Intelligence explosion</span></a>
|
79
|
-
</ul>
|
80
|
-
|
81
|
-
<ul>
|
82
|
-
<li>
|
83
|
-
<p dir="ltr">I want to have a party at my house!</p>
|
84
|
-
</li>
|
85
|
-
</ul>
|
86
|
-
|
87
|
-
<ul>
|
88
|
-
<li>
|
89
|
-
<p>li 1, p 1</p>
|
90
|
-
<p>li 1, p 2</p>
|
91
|
-
</li>
|
92
|
-
<li><p>li 2, p 1</p></li>
|
93
|
-
</ul>
|
94
|
-
|
95
|
-
<ol>
|
96
|
-
<li>
|
97
|
-
one
|
98
|
-
<ol>
|
99
|
-
<li>one one</li>
|
100
|
-
<li>one two</li>
|
101
|
-
</ol>
|
102
|
-
</li>
|
103
|
-
<li>
|
104
|
-
two
|
105
|
-
<ol>
|
106
|
-
<li>
|
107
|
-
two one
|
108
|
-
<ol>
|
109
|
-
<li>two one one</li>
|
110
|
-
<li>two one two</li>
|
111
|
-
</ol>
|
112
|
-
</li>
|
113
|
-
<li>two two</li>
|
114
|
-
</ol>
|
115
|
-
</li>
|
116
|
-
<li>three</li>
|
117
|
-
</ol>
|
118
|
-
|
119
|
-
<p>a nested list between adjacent list items</p>
|
120
|
-
<ul>
|
121
|
-
<li>alpha</li>
|
122
|
-
<li>bravo
|
123
|
-
<ul>
|
124
|
-
<li>bravo alpha</li>
|
125
|
-
<li>bravo bravo
|
126
|
-
<ul>
|
127
|
-
<li>bravo bravo alpha</i>
|
128
|
-
</ul>
|
129
|
-
</li>
|
130
|
-
</ul>
|
131
|
-
</li>
|
132
|
-
<li>charlie</li>
|
133
|
-
<li>delta</li>
|
134
|
-
</ul>
|
135
|
-
|
136
|
-
</body>
|
137
|
-
</html>
|
data/spec/assets/minimum.html
DELETED
data/spec/assets/paragraphs.html
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<body>
|
3
|
-
<p>First content</p>
|
4
|
-
<p>
|
5
|
-
Second
|
6
|
-
content
|
7
|
-
</p>
|
8
|
-
<p>
|
9
|
-
<em>Complex</em>
|
10
|
-
<pre>
|
11
|
-
<code>Content</code>
|
12
|
-
</pre>
|
13
|
-
</p>
|
14
|
-
<p>
|
15
|
-
<strong>Trailing whitespace: </strong>
|
16
|
-
</p>
|
17
|
-
<p>
|
18
|
-
<strong>Trailing non-breaking space: </strong>
|
19
|
-
</p>
|
20
|
-
<p>
|
21
|
-
<strong><em>Combination: </em></strong>
|
22
|
-
</p>
|
23
|
-
</body>
|
24
|
-
</html>
|
data/spec/assets/quotation.html
DELETED
data/spec/assets/tables.html
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<body>
|
3
|
-
some text...
|
4
|
-
|
5
|
-
<table id="A">
|
6
|
-
<thead>
|
7
|
-
<colgroup>
|
8
|
-
<col span="2" style="background-color:red">
|
9
|
-
<col style="background-color:yellow">
|
10
|
-
</colgroup>
|
11
|
-
</thead>
|
12
|
-
<tbody>
|
13
|
-
<tr id="B">
|
14
|
-
<th id="C">header 1</th>
|
15
|
-
<th>header 2</th>
|
16
|
-
<th>header 3</th>
|
17
|
-
</tr>
|
18
|
-
<tr>
|
19
|
-
<th id="D">data 1-1</td>
|
20
|
-
<td>data 2-1</td>
|
21
|
-
<td>data 3-1</td>
|
22
|
-
</tr>
|
23
|
-
<tr>
|
24
|
-
<th>data 1-2</td>
|
25
|
-
<td>data 2-2</td>
|
26
|
-
<td>data 3-2</td>
|
27
|
-
</tr>
|
28
|
-
</tbody>
|
29
|
-
</table>
|
30
|
-
|
31
|
-
<table>
|
32
|
-
<tr>
|
33
|
-
<th><i>header oblique</i></th>
|
34
|
-
<th><strong>header bold</strong></th>
|
35
|
-
<th><code>header code</code></th>
|
36
|
-
</tr>
|
37
|
-
<tr>
|
38
|
-
<td><i>data oblique</i></td>
|
39
|
-
<td><strong>data bold</strong></td>
|
40
|
-
<td><code>data code</code></td>
|
41
|
-
</tr>
|
42
|
-
</table>
|
43
|
-
|
44
|
-
<table>
|
45
|
-
<tr>
|
46
|
-
<td colspan=2>colspan 2</td>
|
47
|
-
</tr>
|
48
|
-
<tr>
|
49
|
-
<td rowspan=2>rowspan 2</td>
|
50
|
-
</tr>
|
51
|
-
<tr>
|
52
|
-
<td rowspan=2 colspan=2>colrowspan 2</td>
|
53
|
-
</tr>
|
54
|
-
</table>
|
55
|
-
|
56
|
-
<table>
|
57
|
-
<tr>
|
58
|
-
<td align="left">horizontal left</td>
|
59
|
-
<td align="center">horizontal center</td>
|
60
|
-
<td align="right">horizontal right</td>
|
61
|
-
</tr>
|
62
|
-
<tr>
|
63
|
-
<td valign="top">vertical top</td>
|
64
|
-
<td valign="middle">vertical middle</td>
|
65
|
-
<td valign="bottom">vertical bottom</td>
|
66
|
-
</tr>
|
67
|
-
<tr>
|
68
|
-
<td align="center" valign="middle">center middle</td>
|
69
|
-
</tr>
|
70
|
-
</table>
|
71
|
-
|
72
|
-
<table>
|
73
|
-
<caption>Table <i>caption</i></caption>
|
74
|
-
<tr>
|
75
|
-
<td>
|
76
|
-
<p>Hello</p>
|
77
|
-
<p>This cell has multiple paragraphs</p>
|
78
|
-
</td>
|
79
|
-
<td>
|
80
|
-
<p>This cell has a single paragraph</p>
|
81
|
-
</td>
|
82
|
-
</tr>
|
83
|
-
</table>
|
84
|
-
|
85
|
-
<table width="75%">
|
86
|
-
<tr>
|
87
|
-
<td>75% width table</td>
|
88
|
-
</tr>
|
89
|
-
</table>
|
90
|
-
|
91
|
-
<table frame="hsides" rules="cols">
|
92
|
-
<tr>
|
93
|
-
<td>topbot</td>
|
94
|
-
</tr>
|
95
|
-
</table>
|
96
|
-
|
97
|
-
some text...
|
98
|
-
</body>
|
99
|
-
</html>
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
describe "exe/reverse_adoc" do
|
6
|
-
subject(:convert) do
|
7
|
-
ShellUtils.execute!("./exe/reverse_adoc -e -o test1 #{input_file_path}")
|
8
|
-
end
|
9
|
-
|
10
|
-
unless Gem.win_platform?
|
11
|
-
context "when external images present" do
|
12
|
-
let(:input_file_path) { "spec/assets/external_images.html" }
|
13
|
-
let(:images_folder) { "images" }
|
14
|
-
|
15
|
-
after do
|
16
|
-
FileUtils.rm_rf(images_folder) if File.directory?(images_folder)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "Does not raise error" do
|
20
|
-
expect { convert }.to_not raise_error
|
21
|
-
end
|
22
|
-
|
23
|
-
it "exatracts images from source html" do
|
24
|
-
expect { convert }
|
25
|
-
.to(change do
|
26
|
-
Dir["#{images_folder}/*gif"]
|
27
|
-
.map { |entry| File.basename(entry) }
|
28
|
-
.sort
|
29
|
-
end.from([]).to(["001.gif"]))
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/spec/bin/w2a_spec.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
describe "exe/w2a" do
|
6
|
-
subject(:convert) do
|
7
|
-
ShellUtils.execute!("./exe/w2a -e -o test1 #{input_file_path}")
|
8
|
-
end
|
9
|
-
|
10
|
-
# TODO: fix github actions integration with libreoffice, currently it hangs
|
11
|
-
# when trying to use soffice binary
|
12
|
-
unless Gem.win_platform? ||
|
13
|
-
(Gem::Platform.local.os == "darwin" && !ENV["GITHUB_ACTION"].nil?)
|
14
|
-
context "when external images present" do
|
15
|
-
let(:input_file_path) { "spec/assets/external_images.docx" }
|
16
|
-
let(:images_folder) { "images" }
|
17
|
-
|
18
|
-
after do
|
19
|
-
FileUtils.rm_rf(images_folder) if File.directory?(images_folder)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "Does not raise error" do
|
23
|
-
expect { convert }.to_not raise_error
|
24
|
-
end
|
25
|
-
|
26
|
-
it "extracts images from source html" do
|
27
|
-
expect { convert }
|
28
|
-
.to(change do
|
29
|
-
!Dir["#{images_folder}/*gif"]
|
30
|
-
.map { |entry| File.basename(entry) }.empty?
|
31
|
-
end.from(false).to(true))
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/anchors.html") }
|
5
|
-
let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
it { is_expected.to include "http://foobar.com[Foobar]" }
|
9
|
-
it { is_expected.to include "http://foobar.com[Fubar]" }
|
10
|
-
it { is_expected.to include 'http://foobar.com[f\*\*\*\*\* up beyond all redemption]' }
|
11
|
-
it { is_expected.to include "http://strong.foobar.com[*Strong foobar*]" }
|
12
|
-
|
13
|
-
it {
|
14
|
-
is_expected.to include "There should be space before but not after the anchor ( http://foobar.com[stripped])."
|
15
|
-
}
|
16
|
-
|
17
|
-
it {
|
18
|
-
is_expected.to include " do not ignore link:foo.html[] anchor tags with no link text "
|
19
|
-
}
|
20
|
-
it {
|
21
|
-
is_expected.to include " link <<content,internal jumplinks>> with anchors "
|
22
|
-
}
|
23
|
-
it {
|
24
|
-
is_expected.to include " link <<content2>>internal jumplinks without anchors "
|
25
|
-
}
|
26
|
-
it { is_expected.to include " treat [[content]] as bookmarks " }
|
27
|
-
|
28
|
-
it { is_expected.to include "<<a_bspaced,Double \\_\\_ anchor with space>>" }
|
29
|
-
it { is_expected.to include "[[a_bspaced]]" }
|
30
|
-
it { is_expected.to include "[[a_Foreword]]\n== Text" }
|
31
|
-
it { is_expected.not_to include "[[_Toc12345]]" }
|
32
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/basic.html") }
|
5
|
-
# let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
it { is_expected.to match /plain text ?\n/ }
|
9
|
-
it { is_expected.to match /\n== h1\n/ }
|
10
|
-
it { is_expected.to match /\n\[\[A\]\]\n== h1 with anchor\n/ }
|
11
|
-
it { is_expected.to match /\n=== h2\n/ }
|
12
|
-
it { is_expected.to match /\n==== h3\n/ }
|
13
|
-
it { is_expected.to match /\n===== h4\n/ }
|
14
|
-
it { is_expected.to match /\n====== h5\n/ }
|
15
|
-
it { is_expected.to match /\n======= h6\n/ }
|
16
|
-
|
17
|
-
it { is_expected.to match /_em tag content_/ }
|
18
|
-
it { is_expected.to match /before and after empty em tags/ }
|
19
|
-
it { is_expected.to match /before and after em tags containing whitespace/ }
|
20
|
-
it { is_expected.to match /_double em tags_/ }
|
21
|
-
it { is_expected.to match /_double em tags in p tag_/ }
|
22
|
-
it { is_expected.to match /a _em with leading and trailing_ whitespace/ }
|
23
|
-
it {
|
24
|
-
is_expected.to match /a _em with extra leading and trailing_ whitespace/
|
25
|
-
}
|
26
|
-
|
27
|
-
it { is_expected.to match /\*strong tag content\*/ }
|
28
|
-
it { is_expected.to match /before and after empty strong tags/ }
|
29
|
-
it {
|
30
|
-
is_expected.to match /before and after strong tags containing whitespace/
|
31
|
-
}
|
32
|
-
it { is_expected.to match /\*double strong tags\*/ }
|
33
|
-
it { is_expected.to match /\*double strong tags in p tag\*/ }
|
34
|
-
it {
|
35
|
-
is_expected.to match /before \*double strong tags containing whitespace\* after/
|
36
|
-
}
|
37
|
-
it {
|
38
|
-
is_expected.to match /a \*strong with leading and trailing\* whitespace/
|
39
|
-
}
|
40
|
-
it {
|
41
|
-
is_expected.to match /a \*strong with extra leading and trailing\* whitespace/
|
42
|
-
}
|
43
|
-
|
44
|
-
it { is_expected.to match /constrai\*\*ned\*\* strong/ }
|
45
|
-
it { is_expected.to match /constrai__ned__ italic/ }
|
46
|
-
|
47
|
-
it { is_expected.to match /_i tag content_/ }
|
48
|
-
it { is_expected.to match /\*b tag content\*/ }
|
49
|
-
|
50
|
-
it { is_expected.to match /H~2~O/ }
|
51
|
-
it { is_expected.to match /A\^2\^B/ }
|
52
|
-
|
53
|
-
it {
|
54
|
-
is_expected.to match /br tags become double space followed by newline \+\n/
|
55
|
-
}
|
56
|
-
# it { should match /br tags XXX \n/ }
|
57
|
-
|
58
|
-
it { is_expected.to match /before hr \n\* \* \*\n after hr/ }
|
59
|
-
|
60
|
-
it { is_expected.to match /section 1\n ?\nsection 2/ }
|
61
|
-
|
62
|
-
it { is_expected.to match /ignore abbr/ }
|
63
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/code.html") }
|
5
|
-
let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
it { is_expected.to match /inline `code` block/ }
|
9
|
-
it { is_expected.to match /\nvar this;\nthis\.is/ }
|
10
|
-
it { is_expected.to match /block"\)\nconsole/ }
|
11
|
-
|
12
|
-
context "with github style code blocks" do
|
13
|
-
subject { ReverseAdoc.convert(input) }
|
14
|
-
it { is_expected.to match /inline `code` block/ }
|
15
|
-
it { is_expected.to match /\n\.\.\.\.\nvar this;\nthis/ }
|
16
|
-
it { is_expected.to match /it is"\) ?\n \n\.\.\.\./ }
|
17
|
-
end
|
18
|
-
|
19
|
-
context "code with indentation" do
|
20
|
-
subject { ReverseAdoc.convert(input) }
|
21
|
-
it { is_expected.to match(/^tell application "Foo"\n/) }
|
22
|
-
it { is_expected.to match(/^ beep\n/) }
|
23
|
-
it { is_expected.to match(/^end tell\n/) }
|
24
|
-
end
|
25
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/escapables.html") }
|
5
|
-
let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
context "multiple asterisks" do
|
9
|
-
it { is_expected.to include ' \*\*two asterisks\*\* ' }
|
10
|
-
it { is_expected.to include ' \*\*\*three asterisks\*\*\* ' }
|
11
|
-
it { is_expected.to include ' \*and*the\* ' }
|
12
|
-
it { is_expected.to include " asterisc*word " }
|
13
|
-
it { is_expected.to include ' asterisc**multword asterisks\*\*\* ' }
|
14
|
-
end
|
15
|
-
|
16
|
-
context "multiple underscores" do
|
17
|
-
it { is_expected.to include ' \_\_two underscores\_\_ ' }
|
18
|
-
it { is_expected.to include ' \_\_\_three underscores\_\_\_ ' }
|
19
|
-
end
|
20
|
-
|
21
|
-
context "multiple underscores with undersocre inside words and new lines" do
|
22
|
-
it { is_expected.to include "another_undersocre" }
|
23
|
-
it { is_expected.to include ' \_\_\_three__underscores\_\_\_ ' }
|
24
|
-
end
|
25
|
-
|
26
|
-
context "underscores within words in code blocks" do
|
27
|
-
let(:expected_output) { "....\nvar theoretical_max_infin = 1.0;\n....\n" }
|
28
|
-
it { is_expected.to include expected_output }
|
29
|
-
end
|
30
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/from_the_wild.html") }
|
5
|
-
let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
it "should make sense of strong-crazy markup (as seen in the wild)" do
|
9
|
-
expect(subject).to include "*. +\n \\*\\*\\* intentcast* : logo design *+*\n"
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should not over escape * or _" do
|
13
|
-
expect(subject).to include 'link:example.com/foo_bar[image::example.com/foo_bar.png[] I\_AM\_HELPFUL]'
|
14
|
-
end
|
15
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe ReverseAdoc do
|
4
|
-
let(:input) { File.read("spec/assets/html_fragment.html") }
|
5
|
-
let(:document) { Nokogiri::HTML(input) }
|
6
|
-
subject { ReverseAdoc.convert(input) }
|
7
|
-
|
8
|
-
it { is_expected.to eq("naked text 1\n\nparagraph text\n\nnaked text 2") }
|
9
|
-
end
|