diff options
Diffstat (limited to 'lib/backbone/article.js')
-rw-r--r-- | lib/backbone/article.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/backbone/article.js b/lib/backbone/article.js new file mode 100644 index 0000000..68d8236 --- /dev/null +++ b/lib/backbone/article.js @@ -0,0 +1,28 @@ +var url = require('url'); +var _ = require('lodash'); + +/* +An article represent an entry in the Summary. +It's defined by a title, a reference, and children articles, the reference (ref) can be a filename + anchor (optional) + +*/ + +function Article(title, ref, articles) { + var parts = url.parse(ref); + + this.title = title; + this.filename = parts.pathname; + this.anchor = parts.hash; + this.articles = _.map(articles || [], function(article) { + if (article instanceof Article) return article; + return new Article(article.title, article.ref, article.articles); + }) +} + +// Return true if has children +Article.prototype.hasChildren = function() { + return this.articles.length > 0; +}; + + +module.exports = Article; |