1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-10-30 11:46:16 +00:00

Feed numerous minor issues

This commit is contained in:
bouncepaw 2021-04-04 22:22:14 +05:00
parent 770114f764
commit ded26881fd
11 changed files with 259 additions and 180 deletions

View File

@ -31,3 +31,8 @@ This is a modified version of https://www.svgrepo.com/svg/232085/rat
{% func IconGopher() %}
{% cat "icon/gopher-protocol-icon.svg" %}
{% endfunc %}
https://upload.wikimedia.org/wikipedia/commons/4/46/Generic_Feed-icon.svg
{% func IconFeed() %}
{% cat "icon/feed-icon.svg" %}
{% endfunc %}

View File

@ -352,7 +352,7 @@ main, article, .hypha-tabs__tab, header, .layout-card { background-color: #3434
a, .wikilink_external { color: #f1fa8c; }
a:visited, .wikilink_external:visited { color: #ffb86c; }
.wikilink_new, .wikilink_new:visited { color: #dd4444; }
.navitree__link:hover, .backlinks__link:hover { background-color: #444; }
.subhyphae__link:hover, .navitree__link:hover, .backlinks__link:hover { background-color: #444; }
.header-links__link, .header-links__link:visited,
.prevnext__el, .prevnext__el:visited { color: #ddd; }
@ -706,3 +706,61 @@ func IconGopher() string {
return qs422016
//line assets/assets.qtpl:33
}
// https://upload.wikimedia.org/wikipedia/commons/4/46/Generic_Feed-icon.svg
//line assets/assets.qtpl:36
func StreamIconFeed(qw422016 *qt422016.Writer) {
//line assets/assets.qtpl:36
qw422016.N().S(`
`)
//line assets/assets.qtpl:37
qw422016.N().S(`<svg xmlns="http://www.w3.org/2000/svg"
id="RSSicon"
viewBox="0 0 8 8" width="256" height="256">
<title>RSS feed icon</title>
<style type="text/css">
.button {stroke: none; fill: orange;}
.symbol {stroke: none; fill: white;}
</style>
<rect class="button" width="8" height="8" rx="1.5" />
<circle class="symbol" cx="2" cy="6" r="1" />
<path class="symbol" d="m 1,4 a 3,3 0 0 1 3,3 h 1 a 4,4 0 0 0 -4,-4 z" />
<path class="symbol" d="m 1,2 a 5,5 0 0 1 5,5 h 1 a 6,6 0 0 0 -6,-6 z" />
</svg>
`)
//line assets/assets.qtpl:37
qw422016.N().S(`
`)
//line assets/assets.qtpl:38
}
//line assets/assets.qtpl:38
func WriteIconFeed(qq422016 qtio422016.Writer) {
//line assets/assets.qtpl:38
qw422016 := qt422016.AcquireWriter(qq422016)
//line assets/assets.qtpl:38
StreamIconFeed(qw422016)
//line assets/assets.qtpl:38
qt422016.ReleaseWriter(qw422016)
//line assets/assets.qtpl:38
}
//line assets/assets.qtpl:38
func IconFeed() string {
//line assets/assets.qtpl:38
qb422016 := qt422016.AcquireByteBuffer()
//line assets/assets.qtpl:38
WriteIconFeed(qb422016)
//line assets/assets.qtpl:38
qs422016 := string(qb422016.B)
//line assets/assets.qtpl:38
qt422016.ReleaseByteBuffer(qb422016)
//line assets/assets.qtpl:38
return qs422016
//line assets/assets.qtpl:38
}

View File

@ -241,7 +241,7 @@ main, article, .hypha-tabs__tab, header, .layout-card { background-color: #3434
a, .wikilink_external { color: #f1fa8c; }
a:visited, .wikilink_external:visited { color: #ffb86c; }
.wikilink_new, .wikilink_new:visited { color: #dd4444; }
.navitree__link:hover, .backlinks__link:hover { background-color: #444; }
.subhyphae__link:hover, .navitree__link:hover, .backlinks__link:hover { background-color: #444; }
.header-links__link, .header-links__link:visited,
.prevnext__el, .prevnext__el:visited { color: #ddd; }

17
assets/icon/feed-icon.svg Normal file
View File

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg"
id="RSSicon"
viewBox="0 0 8 8" width="256" height="256">
<title>RSS feed icon</title>
<style type="text/css">
.button {stroke: none; fill: orange;}
.symbol {stroke: none; fill: white;}
</style>
<rect class="button" width="8" height="8" rx="1.5" />
<circle class="symbol" cx="2" cy="6" r="1" />
<path class="symbol" d="m 1,4 a 3,3 0 0 1 3,3 h 1 a 4,4 0 0 0 -4,-4 z" />
<path class="symbol" d="m 1,2 a 5,5 0 0 1 5,5 h 1 a 6,6 0 0 0 -6,-6 z" />
</svg>

After

Width:  |  Height:  |  Size: 531 B

View File

@ -145,6 +145,8 @@ func handlerIcon(w http.ResponseWriter, rq *http.Request) {
w.Write([]byte(assets.IconMailto()))
case "gopher":
w.Write([]byte(assets.IconGopher()))
case "feed":
w.Write([]byte(assets.IconFeed()))
default:
w.Write([]byte(assets.IconHTTP()))
}

View File

@ -28,7 +28,6 @@ if err != nil {
<div class="layout">
<main class="main-width recent-changes">
<h1>Recent Changes</h1>
<p><a href="/">← Back</a></p>
<nav class="recent-changes__count">
See
@ -45,7 +44,7 @@ if err != nil {
recent changes
</nav>
<p><img class="icon" width="20" height="20" src="https://upload.wikimedia.org/wikipedia/commons/4/46/Generic_Feed-icon.svg">Subscribe via <a href="/recent-changes-rss">RSS</a>, <a href="/recent-changes-atom">Atom</a> or <a href="/recent-changes-json">JSON feed</a>.</p>
<p><img class="icon" width="20" height="20" src="/static/icon/feed">Subscribe via <a href="/recent-changes-rss">RSS</a>, <a href="/recent-changes-atom">Atom</a> or <a href="/recent-changes-json">JSON feed</a>.</p>
{% comment %}
Here I am, willing to add some accessibility using ARIA. Turns out,

View File

@ -107,273 +107,272 @@ func StreamRecentChangesHTML(qw422016 *qt422016.Writer, n int) {
<div class="layout">
<main class="main-width recent-changes">
<h1>Recent Changes</h1>
<p><a href="/"> Back</a></p>
<nav class="recent-changes__count">
See
`)
//line views/history.qtpl:35
//line views/history.qtpl:34
for _, m := range []int{20, 0, 50, 0, 100} {
//line views/history.qtpl:35
//line views/history.qtpl:34
qw422016.N().S(`
`)
//line views/history.qtpl:36
//line views/history.qtpl:35
switch m {
//line views/history.qtpl:37
//line views/history.qtpl:36
case 0:
//line views/history.qtpl:37
//line views/history.qtpl:36
qw422016.N().S(`
<span aria-hidden="true">|</span>
`)
//line views/history.qtpl:39
//line views/history.qtpl:38
case n:
//line views/history.qtpl:39
//line views/history.qtpl:38
qw422016.N().S(`
<b>`)
//line views/history.qtpl:40
//line views/history.qtpl:39
qw422016.N().D(n)
//line views/history.qtpl:40
//line views/history.qtpl:39
qw422016.N().S(`</b>
`)
//line views/history.qtpl:41
//line views/history.qtpl:40
default:
//line views/history.qtpl:41
//line views/history.qtpl:40
qw422016.N().S(`
<a href="/recent-changes/`)
//line views/history.qtpl:42
//line views/history.qtpl:41
qw422016.N().D(m)
//line views/history.qtpl:42
//line views/history.qtpl:41
qw422016.N().S(`">`)
//line views/history.qtpl:42
//line views/history.qtpl:41
qw422016.N().D(m)
//line views/history.qtpl:42
//line views/history.qtpl:41
qw422016.N().S(`</a>
`)
//line views/history.qtpl:43
//line views/history.qtpl:42
}
//line views/history.qtpl:43
//line views/history.qtpl:42
qw422016.N().S(`
`)
//line views/history.qtpl:44
//line views/history.qtpl:43
}
//line views/history.qtpl:44
//line views/history.qtpl:43
qw422016.N().S(`
recent changes
</nav>
<p><img class="icon" width="20" height="20" src="https://upload.wikimedia.org/wikipedia/commons/4/46/Generic_Feed-icon.svg">Subscribe via <a href="/recent-changes-rss">RSS</a>, <a href="/recent-changes-atom">Atom</a> or <a href="/recent-changes-json">JSON feed</a>.</p>
<p><img class="icon" width="20" height="20" src="/static/icon/feed">Subscribe via <a href="/recent-changes-rss">RSS</a>, <a href="/recent-changes-atom">Atom</a> or <a href="/recent-changes-json">JSON feed</a>.</p>
`)
//line views/history.qtpl:55
//line views/history.qtpl:54
qw422016.N().S(`
`)
//line views/history.qtpl:58
//line views/history.qtpl:57
changes := history.RecentChanges(n)
//line views/history.qtpl:59
//line views/history.qtpl:58
qw422016.N().S(`
<section class="recent-changes__list" role="feed">
`)
//line views/history.qtpl:61
//line views/history.qtpl:60
if len(changes) == 0 {
//line views/history.qtpl:61
//line views/history.qtpl:60
qw422016.N().S(`
<p>Could not find any recent changes.</p>
`)
//line views/history.qtpl:63
//line views/history.qtpl:62
} else {
//line views/history.qtpl:63
//line views/history.qtpl:62
qw422016.N().S(`
`)
//line views/history.qtpl:64
//line views/history.qtpl:63
for i, entry := range changes {
//line views/history.qtpl:64
//line views/history.qtpl:63
qw422016.N().S(`
<ul class="recent-changes__entry rc-entry" role="article"
aria-setsize="`)
//line views/history.qtpl:66
//line views/history.qtpl:65
qw422016.N().D(n)
//line views/history.qtpl:66
//line views/history.qtpl:65
qw422016.N().S(`" aria-posinset="`)
//line views/history.qtpl:66
//line views/history.qtpl:65
qw422016.N().D(i)
//line views/history.qtpl:66
//line views/history.qtpl:65
qw422016.N().S(`">
`)
//line views/history.qtpl:67
//line views/history.qtpl:66
qw422016.N().S(recentChangesEntry(entry))
//line views/history.qtpl:67
//line views/history.qtpl:66
qw422016.N().S(`
</ul>
`)
//line views/history.qtpl:69
//line views/history.qtpl:68
}
//line views/history.qtpl:69
//line views/history.qtpl:68
qw422016.N().S(`
`)
//line views/history.qtpl:70
//line views/history.qtpl:69
}
//line views/history.qtpl:70
//line views/history.qtpl:69
qw422016.N().S(`
</section>
</main>
</div>
`)
//line views/history.qtpl:74
//line views/history.qtpl:73
}
//line views/history.qtpl:74
//line views/history.qtpl:73
func WriteRecentChangesHTML(qq422016 qtio422016.Writer, n int) {
//line views/history.qtpl:74
//line views/history.qtpl:73
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/history.qtpl:74
//line views/history.qtpl:73
StreamRecentChangesHTML(qw422016, n)
//line views/history.qtpl:74
//line views/history.qtpl:73
qt422016.ReleaseWriter(qw422016)
//line views/history.qtpl:74
//line views/history.qtpl:73
}
//line views/history.qtpl:74
//line views/history.qtpl:73
func RecentChangesHTML(n int) string {
//line views/history.qtpl:74
//line views/history.qtpl:73
qb422016 := qt422016.AcquireByteBuffer()
//line views/history.qtpl:74
//line views/history.qtpl:73
WriteRecentChangesHTML(qb422016, n)
//line views/history.qtpl:74
//line views/history.qtpl:73
qs422016 := string(qb422016.B)
//line views/history.qtpl:74
//line views/history.qtpl:73
qt422016.ReleaseByteBuffer(qb422016)
//line views/history.qtpl:74
//line views/history.qtpl:73
return qs422016
//line views/history.qtpl:74
//line views/history.qtpl:73
}
//line views/history.qtpl:76
//line views/history.qtpl:75
func streamrecentChangesEntry(qw422016 *qt422016.Writer, rev history.Revision) {
//line views/history.qtpl:76
//line views/history.qtpl:75
qw422016.N().S(`
<li class="rc-entry__time"><time>`)
//line views/history.qtpl:77
//line views/history.qtpl:76
qw422016.E().S(rev.TimeString())
//line views/history.qtpl:77
//line views/history.qtpl:76
qw422016.N().S(`</time></li>
<li class="rc-entry__hash">`)
//line views/history.qtpl:78
//line views/history.qtpl:77
qw422016.E().S(rev.Hash)
//line views/history.qtpl:78
//line views/history.qtpl:77
qw422016.N().S(`</li>
<li class="rc-entry__links">`)
//line views/history.qtpl:79
//line views/history.qtpl:78
qw422016.N().S(rev.HyphaeLinksHTML())
//line views/history.qtpl:79
//line views/history.qtpl:78
qw422016.N().S(`</li>
<li class="rc-entry__msg">`)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.E().S(rev.Message)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(` `)
//line views/history.qtpl:80
//line views/history.qtpl:79
if rev.Username != "anon" {
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(`<span class="rc-entry__author">by <a href="/hypha/`)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.E().S(util.UserHypha)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(`/`)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.E().S(rev.Username)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(`" rel="author">`)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.E().S(rev.Username)
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(`</a></span>`)
//line views/history.qtpl:80
//line views/history.qtpl:79
}
//line views/history.qtpl:80
//line views/history.qtpl:79
qw422016.N().S(`</li>
`)
//line views/history.qtpl:81
//line views/history.qtpl:80
}
//line views/history.qtpl:81
//line views/history.qtpl:80
func writerecentChangesEntry(qq422016 qtio422016.Writer, rev history.Revision) {
//line views/history.qtpl:81
//line views/history.qtpl:80
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/history.qtpl:81
//line views/history.qtpl:80
streamrecentChangesEntry(qw422016, rev)
//line views/history.qtpl:81
//line views/history.qtpl:80
qt422016.ReleaseWriter(qw422016)
//line views/history.qtpl:81
//line views/history.qtpl:80
}
//line views/history.qtpl:81
//line views/history.qtpl:80
func recentChangesEntry(rev history.Revision) string {
//line views/history.qtpl:81
//line views/history.qtpl:80
qb422016 := qt422016.AcquireByteBuffer()
//line views/history.qtpl:81
//line views/history.qtpl:80
writerecentChangesEntry(qb422016, rev)
//line views/history.qtpl:81
//line views/history.qtpl:80
qs422016 := string(qb422016.B)
//line views/history.qtpl:81
//line views/history.qtpl:80
qt422016.ReleaseByteBuffer(qb422016)
//line views/history.qtpl:81
//line views/history.qtpl:80
return qs422016
//line views/history.qtpl:81
//line views/history.qtpl:80
}
//line views/history.qtpl:83
//line views/history.qtpl:82
func StreamHistoryHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, list string) {
//line views/history.qtpl:83
//line views/history.qtpl:82
qw422016.N().S(`
`)
//line views/history.qtpl:84
//line views/history.qtpl:83
StreamNavHTML(qw422016, rq, hyphaName, "history")
//line views/history.qtpl:84
//line views/history.qtpl:83
qw422016.N().S(`
<div class="layout">
<main class="main-width">
<article class="history">
<h1>History of `)
//line views/history.qtpl:88
//line views/history.qtpl:87
qw422016.E().S(util.BeautifulName(hyphaName))
//line views/history.qtpl:88
//line views/history.qtpl:87
qw422016.N().S(`</h1>
`)
//line views/history.qtpl:89
//line views/history.qtpl:88
qw422016.N().S(list)
//line views/history.qtpl:89
//line views/history.qtpl:88
qw422016.N().S(`
</article>
</main>
</div>
`)
//line views/history.qtpl:93
//line views/history.qtpl:92
}
//line views/history.qtpl:93
//line views/history.qtpl:92
func WriteHistoryHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, list string) {
//line views/history.qtpl:93
//line views/history.qtpl:92
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/history.qtpl:93
//line views/history.qtpl:92
StreamHistoryHTML(qw422016, rq, hyphaName, list)
//line views/history.qtpl:93
//line views/history.qtpl:92
qt422016.ReleaseWriter(qw422016)
//line views/history.qtpl:93
//line views/history.qtpl:92
}
//line views/history.qtpl:93
//line views/history.qtpl:92
func HistoryHTML(rq *http.Request, hyphaName, list string) string {
//line views/history.qtpl:93
//line views/history.qtpl:92
qb422016 := qt422016.AcquireByteBuffer()
//line views/history.qtpl:93
//line views/history.qtpl:92
WriteHistoryHTML(qb422016, rq, hyphaName, list)
//line views/history.qtpl:93
//line views/history.qtpl:92
qs422016 := string(qb422016.B)
//line views/history.qtpl:93
//line views/history.qtpl:92
qt422016.ReleaseByteBuffer(qb422016)
//line views/history.qtpl:93
//line views/history.qtpl:92
return qs422016
//line views/history.qtpl:93
//line views/history.qtpl:92
}

View File

@ -22,8 +22,7 @@
<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 %}">
<a href="{%s prevAcc + part %}" rel="{% if i == len(parts) - 1 %}bookmark{% else %}up{% endif %}">
{%s= util.BeautifulName(part) %}
</a>
{% code prevAcc += part + "/" %}

View File

@ -67,167 +67,167 @@ func StreamNaviTitleHTML(qw422016 *qt422016.Writer, h *hyphae.Hypha) {
//line views/hypha.qtpl:25
qw422016.E().S(prevAcc + part)
//line views/hypha.qtpl:25
qw422016.N().S(`"rel="`)
//line views/hypha.qtpl:26
qw422016.N().S(`" rel="`)
//line views/hypha.qtpl:25
if i == len(parts)-1 {
//line views/hypha.qtpl:26
//line views/hypha.qtpl:25
qw422016.N().S(`bookmark`)
//line views/hypha.qtpl:26
//line views/hypha.qtpl:25
} else {
//line views/hypha.qtpl:26
//line views/hypha.qtpl:25
qw422016.N().S(`up`)
//line views/hypha.qtpl:26
//line views/hypha.qtpl:25
}
//line views/hypha.qtpl:26
//line views/hypha.qtpl:25
qw422016.N().S(`">`)
//line views/hypha.qtpl:27
//line views/hypha.qtpl:26
qw422016.N().S(util.BeautifulName(part))
//line views/hypha.qtpl:27
//line views/hypha.qtpl:26
qw422016.N().S(`</a>`)
//line views/hypha.qtpl:29
//line views/hypha.qtpl:28
prevAcc += part + "/"
//line views/hypha.qtpl:30
//line views/hypha.qtpl:29
}
//line views/hypha.qtpl:31
//line views/hypha.qtpl:30
qw422016.N().S(`
</h1>
`)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
}
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
func WriteNaviTitleHTML(qq422016 qtio422016.Writer, h *hyphae.Hypha) {
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
StreamNaviTitleHTML(qw422016, h)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
qt422016.ReleaseWriter(qw422016)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
}
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
func NaviTitleHTML(h *hyphae.Hypha) string {
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
qb422016 := qt422016.AcquireByteBuffer()
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
WriteNaviTitleHTML(qb422016, h)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
qs422016 := string(qb422016.B)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
qt422016.ReleaseByteBuffer(qb422016)
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
return qs422016
//line views/hypha.qtpl:33
//line views/hypha.qtpl:32
}
//line views/hypha.qtpl:35
//line views/hypha.qtpl:34
func StreamAttachmentHTML(qw422016 *qt422016.Writer, h *hyphae.Hypha) {
//line views/hypha.qtpl:35
//line views/hypha.qtpl:34
qw422016.N().S(`
`)
//line views/hypha.qtpl:36
//line views/hypha.qtpl:35
switch filepath.Ext(h.BinaryPath) {
//line views/hypha.qtpl:38
//line views/hypha.qtpl:37
case ".jpg", ".gif", ".png", ".webp", ".svg", ".ico":
//line views/hypha.qtpl:38
//line views/hypha.qtpl:37
qw422016.N().S(`
<div class="binary-container binary-container_with-img">
<a href="/binary/`)
//line views/hypha.qtpl:40
//line views/hypha.qtpl:39
qw422016.N().S(h.Name)
//line views/hypha.qtpl:40
//line views/hypha.qtpl:39
qw422016.N().S(`"><img src="/binary/`)
//line views/hypha.qtpl:40
//line views/hypha.qtpl:39
qw422016.N().S(h.Name)
//line views/hypha.qtpl:40
//line views/hypha.qtpl:39
qw422016.N().S(`"/></a>
</div>
`)
//line views/hypha.qtpl:43
//line views/hypha.qtpl:42
case ".ogg", ".webm", ".mp4":
//line views/hypha.qtpl:43
//line views/hypha.qtpl:42
qw422016.N().S(`
<div class="binary-container binary-container_with-video">
<video controls>
<source src="/binary/`)
//line views/hypha.qtpl:46
//line views/hypha.qtpl:45
qw422016.N().S(h.Name)
//line views/hypha.qtpl:46
//line views/hypha.qtpl:45
qw422016.N().S(`"/>
<p>Your browser does not support video. <a href="/binary/`)
//line views/hypha.qtpl:47
//line views/hypha.qtpl:46
qw422016.N().S(h.Name)
//line views/hypha.qtpl:47
//line views/hypha.qtpl:46
qw422016.N().S(`">Download video</a></p>
</video>
</div>
`)
//line views/hypha.qtpl:51
//line views/hypha.qtpl:50
case ".mp3":
//line views/hypha.qtpl:51
//line views/hypha.qtpl:50
qw422016.N().S(`
<div class="binary-container binary-container_with-audio">
<audio controls>
<source src="/binary/`)
//line views/hypha.qtpl:54
//line views/hypha.qtpl:53
qw422016.N().S(h.Name)
//line views/hypha.qtpl:54
//line views/hypha.qtpl:53
qw422016.N().S(`"/>
<p>Your browser does not support audio. <a href="/binary/`)
//line views/hypha.qtpl:55
//line views/hypha.qtpl:54
qw422016.N().S(h.Name)
//line views/hypha.qtpl:55
//line views/hypha.qtpl:54
qw422016.N().S(`">Download audio</a></p>
</audio>
</div>
`)
//line views/hypha.qtpl:59
//line views/hypha.qtpl:58
default:
//line views/hypha.qtpl:59
//line views/hypha.qtpl:58
qw422016.N().S(`
<div class="binary-container binary-container_with-nothing">
<p><a href="/binary/`)
//line views/hypha.qtpl:61
//line views/hypha.qtpl:60
qw422016.N().S(h.Name)
//line views/hypha.qtpl:61
//line views/hypha.qtpl:60
qw422016.N().S(`">Download media</a></p>
</div>
`)
//line views/hypha.qtpl:63
//line views/hypha.qtpl:62
}
//line views/hypha.qtpl:63
//line views/hypha.qtpl:62
qw422016.N().S(`
`)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
}
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
func WriteAttachmentHTML(qq422016 qtio422016.Writer, h *hyphae.Hypha) {
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
StreamAttachmentHTML(qw422016, h)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
qt422016.ReleaseWriter(qw422016)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
}
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
func AttachmentHTML(h *hyphae.Hypha) string {
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
qb422016 := qt422016.AcquireByteBuffer()
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
WriteAttachmentHTML(qb422016, h)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
qs422016 := string(qb422016.B)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
qt422016.ReleaseByteBuffer(qb422016)
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
return qs422016
//line views/hypha.qtpl:64
//line views/hypha.qtpl:63
}

View File

@ -52,7 +52,7 @@ var navEntries = []navEntry{
{% if u.Group == "anon" %}
<a href="/login" class="header-links__link">Login</a>
{% else %}
<a href="/page/{%s util.UserHypha %}/{%s u.Name %}" class="header-links__link">{%s u.Name %}</a>
<a href="/hypha/{%s util.UserHypha %}/{%s u.Name %}" class="header-links__link">{%s u.Name %}</a>
{% endif %}
</li>
{% endif %}

View File

@ -162,7 +162,7 @@ func StreamUserMenuHTML(qw422016 *qt422016.Writer, u *user.User) {
} else {
//line views/nav.qtpl:54
qw422016.N().S(`
<a href="/page/`)
<a href="/hypha/`)
//line views/nav.qtpl:55
qw422016.E().S(util.UserHypha)
//line views/nav.qtpl:55