| {{/* This template is combined with other templates to render blog pages. */}} |
| |
| {{define "root"}} |
| <!DOCTYPE html> |
| <html lang="en"> |
| {{.AnalyticsHTML}}<meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta name="theme-color" content="#00ADD8"> |
| <meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software."> |
| <title>{{template "title" .}}</title> |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Work+Sans:600|Roboto:400,700|Source+Code+Pro"> |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Product+Sans&text=Supported%20by%20Google&display=swap"> |
| <link rel="stylesheet" href="/lib/godoc/style.css"> |
| <link rel="stylesheet" href="/fonts.css"> |
| <link rel="alternate" type="application/atom+xml" title="blog.golang.org - Atom Feed" href="https://blog.golang.org/feed.atom" /> |
| <script>window.initFuncs = [];</script> |
| <style> |
| h1, |
| h2, |
| h3, |
| h4, |
| h5, |
| h6 { |
| font-family: 'Work Sans', sans-serif; |
| font-weight: 600; |
| } |
| h2 { /* Reset from style.js in x/website */ |
| background: none; |
| clear: none; |
| font-size: 1.5em; |
| font-weight: 600; |
| line-height: inherit; |
| overflow-wrap: normal; |
| padding: 0; |
| } |
| @media print { |
| #sidebar { display: none; } |
| } |
| #sidebar { |
| float: right; |
| padding-left: 20px; |
| width: 40%; |
| max-width: 250px; |
| background: #f8f9f9; |
| margin: 20px 0 20px 20px; |
| } |
| #sidebar h2 { |
| font-size: 1rem; |
| } |
| #sidebar ul { |
| padding: 0; |
| } |
| #sidebar li { |
| list-style-type: none; |
| } |
| #content .author { |
| font-style: italic; |
| } |
| #content .article { |
| margin-bottom: 50px; |
| } |
| #content .date { |
| color: #6e7072; |
| } |
| #content .tags { |
| color: #999; |
| font-size: smaller; |
| } |
| #content .iframe, #content .image { |
| margin: 20px; |
| } |
| #content .title { |
| margin: 20px 0; |
| } |
| #content img { |
| max-width: 100%; |
| } |
| .article[data-slug='/go-fonts'] { |
| font-family: Go, sans-serif; |
| } |
| .article[data-slug='/go-fonts'] pre, |
| .article[data-slug='/go-fonts'] code { |
| font-family: 'Go Mono', monospace; |
| } |
| </style> |
| <body class="Site"> |
| <header class="Header js-header"> |
| <nav class="Header-nav"> |
| <a href="{{.GodocURL}}"><img class="Header-logo" src="/lib/godoc/images/go-logo-blue.svg" alt="Go"></a> |
| <button class="Header-menuButton js-headerMenuButton" aria-label="Main menu" aria-expanded="false"> |
| <div class="Header-menuButtonInner"> |
| </button> |
| <ul class="Header-menu"> |
| <li class="Header-menuItem"><a href="{{.GodocURL}}/doc/">Documents</a></li> |
| <li class="Header-menuItem"><a href="{{.GodocURL}}/pkg/">Packages</a></li> |
| <li class="Header-menuItem"><a href="{{.GodocURL}}/project/">The Project</a></li> |
| <li class="Header-menuItem"><a href="{{.GodocURL}}/help/">Help</a></li> |
| <li class="Header-menuItem"><a href="{{.BasePath}}/">Blog</a></li> |
| <li class="Header-menuItem"><a href="https://play.golang.org/">Play</a></li> |
| <li class="Header-menuItem Header-menuItem--search"> |
| <form class="HeaderSearch" role="search" action="{{.GodocURL}}/search"> |
| <input class="HeaderSearch-input" |
| type="search" |
| name="q" |
| placeholder="Search" |
| aria-label="Search" |
| autocapitalize="off" |
| autocomplete="off" |
| autocorrect="off" |
| spellcheck="false" |
| required> |
| <button class="HeaderSearch-submit" aria-label="Search"> |
| <!-- magnifying glass: --><svg class="HeaderSearch-icon" width="24" height="24" viewBox="0 0 24 24"><title>Search</title><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/><path d="M0 0h24v24H0z" fill="none"/></svg> |
| </button> |
| </form> |
| </li> |
| </ul> |
| </nav> |
| </header> |
| |
| <main class="Site-content" id="page"> |
| <div class="container"> |
| <aside id="sidebar"> |
| {{with .Doc}} |
| {{with .Newer}} |
| <h2>Next article</h2> |
| <p><a href="{{.Path}}">{{.Title}}</a></p> |
| {{end}} |
| |
| {{with .Older}} |
| <h2>Previous article</h2> |
| <p><a href="{{.Path}}">{{.Title}}</a></p> |
| {{end}} |
| {{end}} |
| |
| <h2>Links</h2> |
| <ul> |
| <li><a href='//golang.org/'>golang.org</a></li> |
| <li><a href='//golang.org/doc/install.html'>Install Go</a></li> |
| <li><a href='//tour.golang.org/'>A Tour of Go</a></li> |
| <li><a href='//golang.org/doc/'>Go Documentation</a></li> |
| <li><a href='//groups.google.com/group/golang-nuts'>Go Mailing List</a></li> |
| <li><a href='//twitter.com/golang'>Go on Twitter</a></li> |
| </ul> |
| |
| <p><a href="{{.BasePath}}/index">Blog index</a></p> |
| </aside><!-- #sidebar --> |
| |
| <div id="content"> |
| <h1><a href="{{.BasePath}}/">The Go Blog</a></h1> |
| {{template "content" .}} |
| </div><!-- #content --> |
| |
| </div><!-- .container --> |
| </main><!-- #page --> |
| |
| <footer> |
| <div class="Footer"> |
| <img class="Footer-gopher" src="/lib/godoc/images/footer-gopher.jpg" alt="The Go Gopher"> |
| <ul class="Footer-links"> |
| <li class="Footer-link"><a href="{{.GodocURL}}/doc/copyright.html">Copyright</a></li> |
| <li class="Footer-link"><a href="{{.GodocURL}}/doc/tos.html">Terms of Service</a></li> |
| <li class="Footer-link"><a href="http://www.google.com/intl/en/policies/privacy/">Privacy Policy</a></li> |
| <li class="Footer-link"><a href="http://golang.org/issues/new?title=x/blog:" target="_blank" rel="noopener">Report issue</a></li> |
| </ul> |
| <a class="Footer-supportedBy" href="https://google.com">Supported by Google</a> |
| </div> |
| </footer> |
| |
| <script src="/lib/godoc/jquery.js"></script> |
| <script src="/lib/godoc/playground.js"></script> |
| <script src="/lib/godoc/play.js"></script> |
| <script src="/lib/godoc/godocs.js"></script> |
| <script> |
| $(function() { |
| // Insert line numbers for all playground elements. |
| $('.playground > pre.numbers, .code > pre.numbers').each(function() { |
| var $spans = $(this).find('> span'); |
| |
| // Compute width of number column (including trailing space). |
| var max = 0; |
| $spans.each(function() { |
| var n = $(this).attr('num')*1; |
| if (n > max) max = n; |
| }); |
| var width = 2; |
| while (max > 10) { |
| max = max / 10; |
| width++; |
| } |
| |
| // Insert line numbers with space padding. |
| $spans.each(function() { |
| var n = $(this).attr('num')+' '; |
| while (n.length < width) n = ' '+n; |
| $('<span class="number">').text(n).insertBefore(this); |
| }); |
| }); |
| |
| initPlayground(new HTTPTransport()); |
| }); |
| </script> |
| {{end}} |
| |
| {{define "doc"}} |
| <div class="article" data-slug="{{.Path}}"> |
| <h2 class="title"><a href="{{.Path}}">{{.Title}}</a></h2> |
| <p class="author"> |
| {{with .Authors}}{{authors .}}<br>{{end}} |
| {{.Time.Format "2 January 2006"}} |
| </p> |
| {{.HTML}} |
| </div> |
| {{end}} |