From d84de09e1d46efe6e0dc5edcbb6c30b02733aa70 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Mon, 13 Feb 2012 21:22:36 +1100 Subject: [PATCH] godoc: new design This is not the finished product, but a good checkpoint from which to proceed with further development. R=golang-dev, dsymonds, r CC=golang-dev https://golang.org/cl/5571061 --- doc/all.css | 222 --------------------------- doc/community.html | 55 ------- doc/contrib.html | 63 ++++---- doc/docs.html | 231 ++++++++++++---------------- doc/frontpage.css | 143 ----------------- doc/godocs.js | 35 +---- doc/gopher/frontpage.png | Bin 0 -> 31610 bytes doc/gopher/ref.png | Bin 0 -> 14576 bytes doc/install.html | 3 +- doc/reference.html | 40 +++++ doc/root.html | 205 +++++++++++++------------ doc/style.css | 320 +++++++++++++++++++++++++++++++++++++++ lib/godoc/godoc.html | 107 ++++++------- lib/godoc/package.html | 54 +++---- src/cmd/godoc/godoc.go | 2 +- 15 files changed, 678 insertions(+), 802 deletions(-) delete mode 100644 doc/all.css delete mode 100644 doc/community.html delete mode 100644 doc/frontpage.css create mode 100644 doc/gopher/frontpage.png create mode 100644 doc/gopher/ref.png create mode 100644 doc/reference.html create mode 100644 doc/style.css diff --git a/doc/all.css b/doc/all.css deleted file mode 100644 index 8caab97206..0000000000 --- a/doc/all.css +++ /dev/null @@ -1,222 +0,0 @@ -/* General Styles */ -body { - font-family: "Bitstream Vera Sans", Verdana, sans-serif; - font-size: 81.25%; - line-height: 1.23em; - padding: 0; - margin: 1.23em; - background: white; - color: black; -} -a { - color: #04a; - text-decoration: none; -} -a:visited { - color: #04a; -} -a:hover { - color: #a40; - text-decoration: underline; -} -a:active { - color: #c00; -} -code, pre { - font-size: 1.2em; -} -pre { - background: #F0F0F0; - padding: 0.5em 1em; -} -h3 { - font-size: 100%; -} - -/* Top bar */ -#container { - width: 100%; - margin: auto; -} -#topnav { - height: 55px; - background: url(/doc/logo.png) no-repeat top left; -} -a#logo-box { - display: block; - height: 55px; -} -h1#title { - display: none; -} -#nav-main { - float: right; - width: 500px; - margin-top: -5px; - text-align: center; -} -#nav-main ul { - padding-left: 0; - margin-left: 0; - margin-bottom: 0.5em; -} -#nav-main li a { - display: inline; - display: inline-block; - padding: .46em .62em .38em .62em; -} -#nav-main li a:link, -#nav-main li a:visited { - color: #000; -} -#nav-main li { - display: inline; - display: inline-block; - background: #e6e6e6 url(/doc/button_background.png) repeat-x; - border: solid 1px #999; - margin-left: -1px; - text-shadow: #fff 0 1px 0; - box-shadow: 0 1px 1px #ccc; - -moz-box-shadow: 0 1px 1px #ccc; - -webkit-box-shadow: 0 1px 1px #ccc; -} -#nav-main li:first-child { - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -#nav-main li:last-child { - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -#nav-main .quickref { - color: #444; -} -#nav-main .quickref .sep { - color: #999; -} -#search { - width: 120px; - margin-left: 0.5em; -} -#search.inactive { - text-align: center; - color: #444; -} - -/* Footer */ -#site-info { - position: relative; - text-align: center; -} -#site-info, #site-info a:link, #site-info a:visited { - color: #aaa; -} - -/* Content */ -#content { - clear: both; - padding: 0; - position: relative; - margin-top: 1.5em; - margin-bottom: 1.5em; - border-top: solid 1px #aaa; - border-bottom: solid 1px #aaa; -} -.left-column { - width: 49%; - float: left; -} -.right-column { - width: 49%; - float: right; -} -.end-columns { - clear: both; -} -#content h1 { - padding: 0; -} -#content h2 { - border-top: 2px solid #ddd; - padding: 8px 0; - margin: 1.5em 0 0; -} -#content .subtitle { - margin-top: 1em; - display: block; -} -.navtop a { - font-weight: normal; font-size: 7pt; - float: right; color: #999; -} - -/* Content and Code Highlighting */ -pre.ebnf, pre.grammar { - background: #FFFFE0; -} -span.ln { - font-size: 80%; - color: #777777; -} -span.comment { - color: #002090; -} -span.highlight { - background: #FF9900; - font-weight: bold; -} -span.highlight-comment { - background: #FF9900; - font-weight: bold; - color: #002090; -} -span.selection { - background: #FFFF00 -} -span.selection-comment { - color: #002090; - background: #FFFF00 -} -span.selection-highlight { - background: #FF9900; - font-weight: bold; -} -span.selection-highlight-comment { - background: #FF9900; - font-weight: bold; - color: #002090; -} -span.alert { - color: #D00000; -} -#nav table { - width: 100%; -} -.detail { - padding: 0.25em 1em; - background: #F4F4F4; -} -sup.new { - color: red; - font-size: 8px; - line-height: 0; -} -.example .expanded { - display: none; -} -.exampleVisible .collapsed { - display: none; -} -.exampleHeading { - cursor: pointer; -} - -/* Table of code entries; used by go1.html */ -.codetable td { - font-family: monospace; - font-size: 120%; -} diff --git a/doc/community.html b/doc/community.html deleted file mode 100644 index aee731e3c0..0000000000 --- a/doc/community.html +++ /dev/null @@ -1,55 +0,0 @@ - - -
- -

The Go Community

- -

Go Nuts Mailing List

-

The golang-nuts -mailing list is for general Go discussion.

- -

Go Packages Dashboard

-

A list of the most popular goinstall'd -Go libraries.

- -

Go Project Dashboard

-

A list of external Go projects including programs and libraries.

- -

Go IRC Channel

-

#go-nuts on irc.freenode.net is the official Go IRC channel.

- -

@go_nuts at Twitter

-

The Go project's official Twitter account.

- -
- -
- -

Blogs

- -

The Go Blog

-

-The Go project's official blog, maintained by the core Go developers. -

- -

research!rsc

-

-Posts labelled 'Go' by Russ Cox, one of the core Go developers. -

- -

Airs

-

-Posts labelled 'Programming' by Ian Lance Taylor, one of the core Go developers. -

- -

nf.id.au

-

-Posts labelled 'Go' by Andrew Gerrand, one of the core Go developers. -

- -
- -
- diff --git a/doc/contrib.html b/doc/contrib.html index 3ef7d5695a..7ab7eee863 100644 --- a/doc/contrib.html +++ b/doc/contrib.html @@ -1,8 +1,34 @@ -
+

The Go Project

+ +

Source Code

+

Check out the Go source code.

+ +

Build Status

+

View the status of Go builds across the supported operating +systems and architectures.

+ +

Roadmap

+

Features and ideas being developed or discussed by the Go team.

+ +

Release History

+

A summary of the changes between Go releases.

+ +

Weekly Snapshot History

+

A summary of the changes between weekly snapshots of Go.

+ +

Developer Mailing List

+

The golang-dev +mailing list is for discussing and reviewing code for the Go project.

+

For general discussion of Go programming, see golang-nuts.

+ +

Checkins Mailing List

+

A mailing list that receives a message summarizing each checkin to the Go repository.

How you can help

@@ -36,36 +62,3 @@ open issues that interest you. Those labeled HelpWanted are particularly in need of outside help.

- -
- -
- -

The Go Project

- -

Build Status

-

View the status of Go builds across the supported operating -systems and architectures.

- -

Roadmap

-

Features and ideas being developed or discussed by the Go team.

- -

Release History

-

A summary of the changes between Go releases.

- -

Weekly Snapshot History

-

A summary of the changes between weekly snapshots of Go.

- -

Developer Mailing List

-

The golang-dev -mailing list is for discussing and reviewing code for the Go project.

-

For general discussion of Go programming, see golang-nuts.

- -

Checkins Mailing List

-

A mailing list that receives a message summarizing each checkin to the Go repository.

- -
- -
- diff --git a/doc/docs.html b/doc/docs.html index e99017fca0..169b7c14f9 100644 --- a/doc/docs.html +++ b/doc/docs.html @@ -3,22 +3,25 @@ "Path": "/doc/" }--> -
+

+The Go programming language is an open source project to make programmers more +productive. +

+ +

+Go is expressive, concise, clean, and efficient. Its concurrency +mechanisms make it easy to write programs that get the most out of multicore +and networked machines, while its novel type system enables flexible and +modular program construction. Go compiles quickly to machine code yet has the +convenience of garbage collection and the power of run-time reflection. It's a +fast, statically typed, compiled language that feels like a dynamically typed, +interpreted language. +

+ +

Learning Go

-

-If you're new to Go, we recommend you work through the -tutorial. The -language specification has all the details should -you want to explore. -

-

-Once you've learned a little about the language, -Effective Go will help you learn the style and -idioms of programming in Go. -

-

A Tour of Go

An interactive introduction to Go in three sections. @@ -43,24 +46,27 @@ A must read for any new Go programmer. It augments the tutorial and the language specification, both of which should be read first.

-

Frequently Asked Questions (FAQ)

-

-Answers to common questions about Go. -

-

How to write Go code

How to write a new package and how to test code.

-

Codelab: Writing Web Applications

+

Frequently Asked Questions (FAQ)

-This codelab takes the reader through the creation of a simple wiki web -application. It touches on structs, methods, file I/O, http, regular expressions, -and closures. +Answers to common questions about Go.

-

Codewalks

+

Other introductory articles

+ + + +

Go Articles

+ +

Codewalks

Guided tours of Go programs.

@@ -70,17 +76,6 @@ Guided tours of Go programs.
  • Share Memory by Communicating
  • -

    Go for C++ Programmers

    -

    -An introduction to Go for C++ programmers. -

    - -

    Go Articles

    - -

    -Notable articles from the Go Blog. -

    -

    Language

    -

    Non-English Documentation

    - -

    Belarusian — Беларуская

    - - - -

    Chinese — 中文

    - - - -

    Czech — Čeština

    - - - -

    French — Français

    - - - -

    German — Deutsch

    - - - -

    Japanese — 日本語

    - - -

    Korean — 한국어

    - - -
    - - -
    - -

    References

    - -

    Keep these under your pillow.

    - -

    Package Documentation

    -

    -The built-in documentation for the Go standard library. -

    - -

    Command Documentation

    -

    -The built-in documentation for the Go tools. -

    - -

    Language Specification

    -

    -The official Go Language specification. -

    - -

    Release History

    -

    A summary of the changes between Go releases.

    - -

    The Go Memory Model

    -

    -A document that specifies the conditions under which reads of a variable in -one goroutine can be guaranteed to observe values produced by writes to the -same variable in a different goroutine. -

    - -

    Debugging Go Code with GDB

    -

    -Using GDB to debug Go programs. -

    -

    Videos and Talks

    Writing Web Apps in Go

    @@ -225,7 +132,7 @@ examples demonstrating features particular to Go. These include concurrency, embedded types, methods on any type, and program construction using interfaces.

    -

    Practical Go Programming

    +

    Practical Go Programming

    This talk presents the development of a complete web application in Go. It looks at design, storage, concurrency, and scaling issues in detail, using @@ -240,15 +147,6 @@ The language's first public introduction. (See the gocoding YouTube Channel -

    -A YouTube channel that includes screencasts and other Go-related videos: -

    - -

    The Expressiveness Of Go

    A discussion of the qualities that make Go an expressive and comprehensible @@ -290,6 +188,71 @@ Ian Lance Taylor's paper delivered at the GCC Summit 2010. A short promotional video featuring Russ Cox demonstrating Go's fast compiler.

    -
    +

    The Go Community

    + +

    Go Nuts Mailing List

    +

    The golang-nuts +mailing list is for general Go discussion.

    + +

    Go Packages Dashboard

    +

    A list of the most popular goinstall'd +Go libraries.

    + +

    Go Project Dashboard

    +

    A list of external Go projects including programs and libraries.

    + +

    Go IRC Channel

    +

    #go-nuts on irc.freenode.net is the official Go IRC channel.

    + +

    @go_nuts at Twitter

    +

    The Go project's official Twitter account.

    + +

    Non-English Documentation

    + +

    Belarusian — Беларуская

    + + + +

    Chinese — 中文

    + + + +

    Czech — Čeština

    + + + +

    French — Français

    + + + +

    German — Deutsch

    + + + +

    Japanese — 日本語

    + + +

    Korean — 한국어

    + -
    diff --git a/doc/frontpage.css b/doc/frontpage.css deleted file mode 100644 index 299855ce9a..0000000000 --- a/doc/frontpage.css +++ /dev/null @@ -1,143 +0,0 @@ -/* Overloads to all.css */ -#container { width: 76em } -.left-column { width: 48%; } -.right-column { width: 48%; } - -/* Frontpage styles */ -#content-introductory code { - font-family: "Bitstream Vera Sans Mono", "Andale Mono", monospace; -} -#content-introductory input, select, textarea { - font-family: "Bitstream Vera Sans", Verdana, sans-serif; - font-size: 1em; -} -span.keyword { - font-family: Cambria, Georgia, Times, "Times New Roman", serif; - font-size: 1.15em; - font-style: italic; -} -#content h3, #content h2 { - margin: 0; - font-size: 1em; - background: none; - border: none; - padding: 0; -} -#content .more { - color: #999; - font-weight: normal; -} -#frontpage h2#branding-tagline { - font-weight: normal; - font-style: italic; -} -#resources { - position: relative; - margin-top: 1em; -} -#resources h3 { - margin-top: 0; - margin-bottom: -.5em; - font-size: 1em; - font-weight: normal; -} -#resources-users { - float: left; - width: 48%; -} -#resources-contributors { - float: right; - width: 50%; -} -#resources ul { - padding-left: 2em; -} -#resources li { - margin-bottom: 0.5em; -} -#content-rotating { - height: 200px; -} -#content-videos { - float: left; - width: 170px; -} -#content-videos .thumbnail { - width: 150px; - height: 103px; - background-repeat: no-repeat; - border: none; -} -#content-videos .thumbnail._001 { - background: url(/doc/video-001.png); -} -#content-videos .thumbnail._002 { - background: url(/doc/video-002.png); -} -#content-videos .thumbnail._003 { - background: url(/doc/video-003.png); -} -#content-videos .thumbnail._004 { - background: url(/doc/video-004.png); -} -#content-videos .thumbnail._005 { - background: url(/doc/video-005.jpg); -} -#content-videos a.video { - display: inline-block; - width: 150px; - margin-right: .30em; - margin-top: 1.2em; -} -#content-videos a.video .caption { - display: block; - text-align: center; -} -#content-videos a.video .caption.title { - margin-top: .31em; - font-weight: bold; -} -#content-blog ul { - margin-top: 1em; - margin-left: 0; - padding-left: 0; -} -#content-blog li { - list-style: none; - margin-bottom: 1em; -} -#content-blog li a { - color: #999; - text-decoration: none; -} -#content-blog .date { - color: #999; - font-size: 0.8em; - display: inline-block; - margin-left: 0.5em; -} -#content-blog li a:link .title { - color: #04a; -} -#content-blog li a:visited .title { - color: #04a; -} -#content-blog li a:hover .title { - color: #a40; - text-decoration: underline; -} -#content-blog li a:active .title { - color: #c00; -} -.navtop { - display: none !important; -} -.how { - float: right; - font-size: 75%; -} -.unsupported { - font-weight: bold; - color: red; -} - diff --git a/doc/godocs.js b/doc/godocs.js index 3b8625a58d..5320de6bcc 100644 --- a/doc/godocs.js +++ b/doc/godocs.js @@ -23,7 +23,6 @@ bindEvent(window, 'load', godocs_onload); function godocs_onload() { godocs_bindSearchEvents(); godocs_generateTOC(); - godocs_addTopLinks(); godocs_bindExampleToggles(); } @@ -64,8 +63,15 @@ function godocs_generateTOC() { var toc_items = []; var i; + var seenNav = false; for (i = 0; i < navbar.parentNode.childNodes.length; i++) { var node = navbar.parentNode.childNodes[i]; + if (!seenNav) { + if (node.id == 'nav') { + seenNav = true; + } + continue; + } if ((node.tagName != 'h2') && (node.tagName != 'H2') && (node.tagName != 'h3') && (node.tagName != 'H3')) { continue; @@ -152,33 +158,6 @@ function godocs_nodeToText(node) { return text; } -/* For each H2 heading, add a link up to the #top of the document. - * (As part of this: ensure existence of 'top' named anchor link - * (theoretically at doc's top).) - */ -function godocs_addTopLinks() { - /* Make sure there's a "top" to link to. */ - var top = document.getElementById('top'); - if (!top) { - document.body.id = 'top'; - } - - if (!document.getElementsByTagName) return; // no browser support - - var headers = document.getElementsByTagName('h2'); - - for (var i = 0; i < headers.length; i++) { - var span = document.createElement('span'); - span.className = 'navtop'; - var link = document.createElement('a'); - span.appendChild(link); - link.href = '#top'; - var textNode = document.createTextNode('[Top]'); - link.appendChild(textNode); - headers[i].appendChild(span); - } -} - function godocs_bindExampleToggles() { var examples = document.getElementsByClassName("example"); for (var i = 0; i < examples.length; i++) { diff --git a/doc/gopher/frontpage.png b/doc/gopher/frontpage.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1f49b05979fcccee5e92bfe3f2f1eb90b7042f GIT binary patch literal 31610 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 literal 0 HcmV?d00001 diff --git a/doc/gopher/ref.png b/doc/gopher/ref.png new file mode 100644 index 0000000000000000000000000000000000000000..26530a3a0ac1c97f33efd5754200e36ca7bc5192 GIT binary patch literal 14576 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�q<9Zh=(9=EP3$d|;DJdz!;qsOKvP|k=pdm6FCLx9bWE_wp!iGKF5qEMw z1XX$vajA8TWE#BgAhmB}UnsD;3u}_S&#t33>nBHMW{ALx>xmWo0EW1e+EQ(A;1u*}Q!P#x;bqtZQA|Y?}C-5@5DMP!4sK7xa%#O-*g;(_l#n z7l_{XX+Y6nau~NfmS7*V?+Fki%x)W%9l?VIg!xkW^Bc)}rWM0-rzEiEq5{l;h=|DD zn}S0tV}JWdi5GV^a8zQSktf#_mg$fb_5Ad3sc|*8llgpP6a$J00LLu4Y-mmaOM(SsfwX zJLC}%+OshQ{nh7x&?G)|va_EeMjZ4?q7E}~mM6KlV@Vvi05Vj9j|VIlTTiz-DRgBq ziw$Bq@4TGvB$e-ij787TFmmoNPHl-iIY~W*kdJM$bku1I^F3@>0+ONT!|-W^vhwDR z2E~T+;a4k|644T;qpzDFn>+mZgcO$2tX9h%ZG6P8uL!ix&U-aUBO7!)f`UEB{tGM* zA{ILz-^R-#)7wrlGYZ7rW?5P@81>!A)@oJTg-q+oZ$4NwiC$p$#S+zyXj{#FLOZ;6 zc>LLpaF3xsxxwin?AzR_ee&dqb?r1%;FzRE(Wn&+{feBJuNUC1-?t2+g3N-DsnUlF z`kh>wSdgkLlkC`?%FfK$HgdfbbHg$eu3)ghO`uvnU3UA=SobI7n=me~_pM)|@cUhOO;o za-Ol)%|&f&aFy*YGryy3Y-~JQlE1J$10uo)!3-L9z1SdgMRr*lUQ2BP2z87WsndCF z&t0C+=^GmQj_EImStotrT{-6B$P5QdXWlsX-?&s~#fy>#UatmX}c|*=OMTy{qBFab%Q5k)cVMquZ@M zMUcwHz#Ze*Bun*>5p~uP&@GAlx}(Z=eRoqT7FHM2x_M&&-HT5r@2ay086?r%y8$FyyB zvu+lOxBwI&tKzT&3qf6{TF%Z)H-7B?1e2FN||=PFj?@Ntd>M*~<-|{^#1R6^_n*>v5k&=a$cgZ)x+-|V%%2MQF*Im H75@JK^UG;B literal 0 HcmV?d00001 diff --git a/doc/install.html b/doc/install.html index e462f1cce7..b3d48e379a 100644 --- a/doc/install.html +++ b/doc/install.html @@ -1,5 +1,6 @@

    Introduction

    diff --git a/doc/reference.html b/doc/reference.html new file mode 100644 index 0000000000..278b4bba23 --- /dev/null +++ b/doc/reference.html @@ -0,0 +1,40 @@ + + + +

    Keep these under your pillow.

    + +
    + +

    Package Documentation

    +

    +The built-in documentation for the Go standard library. +

    + +

    Command Documentation

    +

    +The built-in documentation for the Go tools. +

    + +

    Language Specification

    +

    +The official Go Language specification. +

    + +

    Release History

    +

    A summary of the changes between Go releases.

    + +

    The Go Memory Model

    +

    +A document that specifies the conditions under which reads of a variable in +one goroutine can be guaranteed to observe values produced by writes to the +same variable in a different goroutine. +

    + +

    Debugging Go Code with GDB

    +

    +Using GDB to debug Go programs. +

    + +
    diff --git a/doc/root.html b/doc/root.html index 23a35eb844..7007dceb4b 100644 --- a/doc/root.html +++ b/doc/root.html @@ -2,105 +2,112 @@ "Path": "/" }--> - +
    - - + -
    -
    -

    - The Go programming language is an open source project to make - programmers more productive. Go is expressive, concise, clean, - and efficient. Its concurrency mechanisms make it easy to write - programs that get the most out of multicore and networked machines, - while its novel type system enables flexible and modular program - construction. Go compiles quickly to machine code yet has the - convenience of garbage collection and the power of run-time reflection. - It's a fast, statically typed, compiled language that feels like a - dynamically typed, interpreted language. -

    -

    - Get started now with - A Tour of Go - in your browser. -

    -

    -

    - Or try Go right here:

    -
    - -
    -
    -
    - -

    Go Blog | More...

    -
    -
      -
    -
    -
    -

    Quick Links

    - -
    -
    -
    +function feedLoaded(result) { + if (result.error) { + console.log(result.error); + return; + } + var blog = document.getElementById("blog"); + var read = blog.getElementsByClassName("read")[0]; + for (var i = 0; i < result.feed.entries.length && i < 2; i++) { + var entry = result.feed.entries[i]; + var title = document.createElement("a"); + title.className = "title"; + title.href = entry.link; + title.innerHTML = entry.title; + blog.insertBefore(title, read); + var extract = document.createElement("div"); + extract.className = "extract"; + extract.innerHTML = entry.contentSnippet; + blog.insertBefore(extract, read); + var when = document.createElement("div"); + when.className = "when"; + var pub = entry.publishedDate.split(" ").slice(1,3).join(" "); + when.innerHTML = "Published " + pub + blog.insertBefore(when, read); + } +} + +function fetchFeeds() { + var feed = new google.feeds.Feed("http://blog.golang.org/feeds/posts/default"); + feed.load(feedLoaded); +} + +google.setOnLoadCallback(fetchFeeds); + diff --git a/doc/style.css b/doc/style.css new file mode 100644 index 0000000000..cf1f4145fd --- /dev/null +++ b/doc/style.css @@ -0,0 +1,320 @@ +body { + margin: 0; + font-family: Helvetica, Arial, sans-serif; + font-size: 16px; +} +pre, code { + font-family: Menlo, monospace; + font-size: 14px; +} +body { + color: #222; +} +a { + color: #375EAB; + text-decoration: none; +} +p, pre, ul, ol { + margin: 20px; +} +pre { + background: #e9e9e9; + padding: 10px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +h1, h2, h3, h4, .rootHeading { + margin: 20px 0; + padding: 0; + color: #375EAB; + font-weight: bold; +} +h1 { + font-size: 24px; +} +h2 { + font-size: 20px; + background: #E0EBF5; + padding: 2px 5px; +} +h3 { + font-size: 18px; +} +h3, h4 { + margin: 20px 5px; +} +h4 { + font-size: 16px; +} +.rootHeading { + font-size: 20px; + margin: 0; +} + +h1 a, h2 a, h3 a, h4 a { + text-decoration: underline; +} + +dl { + margin: 20px; +} +dd { + margin: 2px 20px; +} +dl, dd { + font-size: 14px; +} +#nav table td { + vertical-align: top; +} + +table.dir th { + text-align: left; +} +table.dir td { + word-wrap: break-word; + vertical-align: top; +} + +#heading { + float: left; + margin: 0 0 10px 0; + padding: 16px 0; + font-size: 26px; + font-weight: normal; +} +#heading a { + color: #222; + text-decoration: none; +} + +#topbar { + background: #E0EBF5; +} + +body { + text-align: center; +} +#page, +#topbar .container { + clear: both; + text-align: left; + margin-left: auto; + margin-right: auto; + width: 900px; +} +#plusone { + float: right; +} +#plusoneRoot { + float: right; +} + +#copyright { + color: #666; + font-size: 14px; + margin: 40px 0; +} + +#menu > a, +#menu > input, +#learn .buttons a, +#blog .read a { + padding: 10px; + + text-decoration: none; + font-size: 16px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +#menu > a, +#menu > input { + border: 1px solid #375EAB; +} +#menu > a { + color: white; + background: #375EAB; +} +#start, +#learn .buttons a, +#blog .read a { + color: #222; + border: 1px solid #375EAB; + background: #E0EBF5; +} + +#menu { + padding: 10px 0; + text-align: right; +} +#menu > a { + margin-right: 5px; + margin-bottom: 10px; + + padding: 10px; +} +#menu > input { + position: relative; + top: 1px; + width: 100px; + background: white; + color: #222; +} +#menu > input.inactive { + color: #999; +} + +#left { + float: left; +} +#right { + float: right; +} +#left, #right { + width: 415px; +} + +#learn, +#about { + padding-top: 20px; +} +#learn h2, +#about { + margin: 0; +} +#about { + font-size: 20px; +} + +#about { + height: 96px; +} +#gopher { + background: url(/doc/gopher/frontpage.png) no-repeat; + background-position: center top; + height: 155px; +} +#start { + display: block; + padding: 10px; + + text-align: center; + text-decoration: none; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +#start .big { + font-weight: bold; + font-size: 20px; +} +#start .desc { + font-size: 14px; + font-weight: normal; + margin-top: 5px; +} + +#learn pre, #learn textarea { + margin: 0; + font-family: Menlo, monospace; + font-size: 14px; +} +#learn .input { + padding: 10px; + margin-top: 10px; + height: 150px; + + -webkit-border-top-left-radius: 5px; + -webkit-border-top-right-radius: 5px; + -moz-border-radius-topleft: 5px; + -moz-border-radius-topright: 5px; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +#learn .input textarea { + width: 100%; + height: 100%; + border: none; + outline: none; + resize: none; +} +#learn .output { + border-top: none !important; + + padding: 10px; + height: 59px; + overflow: auto; + + -webkit-border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; + -moz-border-radius-bottomright: 5px; + -moz-border-radius-bottomleft: 5px; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; +} +#learn .output pre { + padding: 0; + + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +#learn .input, +#learn .input textarea, +#learn .output, +#learn .output pre { + background: #FFFFD8; +} +#learn .input, +#learn .output { + border: 1px solid #375EAB; +} +#learn .buttons { + padding: 20px 0 10px 0; + text-align: right; +} +#learn .buttons a { + height: 16px; + margin-left: 5px; + + padding: 10px; +} +#learn .buttons .tour { + float: right; +} +#learn .buttons .tour a { + margin-right: 0; + font-weight: bold; +} + +#blog, #video { + margin-top: 40px; +} +#blog > div, #blog > a, #video > div, #video > a, #blog > h2, #video > h2 { + margin-bottom: 10px; +} +#blog .title, #video .title { + color: #222; + text-decoration: none; + display: block; + font-size: 20px; +} +#blog .when { + color: #666; + font-size: 14px; +} +#blog .read { + text-align: right; +} + +.exampleHeading { cursor: pointer; } +.example .collapsed { display: block; } +.example .expanded { display: none; } +.exampleVisible .collapsed { display: none; } +.exampleVisible .expanded { display: block; } diff --git a/lib/godoc/godoc.html b/lib/godoc/godoc.html index e99b758586..380a3910d9 100644 --- a/lib/godoc/godoc.html +++ b/lib/godoc/godoc.html @@ -1,72 +1,73 @@ - + {{with .Title}} {{html .}} - The Go Programming Language {{else}} The Go Programming Language {{end}} - - + {{if .SearchBox}} {{end}} -
    -
    -

    The Go Programming Language

    - - -
    -
    - - {{with .Menu}} - - {{end}} - {{with .Title}} -

    {{html .}}

    - {{end}} - {{with .Subtitle}} - {{html .}} - {{end}} +
    - - - - - {{printf "%s" .Content}} -
    -
    -

    Build version {{html .Version}}. Except as noted, this content is licensed under a Creative Commons Attribution 3.0 License.

    -
    +
    + + +
    + +
    + +
    + +
    + +{{with .Title}} +
    +

    {{html .}}

    +{{end}} +{{with .Subtitle}} +

    {{html .}}

    +{{end}} + +{{/* The Table of Contents is automatically inserted in this
    . + Do not delete this
    . */}} + + +{{/* Content is HTML-escaped elsewhere */}} +{{printf "%s" .Content}} + +
    + +
    + + + + + diff --git a/lib/godoc/package.html b/lib/godoc/package.html index afb0d4ae1f..f4b6a0b7e3 100644 --- a/lib/godoc/package.html +++ b/lib/godoc/package.html @@ -50,19 +50,18 @@ {{if .Bugs}}
    Bugs
    {{end}} -
    - {{with .Filenames}} -

    Package files

    -

    - - {{range .}} - {{.|filename|html}} - {{end}} - -

    - {{end}} -
    + + {{with .Filenames}} +

    Package files

    +

    + + {{range .}} + {{.|filename|html}} + {{end}} + +

    + {{end}} {{with .Consts}}

    Constants

    @@ -147,30 +146,23 @@ {{/* DirList entries are numbers and strings - no need for FSet */}}

    Subdirectories

    - +
    - {{if $.DirFlat}} - - {{else}} - - {{end}} - - + + + - + {{range .List}} - - {{if $.DirFlat}} - - {{else}} - {{repeat `` .Depth}} - - {{end}} - - - + + + + + {{end}}
    NameNameSynopsisName    Synopsis
    ....
    {{html .Path}}{{html .Name}}{{html .Synopsis}}
    + {{repeat `     ` .Depth}}{{html .Name}} +     {{html .Synopsis}}

    diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index 5745b28ba6..613475a592 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -63,7 +63,7 @@ var ( // layout control tabwidth = flag.Int("tabwidth", 4, "tab width") - showTimestamps = flag.Bool("timestamps", true, "show timestamps with directory listings") + showTimestamps = flag.Bool("timestamps", false, "show timestamps with directory listings") templateDir = flag.String("templates", "", "directory containing alternate template files") // search index