tty-markdown 0.6.0 → 0.7.1

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.
@@ -1,130 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'codeblock' do
4
- it "highlights a fenced code without language" do
5
- markdown =<<-TEXT
6
- ```
7
- class Greeter
8
- def say
9
- end
10
- end
11
- ```
12
- TEXT
13
- parsed = TTY::Markdown.parse(markdown, colors: 16)
14
- expect(parsed).to eq([
15
- "\e[33mclass Greeter\e[0m",
16
- "\e[33m def say\e[0m",
17
- "\e[33m end\e[0m",
18
- "\e[33mend\e[0m\n"
19
- ].join("\n"))
20
- end
21
-
22
- it "highlights code without language" do
23
- markdown =<<-TEXT
24
- class Greeter
25
- def say
26
- end
27
- end
28
- TEXT
29
- parsed = TTY::Markdown.parse(markdown, colors: 16)
30
- expect(parsed).to eq([
31
- "\e[33mclass Greeter\e[0m",
32
- "\e[33m def say\e[0m",
33
- "\e[33m end\e[0m",
34
- "\e[33mend\e[0m"
35
- ].join("\n"))
36
- end
37
-
38
- it "highlights fenced code according to language" do
39
- markdown =<<-TEXT
40
- ```ruby
41
- class Greeter
42
- def say
43
- end
44
- end
45
- ```
46
- TEXT
47
- parsed = TTY::Markdown.parse(markdown, colors: 16)
48
- expect(parsed).to eq([
49
- "\e[33mclass Greeter\e[0m",
50
- "\e[33m def say\e[0m",
51
- "\e[33m end\e[0m",
52
- "\e[33mend\e[0m\n"
53
- ].join("\n"))
54
- end
55
-
56
- it "indents immediate code correctly" do
57
- markdown =<<-TEXT
58
- ### header
59
- ```
60
- class Greeter
61
- def say
62
- end
63
- end
64
- ```
65
- TEXT
66
- parsed = TTY::Markdown.parse(markdown, colors: 16)
67
- expect(parsed).to eq([
68
- " \e[36;1mheader\e[0m",
69
- " \e[33mclass Greeter\e[0m",
70
- " \e[33m def say\e[0m",
71
- " \e[33m end\e[0m",
72
- " \e[33mend\e[0m\n"
73
- ].join("\n"))
74
- end
75
-
76
- it "indents code after blank correctly" do
77
- markdown =<<-TEXT
78
- ### header
79
-
80
- ```
81
- class Greeter
82
- def say
83
- end
84
- end
85
- ```
86
- TEXT
87
- parsed = TTY::Markdown.parse(markdown, colors: 16)
88
- expect(parsed).to eq([
89
- " \e[36;1mheader\e[0m",
90
- "",
91
- " \e[33mclass Greeter\e[0m",
92
- " \e[33m def say\e[0m",
93
- " \e[33m end\e[0m",
94
- " \e[33mend\e[0m\n"
95
- ].join("\n"))
96
- end
97
-
98
- it "wraps code exceeding set width" do
99
- markdown =<<-TEXT
100
- ```
101
- lexer = Rouge::Lexer.find_fancy(lang, code) || Rouge::Lexers::PlainText
102
- ```
103
- TEXT
104
- parsed = TTY::Markdown.parse(markdown, width: 50, colors: 16)
105
-
106
- expected_output =
107
- "\e[33mlexer = Rouge::Lexer.find_fancy(lang, code) || \e[0m\n" +
108
- "\e[33mRouge::Lexers::PlainText\e[0m\n"
109
-
110
- expect(parsed).to eq(expected_output)
111
- end
112
-
113
- it "wraps code exceeding set width preserving indentation" do
114
- markdown =<<-TEXT
115
- ### lexer
116
-
117
- ```
118
- lexer = Rouge::Lexer.find_fancy(lang, code) || Rouge::Lexers::PlainText
119
- ```
120
- TEXT
121
- parsed = TTY::Markdown.parse(markdown, width: 50, colors: 16)
122
-
123
- expected_output =
124
- " \e[36;1mlexer\e[0m\n\n" +
125
- " \e[33mlexer = Rouge::Lexer.find_fancy(lang, code) || \e[0m\n" +
126
- " \e[33mRouge::Lexers::PlainText\e[0m\n"
127
-
128
- expect(parsed).to eq(expected_output)
129
- end
130
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'comment' do
4
- it "converts xml type comment" do
5
- markdown =<<-TEXT
6
- text before
7
- <!-- TODO: this is a comment -->
8
- text after
9
- TEXT
10
-
11
- parsed = TTY::Markdown.parse(markdown)
12
-
13
- expect(parsed).to eq([
14
- "text before",
15
- "<!-- TODO: this is a comment -->\n",
16
- "text after\n"
17
- ].join("\n"))
18
- end
19
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'emphasis' do
4
- context 'when strong emphasis' do
5
- it "converts asterisks to bold ansi codes" do
6
- parsed = TTY::Markdown.parse("Some text with **bold** content.")
7
-
8
- expect(parsed).to eq("Some text with \e[33;1mbold\e[0m content.\n")
9
- end
10
- end
11
-
12
- context 'when italics emphasis' do
13
- it "converts asterisks to bold ansi codes" do
14
- parsed = TTY::Markdown.parse("Some text with *italic* content.")
15
-
16
- expect(parsed).to eq("Some text with \e[33mitalic\e[0m content.\n")
17
- end
18
- end
19
-
20
- context 'when strikethrough emphasis' do
21
- it "converts two tildes to ansi codes" do
22
- parsed = TTY::Markdown.parse("Some text with ~~scratched~~ content.")
23
-
24
- expect(parsed).to eq("Some text with ~~scratched~~ content.\n")
25
- end
26
- end
27
-
28
- context "when backticks" do
29
- it "convertrs backtics to ansi codes" do
30
- parsed = TTY::Markdown.parse("Some text with `important` content.", colors: 16)
31
-
32
- expect(parsed).to eq("Some text with \e[33mimportant\e[0m content.\n")
33
- end
34
- end
35
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'entity' do
4
- it "converts html entities" do
5
- markdown =<<-TEXT
6
- &copy; 2018 by me and &#x3bb;
7
- TEXT
8
- parsed = TTY::Markdown.parse(markdown)
9
- expect(parsed).to eq("© 2018 by me and λ\n")
10
- end
11
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'header' do
4
- it "converts top level header" do
5
- parsed = TTY::Markdown.parse("#Header1")
6
-
7
- expect(parsed).to eq("\e[36;1;4mHeader1\e[0m\n")
8
- end
9
-
10
- it "converts headers" do
11
- headers =<<-TEXT
12
- # Header1
13
- header1 content
14
-
15
- ## Header2
16
- header2 content
17
-
18
- ### Header3
19
- header3 content
20
- TEXT
21
- parsed = TTY::Markdown.parse(headers)
22
-
23
- expect(parsed).to eq([
24
- "\e[36;1;4mHeader1\e[0m",
25
- "header1 content",
26
- "",
27
- " \e[36;1mHeader2\e[0m",
28
- " header2 content",
29
- "",
30
- " \e[36;1mHeader3\e[0m",
31
- " header3 content\n"
32
- ].join("\n"))
33
- end
34
- end
35
-
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'horizontal rule' do
4
- let(:symbols) { TTY::Markdown.symbols }
5
-
6
- it "draws a horizontal rule" do
7
- markdown =<<-TEXT
8
- ---
9
- TEXT
10
- parsed = TTY::Markdown.parse(markdown, width: 10)
11
- expect(parsed).to eq("\e[33m#{symbols[:diamond]}#{symbols[:line]*8}#{symbols[:diamond]}\e[0m\n")
12
- end
13
-
14
- it "draws a horizontal rule within header indentation" do
15
- markdown =<<-TEXT
16
- ### header
17
- ---
18
- TEXT
19
- parsed = TTY::Markdown.parse(markdown, width: 20)
20
- expect(parsed).to eq([
21
- " \e[36;1mheader\e[0m\n",
22
- " \e[33m#{symbols[:diamond]}#{symbols[:line]*10}#{symbols[:diamond]}\e[0m\n"
23
- ].join)
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'link' do
4
- let(:symbols) { TTY::Markdown.symbols }
5
-
6
- it "converts link" do
7
- markdown =<<-TEXT
8
- [I'm an inline-style link](https://www.google.com)
9
- TEXT
10
- parsed = TTY::Markdown.parse(markdown)
11
- expect(parsed).to eq([
12
- "I#{symbols[:rsquo]}m an inline-style link #{symbols[:arrow]} \e[33;4mhttps://www.google.com\e[0m\n"
13
- ].join)
14
- end
15
-
16
- it "converts link with title" do
17
- markdown =<<-TEXT
18
- [I'm an inline-style link with title](https://www.google.com "Google's Homepage")
19
- TEXT
20
- parsed = TTY::Markdown.parse(markdown)
21
- expect(parsed).to eq([
22
- "Google's Homepage #{symbols[:arrow]} \e[33;4mhttps://www.google.com\e[0m\n"
23
- ].join)
24
- end
25
- end
@@ -1,103 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'list' do
4
- let(:symbols) { TTY::Markdown.symbols }
5
- let(:pastel) { Pastel.new}
6
-
7
- it "converts unordered bulleted lists of nested items" do
8
- markdown =<<-TEXT
9
- - Item 1
10
- - Item 2
11
- - Item 3
12
- - Item 4
13
- - Item 5
14
- - Item 6
15
- TEXT
16
- parsed = TTY::Markdown.parse(markdown)
17
- expect(parsed).to eq([
18
- "#{pastel.yellow(symbols[:bullet])} Item 1",
19
- " #{pastel.yellow(symbols[:bullet])} Item 2",
20
- " #{pastel.yellow(symbols[:bullet])} Item 3",
21
- " #{pastel.yellow(symbols[:bullet])} Item 4",
22
- " #{pastel.yellow(symbols[:bullet])} Item 5",
23
- "#{pastel.yellow(symbols[:bullet])} Item 6\n"
24
- ].join("\n"))
25
- end
26
-
27
- it "indents unordered list" do
28
- markdown =<<-TEXT
29
- ### header
30
- - Item 1
31
- - Item 2
32
- - Item 3
33
- - Item 4
34
- - Item 5
35
- - Item 6
36
- TEXT
37
- parsed = TTY::Markdown.parse(markdown)
38
- expect(parsed).to eq([
39
- " \e[36;1mheader\e[0m",
40
- " #{pastel.yellow(symbols[:bullet])} Item 1",
41
- " #{pastel.yellow(symbols[:bullet])} Item 2",
42
- " #{pastel.yellow(symbols[:bullet])} Item 3",
43
- " #{pastel.yellow(symbols[:bullet])} Item 4",
44
- " #{pastel.yellow(symbols[:bullet])} Item 5",
45
- " #{pastel.yellow(symbols[:bullet])} Item 6\n"
46
- ].join("\n"))
47
- end
48
-
49
- it "indents unordered list with multiline content" do
50
- markdown =<<-TEXT
51
- ### header
52
- - First multiline
53
- Item 1
54
- - Second multiline
55
- Item 2
56
- - Item 3
57
- - Item 4
58
- TEXT
59
- parsed = TTY::Markdown.parse(markdown)
60
- expect(parsed).to eq([
61
- " \e[36;1mheader\e[0m",
62
- " #{pastel.yellow(symbols[:bullet])} First multiline",
63
- " Item 1",
64
- " #{pastel.yellow(symbols[:bullet])} Second multiline",
65
- " Item 2",
66
- " #{pastel.yellow(symbols[:bullet])} Item 3",
67
- " #{pastel.yellow(symbols[:bullet])} Item 4\n",
68
- ].join("\n"))
69
- end
70
-
71
- it "displays inline codeblocks in lists correctly" do
72
- markdown =<<-TEXT
73
- - Version: run `ruby -v` or `ruby --version`.
74
- - Help: run `ruby -h` or `ruby --help`.
75
- TEXT
76
-
77
- parsed = TTY::Markdown.parse(markdown, colors: 16)
78
- expect(parsed).to eq([
79
- "#{pastel.yellow(symbols[:bullet])} Version: run \e[33mruby -v\e[0m or \e[33mruby --version\e[0m.",
80
- "#{pastel.yellow(symbols[:bullet])} Help: run \e[33mruby -h\e[0m or \e[33mruby --help\e[0m.\n"
81
- ].join("\n"))
82
- end
83
-
84
- it "convert ordered numbered list of nested items" do
85
- markdown =<<-TEXT
86
- 1. Item 1
87
- 2. Item 2
88
- 3. Item 3
89
- 4. Item 4
90
- 5. Item 5
91
- 6. Item 6
92
- TEXT
93
- parsed = TTY::Markdown.parse(markdown)
94
- expect(parsed).to eq([
95
- "#{pastel.yellow('1.')} Item 1",
96
- " #{pastel.yellow('1.')} Item 2",
97
- " #{pastel.yellow('2.')} Item 3",
98
- " #{pastel.yellow('1.')} Item 4",
99
- " #{pastel.yellow('2.')} Item 5",
100
- "#{pastel.yellow('2.')} Item 6\n"
101
- ].join("\n"))
102
- end
103
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'math' do
4
- it "converts math formulae" do
5
- markdown =<<-TEXT
6
- $$5+5$$
7
- TEXT
8
- parsed = TTY::Markdown.parse(markdown, colors: 16)
9
- expect(parsed).to eq("\e[33m5+5\e[0m\n")
10
- end
11
-
12
- it "indents maths formulae correctly" do
13
- markdown =<<-TEXT
14
- ### header
15
-
16
- $$5+5$$
17
- TEXT
18
- parsed = TTY::Markdown.parse(markdown, colors: 16)
19
- expect(parsed).to eq([
20
- " \e[36;1mheader\e[0m",
21
- "",
22
- " \e[33m5+5\e[0m\n"
23
- ].join("\n"))
24
- end
25
-
26
- it "indents immediate maths formulae correctly" do
27
- markdown =<<-TEXT
28
- ### header
29
- $$5+5$$
30
- TEXT
31
- parsed = TTY::Markdown.parse(markdown, colors: 16)
32
- expect(parsed).to eq([
33
- " \e[36;1mheader\e[0m",
34
- " \e[33m5+5\e[0m\n"
35
- ].join("\n"))
36
- end
37
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'paragraph' do
4
- it "converts multiline paragraphs" do
5
- markdown =<<-TEXT
6
- This is a first paragraph
7
- that spans two lines.
8
-
9
- And this is a next one.
10
- TEXT
11
- parsed = TTY::Markdown.parse(markdown)
12
- expect(parsed).to eq([
13
- "This is a first paragraph",
14
- "that spans two lines.",
15
- "",
16
- "And this is a next one.\n"
17
- ].join("\n"))
18
- end
19
-
20
- it "converts multiline pragraphs within header section" do
21
-
22
- markdown =<<-TEXT
23
- ### header
24
- This is a first paragraph
25
- that spans two lines.
26
-
27
- And this is a next one.
28
- TEXT
29
- parsed = TTY::Markdown.parse(markdown)
30
- expect(parsed).to eq([
31
- " \e[36;1mheader\e[0m",
32
- " This is a first paragraph",
33
- " that spans two lines.",
34
- "",
35
- " And this is a next one.\n"
36
- ].join("\n"))
37
- end
38
- end
@@ -1,164 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'table' do
4
- let(:symbols) { TTY::Markdown.symbols }
5
-
6
- it "parses markdown table with header" do
7
- markdown =<<-TEXT
8
- | Tables | Are | Cool |
9
- |----------|:-------------:|------:|
10
- | col 1 is | left-aligned | $1600 |
11
- | col 2 is | centered | $12 |
12
- | col 3 is | right-aligned | $1 |
13
- TEXT
14
-
15
- parsed = TTY::Markdown.parse(markdown)
16
-
17
- expect(parsed).to eq([
18
- "\e[33m#{symbols[:top_left]}#{symbols[:line]*10}#{symbols[:top_center]}",
19
- "#{symbols[:line]*15}#{symbols[:top_center]}",
20
- "#{symbols[:line]*7}#{symbols[:top_right]}",
21
- "\e[0m\n",
22
-
23
- "\e[33m#{symbols[:pipe]} \e[0mTables ",
24
- "\e[33m#{symbols[:pipe]}\e[0m Are ",
25
- "\e[33m#{symbols[:pipe]}\e[0m Cool \e[33m#{symbols[:pipe]}\e[0m \n",
26
-
27
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*10}#{symbols[:mid_center]}",
28
- "#{symbols[:line]*15}#{symbols[:mid_center]}",
29
- "#{symbols[:line]*7}#{symbols[:mid_right]}",
30
- "\e[0m\n",
31
-
32
- "\e[33m#{symbols[:pipe]} \e[0mcol 1 is ",
33
- "\e[33m#{symbols[:pipe]}\e[0m left-aligned ",
34
- "\e[33m#{symbols[:pipe]}\e[0m $1600 \e[33m#{symbols[:pipe]}\e[0m \n",
35
-
36
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*10}#{symbols[:mid_center]}",
37
- "#{symbols[:line]*15}#{symbols[:mid_center]}",
38
- "#{symbols[:line]*7}#{symbols[:mid_right]}",
39
- "\e[0m\n",
40
-
41
- "\e[33m#{symbols[:pipe]} \e[0mcol 2 is ",
42
- "\e[33m#{symbols[:pipe]}\e[0m centered ",
43
- "\e[33m#{symbols[:pipe]}\e[0m $12 \e[33m#{symbols[:pipe]}\e[0m \n",
44
-
45
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*10}#{symbols[:mid_center]}",
46
- "#{symbols[:line]*15}#{symbols[:mid_center]}",
47
- "#{symbols[:line]*7}#{symbols[:mid_right]}",
48
- "\e[0m\n",
49
-
50
- "\e[33m#{symbols[:pipe]} \e[0mcol 3 is ",
51
- "\e[33m#{symbols[:pipe]}\e[0m right-aligned ",
52
- "\e[33m#{symbols[:pipe]}\e[0m $1 \e[33m#{symbols[:pipe]}\e[0m \n",
53
-
54
- "\e[33m#{symbols[:bottom_left]}#{symbols[:line]*10}#{symbols[:bottom_center]}",
55
- "#{symbols[:line]*15}#{symbols[:bottom_center]}",
56
- "#{symbols[:line]*7}#{symbols[:bottom_right]}",
57
- "\e[0m\n"
58
- ].join)
59
- end
60
-
61
- it "parses markdown table without header" do
62
- markdown =<<-TEXT
63
- | col 1 is | left-aligned | $1600 |
64
- | col 2 is | centered | $12 |
65
- | col 3 is | right-aligned | $1 |
66
- TEXT
67
-
68
- parsed = TTY::Markdown.parse(markdown)
69
-
70
- expect(parsed).to eq([
71
- "\e[33m#{symbols[:top_left]}#{symbols[:line]*10}#{symbols[:top_center]}",
72
- "#{symbols[:line]*15}#{symbols[:top_center]}",
73
- "#{symbols[:line]*7}#{symbols[:top_right]}",
74
- "\e[0m\n",
75
-
76
- "\e[33m#{symbols[:pipe]} \e[0mcol 1 is ",
77
- "\e[33m#{symbols[:pipe]}\e[0m left-aligned ",
78
- "\e[33m#{symbols[:pipe]}\e[0m $1600 \e[33m#{symbols[:pipe]}\e[0m \n",
79
-
80
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*10}#{symbols[:mid_center]}",
81
- "#{symbols[:line]*15}#{symbols[:mid_center]}",
82
- "#{symbols[:line]*7}#{symbols[:mid_right]}",
83
- "\e[0m\n",
84
-
85
- "\e[33m#{symbols[:pipe]} \e[0mcol 2 is ",
86
- "\e[33m#{symbols[:pipe]}\e[0m centered ",
87
- "\e[33m#{symbols[:pipe]}\e[0m $12 \e[33m#{symbols[:pipe]}\e[0m \n",
88
-
89
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*10}#{symbols[:mid_center]}",
90
- "#{symbols[:line]*15}#{symbols[:mid_center]}",
91
- "#{symbols[:line]*7}#{symbols[:mid_right]}",
92
- "\e[0m\n",
93
-
94
- "\e[33m#{symbols[:pipe]} \e[0mcol 3 is ",
95
- "\e[33m#{symbols[:pipe]}\e[0m right-aligned ",
96
- "\e[33m#{symbols[:pipe]}\e[0m $1 \e[33m#{symbols[:pipe]}\e[0m \n",
97
-
98
- "\e[33m#{symbols[:bottom_left]}#{symbols[:line]*10}#{symbols[:bottom_center]}",
99
- "#{symbols[:line]*15}#{symbols[:bottom_center]}",
100
- "#{symbols[:line]*7}#{symbols[:bottom_right]}",
101
- "\e[0m\n"
102
- ].join)
103
- end
104
-
105
- it "wraps multiline records" do
106
- markdown =<<-TEXT
107
- | Tables | Are | Cool |
108
- |----------|:-------------:|------:|
109
- | col 1 is | left-aligned | $1600 |
110
- | col 2 is | centered | $12 |
111
- | col 3 is a multiline column | right-aligned has also a very long content that wraps around | $1 |
112
- TEXT
113
-
114
- parsed = TTY::Markdown.parse(markdown, width: 80)
115
-
116
- expected_output =
117
- "\e[33m#{symbols[:top_left]}#{symbols[:line]*24}#{symbols[:top_center]}" +
118
- "#{symbols[:line]*51}#{symbols[:top_center]}" +
119
- "#{symbols[:line]*7}#{symbols[:top_right]}" +
120
- "\e[0m\n" +
121
-
122
- "\e[33m#{symbols[:pipe]} \e[0mTables " +
123
- "\e[33m#{symbols[:pipe]}\e[0m Are " +
124
- "\e[33m#{symbols[:pipe]}\e[0m Cool \e[33m#{symbols[:pipe]}\e[0m \n" +
125
-
126
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*24}#{symbols[:mid_center]}" +
127
- "#{symbols[:line]*51}#{symbols[:mid_center]}" +
128
- "#{symbols[:line]*7}#{symbols[:mid_right]}" +
129
- "\e[0m\n" +
130
-
131
- "\e[33m#{symbols[:pipe]} \e[0mcol 1 is " +
132
- "\e[33m#{symbols[:pipe]}\e[0m left-aligned " +
133
- "\e[33m#{symbols[:pipe]}\e[0m $1600 \e[33m#{symbols[:pipe]}\e[0m \n" +
134
-
135
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*24}#{symbols[:mid_center]}" +
136
- "#{symbols[:line]*51}#{symbols[:mid_center]}" +
137
- "#{symbols[:line]*7}#{symbols[:mid_right]}" +
138
- "\e[0m\n" +
139
-
140
- "\e[33m#{symbols[:pipe]} \e[0mcol 2 is " +
141
- "\e[33m#{symbols[:pipe]}\e[0m centered " +
142
- "\e[33m#{symbols[:pipe]}\e[0m $12 \e[33m#{symbols[:pipe]}\e[0m \n" +
143
-
144
- "\e[33m#{symbols[:mid_left]}#{symbols[:line]*24}#{symbols[:mid_center]}" +
145
- "#{symbols[:line]*51}#{symbols[:mid_center]}" +
146
- "#{symbols[:line]*7}#{symbols[:mid_right]}" +
147
- "\e[0m\n" +
148
-
149
- "\e[33m#{symbols[:pipe]} \e[0mcol 3 is a multiline " +
150
- "\e[33m#{symbols[:pipe]}\e[0m right-aligned has also a very long content that " +
151
- "\e[33m#{symbols[:pipe]}\e[0m $1 \e[33m#{symbols[:pipe]}\e[0m \n" +
152
-
153
- "\e[33m#{symbols[:pipe]} \e[0mcolumn " +
154
- "\e[33m#{symbols[:pipe]}\e[0m wraps around " +
155
- "\e[33m#{symbols[:pipe]}\e[0m \e[33m#{symbols[:pipe]}\e[0m \n" +
156
-
157
- "\e[33m#{symbols[:bottom_left]}#{symbols[:line]*24}#{symbols[:bottom_center]}" +
158
- "#{symbols[:line]*51}#{symbols[:bottom_center]}" +
159
- "#{symbols[:line]*7}#{symbols[:bottom_right]}" +
160
- "\e[0m\n"
161
-
162
- expect(parsed).to eq(expected_output)
163
- end
164
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Markdown, 'typography' do
4
- let(:symbols) { TTY::Markdown.symbols }
5
-
6
- it "converts header with typographic symbols" do
7
- markdown =<<-TEXT
8
- --- << typographic >> ... symbols --
9
- TEXT
10
- parsed = TTY::Markdown.parse(markdown)
11
- expect(parsed).to eq("#{symbols[:mdash]} #{symbols[:laquo]} typographic #{symbols[:raquo]} #{symbols[:hellip]} symbols #{symbols[:ndash]}\n")
12
- end
13
-
14
- it "converts smart quotes to utf-8 chars" do
15
- markdown = "To \"extract\" `script.rb`'s..."
16
- parsed = TTY::Markdown.parse(markdown, colors: 16)
17
-
18
- expect(parsed).to eq("To #{symbols[:ldquo]}extract#{symbols[:rdquo]} \e[33mscript.rb\e[0m#{symbols[:rsquo]}s#{symbols[:hellip]}\n")
19
- end
20
- end
data/tasks/console.rake DELETED
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- desc 'Load gem inside irb console'
4
- task :console do
5
- require 'irb'
6
- require 'irb/completion'
7
- require File.join(__FILE__, '../../lib/tty-markdown')
8
- ARGV.clear
9
- IRB.start
10
- end
11
- task c: %w[ console ]
data/tasks/coverage.rake DELETED
@@ -1,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- desc 'Measure code coverage'
4
- task :coverage do
5
- begin
6
- original, ENV['COVERAGE'] = ENV['COVERAGE'], 'true'
7
- Rake::Task['spec'].invoke
8
- ensure
9
- ENV['COVERAGE'] = original
10
- end
11
- end