diff --git a/docs/content/templates/variables.md b/docs/content/templates/variables.md
index 3cecf2169..f76a6465c 100644
--- a/docs/content/templates/variables.md
+++ b/docs/content/templates/variables.md
@@ -43,6 +43,8 @@ matter, content or derived from file location.
**.WordCount** The number of words in the content.
**.ReadingTime** The estimated time it takes to read the content in minutes.
**.Weight** Assigned weight (in the front matter) to this content, used in sorting.
+**.IsNode** Always false for pages.
+**.IsPage** Always true for page.
**.Site** See site variables below
## Page Params
@@ -65,6 +67,8 @@ includes indexes, lists and the homepage.
**.Url** The relative url for this node.
**.RSSLink** Link to the indexes' rss link
**.Data** The data specific to this type of node.
+**.IsNode** Always true for nodes.
+**.IsPage** Always false for nodes.
**.Site** See site variables below
## Site Variables
diff --git a/hugolib/node.go b/hugolib/node.go
index 2ff8d40cd..724a3e8ee 100644
--- a/hugolib/node.go
+++ b/hugolib/node.go
@@ -47,6 +47,14 @@ func (n *Node) RSSlink() template.HTML {
return n.RSSLink
}
+func (n *Node) IsNode() bool {
+ return true
+}
+
+func (n *Node) IsPage() bool {
+ return !n.IsNode()
+}
+
type UrlPath struct {
Url string
Permalink template.HTML
diff --git a/hugolib/page.go b/hugolib/page.go
index 5d399391f..9f29630ec 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -85,6 +85,14 @@ func (p *Page) Plain() string {
return p.plain
}
+func (p *Page) IsNode() bool {
+ return false
+}
+
+func (p *Page) IsPage() bool {
+ return true
+}
+
func (p *Page) setSummary() {
if bytes.Contains(p.rawContent, summaryDivider) {
// If user defines split: