diff options
-rw-r--r-- | lib/output/base.js | 5 | ||||
-rw-r--r-- | test/all.js | 4 | ||||
-rw-r--r-- | test/structure.js | 51 |
3 files changed, 59 insertions, 1 deletions
diff --git a/lib/output/base.js b/lib/output/base.js index 117fd4c..868b85b 100644 --- a/lib/output/base.js +++ b/lib/output/base.js @@ -189,6 +189,11 @@ Output.prototype.onRelativeLink = function(currentPage, href) { if (to) { href = to.path; + // Change README path to be "index.html" + if (href == this.book.readme.path) { + href = 'index.html'; + } + // Recalcul as relative link href = currentPage.relative(href); diff --git a/test/all.js b/test/all.js index 00046b5..83a9a2d 100644 --- a/test/all.js +++ b/test/all.js @@ -19,7 +19,6 @@ require('./git'); require('./plugins'); require('./template'); require('./conrefs'); -require('./ignore'); // Page and HTML generation require('./page'); @@ -30,5 +29,8 @@ require('./output-json'); require('./output-website'); require('./output-ebook'); +require('./structure'); +require('./ignore'); + // Misc require('./init'); diff --git a/test/structure.js b/test/structure.js new file mode 100644 index 0000000..0d043fe --- /dev/null +++ b/test/structure.js @@ -0,0 +1,51 @@ +var fs = require('fs'); + +var mock = require('./mock'); +var WebsiteOutput = require('../lib/output/website'); + +/* + + Testing using configuration "structure" to use custom Readme/Summary/Glossary paths +*/ + +describe('Structure', function() { + var output; + + before(function() { + return mock.outputBook(WebsiteOutput, { + 'book.json': { + structure: { + readme: 'intro.md' + } + }, + 'SUMMARY.md': '* [Test](test.md)', + 'intro.md': 'This is the intro', + 'test.md': 'Go to [intro](intro.md)' + }) + .then(function(_output) { + output = _output; + }); + }); + + it('should generate index.html', function() { + output.should.have.file('index.html'); + }); + + it('should generate test.html', function() { + output.should.have.file('test.html'); + }); + + it('should correctly resolve link to Readme', function() { + var readme = fs.readFileSync(output.resolve('test.html'), 'utf-8'); + + readme.should.be.html({ + '.page-inner a': { + count: 1, + text: 'intro', + attributes: { + href: './' + } + } + }); + }); +}); |