diff --git a/ai2html.js b/ai2html.js index 4ef9225..211ac6a 100644 --- a/ai2html.js +++ b/ai2html.js @@ -999,10 +999,13 @@ function applyTemplate(template, replacements) { // Similar to Node.js path.join() function pathJoin() { var path = ''; - forEach(arguments, function(arg) { + forEach(arguments, function(arg, i) { if (!arg) return; arg = String(arg); - arg = arg.replace(/^\/+/, '').replace(/\/+$/, ''); + if (i > 0){ + arg = arg.replace(/^\/+/, ''); // leading + } + arg = arg.replace(/\/+$/, ''); // trailing if (path.length > 0) { path += '/'; } diff --git a/test/utils-test.js b/test/utils-test.js index fc257c0..f6382e5 100644 --- a/test/utils-test.js +++ b/test/utils-test.js @@ -175,6 +175,10 @@ describe('Utility function tests', function() { it('removes duplicate slashes', function() { assert.equal(lib.pathJoin('ai/', '/output/', 'image.svg'), 'ai/output/image.svg'); }) + + it('retains leading slash in first argument', function() { + assert.equal(lib.pathJoin('/c/', '/output/', 'image.svg'), '/c/output/image.svg'); + }) }) describe('pathSplit()', function() {