diff options
-rw-r--r-- | lib/parse/renderer.js | 6 | ||||
-rw-r--r-- | test/fixtures/PAGE.md | 3 | ||||
-rw-r--r-- | test/page.js | 11 |
3 files changed, 14 insertions, 6 deletions
diff --git a/lib/parse/renderer.js b/lib/parse/renderer.js index d0ca597..6b45a22 100644 --- a/lib/parse/renderer.js +++ b/lib/parse/renderer.js @@ -76,10 +76,8 @@ GitBookRenderer.prototype.image = function(href, title, text) { // Relative image, rewrite it depending output if(!parsed.protocol && parsed.path && parsed.path[0] != '/' && o && o.dir && o.outdir) { - _href = path.relative(o.outdir, path.normalize(path.join( - o.dir, - href - ))); + var outdir = o.outdir.charAt(o.outdir.length - 1) === '/' ? o.outdir : o.outdir + '/'; + _href = url.resolve(outdir, [o.dir, href].join('/')); } return GitBookRenderer.super_.prototype.image.call(this, _href, title, text); diff --git a/test/fixtures/PAGE.md b/test/fixtures/PAGE.md index 92ee707..7dcaa40 100644 --- a/test/fixtures/PAGE.md +++ b/test/fixtures/PAGE.md @@ -31,6 +31,9 @@ Some more nice content .... [Link to another Markdown file](./xyz/file.md) +And look at this pretty picture: + + Lets go for another exercise but this time with some context : --- diff --git a/test/page.js b/test/page.js index 658559e..fa6db06 100644 --- a/test/page.js +++ b/test/page.js @@ -6,7 +6,10 @@ var page = require('../').parse.page; var CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/PAGE.md'), 'utf8'); -var LEXED = page(CONTENT); +var LEXED = page(CONTENT, { + dir: 'course', + outdir: '_book' +}); var HR_CONTENT = fs.readFileSync(path.join(__dirname, './fixtures/HR_PAGE.md'), 'utf8'); var HR_LEXED = page(HR_CONTENT); @@ -30,6 +33,10 @@ describe('Page parsing', function() { assert(LEXED[2].content); }); + it('should make image URLs relative', function() { + assert(LEXED[2].content.indexOf('_book/assets/my-pretty-picture.png') !== -1); + }) + it('should gen code and content for exercise sections', function() { assert(LEXED[1].content); assert(LEXED[1].code); @@ -67,7 +74,7 @@ describe('Relative links', function() { repo: 'GitBookIO/javascript', // Imaginary folder of markdown file - dir: 'course', + dir: 'course' }); assert(LEXED[0].content.indexOf('https://github.com/GitBookIO/javascript/blob/src/something.cpp') !== -1); |