| {/* This is the article template. It defines how articles are formatted. */} |
| |
| {{define "root"}} |
| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>{{.Title}}</title> |
| <link type="text/css" rel="stylesheet" href="/static/article.css"> |
| <meta charset='utf-8'> |
| <script> |
| // Initialize Google Analytics tracking code on production site only. |
| if (window["location"] && window["location"]["hostname"] == "talks.golang.org") { |
| var _gaq = _gaq || []; |
| _gaq.push(["_setAccount", "UA-11222381-6"]); |
| _gaq.push(["b._setAccount", "UA-49880327-6"]); |
| window.trackPageview = function() { |
| _gaq.push(["_trackPageview", location.pathname+location.hash]); |
| _gaq.push(["b._trackPageview", location.pathname+location.hash]); |
| }; |
| window.trackPageview(); |
| window.trackEvent = function(category, action, opt_label, opt_value, opt_noninteraction) { |
| _gaq.push(["_trackEvent", category, action, opt_label, opt_value, opt_noninteraction]); |
| _gaq.push(["b._trackEvent", category, action, opt_label, opt_value, opt_noninteraction]); |
| }; |
| } |
| </script> |
| </head> |
| |
| <body> |
| <div id="topbar" class="wide"> |
| <div class="container"> |
| <div id="heading">{{.Title}} |
| {{with .Subtitle}}{{.}}{{end}} |
| {{if .Authors}} |
| {{range .Authors}} |
| <div class="author"> |
| {{range .Elem}}{{elem $.Template .}}{{end}} |
| </div> |
| {{end}} |
| {{end}} |
| </div> |
| </div> |
| </div> |
| <div id="page" class="wide"> |
| <div class="container"> |
| {{with .Sections}} |
| <div id="toc" class="no-print"> |
| <div id="tochead">Contents</div> |
| {{template "TOC" .}} |
| </div> |
| {{end}} |
| |
| {{range .Sections}} |
| {{elem $.Template .}} |
| {{end}}{{/* of Section block */}} |
| |
| </div> |
| </div> |
| |
| {{if .PlayEnabled}} |
| <script src='/play.js'></script> |
| {{end}} |
| |
| <script> |
| (function() { |
| // Load Google Analytics tracking code on production site only. |
| if (window["location"] && window["location"]["hostname"] == "talks.golang.org") { |
| var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true; |
| ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js"; |
| var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s); |
| } |
| })(); |
| </script> |
| </body> |
| </html> |
| {{end}} |
| |
| {{define "TOC"}} |
| <ul class="toc-outer"> |
| {{range .}} |
| <li><a href="#TOC_{{.FormattedNumber}}">{{.Title}}</a></li> |
| {{with .Sections}}{{template "TOC-Inner" .}}{{end}} |
| {{end}} |
| </ul> |
| {{end}} |
| |
| {{define "TOC-Inner"}} |
| <ul class="toc-inner"> |
| {{range .}} |
| <li><a href="#TOC_{{.FormattedNumber}}">{{.Title}}</a></li> |
| {{with .Sections}}{{template "TOC-Inner" .}}{{end}} |
| {{end}} |
| </ul> |
| {{end}} |
| |
| {{define "newline"}} |
| {{/* No automatic line break. Paragraphs are free-form. */}} |
| {{end}} |