hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 76108440043094b3841ef96cd1eda8274345430b
parent 8b55bfc81438f33892611a8e828107791838ccdb
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Tue,  9 Aug 2016 14:26:55 +0200

Add IsTranslated to Node and Page

Makes the templates simpler.

See #2309

Diffstat:
Mdocs/content/content/multilingual.md | 7+++----
Mhugolib/node.go | 8+++++++-
Mhugolib/page.go | 6++++++
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/docs/content/content/multilingual.md b/docs/content/content/multilingual.md
@@ -93,13 +93,12 @@ By having the same _base file name_, the content pieces are linked together as t
 To create a list of links to translated content, use a template similar to this:
 
 ```
-{{ $translations := .Translations }} 
-{{ if gt (len $translations) 0 }}
+{{ if .IsTranslated }}
 <h4>{{ i18n "translations" }}</h4>
 <ul>
-    {{ range $translations }}
+    {{ range .Translations }}
     <li>
-        <a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}</a>
+        <a href="{{ .Permalink }}">{{ .Lang }}: {{ .Title }}{{ if .IsPage }} ({{ i18n "wordCount" . }}){{ end }}</a>
     </li>
     {{ end}}
 </ul>
diff --git a/hugolib/node.go b/hugolib/node.go
@@ -271,10 +271,16 @@ func (n *Node) Translations() Nodes {
 			translations = append(translations, t)
 		}
 	}
-
 	return translations
 }
 
+// IsTranslated returns whether this node is translated to
+// other language(s).
+func (n *Node) IsTranslated() bool {
+	n.initTranslations()
+	return len(n.translations) > 1
+}
+
 func (n *Node) initTranslations() {
 	n.translationsInit.Do(func() {
 		if n.translations != nil {
diff --git a/hugolib/page.go b/hugolib/page.go
@@ -531,6 +531,12 @@ func (p *Page) AllTranslations() Pages {
 	return p.translations
 }
 
+// IsTranslated returns whether this content file is translated to
+// other language(s).
+func (p *Page) IsTranslated() bool {
+	return len(p.translations) > 1
+}
+
 // Translations returns the translations excluding the current Page.
 func (p *Page) Translations() Pages {
 	translations := make(Pages, 0)