diff options
Diffstat (limited to 'lib/output/website/createTemplateEngine.js')
-rw-r--r-- | lib/output/website/createTemplateEngine.js | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/lib/output/website/createTemplateEngine.js b/lib/output/website/createTemplateEngine.js index 2c2ac8d..7d87248 100644 --- a/lib/output/website/createTemplateEngine.js +++ b/lib/output/website/createTemplateEngine.js @@ -4,12 +4,17 @@ var DoExtension = require('nunjucks-do')(nunjucks); var JSONUtils = require('../../json'); var LocationUtils = require('../../utils/location'); +var fs = require('../../utils/fs'); +var PathUtils = require('../../utils/path'); var TemplateEngine = require('../../models/templateEngine'); var templatesFolder = require('../../constants/templatesFolder'); var defaultFilters = require('../../constants/defaultFilters'); var Templating = require('../../templating'); var listSearchPaths = require('./listSearchPaths'); +var fileToURL = require('../helper/fileToURL'); +var resolveFileToURL = require('../helper/resolveFileToURL'); + /** Directory for a theme with the templates */ @@ -30,6 +35,8 @@ function createTemplateEngine(output, currentFile) { var i18n = state.getI18n(); var config = book.getConfig(); var summary = book.getSummary(); + var pages = output.getPages(); + var outputFolder = output.getRoot(); // Search paths for templates var searchPaths = listSearchPaths(output); @@ -54,28 +61,31 @@ function createTemplateEngine(output, currentFile) { /** Resolve an absolute file path into a - relative path + relative path. + it also resolve pages */ - resolveFile: function(s) { - // Convert /test.png -> test.png - s = LocationUtils.toAbsolute(s, '', ''); + resolveFile: function(filePath) { + filePath = resolveFileToURL(output, filePath); + return LocationUtils.relativeForFile(currentFile, filePath); + }, - // Convert to relative - s = LocationUtils.relative( - this.resolve('.') + '/', - this.book.resolve(name) - ); + resolveAsset: function(filePath) { + filePath = LocationUtils.toAbsolute(filePath, '', ''); + filePath = path.join('gitbook', filePath); - return LocationUtils.normalize(s); + return LocationUtils.relativeForFile(currentFile, filePath); }, - resolveAsset: function(s) { - return s; - }, - fileExists: function() { - return false; + + /** + Check if a file exists + */ + fileExists: function(fileName) { + var filePath = PathUtils.resolveInRoot(outputFolder, fileName); + return fs.existsSync(filePath); }, - contentURL: function(s) { - return s; + + contentURL: function(filePath) { + return fileToURL(output, filePath); }, /** |