@@ -29,7 +29,7 @@ module.exports = class Unibit {
2929
3030 this . logger . log ( `Generating site into ${ path . resolve ( this . outputDir ) } ` ) ;
3131 _ . forEach ( options , ( value , key ) => {
32- this . logger . log ( ` ${ key } : ${ value } ` ) ;
32+ this . logger . log ( ` ${ key } : ${ JSON . stringify ( value ) } ` ) ;
3333 } ) ;
3434
3535 this . watcher = null ;
@@ -201,7 +201,7 @@ module.exports = class Unibit {
201201 return this . renderAndSavePage ( context , page . url ) . then ( ( ) => {
202202 let pageRenderQueue = _ . remove ( this . pageRenderQueue ) ;
203203 return forEachPromise ( pageRenderQueue , renderItem => {
204- return this . renderAndSavePage ( renderItem . context , renderItem . outputUrl ) ;
204+ return this . renderAndSavePage ( renderItem . context , renderItem . pageUrl ) ;
205205 } ) ;
206206 } ) ;
207207 } ) ;
@@ -260,23 +260,24 @@ module.exports = class Unibit {
260260 } ) ;
261261 }
262262
263- addPageToRenderQueue ( context , outputUrl ) {
263+ addPageToRenderQueue ( context , pageUrl ) {
264264 this . pageRenderQueue . push ( {
265265 context : context ,
266- outputUrl : outputUrl
266+ pageUrl : pageUrl
267267 } ) ;
268268 }
269269
270- renderAndSavePage ( context , url ) {
270+ renderAndSavePage ( context , pageUrl ) {
271271 this . assert ( this . renderingPage === null , `Trying to generate two pages in parallel` ) ;
272- const outputUrl = url . match ( / \w + \. \w + $ / ) ? url : path . join ( url , 'index.html' ) ;
272+ let outputPath = pageUrl . match ( / \w + \. \w + $ / ) ? pageUrl : path . join ( pageUrl , 'index.html' ) ;
273+ outputPath = outputPath . replace ( / ^ \/ / , '' ) ;
273274 this . renderingPage = {
274275 context : context ,
275- outputUrl : outputUrl
276+ outputPath : outputPath
276277 } ;
277278 return this . renderPage ( context ) . then ( res => {
278279 this . renderingPage = null ;
279- this . savePage ( res , outputUrl ) ;
280+ this . savePage ( res , outputPath ) ;
280281 } ) ;
281282 }
282283
@@ -407,10 +408,10 @@ module.exports = class Unibit {
407408 } ) ;
408409 } ) ;
409410 _ . tail ( pages ) . forEach ( page => {
410- let outputUrl = page . url ;
411+ let pageUrl = page . url ;
411412 // override the original paginate function to return current pagination page
412413 let pageContext = Object . assign ( { } , context , { paginate : ( ) => page } ) ;
413- this . addPageToRenderQueue ( pageContext , outputUrl ) ;
414+ this . addPageToRenderQueue ( pageContext , pageUrl ) ;
414415 } ) ;
415416 return pages [ 0 ] ;
416417 }
@@ -421,8 +422,8 @@ module.exports = class Unibit {
421422 }
422423 let urlsRelativeToBase = _ . get ( site . config . data , 'urls_relative_to_base' , true ) ;
423424 if ( ! urlsRelativeToBase && ! _ . startsWith ( url , '/' ) ) {
424- let pageDir = path . parse ( this . renderingPage . outputUrl ) . dir ;
425- return path . join ( pageDir , url ) ;
425+ let pageDir = path . parse ( this . renderingPage . outputPath ) . dir ;
426+ return path . relative ( pageDir , url ) ;
426427 } else {
427428 let baseUrl = _ . get ( site . config . data , 'baseurl' , '' ) ;
428429 return path . join ( baseUrl , '/' , url ) ;
0 commit comments