mirror of
https://github.com/osmarks/mycorrhiza.git
synced 2024-10-30 03:36:16 +00:00
Reimplement Navititle with go templates
That was rough
This commit is contained in:
parent
d7b4ea9002
commit
59deabd0d1
62
hypview/hypview.go
Normal file
62
hypview/hypview.go
Normal file
@ -0,0 +1,62 @@
|
||||
package hypview
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"fmt"
|
||||
"github.com/bouncepaw/mycorrhiza/cfg"
|
||||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||||
"log"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
var (
|
||||
//go:embed *.html
|
||||
fs embed.FS
|
||||
ruTranslation = ``
|
||||
chainNaviTitle viewutil.Chain
|
||||
)
|
||||
|
||||
func Init() {
|
||||
chainNaviTitle = viewutil.
|
||||
En(viewutil.CopyEnWith(fs, "view_navititle.html")).
|
||||
Ru(template.Must(viewutil.CopyRuWith(fs, "view_navititle.html").Parse(ruTranslation)))
|
||||
}
|
||||
|
||||
type naviTitleData struct {
|
||||
HyphaNameParts []string
|
||||
HyphaNamePartsWithParents []string
|
||||
Icon string
|
||||
HomeHypha string
|
||||
}
|
||||
|
||||
func NaviTitle(meta viewutil.Meta, hyphaName string) string {
|
||||
parts, partsWithParents := naviTitleify(hyphaName)
|
||||
var buf strings.Builder
|
||||
err := chainNaviTitle.Get(meta).ExecuteTemplate(&buf, "navititle", naviTitleData{
|
||||
HyphaNameParts: parts,
|
||||
HyphaNamePartsWithParents: partsWithParents,
|
||||
Icon: cfg.NaviTitleIcon,
|
||||
HomeHypha: cfg.HomeHypha,
|
||||
})
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
func naviTitleify(hyphaName string) ([]string, []string) {
|
||||
var (
|
||||
prevAcc = "/hypha"
|
||||
parts = strings.Split(hyphaName, "/")
|
||||
partsWithParents []string
|
||||
)
|
||||
|
||||
for _, part := range parts {
|
||||
prevAcc += "/" + part
|
||||
partsWithParents = append(partsWithParents, prevAcc)
|
||||
}
|
||||
|
||||
fmt.Printf("%q — %q\n", parts, partsWithParents)
|
||||
return parts, partsWithParents
|
||||
}
|
17
hypview/view_navititle.html
Normal file
17
hypview/view_navititle.html
Normal file
@ -0,0 +1,17 @@
|
||||
{{define "navititle"}}
|
||||
<h1 class="navi-title">
|
||||
{{- $withParents := .HyphaNamePartsWithParents -}}
|
||||
{{- $parts := .HyphaNameParts -}}
|
||||
<a href="/hypha/{{.HomeHypha}}">
|
||||
{{- .Icon -}}
|
||||
<span aria-hidden="true" class="navi-title__colon">:</span></a>
|
||||
{{- range $i, $part := .HyphaNameParts -}}
|
||||
{{- if gt $i 0 -}}
|
||||
<span aria-hidden="true" class="navi-title__separator">/</span>
|
||||
{{- end -}}
|
||||
<a href="{{index $withParents $i}}" rel="{{if len $parts | eq (inc $i)}}bookmark{{else}}up{{end}}">
|
||||
{{- beautifulName $part -}}
|
||||
</a>
|
||||
{{- end}}
|
||||
</h1>
|
||||
{{end}}
|
@ -1,5 +1,4 @@
|
||||
{% import "path/filepath" %}
|
||||
{% import "strings" %}
|
||||
|
||||
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
||||
@ -47,34 +46,6 @@
|
||||
</section>
|
||||
{% endfunc %}
|
||||
|
||||
{% func NaviTitle(h hyphae.Hypha) %}
|
||||
{% code
|
||||
var (
|
||||
prevAcc = "/hypha/"
|
||||
parts = strings.Split(h.CanonicalName(), "/")
|
||||
)
|
||||
%}
|
||||
<h1 class="navi-title">
|
||||
{% stripspace %}
|
||||
<a href="/hypha/{%s cfg.HomeHypha %}">
|
||||
{%-s= cfg.NaviTitleIcon -%}
|
||||
<span aria-hidden="true" class="navi-title__colon">:</span>
|
||||
</a>
|
||||
|
||||
{% for i, part := range parts %}
|
||||
{% if i > 0 %}
|
||||
<span aria-hidden="true" class="navi-title__separator">/</span>
|
||||
{% endif %}
|
||||
|
||||
<a href="{%s prevAcc + part %}" rel="{% if i == len(parts) - 1 %}bookmark{% else %}up{% endif %}">
|
||||
{%s= util.BeautifulName(part) %}
|
||||
</a>
|
||||
{% code prevAcc += part + "/" %}
|
||||
{% endfor %}
|
||||
{% endstripspace %}
|
||||
</h1>
|
||||
{% endfunc %}
|
||||
|
||||
{% func MediaRaw(h *hyphae.MediaHypha) %}{%= Media(h, l18n.New("en", "en")) %}{% endfunc %}
|
||||
|
||||
{% func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) %}
|
||||
|
@ -7,204 +7,201 @@ package views
|
||||
//line views/hypha.qtpl:1
|
||||
import "path/filepath"
|
||||
|
||||
//line views/hypha.qtpl:2
|
||||
import "strings"
|
||||
|
||||
//line views/hypha.qtpl:4
|
||||
//line views/hypha.qtpl:3
|
||||
import "github.com/bouncepaw/mycorrhiza/cfg"
|
||||
|
||||
//line views/hypha.qtpl:5
|
||||
//line views/hypha.qtpl:4
|
||||
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
||||
|
||||
//line views/hypha.qtpl:6
|
||||
//line views/hypha.qtpl:5
|
||||
import "github.com/bouncepaw/mycorrhiza/l18n"
|
||||
|
||||
//line views/hypha.qtpl:7
|
||||
//line views/hypha.qtpl:6
|
||||
import "github.com/bouncepaw/mycorrhiza/user"
|
||||
|
||||
//line views/hypha.qtpl:8
|
||||
//line views/hypha.qtpl:7
|
||||
import "github.com/bouncepaw/mycorrhiza/util"
|
||||
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
import (
|
||||
qtio422016 "io"
|
||||
|
||||
qt422016 "github.com/valyala/quicktemplate"
|
||||
)
|
||||
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
var (
|
||||
_ = qtio422016.Copy
|
||||
_ = qt422016.AcquireByteBuffer
|
||||
)
|
||||
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
func streambeautifulLink(qw422016 *qt422016.Writer, hyphaName string) {
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016.N().S(`<a href="/hypha/`)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016.N().S(hyphaName)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016.E().S(util.BeautifulName(hyphaName))
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016.N().S(`</a>`)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
func writebeautifulLink(qq422016 qtio422016.Writer, hyphaName string) {
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
streambeautifulLink(qw422016, hyphaName)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
func beautifulLink(hyphaName string) string {
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
writebeautifulLink(qb422016, hyphaName)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:10
|
||||
//line views/hypha.qtpl:9
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
func streammycoLink(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qw422016.N().S(`<a href="/help/en/mycomarkup" class="shy-link">`)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qw422016.E().S(lc.Get("ui.notexist_write_myco"))
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qw422016.N().S(`</a>`)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
func writemycoLink(qq422016 qtio422016.Writer, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
streammycoLink(qw422016, lc)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
func mycoLink(lc *l18n.Localizer) string {
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
writemycoLink(qb422016, lc)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:12
|
||||
//line views/hypha.qtpl:11
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:14
|
||||
//line views/hypha.qtpl:13
|
||||
func streamnonExistentHyphaNotice(qw422016 *qt422016.Writer, h hyphae.Hypha, u *user.User, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:14
|
||||
//line views/hypha.qtpl:13
|
||||
qw422016.N().S(`
|
||||
<section class="non-existent-hypha">
|
||||
<h2 class="non-existent-hypha__title">`)
|
||||
//line views/hypha.qtpl:16
|
||||
//line views/hypha.qtpl:15
|
||||
qw422016.E().S(lc.Get("ui.notexist_heading"))
|
||||
//line views/hypha.qtpl:16
|
||||
//line views/hypha.qtpl:15
|
||||
qw422016.N().S(`</h2>
|
||||
`)
|
||||
//line views/hypha.qtpl:17
|
||||
//line views/hypha.qtpl:16
|
||||
if cfg.UseAuth && u.Group == "anon" {
|
||||
//line views/hypha.qtpl:17
|
||||
//line views/hypha.qtpl:16
|
||||
qw422016.N().S(`
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:18
|
||||
//line views/hypha.qtpl:17
|
||||
qw422016.E().S(lc.Get("ui.notexist_norights"))
|
||||
//line views/hypha.qtpl:18
|
||||
//line views/hypha.qtpl:17
|
||||
qw422016.N().S(`</p>
|
||||
<ul>
|
||||
<li><a href="/login">`)
|
||||
//line views/hypha.qtpl:20
|
||||
//line views/hypha.qtpl:19
|
||||
qw422016.E().S(lc.Get("ui.notexist_login"))
|
||||
//line views/hypha.qtpl:20
|
||||
//line views/hypha.qtpl:19
|
||||
qw422016.N().S(`</a></li>
|
||||
`)
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
if cfg.AllowRegistration {
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
qw422016.N().S(`<li><a href="/register">`)
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
qw422016.E().S(lc.Get("ui.notexist_register"))
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
qw422016.N().S(`</a></li>`)
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
}
|
||||
//line views/hypha.qtpl:21
|
||||
//line views/hypha.qtpl:20
|
||||
qw422016.N().S(`
|
||||
</ul>
|
||||
`)
|
||||
//line views/hypha.qtpl:23
|
||||
//line views/hypha.qtpl:22
|
||||
} else {
|
||||
//line views/hypha.qtpl:23
|
||||
//line views/hypha.qtpl:22
|
||||
qw422016.N().S(`
|
||||
|
||||
<div class="non-existent-hypha__ways">
|
||||
<section class="non-existent-hypha__way">
|
||||
<h3 class="non-existent-hypha__subtitle">📝 `)
|
||||
//line views/hypha.qtpl:27
|
||||
//line views/hypha.qtpl:26
|
||||
qw422016.E().S(lc.Get("ui.notexist_write"))
|
||||
//line views/hypha.qtpl:27
|
||||
//line views/hypha.qtpl:26
|
||||
qw422016.N().S(`</h3>
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:28
|
||||
//line views/hypha.qtpl:27
|
||||
qw422016.N().S(lc.Get("ui.notexist_write_tip1", &l18n.Replacements{"myco": mycoLink(lc)}))
|
||||
//line views/hypha.qtpl:28
|
||||
//line views/hypha.qtpl:27
|
||||
qw422016.N().S(`</p>
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:29
|
||||
//line views/hypha.qtpl:28
|
||||
qw422016.E().S(lc.Get("ui.notexist_write_tip2"))
|
||||
//line views/hypha.qtpl:29
|
||||
//line views/hypha.qtpl:28
|
||||
qw422016.N().S(`</p>
|
||||
<a class="btn btn_accent stick-to-bottom" href="/edit/`)
|
||||
//line views/hypha.qtpl:30
|
||||
//line views/hypha.qtpl:29
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:30
|
||||
//line views/hypha.qtpl:29
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:30
|
||||
//line views/hypha.qtpl:29
|
||||
qw422016.E().S(lc.Get("ui.notexist_write_button"))
|
||||
//line views/hypha.qtpl:30
|
||||
//line views/hypha.qtpl:29
|
||||
qw422016.N().S(`</a>
|
||||
</section>
|
||||
|
||||
<section class="non-existent-hypha__way">
|
||||
<h3 class="non-existent-hypha__subtitle">🖼 `)
|
||||
//line views/hypha.qtpl:34
|
||||
//line views/hypha.qtpl:33
|
||||
qw422016.E().S(lc.Get("ui.notexist_media"))
|
||||
//line views/hypha.qtpl:34
|
||||
//line views/hypha.qtpl:33
|
||||
qw422016.N().S(`</h3>
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:35
|
||||
//line views/hypha.qtpl:34
|
||||
qw422016.E().S(lc.Get("ui.notexist_media_tip1"))
|
||||
//line views/hypha.qtpl:35
|
||||
//line views/hypha.qtpl:34
|
||||
qw422016.N().S(`</p>
|
||||
<form action="/upload-binary/`)
|
||||
//line views/hypha.qtpl:36
|
||||
//line views/hypha.qtpl:35
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:36
|
||||
//line views/hypha.qtpl:35
|
||||
qw422016.N().S(`"
|
||||
method="post" enctype="multipart/form-data"
|
||||
class="upload-binary">
|
||||
@ -212,301 +209,208 @@ func streamnonExistentHyphaNotice(qw422016 *qt422016.Writer, h hyphae.Hypha, u *
|
||||
<input type="file" id="upload-binary__input" name="binary">
|
||||
|
||||
<button type="submit" class="btn stick-to-bottom" value="Upload">`)
|
||||
//line views/hypha.qtpl:42
|
||||
//line views/hypha.qtpl:41
|
||||
qw422016.E().S(lc.Get("ui.media_upload"))
|
||||
//line views/hypha.qtpl:42
|
||||
//line views/hypha.qtpl:41
|
||||
qw422016.N().S(`</button>
|
||||
</form>
|
||||
</section>
|
||||
</div>
|
||||
`)
|
||||
//line views/hypha.qtpl:46
|
||||
//line views/hypha.qtpl:45
|
||||
}
|
||||
//line views/hypha.qtpl:46
|
||||
//line views/hypha.qtpl:45
|
||||
qw422016.N().S(`
|
||||
</section>
|
||||
`)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
func writenonExistentHyphaNotice(qq422016 qtio422016.Writer, h hyphae.Hypha, u *user.User, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
streamnonExistentHyphaNotice(qw422016, h, u, lc)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
func nonExistentHyphaNotice(h hyphae.Hypha, u *user.User, lc *l18n.Localizer) string {
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
writenonExistentHyphaNotice(qb422016, h, u, lc)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:48
|
||||
//line views/hypha.qtpl:47
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:50
|
||||
func StreamNaviTitle(qw422016 *qt422016.Writer, h hyphae.Hypha) {
|
||||
//line views/hypha.qtpl:50
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/hypha.qtpl:52
|
||||
var (
|
||||
prevAcc = "/hypha/"
|
||||
parts = strings.Split(h.CanonicalName(), "/")
|
||||
)
|
||||
|
||||
//line views/hypha.qtpl:56
|
||||
qw422016.N().S(`
|
||||
<h1 class="navi-title">
|
||||
`)
|
||||
//line views/hypha.qtpl:58
|
||||
qw422016.N().S(`<a href="/hypha/`)
|
||||
//line views/hypha.qtpl:59
|
||||
qw422016.E().S(cfg.HomeHypha)
|
||||
//line views/hypha.qtpl:59
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:60
|
||||
qw422016.N().S(cfg.NaviTitleIcon)
|
||||
//line views/hypha.qtpl:60
|
||||
qw422016.N().S(`<span aria-hidden="true" class="navi-title__colon">:</span></a>`)
|
||||
//line views/hypha.qtpl:64
|
||||
for i, part := range parts {
|
||||
//line views/hypha.qtpl:65
|
||||
if i > 0 {
|
||||
//line views/hypha.qtpl:65
|
||||
qw422016.N().S(`<span aria-hidden="true" class="navi-title__separator">/</span>`)
|
||||
//line views/hypha.qtpl:67
|
||||
}
|
||||
//line views/hypha.qtpl:67
|
||||
qw422016.N().S(`<a href="`)
|
||||
//line views/hypha.qtpl:69
|
||||
qw422016.E().S(prevAcc + part)
|
||||
//line views/hypha.qtpl:69
|
||||
qw422016.N().S(`" rel="`)
|
||||
//line views/hypha.qtpl:69
|
||||
if i == len(parts)-1 {
|
||||
//line views/hypha.qtpl:69
|
||||
qw422016.N().S(`bookmark`)
|
||||
//line views/hypha.qtpl:69
|
||||
} else {
|
||||
//line views/hypha.qtpl:69
|
||||
qw422016.N().S(`up`)
|
||||
//line views/hypha.qtpl:69
|
||||
}
|
||||
//line views/hypha.qtpl:69
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:70
|
||||
qw422016.N().S(util.BeautifulName(part))
|
||||
//line views/hypha.qtpl:70
|
||||
qw422016.N().S(`</a>`)
|
||||
//line views/hypha.qtpl:72
|
||||
prevAcc += part + "/"
|
||||
|
||||
//line views/hypha.qtpl:73
|
||||
}
|
||||
//line views/hypha.qtpl:74
|
||||
qw422016.N().S(`
|
||||
</h1>
|
||||
`)
|
||||
//line views/hypha.qtpl:76
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:76
|
||||
func WriteNaviTitle(qq422016 qtio422016.Writer, h hyphae.Hypha) {
|
||||
//line views/hypha.qtpl:76
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:76
|
||||
StreamNaviTitle(qw422016, h)
|
||||
//line views/hypha.qtpl:76
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:76
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:76
|
||||
func NaviTitle(h hyphae.Hypha) string {
|
||||
//line views/hypha.qtpl:76
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:76
|
||||
WriteNaviTitle(qb422016, h)
|
||||
//line views/hypha.qtpl:76
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:76
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:76
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:76
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
func StreamMediaRaw(qw422016 *qt422016.Writer, h *hyphae.MediaHypha) {
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
StreamMedia(qw422016, h, l18n.New("en", "en"))
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
func WriteMediaRaw(qq422016 qtio422016.Writer, h *hyphae.MediaHypha) {
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
StreamMediaRaw(qw422016, h)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
func MediaRaw(h *hyphae.MediaHypha) string {
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
WriteMediaRaw(qb422016, h)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:78
|
||||
//line views/hypha.qtpl:49
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:80
|
||||
//line views/hypha.qtpl:51
|
||||
func StreamMedia(qw422016 *qt422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:80
|
||||
//line views/hypha.qtpl:51
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/hypha.qtpl:81
|
||||
//line views/hypha.qtpl:52
|
||||
switch filepath.Ext(h.MediaFilePath()) {
|
||||
//line views/hypha.qtpl:83
|
||||
//line views/hypha.qtpl:54
|
||||
case ".jpg", ".gif", ".png", ".webp", ".svg", ".ico":
|
||||
//line views/hypha.qtpl:83
|
||||
//line views/hypha.qtpl:54
|
||||
qw422016.N().S(`
|
||||
<div class="binary-container binary-container_with-img">
|
||||
<a href="/binary/`)
|
||||
//line views/hypha.qtpl:85
|
||||
//line views/hypha.qtpl:56
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:85
|
||||
//line views/hypha.qtpl:56
|
||||
qw422016.N().S(`"><img src="/binary/`)
|
||||
//line views/hypha.qtpl:85
|
||||
//line views/hypha.qtpl:56
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:85
|
||||
//line views/hypha.qtpl:56
|
||||
qw422016.N().S(`"/></a>
|
||||
</div>
|
||||
|
||||
`)
|
||||
//line views/hypha.qtpl:88
|
||||
//line views/hypha.qtpl:59
|
||||
case ".ogg", ".webm", ".mp4":
|
||||
//line views/hypha.qtpl:88
|
||||
//line views/hypha.qtpl:59
|
||||
qw422016.N().S(`
|
||||
<div class="binary-container binary-container_with-video">
|
||||
<video controls>
|
||||
<source src="/binary/`)
|
||||
//line views/hypha.qtpl:91
|
||||
//line views/hypha.qtpl:62
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:91
|
||||
//line views/hypha.qtpl:62
|
||||
qw422016.N().S(`"/>
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.E().S(lc.Get("ui.media_novideo"))
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.N().S(` <a href="/binary/`)
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.E().S(lc.Get("ui.media_novideo_link"))
|
||||
//line views/hypha.qtpl:92
|
||||
//line views/hypha.qtpl:63
|
||||
qw422016.N().S(`</a></p>
|
||||
</video>
|
||||
</div>
|
||||
|
||||
`)
|
||||
//line views/hypha.qtpl:96
|
||||
//line views/hypha.qtpl:67
|
||||
case ".mp3":
|
||||
//line views/hypha.qtpl:96
|
||||
//line views/hypha.qtpl:67
|
||||
qw422016.N().S(`
|
||||
<div class="binary-container binary-container_with-audio">
|
||||
<audio controls>
|
||||
<source src="/binary/`)
|
||||
//line views/hypha.qtpl:99
|
||||
//line views/hypha.qtpl:70
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:99
|
||||
//line views/hypha.qtpl:70
|
||||
qw422016.N().S(`"/>
|
||||
<p>`)
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.E().S(lc.Get("ui.media_noaudio"))
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.N().S(` <a href="/binary/`)
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.E().S(lc.Get("ui.media_noaudio_link"))
|
||||
//line views/hypha.qtpl:100
|
||||
//line views/hypha.qtpl:71
|
||||
qw422016.N().S(`</a></p>
|
||||
</audio>
|
||||
</div>
|
||||
|
||||
`)
|
||||
//line views/hypha.qtpl:104
|
||||
//line views/hypha.qtpl:75
|
||||
default:
|
||||
//line views/hypha.qtpl:104
|
||||
//line views/hypha.qtpl:75
|
||||
qw422016.N().S(`
|
||||
<div class="binary-container binary-container_with-nothing">
|
||||
<p><a href="/binary/`)
|
||||
//line views/hypha.qtpl:106
|
||||
//line views/hypha.qtpl:77
|
||||
qw422016.N().S(h.CanonicalName())
|
||||
//line views/hypha.qtpl:106
|
||||
//line views/hypha.qtpl:77
|
||||
qw422016.N().S(`">`)
|
||||
//line views/hypha.qtpl:106
|
||||
//line views/hypha.qtpl:77
|
||||
qw422016.E().S(lc.Get("ui.media_download"))
|
||||
//line views/hypha.qtpl:106
|
||||
//line views/hypha.qtpl:77
|
||||
qw422016.N().S(`</a></p>
|
||||
</div>
|
||||
`)
|
||||
//line views/hypha.qtpl:108
|
||||
//line views/hypha.qtpl:79
|
||||
}
|
||||
//line views/hypha.qtpl:108
|
||||
//line views/hypha.qtpl:79
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
func WriteMedia(qq422016 qtio422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
StreamMedia(qw422016, h, lc)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
}
|
||||
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) string {
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
WriteMedia(qb422016, h, lc)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
return qs422016
|
||||
//line views/hypha.qtpl:109
|
||||
//line views/hypha.qtpl:80
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/hypview" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/categories" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/l18n" %}
|
||||
{% import "github.com/bouncepaw/mycorrhiza/mimetype" %}
|
||||
@ -109,7 +110,7 @@ If you rename .prevnext, change the docs too.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{%s= NaviTitle(h) %}
|
||||
{%s= hypview.NaviTitle(meta, h.CanonicalName()) %}
|
||||
{% switch h.(type) %}
|
||||
{% case *hyphae.EmptyHypha %}
|
||||
{%= nonExistentHyphaNotice(h, meta.U, meta.Lc) %}
|
||||
@ -135,11 +136,11 @@ If you rename .prevnext, change the docs too.
|
||||
{%= viewScripts() %}
|
||||
{% endfunc %}
|
||||
|
||||
{% func Revision(rq *http.Request, lc *l18n.Localizer, h hyphae.Hypha, contents, revHash string) %}
|
||||
{% func Revision(meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) %}
|
||||
<main class="main-width">
|
||||
<section>
|
||||
<p>{%s lc.Get("ui.revision_warning") %} <a href="/rev-text/{%s revHash %}/{%s h.CanonicalName() %}">{%s lc.Get("ui.revision_link") %}</a></p>
|
||||
{%s= NaviTitle(h) %}
|
||||
<p>{%s meta.Lc.Get("ui.revision_warning") %} <a href="/rev-text/{%s revHash %}/{%s h.CanonicalName() %}">{%s meta.Lc.Get("ui.revision_link") %}</a></p>
|
||||
{%s= hypview.NaviTitle(meta, h.CanonicalName()) %}
|
||||
{%s= contents %}
|
||||
</section>
|
||||
</main>
|
||||
|
@ -23,613 +23,616 @@ import "github.com/bouncepaw/mycorrhiza/cfg"
|
||||
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
||||
|
||||
//line views/readers.qtpl:8
|
||||
import "github.com/bouncepaw/mycorrhiza/categories"
|
||||
import "github.com/bouncepaw/mycorrhiza/hypview"
|
||||
|
||||
//line views/readers.qtpl:9
|
||||
import "github.com/bouncepaw/mycorrhiza/l18n"
|
||||
import "github.com/bouncepaw/mycorrhiza/categories"
|
||||
|
||||
//line views/readers.qtpl:10
|
||||
import "github.com/bouncepaw/mycorrhiza/mimetype"
|
||||
import "github.com/bouncepaw/mycorrhiza/l18n"
|
||||
|
||||
//line views/readers.qtpl:11
|
||||
import "github.com/bouncepaw/mycorrhiza/tree"
|
||||
import "github.com/bouncepaw/mycorrhiza/mimetype"
|
||||
|
||||
//line views/readers.qtpl:12
|
||||
import "github.com/bouncepaw/mycorrhiza/user"
|
||||
import "github.com/bouncepaw/mycorrhiza/tree"
|
||||
|
||||
//line views/readers.qtpl:13
|
||||
import "github.com/bouncepaw/mycorrhiza/util"
|
||||
import "github.com/bouncepaw/mycorrhiza/user"
|
||||
|
||||
//line views/readers.qtpl:14
|
||||
import "github.com/bouncepaw/mycorrhiza/util"
|
||||
|
||||
//line views/readers.qtpl:15
|
||||
import "github.com/bouncepaw/mycorrhiza/viewutil"
|
||||
|
||||
//line views/readers.qtpl:16
|
||||
//line views/readers.qtpl:17
|
||||
import (
|
||||
qtio422016 "io"
|
||||
|
||||
qt422016 "github.com/valyala/quicktemplate"
|
||||
)
|
||||
|
||||
//line views/readers.qtpl:16
|
||||
//line views/readers.qtpl:17
|
||||
var (
|
||||
_ = qtio422016.Copy
|
||||
_ = qt422016.AcquireByteBuffer
|
||||
)
|
||||
|
||||
//line views/readers.qtpl:16
|
||||
//line views/readers.qtpl:17
|
||||
func StreamMediaMenu(qw422016 *qt422016.Writer, rq *http.Request, h hyphae.Hypha, u *user.User) {
|
||||
//line views/readers.qtpl:16
|
||||
//line views/readers.qtpl:17
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:18
|
||||
//line views/readers.qtpl:19
|
||||
lc := l18n.FromRequest(rq)
|
||||
|
||||
//line views/readers.qtpl:19
|
||||
//line views/readers.qtpl:20
|
||||
qw422016.N().S(`
|
||||
<main class="main-width media-tab">
|
||||
<h1>`)
|
||||
//line views/readers.qtpl:21
|
||||
//line views/readers.qtpl:22
|
||||
qw422016.N().S(lc.Get("ui.media_title", &l18n.Replacements{"name": beautifulLink(h.CanonicalName())}))
|
||||
//line views/readers.qtpl:21
|
||||
//line views/readers.qtpl:22
|
||||
qw422016.N().S(`</h1>
|
||||
`)
|
||||
//line views/readers.qtpl:22
|
||||
//line views/readers.qtpl:23
|
||||
switch h.(type) {
|
||||
//line views/readers.qtpl:23
|
||||
//line views/readers.qtpl:24
|
||||
case *hyphae.MediaHypha:
|
||||
//line views/readers.qtpl:23
|
||||
//line views/readers.qtpl:24
|
||||
qw422016.N().S(`
|
||||
<p class="explanation">`)
|
||||
//line views/readers.qtpl:24
|
||||
//line views/readers.qtpl:25
|
||||
qw422016.E().S(lc.Get("ui.media_tip"))
|
||||
//line views/readers.qtpl:24
|
||||
//line views/readers.qtpl:25
|
||||
qw422016.N().S(` <a href="/help/en/media" class="shy-link">`)
|
||||
//line views/readers.qtpl:24
|
||||
//line views/readers.qtpl:25
|
||||
qw422016.E().S(lc.Get("ui.media_what_is"))
|
||||
//line views/readers.qtpl:24
|
||||
//line views/readers.qtpl:25
|
||||
qw422016.N().S(`</a></p>
|
||||
`)
|
||||
//line views/readers.qtpl:25
|
||||
//line views/readers.qtpl:26
|
||||
default:
|
||||
//line views/readers.qtpl:25
|
||||
//line views/readers.qtpl:26
|
||||
qw422016.N().S(`
|
||||
<p class="explanation">`)
|
||||
//line views/readers.qtpl:26
|
||||
//line views/readers.qtpl:27
|
||||
qw422016.E().S(lc.Get("ui.media_empty"))
|
||||
//line views/readers.qtpl:26
|
||||
//line views/readers.qtpl:27
|
||||
qw422016.N().S(` <a href="/help/en/media" class="shy-link">`)
|
||||
//line views/readers.qtpl:26
|
||||
//line views/readers.qtpl:27
|
||||
qw422016.E().S(lc.Get("ui.media_what_is"))
|
||||
//line views/readers.qtpl:26
|
||||
//line views/readers.qtpl:27
|
||||
qw422016.N().S(`</a></p>
|
||||
`)
|
||||
//line views/readers.qtpl:27
|
||||
//line views/readers.qtpl:28
|
||||
}
|
||||
//line views/readers.qtpl:27
|
||||
//line views/readers.qtpl:28
|
||||
qw422016.N().S(`
|
||||
|
||||
<section class="amnt-grid">
|
||||
`)
|
||||
//line views/readers.qtpl:30
|
||||
//line views/readers.qtpl:31
|
||||
switch h := h.(type) {
|
||||
//line views/readers.qtpl:31
|
||||
//line views/readers.qtpl:32
|
||||
case *hyphae.MediaHypha:
|
||||
//line views/readers.qtpl:31
|
||||
//line views/readers.qtpl:32
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:33
|
||||
//line views/readers.qtpl:34
|
||||
mime := mimetype.FromExtension(path.Ext(h.MediaFilePath()))
|
||||
fileinfo, err := os.Stat(h.MediaFilePath())
|
||||
|
||||
//line views/readers.qtpl:34
|
||||
//line views/readers.qtpl:35
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:35
|
||||
//line views/readers.qtpl:36
|
||||
if err == nil {
|
||||
//line views/readers.qtpl:35
|
||||
//line views/readers.qtpl:36
|
||||
qw422016.N().S(`
|
||||
<fieldset class="amnt-menu-block">
|
||||
<legend class="modal__title modal__title_small">`)
|
||||
//line views/readers.qtpl:37
|
||||
//line views/readers.qtpl:38
|
||||
qw422016.E().S(lc.Get("ui.media_stat"))
|
||||
//line views/readers.qtpl:37
|
||||
//line views/readers.qtpl:38
|
||||
qw422016.N().S(`</legend>
|
||||
<p class="modal__confirmation-msg"><b>`)
|
||||
//line views/readers.qtpl:38
|
||||
//line views/readers.qtpl:39
|
||||
qw422016.E().S(lc.Get("ui.media_stat_size"))
|
||||
//line views/readers.qtpl:38
|
||||
//line views/readers.qtpl:39
|
||||
qw422016.N().S(`</b> `)
|
||||
//line views/readers.qtpl:38
|
||||
//line views/readers.qtpl:39
|
||||
qw422016.E().S(lc.GetPlural64("ui.media_size_value", fileinfo.Size()))
|
||||
//line views/readers.qtpl:38
|
||||
//line views/readers.qtpl:39
|
||||
qw422016.N().S(`</p>
|
||||
<p><b>`)
|
||||
//line views/readers.qtpl:39
|
||||
//line views/readers.qtpl:40
|
||||
qw422016.E().S(lc.Get("ui.media_stat_mime"))
|
||||
//line views/readers.qtpl:39
|
||||
//line views/readers.qtpl:40
|
||||
qw422016.N().S(`</b> `)
|
||||
//line views/readers.qtpl:39
|
||||
//line views/readers.qtpl:40
|
||||
qw422016.E().S(mime)
|
||||
//line views/readers.qtpl:39
|
||||
//line views/readers.qtpl:40
|
||||
qw422016.N().S(`</p>
|
||||
</fieldset>
|
||||
`)
|
||||
//line views/readers.qtpl:41
|
||||
//line views/readers.qtpl:42
|
||||
}
|
||||
//line views/readers.qtpl:41
|
||||
//line views/readers.qtpl:42
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line views/readers.qtpl:43
|
||||
//line views/readers.qtpl:44
|
||||
if strings.HasPrefix(mime, "image/") {
|
||||
//line views/readers.qtpl:43
|
||||
//line views/readers.qtpl:44
|
||||
qw422016.N().S(`
|
||||
<fieldset class="amnt-menu-block">
|
||||
<legend class="modal__title modal__title_small">`)
|
||||
//line views/readers.qtpl:45
|
||||
//line views/readers.qtpl:46
|
||||
qw422016.E().S(lc.Get("ui.media_include"))
|
||||
//line views/readers.qtpl:45
|
||||
//line views/readers.qtpl:46
|
||||
qw422016.N().S(`</legend>
|
||||
<p class="modal__confirmation-msg">`)
|
||||
//line views/readers.qtpl:46
|
||||
//line views/readers.qtpl:47
|
||||
qw422016.E().S(lc.Get("ui.media_include_tip"))
|
||||
//line views/readers.qtpl:46
|
||||
//line views/readers.qtpl:47
|
||||
qw422016.N().S(`</p>
|
||||
<pre class="codeblock"><code>img { `)
|
||||
//line views/readers.qtpl:47
|
||||
//line views/readers.qtpl:48
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/readers.qtpl:47
|
||||
//line views/readers.qtpl:48
|
||||
qw422016.N().S(` }</code></pre>
|
||||
</fieldset>
|
||||
`)
|
||||
//line views/readers.qtpl:49
|
||||
//line views/readers.qtpl:50
|
||||
}
|
||||
//line views/readers.qtpl:49
|
||||
//line views/readers.qtpl:50
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:50
|
||||
//line views/readers.qtpl:51
|
||||
}
|
||||
//line views/readers.qtpl:50
|
||||
//line views/readers.qtpl:51
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line views/readers.qtpl:52
|
||||
//line views/readers.qtpl:53
|
||||
if u.CanProceed("upload-binary") {
|
||||
//line views/readers.qtpl:52
|
||||
//line views/readers.qtpl:53
|
||||
qw422016.N().S(`
|
||||
<form action="/upload-binary/`)
|
||||
//line views/readers.qtpl:53
|
||||
//line views/readers.qtpl:54
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/readers.qtpl:53
|
||||
//line views/readers.qtpl:54
|
||||
qw422016.N().S(`"
|
||||
method="post" enctype="multipart/form-data"
|
||||
class="upload-binary modal amnt-menu-block">
|
||||
<fieldset class="modal__fieldset">
|
||||
<legend class="modal__title modal__title_small">`)
|
||||
//line views/readers.qtpl:57
|
||||
//line views/readers.qtpl:58
|
||||
qw422016.E().S(lc.Get("ui.media_new"))
|
||||
//line views/readers.qtpl:57
|
||||
//line views/readers.qtpl:58
|
||||
qw422016.N().S(`</legend>
|
||||
<p class="modal__confirmation-msg">`)
|
||||
//line views/readers.qtpl:58
|
||||
//line views/readers.qtpl:59
|
||||
qw422016.E().S(lc.Get("ui.media_new_tip"))
|
||||
//line views/readers.qtpl:58
|
||||
//line views/readers.qtpl:59
|
||||
qw422016.N().S(`</p>
|
||||
<label for="upload-binary__input"></label>
|
||||
<input type="file" id="upload-binary__input" name="binary">
|
||||
|
||||
<button type="submit" class="btn stick-to-bottom" value="Upload">`)
|
||||
//line views/readers.qtpl:62
|
||||
//line views/readers.qtpl:63
|
||||
qw422016.E().S(lc.Get("ui.media_upload"))
|
||||
//line views/readers.qtpl:62
|
||||
//line views/readers.qtpl:63
|
||||
qw422016.N().S(`</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
`)
|
||||
//line views/readers.qtpl:65
|
||||
//line views/readers.qtpl:66
|
||||
}
|
||||
//line views/readers.qtpl:65
|
||||
//line views/readers.qtpl:66
|
||||
qw422016.N().S(`
|
||||
|
||||
|
||||
`)
|
||||
//line views/readers.qtpl:68
|
||||
//line views/readers.qtpl:69
|
||||
switch h := h.(type) {
|
||||
//line views/readers.qtpl:69
|
||||
//line views/readers.qtpl:70
|
||||
case *hyphae.MediaHypha:
|
||||
//line views/readers.qtpl:69
|
||||
//line views/readers.qtpl:70
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:70
|
||||
//line views/readers.qtpl:71
|
||||
if u.CanProceed("remove-media") {
|
||||
//line views/readers.qtpl:70
|
||||
//line views/readers.qtpl:71
|
||||
qw422016.N().S(`
|
||||
<form action="/remove-media/`)
|
||||
//line views/readers.qtpl:71
|
||||
//line views/readers.qtpl:72
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/readers.qtpl:71
|
||||
//line views/readers.qtpl:72
|
||||
qw422016.N().S(`" method="post" class="modal amnt-menu-block" method="POST">
|
||||
<fieldset class="modal__fieldset">
|
||||
<legend class="modal__title modal__title_small">`)
|
||||
//line views/readers.qtpl:73
|
||||
//line views/readers.qtpl:74
|
||||
qw422016.E().S(lc.Get("ui.media_remove"))
|
||||
//line views/readers.qtpl:73
|
||||
//line views/readers.qtpl:74
|
||||
qw422016.N().S(`</legend>
|
||||
<p class="modal__confirmation-msg">`)
|
||||
//line views/readers.qtpl:74
|
||||
//line views/readers.qtpl:75
|
||||
qw422016.E().S(lc.Get("ui.media_remove_tip"))
|
||||
//line views/readers.qtpl:74
|
||||
//line views/readers.qtpl:75
|
||||
qw422016.N().S(`</p>
|
||||
<button type="submit" class="btn" value="Remove media">`)
|
||||
//line views/readers.qtpl:75
|
||||
//line views/readers.qtpl:76
|
||||
qw422016.E().S(lc.Get("ui.media_remove_button"))
|
||||
//line views/readers.qtpl:75
|
||||
//line views/readers.qtpl:76
|
||||
qw422016.N().S(`</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
`)
|
||||
//line views/readers.qtpl:78
|
||||
//line views/readers.qtpl:79
|
||||
}
|
||||
//line views/readers.qtpl:78
|
||||
//line views/readers.qtpl:79
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:79
|
||||
//line views/readers.qtpl:80
|
||||
}
|
||||
//line views/readers.qtpl:79
|
||||
//line views/readers.qtpl:80
|
||||
qw422016.N().S(`
|
||||
|
||||
</section>
|
||||
</main>
|
||||
`)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
func WriteMediaMenu(qq422016 qtio422016.Writer, rq *http.Request, h hyphae.Hypha, u *user.User) {
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
StreamMediaMenu(qw422016, rq, h, u)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
func MediaMenu(rq *http.Request, h hyphae.Hypha, u *user.User) string {
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
WriteMediaMenu(qb422016, rq, h, u)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
return qs422016
|
||||
//line views/readers.qtpl:83
|
||||
//line views/readers.qtpl:84
|
||||
}
|
||||
|
||||
// If `contents` == "", a helpful message is shown instead.
|
||||
//
|
||||
// If you rename .prevnext, change the docs too.
|
||||
|
||||
//line views/readers.qtpl:88
|
||||
//line views/readers.qtpl:89
|
||||
func StreamHypha(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents string) {
|
||||
//line views/readers.qtpl:88
|
||||
//line views/readers.qtpl:89
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:90
|
||||
//line views/readers.qtpl:91
|
||||
siblings, subhyphae, prevHyphaName, nextHyphaName := tree.Tree(h.CanonicalName())
|
||||
lc := meta.Lc
|
||||
|
||||
//line views/readers.qtpl:92
|
||||
//line views/readers.qtpl:93
|
||||
qw422016.N().S(`
|
||||
<main class="main-width">
|
||||
<section id="hypha">
|
||||
`)
|
||||
//line views/readers.qtpl:95
|
||||
//line views/readers.qtpl:96
|
||||
if meta.U.CanProceed("edit") {
|
||||
//line views/readers.qtpl:95
|
||||
//line views/readers.qtpl:96
|
||||
qw422016.N().S(`
|
||||
<div class="btn btn_navititle">
|
||||
<a class="btn__link_navititle" href="/edit/`)
|
||||
//line views/readers.qtpl:97
|
||||
//line views/readers.qtpl:98
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/readers.qtpl:97
|
||||
//line views/readers.qtpl:98
|
||||
qw422016.N().S(`">`)
|
||||
//line views/readers.qtpl:97
|
||||
//line views/readers.qtpl:98
|
||||
qw422016.E().S(lc.Get("ui.edit_link"))
|
||||
//line views/readers.qtpl:97
|
||||
//line views/readers.qtpl:98
|
||||
qw422016.N().S(`</a>
|
||||
</div>
|
||||
`)
|
||||
//line views/readers.qtpl:99
|
||||
//line views/readers.qtpl:100
|
||||
}
|
||||
//line views/readers.qtpl:99
|
||||
//line views/readers.qtpl:100
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line views/readers.qtpl:101
|
||||
//line views/readers.qtpl:102
|
||||
if cfg.UseAuth && util.IsProfileName(h.CanonicalName()) && meta.U.Name == strings.TrimPrefix(h.CanonicalName(), cfg.UserHypha+"/") {
|
||||
//line views/readers.qtpl:101
|
||||
//line views/readers.qtpl:102
|
||||
qw422016.N().S(`
|
||||
<div class="btn btn_navititle">
|
||||
<a class="btn__link_navititle" href="/logout">`)
|
||||
//line views/readers.qtpl:103
|
||||
//line views/readers.qtpl:104
|
||||
qw422016.E().S(lc.Get("ui.logout_link"))
|
||||
//line views/readers.qtpl:103
|
||||
//line views/readers.qtpl:104
|
||||
qw422016.N().S(`</a>
|
||||
</div>
|
||||
`)
|
||||
//line views/readers.qtpl:105
|
||||
//line views/readers.qtpl:106
|
||||
if meta.U.Group == "admin" {
|
||||
//line views/readers.qtpl:105
|
||||
//line views/readers.qtpl:106
|
||||
qw422016.N().S(`
|
||||
<div class="btn btn_navititle">
|
||||
<a class="btn__link_navititle" href="/admin">`)
|
||||
//line views/readers.qtpl:107
|
||||
//line views/readers.qtpl:108
|
||||
qw422016.E().S(lc.Get("ui.admin_panel"))
|
||||
//line views/readers.qtpl:107
|
||||
//line views/readers.qtpl:108
|
||||
qw422016.N().S(`<a>
|
||||
</div>
|
||||
`)
|
||||
//line views/readers.qtpl:109
|
||||
//line views/readers.qtpl:110
|
||||
}
|
||||
//line views/readers.qtpl:109
|
||||
//line views/readers.qtpl:110
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:110
|
||||
//line views/readers.qtpl:111
|
||||
}
|
||||
//line views/readers.qtpl:110
|
||||
//line views/readers.qtpl:111
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line views/readers.qtpl:112
|
||||
qw422016.N().S(NaviTitle(h))
|
||||
//line views/readers.qtpl:112
|
||||
//line views/readers.qtpl:113
|
||||
qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName()))
|
||||
//line views/readers.qtpl:113
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:113
|
||||
//line views/readers.qtpl:114
|
||||
switch h.(type) {
|
||||
//line views/readers.qtpl:114
|
||||
//line views/readers.qtpl:115
|
||||
case *hyphae.EmptyHypha:
|
||||
//line views/readers.qtpl:114
|
||||
//line views/readers.qtpl:115
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:115
|
||||
//line views/readers.qtpl:116
|
||||
streamnonExistentHyphaNotice(qw422016, h, meta.U, meta.Lc)
|
||||
//line views/readers.qtpl:115
|
||||
//line views/readers.qtpl:116
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:116
|
||||
//line views/readers.qtpl:117
|
||||
default:
|
||||
//line views/readers.qtpl:116
|
||||
//line views/readers.qtpl:117
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:117
|
||||
//line views/readers.qtpl:118
|
||||
qw422016.N().S(contents)
|
||||
//line views/readers.qtpl:117
|
||||
//line views/readers.qtpl:118
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:118
|
||||
//line views/readers.qtpl:119
|
||||
}
|
||||
//line views/readers.qtpl:118
|
||||
//line views/readers.qtpl:119
|
||||
qw422016.N().S(`
|
||||
</section>
|
||||
<section class="prevnext">
|
||||
`)
|
||||
//line views/readers.qtpl:121
|
||||
//line views/readers.qtpl:122
|
||||
if prevHyphaName != "" {
|
||||
//line views/readers.qtpl:121
|
||||
//line views/readers.qtpl:122
|
||||
qw422016.N().S(`
|
||||
<a class="prevnext__el prevnext__prev" href="/hypha/`)
|
||||
//line views/readers.qtpl:122
|
||||
//line views/readers.qtpl:123
|
||||
qw422016.E().S(prevHyphaName)
|
||||
//line views/readers.qtpl:122
|
||||
//line views/readers.qtpl:123
|
||||
qw422016.N().S(`" rel="prev">← `)
|
||||
//line views/readers.qtpl:122
|
||||
//line views/readers.qtpl:123
|
||||
qw422016.E().S(util.BeautifulName(path.Base(prevHyphaName)))
|
||||
//line views/readers.qtpl:122
|
||||
//line views/readers.qtpl:123
|
||||
qw422016.N().S(`</a>
|
||||
`)
|
||||
//line views/readers.qtpl:123
|
||||
//line views/readers.qtpl:124
|
||||
}
|
||||
//line views/readers.qtpl:123
|
||||
//line views/readers.qtpl:124
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:124
|
||||
//line views/readers.qtpl:125
|
||||
if nextHyphaName != "" {
|
||||
//line views/readers.qtpl:124
|
||||
//line views/readers.qtpl:125
|
||||
qw422016.N().S(`
|
||||
<a class="prevnext__el prevnext__next" href="/hypha/`)
|
||||
//line views/readers.qtpl:125
|
||||
//line views/readers.qtpl:126
|
||||
qw422016.E().S(nextHyphaName)
|
||||
//line views/readers.qtpl:125
|
||||
//line views/readers.qtpl:126
|
||||
qw422016.N().S(`" rel="next">`)
|
||||
//line views/readers.qtpl:125
|
||||
//line views/readers.qtpl:126
|
||||
qw422016.E().S(util.BeautifulName(path.Base(nextHyphaName)))
|
||||
//line views/readers.qtpl:125
|
||||
//line views/readers.qtpl:126
|
||||
qw422016.N().S(` →</a>
|
||||
`)
|
||||
//line views/readers.qtpl:126
|
||||
//line views/readers.qtpl:127
|
||||
}
|
||||
//line views/readers.qtpl:126
|
||||
//line views/readers.qtpl:127
|
||||
qw422016.N().S(`
|
||||
</section>
|
||||
`)
|
||||
//line views/readers.qtpl:128
|
||||
//line views/readers.qtpl:129
|
||||
StreamSubhyphae(qw422016, subhyphae, meta.Lc)
|
||||
//line views/readers.qtpl:128
|
||||
//line views/readers.qtpl:129
|
||||
qw422016.N().S(`
|
||||
<section id="hypha-bottom">
|
||||
`)
|
||||
//line views/readers.qtpl:130
|
||||
//line views/readers.qtpl:131
|
||||
streamhyphaInfo(qw422016, meta, h)
|
||||
//line views/readers.qtpl:130
|
||||
//line views/readers.qtpl:131
|
||||
qw422016.N().S(`
|
||||
</section>
|
||||
</main>
|
||||
`)
|
||||
//line views/readers.qtpl:133
|
||||
//line views/readers.qtpl:134
|
||||
qw422016.N().S(categories.CategoryCard(meta, h.CanonicalName()))
|
||||
//line views/readers.qtpl:133
|
||||
//line views/readers.qtpl:134
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:134
|
||||
//line views/readers.qtpl:135
|
||||
streamsiblingHyphae(qw422016, siblings, meta.Lc)
|
||||
//line views/readers.qtpl:134
|
||||
//line views/readers.qtpl:135
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:135
|
||||
//line views/readers.qtpl:136
|
||||
streamviewScripts(qw422016)
|
||||
//line views/readers.qtpl:135
|
||||
//line views/readers.qtpl:136
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
func WriteHypha(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents string) {
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
StreamHypha(qw422016, meta, h, contents)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
func Hypha(meta viewutil.Meta, h hyphae.Hypha, contents string) string {
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
WriteHypha(qb422016, meta, h, contents)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
return qs422016
|
||||
//line views/readers.qtpl:136
|
||||
//line views/readers.qtpl:137
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:138
|
||||
func StreamRevision(qw422016 *qt422016.Writer, rq *http.Request, lc *l18n.Localizer, h hyphae.Hypha, contents, revHash string) {
|
||||
//line views/readers.qtpl:138
|
||||
//line views/readers.qtpl:139
|
||||
func StreamRevision(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) {
|
||||
//line views/readers.qtpl:139
|
||||
qw422016.N().S(`
|
||||
<main class="main-width">
|
||||
<section>
|
||||
<p>`)
|
||||
//line views/readers.qtpl:141
|
||||
qw422016.E().S(lc.Get("ui.revision_warning"))
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.E().S(meta.Lc.Get("ui.revision_warning"))
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.N().S(` <a href="/rev-text/`)
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.E().S(revHash)
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.N().S(`/`)
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.E().S(h.CanonicalName())
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.N().S(`">`)
|
||||
//line views/readers.qtpl:141
|
||||
qw422016.E().S(lc.Get("ui.revision_link"))
|
||||
//line views/readers.qtpl:141
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.E().S(meta.Lc.Get("ui.revision_link"))
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.N().S(`</a></p>
|
||||
`)
|
||||
//line views/readers.qtpl:142
|
||||
qw422016.N().S(NaviTitle(h))
|
||||
//line views/readers.qtpl:142
|
||||
//line views/readers.qtpl:143
|
||||
qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName()))
|
||||
//line views/readers.qtpl:143
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:143
|
||||
//line views/readers.qtpl:144
|
||||
qw422016.N().S(contents)
|
||||
//line views/readers.qtpl:143
|
||||
//line views/readers.qtpl:144
|
||||
qw422016.N().S(`
|
||||
</section>
|
||||
</main>
|
||||
`)
|
||||
//line views/readers.qtpl:146
|
||||
//line views/readers.qtpl:147
|
||||
streamviewScripts(qw422016)
|
||||
//line views/readers.qtpl:146
|
||||
//line views/readers.qtpl:147
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:147
|
||||
func WriteRevision(qq422016 qtio422016.Writer, rq *http.Request, lc *l18n.Localizer, h hyphae.Hypha, contents, revHash string) {
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
func WriteRevision(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) {
|
||||
//line views/readers.qtpl:148
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/readers.qtpl:147
|
||||
StreamRevision(qw422016, rq, lc, h, contents, revHash)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
StreamRevision(qw422016, meta, h, contents, revHash)
|
||||
//line views/readers.qtpl:148
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:147
|
||||
func Revision(rq *http.Request, lc *l18n.Localizer, h hyphae.Hypha, contents, revHash string) string {
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
func Revision(meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) string {
|
||||
//line views/readers.qtpl:148
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/readers.qtpl:147
|
||||
WriteRevision(qb422016, rq, lc, h, contents, revHash)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
WriteRevision(qb422016, meta, h, contents, revHash)
|
||||
//line views/readers.qtpl:148
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
return qs422016
|
||||
//line views/readers.qtpl:147
|
||||
//line views/readers.qtpl:148
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:149
|
||||
//line views/readers.qtpl:150
|
||||
func streamviewScripts(qw422016 *qt422016.Writer) {
|
||||
//line views/readers.qtpl:149
|
||||
//line views/readers.qtpl:150
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:150
|
||||
//line views/readers.qtpl:151
|
||||
for _, scriptPath := range cfg.ViewScripts {
|
||||
//line views/readers.qtpl:150
|
||||
//line views/readers.qtpl:151
|
||||
qw422016.N().S(`
|
||||
<script src="`)
|
||||
//line views/readers.qtpl:151
|
||||
//line views/readers.qtpl:152
|
||||
qw422016.E().S(scriptPath)
|
||||
//line views/readers.qtpl:151
|
||||
//line views/readers.qtpl:152
|
||||
qw422016.N().S(`"></script>
|
||||
`)
|
||||
//line views/readers.qtpl:152
|
||||
//line views/readers.qtpl:153
|
||||
}
|
||||
//line views/readers.qtpl:152
|
||||
//line views/readers.qtpl:153
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
func writeviewScripts(qq422016 qtio422016.Writer) {
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
streamviewScripts(qw422016)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
}
|
||||
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
func viewScripts() string {
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
writeviewScripts(qb422016)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
qs422016 := string(qb422016.B)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
return qs422016
|
||||
//line views/readers.qtpl:153
|
||||
//line views/readers.qtpl:154
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ func Init() {
|
||||
BaseEn = m(m(template.New("").
|
||||
Funcs(template.FuncMap{
|
||||
"beautifulName": util.BeautifulName,
|
||||
"inc": func(i int) int { return i + 1 },
|
||||
}).ParseFS(fsys, "base.html")).
|
||||
Parse(dataText))
|
||||
if !cfg.UseAuth {
|
||||
|
@ -145,8 +145,7 @@ func handlerRevision(w http.ResponseWriter, rq *http.Request) {
|
||||
}
|
||||
}
|
||||
page := views.Revision(
|
||||
rq,
|
||||
lc,
|
||||
viewutil.MetaFrom(w, rq),
|
||||
h,
|
||||
contents,
|
||||
revHash,
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"github.com/bouncepaw/mycorrhiza/backlinks"
|
||||
"github.com/bouncepaw/mycorrhiza/categories"
|
||||
"github.com/bouncepaw/mycorrhiza/help"
|
||||
"github.com/bouncepaw/mycorrhiza/hypview"
|
||||
"github.com/bouncepaw/mycorrhiza/misc"
|
||||
"io"
|
||||
"net/http"
|
||||
@ -52,6 +53,7 @@ func Handler() http.Handler {
|
||||
backlinks.InitHandlers(wikiRouter)
|
||||
categories.InitHandlers(wikiRouter)
|
||||
misc.InitHandlers(wikiRouter)
|
||||
hypview.Init()
|
||||
|
||||
// Admin routes.
|
||||
if cfg.UseAuth {
|
||||
|
Loading…
Reference in New Issue
Block a user