// Copyright 2017-present The Hugo Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package tplimpl
func (t *templateHandler) embedShortcodes() {
t.addInternalShortcode("ref.html", `{{ if len .Params | eq 2 }}{{ ref .Page (.Get 0) (.Get 1) }}{{ else }}{{ ref .Page (.Get 0) }}{{ end }}`)
t.addInternalShortcode("relref.html", `{{ if len .Params | eq 2 }}{{ relref .Page (.Get 0) (.Get 1) }}{{ else }}{{ relref .Page (.Get 0) }}{{ end }}`)
t.addInternalShortcode("highlight.html", `{{ if len .Params | eq 2 }}{{ highlight (trim .Inner "\n\r") (.Get 0) (.Get 1) }}{{ else }}{{ highlight (trim .Inner "\n\r") (.Get 0) "" }}{{ end }}`)
t.addInternalShortcode("test.html", `This is a simple Test`)
t.addInternalShortcode("figure.html", `
`)
t.addInternalShortcode("speakerdeck.html", "")
t.addInternalShortcode("youtube.html", `{{ if .IsNamedParams }}
{{ else }}
{{ end }}`)
t.addInternalShortcode("vimeo.html", `{{ if .IsNamedParams }}
{{ else }}
{{ end }}`)
t.addInternalShortcode("gist.html", ``)
t.addInternalShortcode("tweet.html", `{{ (getJSON "https://api.twitter.com/1/statuses/oembed.json?id=" (index .Params 0)).html | safeHTML }}`)
t.addInternalShortcode("instagram.html", `{{ if len .Params | eq 2 }}{{ if eq (.Get 1) "hidecaption" }}{{ with getJSON "https://api.instagram.com/oembed/?url=https://instagram.com/p/" (index .Params 0) "/&hidecaption=1" }}{{ .html | safeHTML }}{{ end }}{{ end }}{{ else }}{{ with getJSON "https://api.instagram.com/oembed/?url=https://instagram.com/p/" (index .Params 0) "/&hidecaption=0" }}{{ .html | safeHTML }}{{ end }}{{ end }}`)
}
func (t *templateHandler) embedTemplates() {
t.addInternalTemplate("_default", "rss.xml", `{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}
{{ .Permalink }}
Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}Hugo -- gohugo.io{{ with .Site.LanguageCode }}
{{.}}{{end}}{{ with .Site.Author.email }}
{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }}
{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }}
{{.}}{{end}}{{ if not .Date.IsZero }}
{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
{{ with .OutputFormats.Get "RSS" }}
{{ printf "" .Permalink .MediaType | safeHTML }}
{{ end }}
{{ range .Data.Pages }}
{{ .Title }}
{{ .Permalink }}
{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
{{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}
{{ .Permalink }}{{ .Summary | html }}
{{ end }}
`)
t.addInternalTemplate("_default", "sitemap.xml", `
{{ range .Data.Pages }}
{{ .Permalink }}{{ if not .Lastmod.IsZero }}
{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }}
{{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
{{ .Sitemap.Priority }}{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
{{ end }}
{{ end }}
{{ end }}
`)
// For multilanguage sites
t.addInternalTemplate("_default", "sitemapindex.xml", `
{{ range . }}
{{ .SitemapAbsURL }}
{{ if not .LastChange.IsZero }}
{{ .LastChange.Format "2006-01-02T15:04:05-07:00" | safeHTML }}
{{ end }}
{{ end }}
`)
t.addInternalTemplate("", "pagination.html", `{{ $pag := $.Paginator }}
{{ if gt $pag.TotalPages 1 }}
{{ end }}`)
t.addInternalTemplate("", "disqus.html", `{{ if .Site.DisqusShortname }}
comments powered by Disqus{{end}}`)
// Add SEO & Social metadata
t.addInternalTemplate("", "opengraph.html", `
{{ with .Params.images }}{{ range first 6 . }}
{{ end }}{{ end }}
{{ if .IsPage }}
{{ if not .PublishDate.IsZero }}
{{ else if not .Date.IsZero }}{{ end }}
{{ if not .Lastmod.IsZero }}{{ end }}
{{ else }}
{{ if not .Date.IsZero }}{{ end }}
{{ end }}{{ with .Params.audio }}
{{ end }}{{ with .Params.locale }}
{{ end }}{{ with .Site.Params.title }}
{{ end }}{{ with .Params.videos }}
{{ range . }}
{{ end }}{{ end }}
{{ $permalink := .Permalink }}
{{ $siteSeries := .Site.Taxonomies.series }}{{ with .Params.series }}
{{ range $name := . }}
{{ $series := index $siteSeries $name }}
{{ range $page := first 6 $series.Pages }}
{{ if ne $page.Permalink $permalink }}{{ end }}
{{ end }}
{{ end }}{{ end }}
{{ if .IsPage }}
{{ range .Site.Authors }}{{ with .Social.facebook }}
{{ end }}{{ with .Site.Social.facebook }}
{{ end }}
{{ with .Params.tags }}{{ range first 6 . }}
{{ end }}{{ end }}
{{ end }}{{ end }}
{{ with .Site.Social.facebook_admin }}{{ end }}`)
t.addInternalTemplate("", "twitter_cards.html", `{{- with $.Params.images -}}
{{ else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- $featured := cond (ne $featured nil) $featured ($images.GetMatch "{*cover*,*thumbnail*}") -}}
{{- with $featured -}}
{{- else -}}
{{- with $.Site.Params.images -}}
{{ else -}}
{{- end -}}
{{- end -}}
{{- end }}
{{ with .Site.Social.twitter -}}
{{ end -}}
{{ range .Site.Authors }}
{{ with .twitter -}}
{{ end -}}
{{ end -}}`)
t.addInternalTemplate("", "google_news.html", `{{ if .IsPage }}{{ with .Params.news_keywords }}
{{ end }}{{ end }}`)
t.addInternalTemplate("", "schema.html", `{{ with .Site.Social.GooglePlus }}{{ end }}
{{if .IsPage}}{{ $ISO8601 := "2006-01-02T15:04:05-07:00" }}{{ if not .PublishDate.IsZero }}
{{ end }}
{{ if not .Date.IsZero }}{{ end }}
{{ with .Params.images }}{{ range first 6 . }}
{{ end }}{{ end }}
{{ end }}`)
t.addInternalTemplate("", "google_analytics.html", `{{ with .Site.GoogleAnalytics }}
{{ end }}`)
t.addInternalTemplate("", "google_analytics_async.html", `{{ with .Site.GoogleAnalytics }}
{{ end }}`)
t.addInternalTemplate("_default", "robots.txt", "User-agent: *")
}