diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-02-18 13:58:10 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-02-18 13:58:10 +0100 |
commit | 6e83240233e6168aa6567eb6fcac62508fe7fd0e (patch) | |
tree | 24437d0fdd8ba6c5b8dc6e589058db5800659e50 | |
parent | 202c235c665ff2dc007a013b45bff787ee82176b (diff) | |
download | gitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.zip gitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.tar.gz gitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.tar.bz2 |
Glossary should be output as a normal page
-rw-r--r-- | lib/backbone/glossary.js | 21 | ||||
-rw-r--r-- | lib/output/base.js | 1 | ||||
-rw-r--r-- | lib/page/html.js | 2 | ||||
-rw-r--r-- | lib/page/index.js | 9 |
4 files changed, 24 insertions, 9 deletions
diff --git a/lib/backbone/glossary.js b/lib/backbone/glossary.js index 9aed1ac..45848e0 100644 --- a/lib/backbone/glossary.js +++ b/lib/backbone/glossary.js @@ -44,6 +44,15 @@ util.inherits(Glossary, BackboneFile); Glossary.prototype.type = 'glossary'; +// Get templating context +Glossary.prototype.getContext = function() { + return { + glossary: { + path: this.path + } + }; +}; + // Parse the readme content Glossary.prototype.parse = function(content) { var that = this; @@ -73,4 +82,16 @@ Glossary.prototype.isEmpty = function(id) { return _.size(this.entries) === 0; }; +// Convert the glossary to a list of annotations +Glossary.prototype.annotations = function() { + return _.map(this.entries, function(entry) { + return { + id: entry.id, + name: entry.name, + description: entry.description, + href: '/' + this.path + '#' + entry.id + }; + }, this); +}; + module.exports = Glossary; diff --git a/lib/output/base.js b/lib/output/base.js index 09f57bc..d22fda1 100644 --- a/lib/output/base.js +++ b/lib/output/base.js @@ -169,6 +169,7 @@ Output.prototype.getPageContext = function(page) { gitbook.getContext(), this.book.getContext(), this.book.summary.getContext(), + this.book.glossary.getContext(), this.book.config.getContext() ); }; diff --git a/lib/page/html.js b/lib/page/html.js index d667059..45fae0d 100644 --- a/lib/page/html.js +++ b/lib/page/html.js @@ -164,7 +164,7 @@ HTMLPipeline.prototype.applyAnnotations = function() { replaceText(that.$, this, searchRegex, function(match) { that.opts.onAnnotation(annotation); - return '<a href="'+that.opts.onRelativeLink(annotation.href) + '#' + annotation.id+'" ' + return '<a href="' + that.opts.onRelativeLink(annotation.href) + '" ' + 'class="glossary-term" title="'+_.escape(annotation.description)+'">' + match + '</a>'; diff --git a/lib/page/index.js b/lib/page/index.js index 51ed2aa..bdf3c81 100644 --- a/lib/page/index.js +++ b/lib/page/index.js @@ -166,14 +166,7 @@ Page.prototype.toHTML = function(output) { }, // Convert glossary entries to annotations - annotations: _.map(that.book.glossary.entries, function(entry) { - return { - id: entry.id, - name: entry.name, - description: entry.description, - href: '/GLOSSARY.html' - }; - }) + annotations: that.book.glosary.annotations() }; var pipeline = new HTMLPipeline(that.content, pipelineOpts); |