summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-02-18 13:58:10 +0100
committerSamy Pessé <samypesse@gmail.com>2016-02-18 13:58:10 +0100
commit6e83240233e6168aa6567eb6fcac62508fe7fd0e (patch)
tree24437d0fdd8ba6c5b8dc6e589058db5800659e50
parent202c235c665ff2dc007a013b45bff787ee82176b (diff)
downloadgitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.zip
gitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.tar.gz
gitbook-6e83240233e6168aa6567eb6fcac62508fe7fd0e.tar.bz2
Glossary should be output as a normal page
-rw-r--r--lib/backbone/glossary.js21
-rw-r--r--lib/output/base.js1
-rw-r--r--lib/page/html.js2
-rw-r--r--lib/page/index.js9
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);