2017-03-27 14:43:49 -04:00
// Copyright 2017-present The Hugo Authors. All rights reserved.
2014-01-09 17:33:20 -05:00
//
2015-11-23 22:16:36 -05:00
// Licensed under the Apache License, Version 2.0 (the "License");
2014-01-09 17:33:20 -05:00
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
2015-11-23 22:16:36 -05:00
// http://www.apache.org/licenses/LICENSE-2.0
2014-01-09 17:33:20 -05:00
//
// 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.
2017-02-17 07:30:50 -05:00
package tplimpl
2014-01-09 17:33:20 -05:00
2017-03-27 14:43:49 -04:00
func ( t * templateHandler ) embedShortcodes ( ) {
2017-04-04 12:14:41 -04:00
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 }} ` )
2017-09-23 12:14:07 -04:00
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 }} ` )
2017-03-27 14:43:49 -04:00
t . addInternalShortcode ( "test.html" , ` This is a simple Test ` )
t . addInternalShortcode ( "figure.html" , ` < ! -- image -- >
2018-02-05 14:06:29 -05:00
< figure { { with . Get "class" } } class = "{{.}}" { { end } } >
{ { if . Get "link" } } < a href = "{{ .Get " link " }}" { { with . Get "target" } } target = "{{ . }}" { { end } } { { with . Get "rel" } } rel = "{{ . }}" { { end } } > { { end } }
2017-10-27 11:37:54 -04:00
< img src = "{{ .Get " src " }}" { { if or ( . Get "alt" ) ( . Get "caption" ) } } alt = "{{ with .Get " alt "}}{{.}}{{else}}{{ .Get " caption " }}{{ end }}" { { end } } { { with . Get "width" } } width = "{{.}}" { { end } } { { with . Get "height" } } height = "{{.}}" { { end } } / >
2014-02-25 23:57:31 -05:00
{ { if . Get "link" } } < / a > { { end } }
{ { if or ( or ( . Get "title" ) ( . Get "caption" ) ) ( . Get "attr" ) } }
2014-01-09 17:33:20 -05:00
< figcaption > { { if isset . Params "title" } }
2014-02-25 23:57:31 -05:00
< h4 > { { . Get "title" } } < / h4 > { { end } }
{ { if or ( . Get "caption" ) ( . Get "attr" ) } } < p >
{ { . Get "caption" } }
{ { with . Get "attrlink" } } < a href = "{{.}}" > { { end } }
{ { . Get "attr" } }
{ { if . Get "attrlink" } } < / a > { { end } }
2014-01-09 17:33:20 -05:00
< / p > { { end } }
< / figcaption >
{ { end } }
< / figure >
< ! -- image -- > ` )
2017-03-27 14:43:49 -04:00
t . addInternalShortcode ( "speakerdeck.html" , "<script async class='speakerdeck-embed' data-id='{{ index .Params 0 }}' data-ratio='1.33333333333333' src='//speakerdeck.com/assets/embed.js'></script>" )
t . addInternalShortcode ( "youtube.html" , ` { { if . IsNamedParams } }
2015-11-23 13:32:03 -05:00
< div { { if . Get "class" } } class = "{{ .Get " class " }}" { { else } } style = "position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;" { { end } } >
2017-08-11 18:36:40 -04:00
< iframe src = "//www.youtube.com/embed/{{ .Get " id " }}?{{ with .Get " autoplay " }}{{ if eq . " true " }}autoplay=1{{ end }}{{ end }}"
{ { if not ( . Get "class" ) } } style = "position: absolute; top: 0; left: 0; width: 100%; height: 100%;" { { end } } allowfullscreen frameborder = "0" title = "YouTube Video" > < / iframe >
2015-11-23 13:32:03 -05:00
< / div > { { else } }
< div { { if len . Params | eq 2 } } class = "{{ .Get 1 }}" { { else } } style = "position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;" { { end } } >
2017-08-11 18:36:40 -04:00
< iframe src = "//www.youtube.com/embed/{{ .Get 0 }}" { { if len . Params | eq 1 } } style = "position: absolute; top: 0; left: 0; width: 100%; height: 100%;" { { end } } allowfullscreen frameborder = "0" title = "YouTube Video" > < / iframe >
2015-11-23 13:32:03 -05:00
< / div >
{ { end } } ` )
2017-03-27 14:43:49 -04:00
t . addInternalShortcode ( "vimeo.html" , ` { { if . IsNamedParams } } < div { { if . Get "class" } } class = "{{ .Get " class " }}" { { else } } style = "position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;" { { end } } >
2015-11-23 13:32:03 -05:00
< iframe src = "//player.vimeo.com/video/{{ .Get " id " }}" { { if not ( . Get "class" ) } } style = "position: absolute; top: 0; left: 0; width: 100%; height: 100%;" { { end } } webkitallowfullscreen mozallowfullscreen allowfullscreen > < / iframe >
< / div > { { else } }
< div { { if len . Params | eq 2 } } class = "{{ .Get 1 }}" { { else } } style = "position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;" { { end } } >
< iframe src = "//player.vimeo.com/video/{{ .Get 0 }}" { { if len . Params | eq 1 } } style = "position: absolute; top: 0; left: 0; width: 100%; height: 100%;" { { end } } webkitallowfullscreen mozallowfullscreen allowfullscreen > < / iframe >
< / div >
{ { end } } ` )
2017-03-27 14:43:49 -04:00
t . addInternalShortcode ( "gist.html" , ` <script src="//gist.github.com/ {{ index .Params 0 }} / {{ index .Params 1 }} .js {{ if len .Params | eq 3 }} ?file= {{ index .Params 2 }} {{ end }} "></script> ` )
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 }} ` )
2014-01-09 17:33:20 -05:00
}
2014-04-09 17:45:34 -04:00
2017-03-27 14:43:49 -04:00
func ( t * templateHandler ) embedTemplates ( ) {
2014-04-09 17:45:34 -04:00
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "_default" , "rss.xml" , ` < rss version = "2.0" xmlns : atom = "http://www.w3.org/2005/Atom" >
2014-04-09 17:45:34 -04:00
< channel >
2016-11-20 06:54:17 -05:00
< title > { { if eq . Title . Site . Title } } { { . Site . Title } } { { else } } { { with . Title } } { { . } } on { { end } } { { . Site . Title } } { { end } } < / title >
2014-04-09 17:45:34 -04:00
< link > { { . Permalink } } < / link >
2016-11-20 06:54:17 -05:00
< description > Recent content { { if ne . Title . Site . Title } } { { with . Title } } in { { . } } { { end } } { { end } } on { { . Site . Title } } < / description >
2015-01-30 08:24:44 -05:00
< generator > Hugo -- gohugo . io < / generator > { { with . Site . LanguageCode } }
2016-09-18 13:10:11 -04:00
< language > { { . } } < / language > { { end } } { { with . Site . Author . email } }
< managingEditor > { { . } } { { with $ . Site . Author . name } } ( { { . } } ) { { end } } < / managingEditor > { { end } } { { with . Site . Author . email } }
< webMaster > { { . } } { { with $ . Site . Author . name } } ( { { . } } ) { { end } } < / webMaster > { { end } } { { with . Site . Copyright } }
2015-01-30 08:24:44 -05:00
< copyright > { { . } } < / copyright > { { end } } { { if not . Date . IsZero } }
2015-03-18 01:16:54 -04:00
< lastBuildDate > { { . Date . Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML } } < / lastBuildDate > { { end } }
2017-03-25 05:14:12 -04:00
{ { with . OutputFormats . Get "RSS" } }
{ { printf "<atom:link href=%q rel=\"self\" type=%q />" . Permalink . MediaType | safeHTML } }
{ { end } }
2017-02-13 11:11:22 -05:00
{ { range . Data . Pages } }
2014-04-09 17:45:34 -04:00
< item >
< title > { { . Title } } < / title >
< link > { { . Permalink } } < / link >
2015-03-18 01:16:54 -04:00
< pubDate > { { . Date . Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML } } < / pubDate >
2016-09-18 13:10:11 -04:00
{ { with . Site . Author . email } } < author > { { . } } { { with $ . Site . Author . name } } ( { { . } } ) { { end } } < / author > { { end } }
2014-04-09 17:45:34 -04:00
< guid > { { . Permalink } } < / guid >
2017-03-25 17:58:41 -04:00
< description > { { . Summary | html } } < / description >
2014-04-09 17:45:34 -04:00
< / item >
{ { end } }
< / channel >
< / rss > ` )
2017-10-17 14:56:50 -04:00
t . addInternalTemplate ( "_default" , "sitemap.xml" , ` < urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns : xhtml = "http://www.w3.org/1999/xhtml" >
2014-05-06 06:50:23 -04:00
{ { range . Data . Pages } }
< url >
2015-05-14 17:58:14 -04:00
< loc > { { . Permalink } } < / loc > { { if not . Lastmod . IsZero } }
< lastmod > { { safeHTML ( . Lastmod . Format "2006-01-02T15:04:05-07:00" ) } } < / lastmod > { { end } } { { with . Sitemap . ChangeFreq } }
2014-05-06 11:02:56 -04:00
< changefreq > { { . } } < / changefreq > { { end } } { { if ge . Sitemap . Priority 0.0 } }
2017-04-22 16:37:14 -04:00
< priority > { { . Sitemap . Priority } } < / priority > { { end } } { { if . IsTranslated } } { { range . Translations } }
< xhtml : link
rel = "alternate"
hreflang = "{{ .Lang }}"
href = "{{ .Permalink }}"
/ > { { end } }
< xhtml : link
rel = "alternate"
hreflang = "{{ .Lang }}"
href = "{{ .Permalink }}"
/ > { { end } }
2014-05-06 06:50:23 -04:00
< / url >
{ { end } }
< / urlset > ` )
2016-08-04 16:12:19 -04:00
// For multilanguage sites
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "_default" , "sitemapindex.xml" , ` < sitemapindex xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9" >
2016-08-04 16:12:19 -04:00
{ { range . } }
< sitemap >
< loc > { { . SitemapAbsURL } } < / loc >
{ { if not . LastChange . IsZero } }
< lastmod > { { . LastChange . Format "2006-01-02T15:04:05-07:00" | safeHTML } } < / lastmod >
{ { end } }
< / sitemap >
{ { end } }
< / sitemapindex >
` )
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "pagination.html" , ` { { $ pag := $ . Paginator } }
2017-05-16 03:53:40 -04:00
{ { if gt $ pag . TotalPages 1 } }
< ul class = "pagination" >
{ { with $ pag . First } }
< li >
< a href = "{{ .URL }}" aria - label = "First" > < span aria - hidden = "true" > & laquo ; & laquo ; < / span > < / a >
< / li >
{ { end } }
< li
{ { if not $ pag . HasPrev } } class = "disabled" { { end } } >
< a href = "{{ if $pag.HasPrev }}{{ $pag.Prev.URL }}{{ end }}" aria - label = "Previous" > < span aria - hidden = "true" > & laquo ; < / span > < / a >
< / li >
{ { $ . Scratch . Set "__paginator.ellipsed" false } }
{ { range $ pag . Pagers } }
{ { $ right := sub . TotalPages . PageNumber } }
{ { $ showNumber := or ( le . PageNumber 3 ) ( eq $ right 0 ) } }
{ { $ showNumber := or $ showNumber ( and ( gt . PageNumber ( sub $ pag . PageNumber 2 ) ) ( lt . PageNumber ( add $ pag . PageNumber 2 ) ) ) } }
2017-08-11 18:36:40 -04:00
{ { if $ showNumber } }
2017-05-16 03:53:40 -04:00
{ { $ . Scratch . Set "__paginator.ellipsed" false } }
{ { $ . Scratch . Set "__paginator.shouldEllipse" false } }
{ { else } }
{ { $ . Scratch . Set "__paginator.shouldEllipse" ( not ( $ . Scratch . Get "__paginator.ellipsed" ) ) } }
{ { $ . Scratch . Set "__paginator.ellipsed" true } }
{ { end } }
{ { if $ showNumber } }
< li
{ { if eq . $ pag } } class = "active" { { end } } > < a href = "{{ .URL }}" > { { . PageNumber } } < / a > < / li >
{ { else if ( $ . Scratch . Get "__paginator.shouldEllipse" ) } }
< li class = "disabled" > < span aria - hidden = "true" > & hellip ; < / span > < / li >
{ { end } }
{ { end } }
< li
{ { if not $ pag . HasNext } } class = "disabled" { { end } } >
< a href = "{{ if $pag.HasNext }}{{ $pag.Next.URL }}{{ end }}" aria - label = "Next" > < span aria - hidden = "true" > & raquo ; < / span > < / a >
< / li >
{ { with $ pag . Last } }
< li >
< a href = "{{ .URL }}" aria - label = "Last" > < span aria - hidden = "true" > & raquo ; & raquo ; < / span > < / a >
< / li >
{ { end } }
< / ul >
{ { end } } ` )
2015-01-26 07:34:12 -05:00
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "disqus.html" , ` { { if . Site . DisqusShortname } } < div id = "disqus_thread" > < / div >
2017-06-27 11:45:48 -04:00
< script >
2017-06-27 07:40:01 -04:00
var disqus_config = function ( ) {
{ { with . GetParam "disqus_identifier" } } this . page . identifier = ' { { . } } ' ; { { end } }
{ { with . GetParam "disqus_title" } } this . page . title = ' { { . } } ' ; { { end } }
{ { with . GetParam "disqus_url" } } this . page . url = ' { { . | html } } ' ; { { end } }
} ;
2014-04-23 02:52:01 -04:00
( function ( ) {
2017-06-27 07:40:01 -04:00
if ( [ "localhost" , "127.0.0.1" ] . indexOf ( window . location . hostname ) != - 1 ) {
document . getElementById ( ' disqus_thread ' ) . innerHTML = ' Disqus comments not available by default when the website is previewed locally . ' ;
return ;
}
2017-06-27 11:45:48 -04:00
var d = document , s = d . createElement ( ' script ' ) ; s . async = true ;
s . src = ' //' + {{ .Site.DisqusShortname }} + '.disqus.com/embed.js';
s . setAttribute ( ' data - timestamp ' , + new Date ( ) ) ;
( d . head || d . body ) . appendChild ( s ) ;
2014-04-23 02:52:01 -04:00
} ) ( ) ;
< / script >
2017-08-22 13:55:29 -04:00
< noscript > Please enable JavaScript to view the < a href = "https://disqus.com/?ref_noscript" > comments powered by Disqus . < / a > < / noscript >
< a href = "https://disqus.com" class = "dsq-brlink" > comments powered by < span class = "logo-disqus" > Disqus < / span > < / a > { { end } } ` )
2014-04-23 02:52:01 -04:00
2014-12-09 13:33:55 -05:00
// Add SEO & Social metadata
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "opengraph.html" , ` < meta property = "og:title" content = "{{ .Title }}" / >
2015-02-01 13:56:21 -05:00
< meta property = "og:description" content = "{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" / >
2014-12-09 13:33:55 -05:00
< meta property = "og:type" content = "{{ if .IsPage }}article{{ else }}website{{ end }}" / >
< meta property = "og:url" content = "{{ .Permalink }}" / >
{ { with . Params . images } } { { range first 6 . } }
2015-11-02 14:49:15 -05:00
< meta property = "og:image" content = "{{ . | absURL }}" / >
2014-12-09 13:33:55 -05:00
{ { end } } { { end } }
2017-01-22 09:06:41 -05:00
{ { if . IsPage } }
{ { if not . PublishDate . IsZero } } < meta property = "article:published_time" content = "{{ .PublishDate.Format " 2006 - 01 - 02 T15 : 04 : 05 - 07 : 00 " | safeHTML }}" / >
{ { else if not . Date . IsZero } } < meta property = "article:published_time" content = "{{ .Date.Format " 2006 - 01 - 02 T15 : 04 : 05 - 07 : 00 " | safeHTML }}" / > { { end } }
{ { if not . Lastmod . IsZero } } < meta property = "article:modified_time" content = "{{ .Lastmod.Format " 2006 - 01 - 02 T15 : 04 : 05 - 07 : 00 " | safeHTML }}" / > { { end } }
{ { else } }
2017-02-21 08:18:59 -05:00
{ { if not . Date . IsZero } } < meta property = "og:updated_time" content = "{{ .Date.Format " 2006 - 01 - 02 T15 : 04 : 05 - 07 : 00 " | safeHTML }}" / > { { end } }
2017-01-22 09:06:41 -05:00
{ { end } } { { with . Params . audio } }
2014-12-09 13:33:55 -05:00
< meta property = "og:audio" content = "{{ . }}" / > { { end } } { { with . Params . locale } }
< meta property = "og:locale" content = "{{ . }}" / > { { end } } { { with . Site . Params . title } }
< meta property = "og:site_name" content = "{{ . }}" / > { { end } } { { with . Params . videos } }
2017-12-01 05:17:46 -05:00
{ { range . } }
2015-11-02 14:49:15 -05:00
< meta property = "og:video" content = "{{ . | absURL }}" / >
2015-01-20 04:43:42 -05:00
{ { end } } { { end } }
2014-12-09 13:33:55 -05:00
< ! -- If it is part of a series , link to related articles -- >
{ { $ 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 } } < meta property = "og:see_also" content = "{{ $page.Permalink }}" / > { { end } }
{ { end } }
{ { end } } { { end } }
{ { if . IsPage } }
{ { range . Site . Authors } } { { with . Social . facebook } }
< meta property = "article:author" content = "https://www.facebook.com/{{ . }}" / > { { end } } { { with . Site . Social . facebook } }
< meta property = "article:publisher" content = "https://www.facebook.com/{{ . }}" / > { { end } }
< meta property = "article:section" content = "{{ .Section }}" / >
{ { with . Params . tags } } { { range first 6 . } }
< meta property = "article:tag" content = "{{ . }}" / > { { end } } { { end } }
2015-01-20 04:43:42 -05:00
{ { end } } { { end } }
2014-12-09 13:33:55 -05:00
< ! -- Facebook Page Admin ID for Domain Insights -- >
{ { with . Site . Social . facebook_admin } } < meta property = "fb:admins" content = "{{ . }}" / > { { end } } ` )
2018-01-29 05:44:41 -05:00
t . addInternalTemplate ( "" , "twitter_cards.html" , ` { { - with $ . Params . images - } }
< meta name = "twitter:card" content = "summary_large_image" / >
2018-02-08 16:32:49 -05:00
< meta name = "twitter:image" content = "{{ index . 0 | absURL }}" / >
2018-01-29 05:44:41 -05:00
{ { else - } }
{ { - $ images := $ . Resources . ByType "image" - } }
{ { - $ featured := $ images . GetMatch "*feature*" - } }
{ { - $ featured := cond ( ne $ featured nil ) $ featured ( $ images . GetMatch "{*cover*,*thumbnail*}" ) - } }
{ { - with $ featured - } }
< meta name = "twitter:card" content = "summary_large_image" / >
2018-02-08 16:32:49 -05:00
< meta name = "twitter:image" content = "{{ $featured.Permalink }}" / >
2018-01-29 05:44:41 -05:00
{ { - else - } }
{ { - with $ . Site . Params . images - } }
2017-07-17 17:08:59 -04:00
< meta name = "twitter:card" content = "summary_large_image" / >
2018-02-08 16:32:49 -05:00
< meta name = "twitter:image" content = "{{ index . 0 | absURL }}" / >
2017-07-17 17:08:59 -04:00
{ { else - } }
< meta name = "twitter:card" content = "summary" / >
{ { - end - } }
2018-01-29 05:44:41 -05:00
{ { - end - } }
{ { - end } }
2014-12-09 13:33:55 -05:00
< meta name = "twitter:title" content = "{{ .Title }}" / >
2017-07-17 17:08:59 -04:00
< meta name = "twitter:description" content = "{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}" / >
{ { with . Site . Social . twitter - } }
< meta name = "twitter:site" content = "@{{ . }}" / >
{ { end - } }
2014-12-09 13:33:55 -05:00
{ { range . Site . Authors } }
2017-07-17 17:08:59 -04:00
{ { with . twitter - } }
< meta name = "twitter:creator" content = "@{{ . }}" / >
{ { end - } }
{ { end - } } ` )
2014-12-09 13:33:55 -05:00
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "google_news.html" , ` { { if . IsPage } } { { with . Params . news_keywords } }
2014-12-09 13:33:55 -05:00
< meta name = "news_keywords" content = "{{ range $i, $kw := first 10 . }}{{ if $i }},{{ end }}{{ $kw }}{{ end }}" / >
{ { end } } { { end } } ` )
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "schema.html" , ` { { with . Site . Social . GooglePlus } } < link rel = "publisher" href = "{{ . }}" / > { { end } }
2014-12-09 13:33:55 -05:00
< meta itemprop = "name" content = "{{ .Title }}" >
2015-02-01 13:56:21 -05:00
< meta itemprop = "description" content = "{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" >
2014-12-09 13:33:55 -05:00
2015-01-30 08:24:44 -05:00
{ { if . IsPage } } { { $ ISO8601 := "2006-01-02T15:04:05-07:00" } } { { if not . PublishDate . IsZero } }
2015-03-18 01:16:54 -04:00
< meta itemprop = "datePublished" content = "{{ .PublishDate.Format $ISO8601 | safeHTML }}" / > { { end } }
{ { if not . Date . IsZero } } < meta itemprop = "dateModified" content = "{{ .Date.Format $ISO8601 | safeHTML }}" / > { { end } }
2014-12-09 13:33:55 -05:00
< meta itemprop = "wordCount" content = "{{ .WordCount }}" >
{ { with . Params . images } } { { range first 6 . } }
2015-11-02 14:49:15 -05:00
< meta itemprop = "image" content = "{{ . | absURL }}" >
2014-12-09 13:33:55 -05:00
{ { end } } { { end } }
< ! -- Output all taxonomies as schema . org keywords -- >
2016-10-29 06:30:59 -04:00
< meta itemprop = "keywords" content = "{{ if .IsPage}}{{ range $index, $tag := .Params.tags }}{{ $tag }},{{ end }}{{ else }}{{ range $plural, $terms := .Site.Taxonomies }}{{ range $term, $val := $terms }}{{ printf " % s , " $term }}{{ end }}{{ end }}{{ end }}" / >
2015-10-19 07:31:03 -04:00
{ { end } } ` )
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "google_analytics.html" , ` { { with . Site . GoogleAnalytics } }
2015-10-19 07:31:03 -04:00
< script >
( function ( i , s , o , g , r , a , m ) { i [ ' GoogleAnalyticsObject ' ] = r ; i [ r ] = i [ r ] || function ( ) {
( i [ r ] . q = i [ r ] . q || [ ] ) . push ( arguments ) } , i [ r ] . l = 1 * new Date ( ) ; a = s . createElement ( o ) ,
m = s . getElementsByTagName ( o ) [ 0 ] ; a . async = 1 ; a . src = g ; m . parentNode . insertBefore ( a , m )
2016-12-31 06:43:02 -05:00
} ) ( window , document , ' script ',' https : //www.google-analytics.com/analytics.js','ga');
2015-10-19 07:31:03 -04:00
ga ( ' create ' , ' { { . } } ' , ' auto ' ) ;
ga ( ' send ' , ' pageview ' ) ;
< / script >
2015-12-17 00:56:16 -05:00
{ { end } } ` )
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "" , "google_analytics_async.html" , ` { { with . Site . GoogleAnalytics } }
2015-12-17 00:56:16 -05:00
< script >
window . ga = window . ga || function ( ) { ( ga . q = ga . q || [ ] ) . push ( arguments ) } ; ga . l = + new Date ;
ga ( ' create ' , ' { { . } } ' , ' auto ' ) ;
ga ( ' send ' , ' pageview ' ) ;
< / script >
< script async src = ' //www.google-analytics.com/analytics.js'></script>
2015-01-20 04:43:42 -05:00
{ { end } } ` )
2015-12-08 16:13:09 -05:00
2017-03-27 14:43:49 -04:00
t . addInternalTemplate ( "_default" , "robots.txt" , "User-agent: *" )
2014-04-09 17:45:34 -04:00
}