summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2014-04-10 11:44:33 -0700
committerAaron O'Mullan <aaron.omullan@gmail.com>2014-04-10 11:44:33 -0700
commit892ec04f5267a2a73074087be6b4eacd13b971a2 (patch)
tree62b61ab52d3854b9e822b0c6e7fbb82ab1760d06
parent02d8272c74b8b7f2da4e39c432e6521047ea8900 (diff)
parent8f457a752eef936eba95ce3de7bb8e490b1ba4ea (diff)
downloadgitbook-892ec04f5267a2a73074087be6b4eacd13b971a2.zip
gitbook-892ec04f5267a2a73074087be6b4eacd13b971a2.tar.gz
gitbook-892ec04f5267a2a73074087be6b4eacd13b971a2.tar.bz2
Merge pull request #78 from mrpotes/mocha-windows
Fix URL creation on windows
-rw-r--r--lib/parse/renderer.js14
-rw-r--r--test/fixtures/PAGE.md3
-rw-r--r--test/page.js11
3 files changed, 16 insertions, 12 deletions
diff --git a/lib/parse/renderer.js b/lib/parse/renderer.js
index 86576f0..6b45a22 100644
--- a/lib/parse/renderer.js
+++ b/lib/parse/renderer.js
@@ -46,16 +46,12 @@ GitBookRenderer.prototype.link = function(href, title, text) {
var o = this._extra_options;
// Relative link, rewrite it to point to github repo
if(!parsed.protocol && parsed.path && parsed.path[0] != '/' && o && o.repo && o.dir) {
- href = 'https://github.com/' + o.repo + '/blob' + path.normalize(path.join(
- '/',
- o.dir,
- href
- ));
+ href = url.resolve('https://github.com/' + o.repo + '/blob/', [o.dir, href].join("/"));
parsed = url.parse(href);
}
// Generate HTML for link
- var out = '<a href="' + href + '"';
+ var out = '<a href="' + parsed.href + '"';
// Title if no null
if (title) {
out += ' title="' + title + '"';
@@ -80,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);