summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@friendco.de>2014-06-08 12:31:52 -0700
committerAaron O'Mullan <aaron.omullan@friendco.de>2014-06-08 12:31:52 -0700
commitb425db0979a878cd27a3327df9ea76ec9db5a8bb (patch)
treedf97c8552b7b737940247b260c774de56b95daa9 /lib
parent30c6d1c9de45d5f92086131c505712fb67c833a9 (diff)
downloadgitbook-b425db0979a878cd27a3327df9ea76ec9db5a8bb.zip
gitbook-b425db0979a878cd27a3327df9ea76ec9db5a8bb.tar.gz
gitbook-b425db0979a878cd27a3327df9ea76ec9db5a8bb.tar.bz2
Allow external links in summary, fixes #300
Diffstat (limited to 'lib')
-rw-r--r--lib/generate/template.js7
-rw-r--r--lib/utils/links.js8
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/generate/template.js b/lib/generate/template.js
index a4ac4fd..9b85228 100644
--- a/lib/generate/template.js
+++ b/lib/generate/template.js
@@ -2,6 +2,7 @@ var path = require("path");
var swig = require('swig');
var hljs = require('highlight.js');
+var links = require('../utils/').links;
var pkg = require('../../package.json');
swig.setDefaults({
@@ -24,7 +25,6 @@ swig.setFilter('mdLink', function(link) {
return link;
});
-
// Swig filter: highlight coloration
swig.setFilter('code', function(code, lang) {
try {
@@ -44,4 +44,9 @@ swig.setFilter('pathJoin', function(base, _path) {
return path.join(base, _path);
});
+// Is a link an absolute link
+swig.setFilter('isExternalLink', function(link) {
+ return links.isExternal(link);
+});
+
module.exports = swig;
diff --git a/lib/utils/links.js b/lib/utils/links.js
index c965dd9..6606bbf 100644
--- a/lib/utils/links.js
+++ b/lib/utils/links.js
@@ -1,6 +1,11 @@
var url = require('url');
var path = require('path');
+// Is the link an external link
+var isExternal = function(href) {
+ return Boolean(url.parse(href).protocol);
+};
+
// Return true if the link is relative
var isRelative = function(href) {
var parsed = url.parse(href);
@@ -41,6 +46,7 @@ var join = function() {
module.exports = {
isRelative: isRelative,
+ isExternal: isExternal,
toAbsolute: toAbsolute,
join: join
-}; \ No newline at end of file
+};