diff options
-rw-r--r-- | lib/output/website/onAsset.js | 9 | ||||
-rw-r--r-- | lib/parse/__tests__/listAssets.js | 29 | ||||
-rw-r--r-- | lib/parse/listAssets.js | 8 |
3 files changed, 40 insertions, 6 deletions
diff --git a/lib/output/website/onAsset.js b/lib/output/website/onAsset.js index 17b6ba7..69dfc4f 100644 --- a/lib/output/website/onAsset.js +++ b/lib/output/website/onAsset.js @@ -10,16 +10,17 @@ var fs = require('../../utils/fs'); function onAsset(output, asset) { var book = output.getBook(); var options = output.getOptions(); + var bookFS = book.getContentFS(); - var rootFolder = book.getContentRoot(); var outputFolder = options.get('root'); - - var filePath = path.resolve(rootFolder, asset); var outputPath = path.resolve(outputFolder, asset); return fs.ensureFile(outputPath) .then(function() { - return fs.copy(filePath, outputPath); + return bookFS.readAsStream(asset) + .then(function(stream) { + return fs.writeStream(outputPath, stream); + }); }) .thenResolve(output); } diff --git a/lib/parse/__tests__/listAssets.js b/lib/parse/__tests__/listAssets.js new file mode 100644 index 0000000..2f66fd1 --- /dev/null +++ b/lib/parse/__tests__/listAssets.js @@ -0,0 +1,29 @@ +var Immutable = require('immutable'); + +var Book = require('../../models/book'); +var createMockFS = require('../../fs/mock'); +var listAssets = require('../listAssets'); +var parseGlossary = require('../parseGlossary'); + +describe('listAssets', function() { + pit('should not list glossary as asset', function() { + var fs = createMockFS({ + 'GLOSSARY.md': '# Glossary\n\n## Hello\nDescription for hello', + 'assetFile.js': '', + 'assets': { + 'file.js': '' + } + }); + var book = Book.createForFS(fs); + + return parseGlossary(book) + .then(function(resultBook) { + return listAssets(resultBook, Immutable.Map()); + }) + .then(function(assets) { + expect(assets.size).toBe(2); + expect(assets.includes('assetFile.js')); + expect(assets.includes('assets/file.js')); + }); + }); +}); diff --git a/lib/parse/listAssets.js b/lib/parse/listAssets.js index c43b054..dc7ce92 100644 --- a/lib/parse/listAssets.js +++ b/lib/parse/listAssets.js @@ -17,6 +17,9 @@ function listAssets(book, pages) { var glossary = book.getGlossary(); var glossaryFile = glossary.getFile().getPath(); + var langs = book.getLanguages(); + var langsFile = langs.getFile().getPath(); + return timing.measure( 'parse.listAssets', fs.listAllFiles() @@ -25,8 +28,9 @@ function listAssets(book, pages) { return ( book.isContentFileIgnored(file) || pages.has(file) || - file !== summaryFile || - file !== glossaryFile + file === summaryFile || + file === glossaryFile || + file === langsFile ); }); }) |