</a>
<select id="code-selector">
{{range .File}}
- <option value="/doc/codewalk/?fileprint=/{{url .}}">{{html .}}</option>
+ <option value="/doc/codewalk/?fileprint=/{{urlquery .}}">{{html .}}</option>
{{end}}
</select>
</div>
<div id="comment-area">
{{range .Step}}
<div class="comment first last">
- <a class="comment-link" href="/doc/codewalk/?fileprint=/{{url .File}}&lo={{url .Lo}}&hi={{url .Hi}}#mark" target="code-display"></a>
+ <a class="comment-link" href="/doc/codewalk/?fileprint=/{{urlquery .File}}&lo={{urlquery .Lo}}&hi={{urlquery .Hi}}#mark" target="code-display"></a>
<div class="comment-title">{{html .Title}}</div>
<div class="comment-text">
{{with .Err}}
<table class="layout">
{{range .}}
<tr>
- <td><a href="{{url .Name}}">{{html .Name}}</a></td>
+ <td><a href="{{html .Name}}">{{html .Name}}</a></td>
<td width="25"> </td>
<td>{{html .Title}}</td>
</tr>
</tr>
{{range .}}
<tr>
- <td align="left"><a href="{{.|fileInfoName|url}}">{{.|fileInfoName|html}}</a></td>
+ <td align="left"><a href="{{.|fileInfoName|html}}">{{.|fileInfoName|html}}</a></td>
<td></td>
<td align="right">{{html .Size}}</td>
<td></td>
<form method="GET" action="/search">
{{with .PkgRoots}}
{{range .PkgRoots}}
- <a href="/pkg/{{url .}}">{{html .}}</a> <span class="sep">|</span>
+ <a href="/pkg/{{html .}}">{{html .}}</a> <span class="sep">|</span>
{{end}}
{{else}}
References:
<p>
{{/* PList entries are strings - no need for FSet */}}
{{range .}}
- <a href="?p={{url .}}">{{html .}}</a><br />
+ <a href="?p={{urlquery .}}">{{html .}}</a><br />
{{end}}
</p>
{{end}}
<p>
<span class="alert" style="font-size:120%">Did you mean: </span>
{{range .Alts}}
- <a href="search?q={{url .}}" style="font-size:120%">{{html .}}</a>
+ <a href="search?q={{urlquery .}}" style="font-size:120%">{{html .}}</a>
{{end}}
</p>
{{end}}
<h2 id="Global">Package-level declarations</h2>
{{range .}}
{{$pkg := pkgLink .Pak.Path}}
- <h3 id="Global_{{html $pkg}}">package <a href="/{{url $pkg}}">{{html .Pak.Name}}</a></h3>
+ <h3 id="Global_{{html $pkg}}">package <a href="/{{$pkg}}">{{html .Pak.Name}}</a></h3>
{{range .Files}}
{{$src := srcLink .File.Path}}
{{range .Groups}}
{{range .Infos}}
- <a href="/{{url $src}}?h={{url $.Query}}#L{{infoLine .}}">{{html $src}}:{{infoLine .}}</a>
+ <a href="/{{$src}}?h={{urlquery $.Query}}#L{{infoLine .}}">{{html $src}}:{{infoLine .}}</a>
{{infoSnippet_html .}}
{{end}}
{{end}}
<h2 id="Local">Local declarations and uses</h2>
{{range .}}
{{$pkg := pkgLink .Pak.Path}}
- <h3 id="Local_{{html $pkg}}">package <a href="/{{url $pkg}}">{{html .Pak.Name}}</a></h3>
+ <h3 id="Local_{{html $pkg}}">package <a href="/{{$pkg}}">{{html .Pak.Name}}</a></h3>
{{range .Files}}
{{$src := srcLink .File.Path}}
- <a href="/{{url $src}}?h={{url $.Query}}">{{html $src}}</a>
+ <a href="/{{$src}}?h={{urlquery $.Query}}">{{html $src}}</a>
<table class="layout">
{{range .Groups}}
<tr>
<td align="left" width="4"></td>
<td>
{{range .Infos}}
- <a href="/{{url $src}}?h={{url $.Query}}#L{{infoLine .}}">{{infoLine .}}</a>
+ <a href="/{{$src}}?h={{urlquery $.Query}}#L{{infoLine .}}">{{infoLine .}}</a>
{{end}}
</td>
</tr>
{{$src := srcLink .Filename}}
<tr>
<td align="left" valign="top">
- <a href="/{{url $src}}?h={{url $.Query}}">{{html $src}}</a>:
+ <a href="/{{$src}}?h={{urlquery $.Query}}">{{html $src}}</a>:
</td>
<td align="left" width="4"></td>
<th align="left" valign="top">{{len .Lines}}</th>
<td align="left" width="4"></td>
<td align="left">
{{range .Lines}}
- <a href="/{{url $src}}?h={{url $.Query}}#L{{url .}}">{{html .}}</a>
+ <a href="/{{$src}}?h={{urlquery $.Query}}#L{{.}}">{{html .}}</a>
{{end}}
{{if not $.Complete}}
...
An alias for fmt.Sprintf
println
An alias for fmt.Sprintln
- url
+ urlquery
Returns the escaped value of the textual representation of
- its arguments in a form suitable for embedding in a URL.
+ its arguments in a form suitable for embedding in a URL query.
The boolean functions take any zero value to be false and a non-zero value to
be true.
// JavaScript.
{"js", `{{js .}}`, `It\'d be nice.`, `It'd be nice.`, true},
- // URL.
- {"url", `{{"http://www.example.org/"|url}}`, "http%3A%2F%2Fwww.example.org%2F", nil, true},
+ // URL query.
+ {"urlquery", `{{"http://www.example.org/"|urlquery}}`, "http%3A%2F%2Fwww.example.org%2F", nil, true},
// Booleans
{"not", "{{not true}} {{not false}}", "false true", nil, true},
type FuncMap map[string]interface{}
var builtins = FuncMap{
- "and": and,
- "html": HTMLEscaper,
- "index": index,
- "js": JSEscaper,
- "len": length,
- "not": not,
- "or": or,
- "print": fmt.Sprint,
- "printf": fmt.Sprintf,
- "println": fmt.Sprintln,
- "url": URLEscaper,
+ "and": and,
+ "html": HTMLEscaper,
+ "index": index,
+ "js": JSEscaper,
+ "len": length,
+ "not": not,
+ "or": or,
+ "print": fmt.Sprint,
+ "printf": fmt.Sprintf,
+ "println": fmt.Sprintln,
+ "urlquery": URLQueryEscaper,
}
var builtinFuncs = createValueFuncs(builtins)
return JSEscapeString(s)
}
-// URLEscaper returns the escaped value of the textual representation of its
-// arguments in a form suitable for embedding in a URL.
-func URLEscaper(args ...interface{}) string {
+// URLQueryEscaper returns the escaped value of the textual representation of
+// its arguments in a form suitable for embedding in a URL query.
+func URLQueryEscaper(args ...interface{}) string {
s, ok := "", false
if len(args) == 1 {
s, ok = args[0].(string)