summaryrefslogtreecommitdiffstats
path: root/lib/models/summaryArticle.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/summaryArticle.js')
-rw-r--r--lib/models/summaryArticle.js33
1 files changed, 30 insertions, 3 deletions
diff --git a/lib/models/summaryArticle.js b/lib/models/summaryArticle.js
index 9b5b653..6da8d1d 100644
--- a/lib/models/summaryArticle.js
+++ b/lib/models/summaryArticle.js
@@ -40,7 +40,8 @@ SummaryArticle.prototype.getDepth = function() {
};
/**
- * Get path (without anchor) to the pointing file
+ * Get path (without anchor) to the pointing file.
+ * It also normalizes the file path.
*
* @return {String}
*/
@@ -58,8 +59,8 @@ SummaryArticle.prototype.getPath = function() {
var pathname = (parts.length > 1? parts.slice(0, -1).join('#') : ref);
- // Normalize path to remove ('./', etc)
- return location.normalize(pathname);
+ // Normalize path to remove ('./', '/...', etc)
+ return location.flatten(pathname);
};
/**
@@ -107,6 +108,32 @@ SummaryArticle.prototype.isPage = function() {
};
/**
+ * Check if this article is a file (exatcly)
+ *
+ * @param {File} file
+ * @return {Boolean}
+ */
+SummaryArticle.prototype.isFile = function(file) {
+ return (
+ file.getPath() === this.getPath()
+ && this.getAnchor() === undefined
+ );
+};
+
+/**
+ * Check if this article is the introduction of the book
+ *
+ * @param {Book|Readme} book
+ * @return {Boolean}
+ */
+SummaryArticle.prototype.isReadme = function(book) {
+ var readme = book.getFile? book : book.getReadme();
+ var file = readme.getFile();
+
+ return this.isFile(file);
+};
+
+/**
* Is article pointing to aan absolute url
*
* @return {Boolean}