shithub: hugo

Download patch

ref: ac78d25240b0aa428c5a46314b0a6a4e0621d69b
parent: 4bb5e326dbf0f732dd5db45a47fa25999806111e
author: Anthony Fok <[email protected]>
date: Tue Sep 2 14:10:19 EDT 2014

A small fix and update to the multilingual example

Enclose `{{ .Content }}` with a `{{ if .IsPage }}` test to avoid
the "Content is not a field of struct type *hugolib.Node" error.
Thanks to @spf13 for the tip!  Fixes #366.

Also update example to Hugo v0.12 conventions:
- Convert config.yaml to config.toml to follow what
  `hugo new site /path/to/site` generates
- Rename layouts/chrome to layouts/partials
- Convert `template` calls to `partial` calls
- Add .gitignore to ignore the `public` directory
- Add README.md with pointers to discussions in issues
  to help bring newcomers up to speed with this multilingual example

--- /dev/null
+++ b/examples/multilingual/.gitignore
@@ -1,0 +1,1 @@
+public
--- /dev/null
+++ b/examples/multilingual/README.md
@@ -1,0 +1,13 @@
+# Multilingual website with Hugo
+
+This example was kindly contributed by Egon Elbre in November 2013
+as a wonderful proof-of-concept for internationalization (i18n)
+and multilingualization (m17n) in Hugo-generated websites.
+
+The example works well for the most part, though some minor issues remain.
+Please see relevant discussions below:
+
+* https://github.com/spf13/hugo/issues/129 Multiple languages
+* https://github.com/spf13/hugo/issues/134 Example of a multilingual site
+
+All contributions are welcome!
--- /dev/null
+++ b/examples/multilingual/config.toml
@@ -1,0 +1,6 @@
+baseurl = ""
+
+[indexes]
+tag = "tags"
+group = "groups"
+menu = "menu"
--- a/examples/multilingual/config.yaml
+++ /dev/null
@@ -1,5 +1,0 @@
-indexes:
-  tag: 'tags'
-  group: 'groups'
-  menu: 'menu'
-baseurl: ''
--- a/examples/multilingual/layouts/_default/single.html
+++ b/examples/multilingual/layouts/_default/single.html
@@ -1,4 +1,4 @@
-{{ template "chrome/head.html" . }}
-{{ template "chrome/header.html" . }}
-{{ .Content }}
-{{ template "chrome/footer.html" . }}
\ No newline at end of file
+{{ partial "head.html" . }}
+{{ partial "header.html" . }}
+{{ if .IsPage }}{{ .Content }}{{ end }}
+{{ partial "footer.html" . }}
--- a/examples/multilingual/layouts/chrome/footer.html
+++ /dev/null
@@ -1,3 +1,0 @@
-	<footer>(Ↄ) 2013 Egon Elbre</footer>
-</body>
-</html>
\ No newline at end of file
--- a/examples/multilingual/layouts/chrome/head.html
+++ /dev/null
@@ -1,15 +1,0 @@
-<!doctype html>
-<html lang="{{ .Params.lang }}">
-<head>
-	<meta charset="utf-8">
-	{{ if .Title }}
-		{{ if (eq .Params.lang "et") }}
-		<title>Mitmekeelne - {{ .Title }}</title>
-		{{ else }}
-		<title>Multilingual - {{ .Title }}</title>
-		{{ end }}
-	{{ end }}
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<link rel="stylesheet" href="/static/main.css">
-</head>
-<body>
\ No newline at end of file
--- a/examples/multilingual/layouts/chrome/header.html
+++ /dev/null
@@ -1,25 +1,0 @@
-<header>
-	<nav class="menu language-menu">
-		<ul>
-			<li><a href="/">English</a></li>
-			<li><a href="/kodu">Eesti</a></li>
-		</ul>
-		<div class="clear"></div>
-	</nav>
-
-	{{ if (eq .Params.lang "et") }}
-	<h1 class="title">Minu mitmekeelne leht</h1>
-	{{ else }}
-	<h1 class="title">My multilingual site</h1>
-	{{ end }}
-	
-	<nav class="menu main-menu">
-		<ul>
-			{{ range (index .Site.Indexes.menu .Params.lang).Pages }}
-			<li><a href="{{ .Permalink  }}">{{ .LinkTitle }}</a></li>
-			{{ end }}
-		</ul>
-	</nav>
-</header>
-
-<h2 class="subtitle">{{ .Title }}</h2>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/partials/footer.html
@@ -1,0 +1,3 @@
+	<footer>(Ↄ) 2013 Egon Elbre</footer>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/partials/head.html
@@ -1,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="{{ .Params.lang }}">
+<head>
+	<meta charset="utf-8">
+	{{ if .Title }}
+		{{ if (eq .Params.lang "et") }}
+		<title>Mitmekeelne - {{ .Title }}</title>
+		{{ else }}
+		<title>Multilingual - {{ .Title }}</title>
+		{{ end }}
+	{{ end }}
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="/static/main.css">
+</head>
+<body>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/partials/header.html
@@ -1,0 +1,25 @@
+<header>
+	<nav class="menu language-menu">
+		<ul>
+			<li><a href="/">English</a></li>
+			<li><a href="/kodu">Eesti</a></li>
+		</ul>
+		<div class="clear"></div>
+	</nav>
+
+	{{ if (eq .Params.lang "et") }}
+	<h1 class="title">Minu mitmekeelne leht</h1>
+	{{ else }}
+	<h1 class="title">My multilingual site</h1>
+	{{ end }}
+
+	<nav class="menu main-menu">
+		<ul>
+			{{ range (index .Site.Indexes.menu .Params.lang).Pages }}
+			<li><a href="{{ .Permalink  }}">{{ .LinkTitle }}</a></li>
+			{{ end }}
+		</ul>
+	</nav>
+</header>
+
+<h2 class="subtitle">{{ .Title }}</h2>
--- a/examples/multilingual/layouts/story/list.html
+++ b/examples/multilingual/layouts/story/list.html
@@ -1,5 +1,5 @@
-{{ template "chrome/head.html" . }}
-{{ template "chrome/header.html" . }}
+{{ partial "head.html" . }}
+{{ partial "header.html" . }}
 {{ range .Site.Indexes.groups.news.Pages }}
 <article class="post">
 	<header>
@@ -12,4 +12,4 @@
 	</footer>
 </article>
 {{ end }}
-{{ template "chrome/footer.html" . }}
\ No newline at end of file
+{{ partial "footer.html" . }}
--- a/examples/multilingual/layouts/uudis/list.html
+++ b/examples/multilingual/layouts/uudis/list.html
@@ -1,5 +1,5 @@
-{{ template "chrome/head.html" . }}
-{{ template "chrome/header.html" . }}
+{{ partial "head.html" . }}
+{{ partial "header.html" . }}
 {{ range .Site.Indexes.groups.uudised.Pages }}
 <article class="post">
 	<header>
@@ -12,4 +12,4 @@
 	</footer>
 </article>
 {{ end }}
-{{ template "chrome/footer.html" . }}
\ No newline at end of file
+{{ partial "footer.html" . }}