|
2 | 2 |
|
3 | 3 | require('mocha');
|
4 | 4 | var _ = require('lodash');
|
5 |
| -var should = require('should'); |
| 5 | +var assert = require('assert'); |
6 | 6 | var handlebars = require('handlebars');
|
7 |
| -var hljs = require('highlight.js'); |
8 | 7 | var markdown = require('..');
|
9 | 8 |
|
10 |
| -function highlight(code, lang) { |
11 |
| - try { |
12 |
| - try { |
13 |
| - return hljs.highlight(lang, code).value; |
14 |
| - } catch (err) { |
15 |
| - if (!/Unknown language/i.test(err.message)) { |
16 |
| - throw err; |
17 |
| - } |
18 |
| - return hljs.highlightAuto(code).value; |
19 |
| - } |
20 |
| - } catch (err) { |
21 |
| - return code; |
22 |
| - } |
23 |
| -} |
24 |
| - |
25 |
| -describe('sync', function() { |
26 |
| - describe('markdown helper', function() { |
| 9 | +describe('helper-markdown', function() { |
| 10 | + describe('main export', function() { |
27 | 11 | it('should render markdown:', function() {
|
28 |
| - markdown('# heading').should.equal('<h1>heading</h1>\n'); |
| 12 | + assert.equal(markdown('# heading'), '<h1>heading</h1>\n'); |
29 | 13 | });
|
30 | 14 |
|
31 | 15 | it('should highlight code blocks', function() {
|
32 |
| - var html = markdown('```js\nvar foo = "bar";\n```\n', {highlight: highlight}); |
33 |
| - html.should.equal('<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
| 16 | + var html = markdown('```js\nvar foo = "bar";\n```\n', {}); |
| 17 | + assert.equal(html, '<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
34 | 18 | });
|
35 | 19 |
|
36 | 20 | it('should pass options to remarkable', function() {
|
37 |
| - var a = markdown('abc https://github.com/jonschlinkert/remarkable xyz', {highlight: highlight, linkify: true}); |
38 |
| - a.should.equal('<p>abc <a href="https://github.com/jonschlinkert/remarkable">https://github.com/jonschlinkert/remarkable</a> xyz</p>\n'); |
| 21 | + var a = markdown('abc https://github.com/jonschlinkert/remarkable xyz', {linkify: true}); |
| 22 | + assert.equal(a, '<p>abc <a href="https://github.com/jonschlinkert/remarkable">https://github.com/jonschlinkert/remarkable</a> xyz</p>\n'); |
39 | 23 |
|
40 |
| - var b = markdown('abc https://github.com/jonschlinkert/remarkable xyz', {highlight: highlight, linkify: false}); |
41 |
| - b.should.equal('<p>abc https://github.com/jonschlinkert/remarkable xyz</p>\n'); |
| 24 | + var b = markdown('abc https://github.com/jonschlinkert/remarkable xyz', {linkify: false}); |
| 25 | + assert.equal(b, '<p>abc https://github.com/jonschlinkert/remarkable xyz</p>\n'); |
42 | 26 | });
|
43 | 27 |
|
44 | 28 | it('should pass options to highlight.js:', function() {
|
45 |
| - var html = markdown('```js\nvar foo = "bar";\n```\n', {highlight: highlight, langPrefix: 'language-'}); |
46 |
| - html.should.equal('<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
| 29 | + var html = markdown('```js\nvar foo = "bar";\n```\n', {langPrefix: 'language-'}); |
| 30 | + assert.equal(html, '<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
47 | 31 | });
|
48 | 32 | });
|
49 | 33 |
|
50 | 34 | describe('handlebars:', function() {
|
51 | 35 | it('should work as a handlebars helper:', function() {
|
52 |
| - handlebars.registerHelper('markdown', markdown({highlight: highlight})); |
53 |
| - handlebars.compile('{{#markdown}}# {{title}}{{/markdown}}')({title: 'heading'}).should.equal('<h1>heading</h1>\n'); |
| 36 | + handlebars.registerHelper('markdown', markdown({})); |
| 37 | + assert.equal(handlebars.compile('{{#markdown}}# heading{{/markdown}}')(), '<h1>heading</h1>\n'); |
54 | 38 | });
|
55 | 39 |
|
56 | 40 | it('should pass hash options to remarkable:', function() {
|
57 |
| - handlebars.registerHelper('markdown', markdown({highlight: highlight})); |
| 41 | + handlebars.registerHelper('markdown', markdown({})); |
58 | 42 |
|
59 | 43 | // `linkify: true`
|
60 | 44 | var a = handlebars.compile('{{#markdown linkify=true}}abc https://github.com/jonschlinkert/remarkable xyz{{/markdown}}')();
|
61 |
| - a.should.equal('<p>abc <a href="https://github.com/jonschlinkert/remarkable">https://github.com/jonschlinkert/remarkable</a> xyz</p>\n'); |
| 45 | + assert.equal(a, '<p>abc <a href="https://github.com/jonschlinkert/remarkable">https://github.com/jonschlinkert/remarkable</a> xyz</p>\n'); |
62 | 46 |
|
63 | 47 | // `linkify: false`
|
64 | 48 | var b = handlebars.compile('{{#markdown linkify=false}}abc https://github.com/jonschlinkert/remarkable xyz{{/markdown}}')();
|
65 |
| - b.should.equal('<p>abc https://github.com/jonschlinkert/remarkable xyz</p>\n'); |
| 49 | + assert.equal(b, '<p>abc https://github.com/jonschlinkert/remarkable xyz</p>\n'); |
66 | 50 | });
|
67 | 51 |
|
68 | 52 | it('should pass hash options to highlight.js:', function() {
|
69 |
| - handlebars.registerHelper('markdown', markdown({highlight: highlight})); |
| 53 | + handlebars.registerHelper('markdown', markdown({})); |
70 | 54 |
|
71 | 55 | // `langPrefix = language-`
|
72 | 56 | var a = handlebars.compile('{{#markdown}}```js\nvar foo = "bar";\n```\n{{/markdown}}')();
|
73 |
| - a.should.equal('<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
| 57 | + assert.equal(a, '<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
74 | 58 |
|
75 | 59 | // `langPrefix = language-`
|
76 | 60 | var b = handlebars.compile('{{#markdown langPrefix="language-"}}```js\nvar foo = "bar";\n```\n{{/markdown}}')();
|
77 |
| - b.should.equal('<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
| 61 | + assert.equal(b, '<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = <span class="hljs-string">"bar"</span>;\n</code></pre>\n'); |
78 | 62 | });
|
79 | 63 | });
|
80 | 64 |
|
81 | 65 | describe('lodash:', function() {
|
82 | 66 | it('should work as a lodash mixin:', function() {
|
83 | 67 | _.mixin({markdown: markdown});
|
84 |
| - _.template('<%= _.markdown("# " + title) %>')({title: 'heading'}).should.equal('<h1>heading</h1>\n'); |
| 68 | + assert.equal(_.template('<%= _.markdown("# heading") %>')({}), '<h1>heading</h1>\n'); |
85 | 69 | });
|
86 | 70 |
|
87 | 71 | it('should pass options to remarkable:', function() {
|
88 |
| - _.mixin({markdown: markdown({highlight: highlight})}); |
| 72 | + _.mixin({markdown: markdown({})}); |
89 | 73 | var a = _.template('<%= _.markdown("foo\\n```js\\nvar foo = {};\\n```\\nbar") %>')({});
|
90 |
| - a.should.equal('<p>foo</p>\n<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = {};\n</code></pre>\n<p>bar</p>\n'); |
| 74 | + assert.equal(a, '<p>foo</p>\n<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = {};\n</code></pre>\n<p>bar</p>\n'); |
91 | 75 |
|
92 | 76 | var b = _.template('<%= _.markdown("foo\\n```js\\nvar foo = {};\\n```\\nbar", {langPrefix: \'language-\'}) %>')({});
|
93 |
| - b.should.equal('<p>foo</p>\n<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = {};\n</code></pre>\n<p>bar</p>\n'); |
| 77 | + assert.equal(b, '<p>foo</p>\n<pre><code class="language-js"><span class="hljs-keyword">var</span> foo = {};\n</code></pre>\n<p>bar</p>\n'); |
94 | 78 | });
|
95 | 79 |
|
96 | 80 | it('should work when passed to lodash as a string:', function() {
|
97 |
| - _.template('<%= markdown("# heading") %>')({markdown: markdown}).should.equal('<h1>heading</h1>\n'); |
| 81 | + assert.equal(_.template('<%= markdown("# heading") %>')({markdown: markdown}), '<h1>heading</h1>\n'); |
98 | 82 | });
|
99 | 83 |
|
100 | 84 | it('should work as a lodash import:', function() {
|
101 | 85 | var settings = {imports: {markdown: markdown}};
|
102 |
| - _.template('<%= markdown("# heading") %>', settings)({}).should.equal('<h1>heading</h1>\n'); |
| 86 | + assert.equal(_.template('<%= markdown("# heading") %>', settings)({}), '<h1>heading</h1>\n'); |
103 | 87 | });
|
104 | 88 | });
|
105 | 89 | });
|
0 commit comments