summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Phillpotts <jphillpotts@scottlogic.co.uk>2014-04-10 11:00:52 +0100
committerJames Phillpotts <jphillpotts@scottlogic.co.uk>2014-04-10 11:00:52 +0100
commit8f457a752eef936eba95ce3de7bb8e490b1ba4ea (patch)
treea78944a4313785bd373b9f54f46afcfe392f1345
parent435a4b8c99ae739316af1bf5db9fcc8b0cd104ef (diff)
downloadgitbook-8f457a752eef936eba95ce3de7bb8e490b1ba4ea.zip
gitbook-8f457a752eef936eba95ce3de7bb8e490b1ba4ea.tar.gz
gitbook-8f457a752eef936eba95ce3de7bb8e490b1ba4ea.tar.bz2
Use OS-agnostic path generation for images too
-rw-r--r--lib/parse/renderer.js6
-rw-r--r--test/fixtures/PAGE.md3
-rw-r--r--test/page.js11
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:
+![Pretty](../assets/my-pretty-picture.png "Pretty")
+
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);