diff options
Diffstat (limited to 'lib/output/modifiers/svgToPng.js')
-rw-r--r-- | lib/output/modifiers/svgToPng.js | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/output/modifiers/svgToPng.js b/lib/output/modifiers/svgToPng.js index 4f8644a..1093106 100644 --- a/lib/output/modifiers/svgToPng.js +++ b/lib/output/modifiers/svgToPng.js @@ -3,6 +3,7 @@ var path = require('path'); var imagesUtil = require('../../utils/images'); var fs = require('../../utils/fs'); +var LocationUtils = require('../../utils/location'); var editHTMLElement = require('./editHTMLElement'); @@ -13,23 +14,37 @@ var editHTMLElement = require('./editHTMLElement'); @param {HTMLDom} $ @return {Promise} */ -function svgToPng(rootFolder, $) { +function svgToPng(rootFolder, currentFile, $) { + var currentDirectory = path.dirname(currentFile); + return editHTMLElement($, 'img', function($img) { var src = $img.attr('src'); if (path.extname(src) !== '.svg') { return; } + // Calcul absolute path for this + src = LocationUtils.toAbsolute(src, currentDirectory, '.'); + // We avoid generating twice the same PNG var hash = crc.crc32(src).toString(16); var fileName = hash + '.png'; + + // Input file path + var inputPath = path.join(rootFolder, src); + + // Result file path var filePath = path.join(rootFolder, fileName); return fs.assertFile(filePath, function() { - return imagesUtil.convertSVGToPNG(src, filePath); + return imagesUtil.convertSVGToPNG(inputPath, filePath); }) .then(function() { - $img.replaceWith('<img src="/' + fileName + '" />'); + // Convert filename to a relative filename + fileName = LocationUtils.relative(currentDirectory, fileName); + + // Replace src + $img.attr('src', fileName); }); }); } |