go.talks: Show "run" button only for files with extension .go if running on App Engine
R=adg, r, iant
CC=golang-dev
https://golang.org/cl/22450043
diff --git a/present/appengine.go b/present/appengine.go
index affcf50..20aa152 100644
--- a/present/appengine.go
+++ b/present/appengine.go
@@ -18,3 +18,7 @@
playScript(basePath, "HTTPTransport")
present.PlayEnabled = true
}
+
+func playable(c present.Code) bool {
+ return present.PlayEnabled && c.Play && c.Ext == ".go"
+}
diff --git a/present/dir.go b/present/dir.go
index 4cc225b..3a1e9bc 100644
--- a/present/dir.go
+++ b/present/dir.go
@@ -81,6 +81,7 @@
// Read and parse the input.
tmpl := present.Template()
+ tmpl = tmpl.Funcs(template.FuncMap{"playable": playable})
if _, err := tmpl.ParseFiles(actionTmpl, contentTmpl); err != nil {
return err
}
diff --git a/present/local.go b/present/local.go
index 7bd067c..326d6f4 100644
--- a/present/local.go
+++ b/present/local.go
@@ -55,6 +55,10 @@
log.Fatal(http.ListenAndServe(*httpListen, nil))
}
+func playable(c present.Code) bool {
+ return present.PlayEnabled && c.Play
+}
+
const basePathMessage = `
By default, gopresent locates the slide template files and associated
static content by looking for a %q package
diff --git a/present/templates/action.tmpl b/present/templates/action.tmpl
index 657e7db..1fa0073 100644
--- a/present/templates/action.tmpl
+++ b/present/templates/action.tmpl
@@ -28,7 +28,7 @@
{{end}}
{{define "code"}}
- <div class="code{{if .Play}} playground{{end}}" contenteditable="true" spellcheck="false">{{.Text}}</div>
+ <div class="code{{if playable .}} playground{{end}}" contenteditable="true" spellcheck="false">{{.Text}}</div>
{{end}}
{{define "image"}}
@@ -40,7 +40,7 @@
{{define "iframe"}}
<iframe src="{{.URL}}"{{with .Height}} height="{{.}}"{{end}}{{with .Width}} width="{{.}}"{{end}}></iframe>
{{end}}
-
+
{{define "link"}}<p class="link"><a href="{{.URL}}" target="_blank">{{style .Label}}</a></p>{{end}}
{{define "html"}}{{.HTML}}{{end}}