Skip to content

Commit

Permalink
fixed relative_url filter
Browse files Browse the repository at this point in the history
  • Loading branch information
smnh committed Jul 23, 2020
1 parent 36b5dee commit 7be191a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/supporting-files/base.html.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module.exports = `<!doctype html>
<html lang="en">
<head>
{% if stackbit_banner.show_banner %}<link rel="stylesheet" type="text/css" href={{ "assets/css/stackbit-banner.css" | relative_url }}>{% endif %}
{% if stackbit_banner.show_banner %}<link rel="stylesheet" type="text/css" href="{{ "assets/css/stackbit-banner.css" | relative_url }}">{% endif %}
{% include "html_head.html" %}
{% if liveReload %}<script type="text/javascript" src={{ "assets/js/live-reload.js" | relative_url }}></script>{% endif %}
</head>
Expand Down
25 changes: 13 additions & 12 deletions src/unibit.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = class Unibit {

this.logger.log(`Generating site into ${path.resolve(this.outputDir)}`);
_.forEach(options, (value, key) => {
this.logger.log(` ${key}: ${value}`);
this.logger.log(` ${key}: ${JSON.stringify(value)}`);
});

this.watcher = null;
Expand Down Expand Up @@ -201,7 +201,7 @@ module.exports = class Unibit {
return this.renderAndSavePage(context, page.url).then(() => {
let pageRenderQueue = _.remove(this.pageRenderQueue);
return forEachPromise(pageRenderQueue, renderItem => {
return this.renderAndSavePage(renderItem.context, renderItem.outputUrl);
return this.renderAndSavePage(renderItem.context, renderItem.pageUrl);
});
});
});
Expand Down Expand Up @@ -260,23 +260,24 @@ module.exports = class Unibit {
});
}

addPageToRenderQueue(context, outputUrl) {
addPageToRenderQueue(context, pageUrl) {
this.pageRenderQueue.push({
context: context,
outputUrl: outputUrl
pageUrl: pageUrl
});
}

renderAndSavePage(context, url) {
renderAndSavePage(context, pageUrl) {
this.assert(this.renderingPage === null, `Trying to generate two pages in parallel`);
const outputUrl = url.match(/\w+\.\w+$/) ? url : path.join(url, 'index.html');
let outputPath = pageUrl.match(/\w+\.\w+$/) ? pageUrl : path.join(pageUrl, 'index.html');
outputPath = outputPath.replace(/^\//, '');
this.renderingPage = {
context: context,
outputUrl: outputUrl
outputPath: outputPath
};
return this.renderPage(context).then(res => {
this.renderingPage = null;
this.savePage(res, outputUrl);
this.savePage(res, outputPath);
});
}

Expand Down Expand Up @@ -407,10 +408,10 @@ module.exports = class Unibit {
});
});
_.tail(pages).forEach(page => {
let outputUrl = page.url;
let pageUrl = page.url;
// override the original paginate function to return current pagination page
let pageContext = Object.assign({}, context, {paginate: () => page});
this.addPageToRenderQueue(pageContext, outputUrl);
this.addPageToRenderQueue(pageContext, pageUrl);
});
return pages[0];
}
Expand All @@ -421,8 +422,8 @@ module.exports = class Unibit {
}
let urlsRelativeToBase = _.get(site.config.data, 'urls_relative_to_base', true);
if (!urlsRelativeToBase && !_.startsWith(url, '/')) {
let pageDir = path.parse(this.renderingPage.outputUrl).dir;
return path.join(pageDir, url);
let pageDir = path.parse(this.renderingPage.outputPath).dir;
return path.relative(pageDir, url);
} else {
let baseUrl = _.get(site.config.data, 'baseurl', '');
return path.join(baseUrl, '/', url);
Expand Down

0 comments on commit 7be191a

Please sign in to comment.