1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2024-12-12 05:20:26 +00:00
mycorrhiza/views/stuff.qtpl.go
2021-07-15 14:35:01 +05:00

902 lines
22 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by qtc from "stuff.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.
//line views/stuff.qtpl:1
package views
//line views/stuff.qtpl:1
import "path/filepath"
//line views/stuff.qtpl:2
import "github.com/bouncepaw/mycorrhiza/cfg"
//line views/stuff.qtpl:3
import "github.com/bouncepaw/mycorrhiza/hyphae"
//line views/stuff.qtpl:4
import "github.com/bouncepaw/mycorrhiza/user"
//line views/stuff.qtpl:5
import "github.com/bouncepaw/mycorrhiza/util"
//line views/stuff.qtpl:7
import (
qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate"
)
//line views/stuff.qtpl:7
var (
_ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer
)
//line views/stuff.qtpl:7
func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, headElements ...string) {
//line views/stuff.qtpl:7
qw422016.N().S(`
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>`)
//line views/stuff.qtpl:13
qw422016.E().S(title)
//line views/stuff.qtpl:13
qw422016.N().S(`</title>
<link rel="shortcut icon" href="/static/favicon.ico">
<link rel="stylesheet" href="/static/style.css">
<script src="/static/shortcuts.js"></script>
`)
//line views/stuff.qtpl:17
for _, el := range headElements {
//line views/stuff.qtpl:17
qw422016.N().S(el)
//line views/stuff.qtpl:17
}
//line views/stuff.qtpl:17
qw422016.N().S(`
</head>
<body>
<header>
<nav class="main-width top-bar">
<ul class="top-bar__wrapper">
<li class="top-bar__section top-bar__section_home">
<div class="top-bar__home-link-wrapper">
<a class="top-bar__home-link" href="/">`)
//line views/stuff.qtpl:25
qw422016.E().S(cfg.WikiName)
//line views/stuff.qtpl:25
qw422016.N().S(`</a>
</div>
</li>
<li class="top-bar__section top-bar__section_search">
<form class="top-bar__search" method="GET" action="/title-search">
<input type="text" name="q" placeholder="Title search" class="top-bar__search-bar">
</form>
</li>
`)
//line views/stuff.qtpl:33
if cfg.UseAuth {
//line views/stuff.qtpl:33
qw422016.N().S(`
<li class="top-bar__section top-bar__section_auth">
<ul class="top-bar__auth auth-links">
<li class="auth-links__box auth-links__user-box">
`)
//line views/stuff.qtpl:37
if u.Group == "anon" {
//line views/stuff.qtpl:37
qw422016.N().S(`
<a href="/login" class="auth-links__link auth-links__login-link">Login</a>
`)
//line views/stuff.qtpl:39
} else {
//line views/stuff.qtpl:39
qw422016.N().S(`
<a href="/hypha/`)
//line views/stuff.qtpl:40
qw422016.E().S(cfg.UserHypha)
//line views/stuff.qtpl:40
qw422016.N().S(`/`)
//line views/stuff.qtpl:40
qw422016.E().S(u.Name)
//line views/stuff.qtpl:40
qw422016.N().S(`" class="auth-links__link auth-links__user-link">`)
//line views/stuff.qtpl:40
qw422016.E().S(util.BeautifulName(u.Name))
//line views/stuff.qtpl:40
qw422016.N().S(`</a>
`)
//line views/stuff.qtpl:41
}
//line views/stuff.qtpl:41
qw422016.N().S(`
</li>
`)
//line views/stuff.qtpl:43
if cfg.AllowRegistration && u.Group == "anon" {
//line views/stuff.qtpl:43
qw422016.N().S(`
<li class="auth-links__box auth-links__register-box">
<a href="/register" class="auth-links__link auth-links__register-link">Register</a>
</li>
`)
//line views/stuff.qtpl:47
}
//line views/stuff.qtpl:47
qw422016.N().S(`
`)
//line views/stuff.qtpl:48
if u.Group == "admin" {
//line views/stuff.qtpl:48
qw422016.N().S(`
<li class="auth-links__box auth-links__admin-box">
<a href="/admin" class="auth-links__link auth-links__admin-link">Admin panel</a>
</li>
`)
//line views/stuff.qtpl:52
}
//line views/stuff.qtpl:52
qw422016.N().S(`
</ul>
</li>
`)
//line views/stuff.qtpl:55
}
//line views/stuff.qtpl:55
qw422016.N().S(`
<li class="top-bar__section top-bar__section_highlights">
<ul class="top-bar__highlights">
`)
//line views/stuff.qtpl:58
for _, link := range cfg.HeaderLinks {
//line views/stuff.qtpl:58
qw422016.N().S(` `)
//line views/stuff.qtpl:59
if link.Href != "/" {
//line views/stuff.qtpl:59
qw422016.N().S(`
<li class="top-bar__highlight">
<a class="top-bar__highlight-link" href="`)
//line views/stuff.qtpl:61
qw422016.E().S(link.Href)
//line views/stuff.qtpl:61
qw422016.N().S(`">`)
//line views/stuff.qtpl:61
qw422016.E().S(link.Display)
//line views/stuff.qtpl:61
qw422016.N().S(`</a>
</li>
`)
//line views/stuff.qtpl:63
}
//line views/stuff.qtpl:63
qw422016.N().S(`
`)
//line views/stuff.qtpl:64
}
//line views/stuff.qtpl:64
qw422016.N().S(` </ul>
</li>
</ul>
</nav>
</header>
`)
//line views/stuff.qtpl:70
qw422016.N().S(body)
//line views/stuff.qtpl:70
qw422016.N().S(`
<template id="dialog-template">
<div class="dialog-backdrop"></div>
<div class="dialog" tabindex="0">
<div class="dialog__header">
<h1 class="dialog__title"></h1>
<button class="dialog__close-button" aria-label="Close this dialog"></button>
</div>
<div class="dialog__content"></div>
</div>
</template>
`)
//line views/stuff.qtpl:82
StreamCommonScripts(qw422016)
//line views/stuff.qtpl:82
qw422016.N().S(`
</body>
</html>
`)
//line views/stuff.qtpl:85
}
//line views/stuff.qtpl:85
func WriteBaseHTML(qq422016 qtio422016.Writer, title, body string, u *user.User, headElements ...string) {
//line views/stuff.qtpl:85
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:85
StreamBaseHTML(qw422016, title, body, u, headElements...)
//line views/stuff.qtpl:85
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:85
}
//line views/stuff.qtpl:85
func BaseHTML(title, body string, u *user.User, headElements ...string) string {
//line views/stuff.qtpl:85
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:85
WriteBaseHTML(qb422016, title, body, u, headElements...)
//line views/stuff.qtpl:85
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:85
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:85
return qs422016
//line views/stuff.qtpl:85
}
//line views/stuff.qtpl:87
func StreamTitleSearchHTML(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string) {
//line views/stuff.qtpl:87
qw422016.N().S(`
<div class="layout">
<main class="main-width title-search">
<h1>Search results for `)
//line views/stuff.qtpl:90
qw422016.E().S(query)
//line views/stuff.qtpl:90
qw422016.N().S(`</h1>
<p>Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.</p>
<ul class="title-search__results">
`)
//line views/stuff.qtpl:93
for hyphaName := range generator(query) {
//line views/stuff.qtpl:93
qw422016.N().S(`
<li class="title-search__entry">
<a class="title-search__link wikilink" href="/hypha/`)
//line views/stuff.qtpl:95
qw422016.E().S(hyphaName)
//line views/stuff.qtpl:95
qw422016.N().S(`">`)
//line views/stuff.qtpl:95
qw422016.E().S(util.BeautifulName(hyphaName))
//line views/stuff.qtpl:95
qw422016.N().S(`</a>
</li>
`)
//line views/stuff.qtpl:97
}
//line views/stuff.qtpl:97
qw422016.N().S(`
</main>
</div>
`)
//line views/stuff.qtpl:100
}
//line views/stuff.qtpl:100
func WriteTitleSearchHTML(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string) {
//line views/stuff.qtpl:100
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:100
StreamTitleSearchHTML(qw422016, query, generator)
//line views/stuff.qtpl:100
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:100
}
//line views/stuff.qtpl:100
func TitleSearchHTML(query string, generator func(string) <-chan string) string {
//line views/stuff.qtpl:100
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:100
WriteTitleSearchHTML(qb422016, query, generator)
//line views/stuff.qtpl:100
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:100
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:100
return qs422016
//line views/stuff.qtpl:100
}
// It outputs a poorly formatted JSON, but it works and is valid.
//line views/stuff.qtpl:103
func StreamTitleSearchJSON(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string) {
//line views/stuff.qtpl:103
qw422016.N().S(`
`)
//line views/stuff.qtpl:105
// Lol
counter := 0
//line views/stuff.qtpl:107
qw422016.N().S(`
{
"source_query": "`)
//line views/stuff.qtpl:109
qw422016.E().S(query)
//line views/stuff.qtpl:109
qw422016.N().S(`",
"results": [
`)
//line views/stuff.qtpl:111
for hyphaName := range generator(query) {
//line views/stuff.qtpl:111
qw422016.N().S(`
`)
//line views/stuff.qtpl:112
if counter > 0 {
//line views/stuff.qtpl:112
qw422016.N().S(`, `)
//line views/stuff.qtpl:112
}
//line views/stuff.qtpl:112
qw422016.N().S(`{
"canonical_name": "`)
//line views/stuff.qtpl:113
qw422016.E().S(hyphaName)
//line views/stuff.qtpl:113
qw422016.N().S(`",
"beautiful_name": "`)
//line views/stuff.qtpl:114
qw422016.E().S(util.BeautifulName(hyphaName))
//line views/stuff.qtpl:114
qw422016.N().S(`",
"url": "`)
//line views/stuff.qtpl:115
qw422016.E().S(cfg.URL + "/hypha/" + hyphaName)
//line views/stuff.qtpl:115
qw422016.N().S(`"
}`)
//line views/stuff.qtpl:116
counter++
//line views/stuff.qtpl:116
qw422016.N().S(`
`)
//line views/stuff.qtpl:117
}
//line views/stuff.qtpl:117
qw422016.N().S(`
]
}
`)
//line views/stuff.qtpl:120
}
//line views/stuff.qtpl:120
func WriteTitleSearchJSON(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string) {
//line views/stuff.qtpl:120
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:120
StreamTitleSearchJSON(qw422016, query, generator)
//line views/stuff.qtpl:120
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:120
}
//line views/stuff.qtpl:120
func TitleSearchJSON(query string, generator func(string) <-chan string) string {
//line views/stuff.qtpl:120
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:120
WriteTitleSearchJSON(qb422016, query, generator)
//line views/stuff.qtpl:120
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:120
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:120
return qs422016
//line views/stuff.qtpl:120
}
//line views/stuff.qtpl:122
func StreamHelpHTML(qw422016 *qt422016.Writer, content string) {
//line views/stuff.qtpl:122
qw422016.N().S(`
<div class="layout">
<main class="main-width help">
<article>
`)
//line views/stuff.qtpl:126
qw422016.N().S(content)
//line views/stuff.qtpl:126
qw422016.N().S(`
</article>
</main>
`)
//line views/stuff.qtpl:129
qw422016.N().S(helpTopicsHTML())
//line views/stuff.qtpl:129
qw422016.N().S(`
</div>
`)
//line views/stuff.qtpl:131
}
//line views/stuff.qtpl:131
func WriteHelpHTML(qq422016 qtio422016.Writer, content string) {
//line views/stuff.qtpl:131
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:131
StreamHelpHTML(qw422016, content)
//line views/stuff.qtpl:131
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:131
}
//line views/stuff.qtpl:131
func HelpHTML(content string) string {
//line views/stuff.qtpl:131
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:131
WriteHelpHTML(qb422016, content)
//line views/stuff.qtpl:131
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:131
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:131
return qs422016
//line views/stuff.qtpl:131
}
//line views/stuff.qtpl:133
func StreamHelpEmptyErrorHTML(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:133
qw422016.N().S(`
<h1>This entry does not exist!</h1>
<p>Try finding a different entry that would help you.</p>
<p>If you want to write this entry by yourself, consider <a class="wikilink wikilink_external wikilink_https" href="https://github.com/bouncepaw/mycorrhiza">contributing</a> to Mycorrhiza Wiki directly.</p>
`)
//line views/stuff.qtpl:137
}
//line views/stuff.qtpl:137
func WriteHelpEmptyErrorHTML(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:137
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:137
StreamHelpEmptyErrorHTML(qw422016)
//line views/stuff.qtpl:137
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:137
}
//line views/stuff.qtpl:137
func HelpEmptyErrorHTML() string {
//line views/stuff.qtpl:137
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:137
WriteHelpEmptyErrorHTML(qb422016)
//line views/stuff.qtpl:137
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:137
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:137
return qs422016
//line views/stuff.qtpl:137
}
//line views/stuff.qtpl:139
func streamhelpTopicsHTML(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:139
qw422016.N().S(`
<aside class="help-topics layout-card">
<h2 class="layout-card__title">Help topics</h2>
<ul class="help-topics__list">
<li>
<a href="/help/en">Main</a>
</li>
<li>
<a href="/help/en/hypha">Hypha</a>
<ul>
<li>
<a href="/help/en/attachment">Attachment</a>
</li>
</ul
</li>
</ul>
</aside>
`)
//line views/stuff.qtpl:156
}
//line views/stuff.qtpl:156
func writehelpTopicsHTML(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:156
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:156
streamhelpTopicsHTML(qw422016)
//line views/stuff.qtpl:156
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:156
}
//line views/stuff.qtpl:156
func helpTopicsHTML() string {
//line views/stuff.qtpl:156
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:156
writehelpTopicsHTML(qb422016)
//line views/stuff.qtpl:156
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:156
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:156
return qs422016
//line views/stuff.qtpl:156
}
//line views/stuff.qtpl:158
func StreamUserListHTML(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:158
qw422016.N().S(`
<div class="layout">
<main class="main-width user-list">
<h1>List of users</h1>
`)
//line views/stuff.qtpl:163
var (
admins = make([]string, 0)
moderators = make([]string, 0)
editors = make([]string, 0)
)
for u := range user.YieldUsers() {
switch u.Group {
case "admin":
admins = append(admins, u.Name)
case "moderator":
moderators = append(moderators, u.Name)
case "editor", "trusted":
editors = append(editors, u.Name)
}
}
//line views/stuff.qtpl:178
qw422016.N().S(`
<section>
<h2>Admins</h2>
<ol>`)
//line views/stuff.qtpl:181
for _, name := range admins {
//line views/stuff.qtpl:181
qw422016.N().S(`
<li><a href="/hypha/`)
//line views/stuff.qtpl:182
qw422016.E().S(cfg.UserHypha)
//line views/stuff.qtpl:182
qw422016.N().S(`/`)
//line views/stuff.qtpl:182
qw422016.E().S(name)
//line views/stuff.qtpl:182
qw422016.N().S(`">`)
//line views/stuff.qtpl:182
qw422016.E().S(name)
//line views/stuff.qtpl:182
qw422016.N().S(`</a></li>
`)
//line views/stuff.qtpl:183
}
//line views/stuff.qtpl:183
qw422016.N().S(`</ol>
</section>
<section>
<h2>Moderators</h2>
<ol>`)
//line views/stuff.qtpl:187
for _, name := range moderators {
//line views/stuff.qtpl:187
qw422016.N().S(`
<li><a href="/hypha/`)
//line views/stuff.qtpl:188
qw422016.E().S(cfg.UserHypha)
//line views/stuff.qtpl:188
qw422016.N().S(`/`)
//line views/stuff.qtpl:188
qw422016.E().S(name)
//line views/stuff.qtpl:188
qw422016.N().S(`">`)
//line views/stuff.qtpl:188
qw422016.E().S(name)
//line views/stuff.qtpl:188
qw422016.N().S(`</a></li>
`)
//line views/stuff.qtpl:189
}
//line views/stuff.qtpl:189
qw422016.N().S(`</ol>
</section>
<section>
<h2>Editors</h2>
<ol>`)
//line views/stuff.qtpl:193
for _, name := range editors {
//line views/stuff.qtpl:193
qw422016.N().S(`
<li><a href="/hypha/`)
//line views/stuff.qtpl:194
qw422016.E().S(cfg.UserHypha)
//line views/stuff.qtpl:194
qw422016.N().S(`/`)
//line views/stuff.qtpl:194
qw422016.E().S(name)
//line views/stuff.qtpl:194
qw422016.N().S(`">`)
//line views/stuff.qtpl:194
qw422016.E().S(name)
//line views/stuff.qtpl:194
qw422016.N().S(`</a></li>
`)
//line views/stuff.qtpl:195
}
//line views/stuff.qtpl:195
qw422016.N().S(`</ol>
</section>
</main>
</div>
`)
//line views/stuff.qtpl:199
}
//line views/stuff.qtpl:199
func WriteUserListHTML(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:199
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:199
StreamUserListHTML(qw422016)
//line views/stuff.qtpl:199
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:199
}
//line views/stuff.qtpl:199
func UserListHTML() string {
//line views/stuff.qtpl:199
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:199
WriteUserListHTML(qb422016)
//line views/stuff.qtpl:199
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:199
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:199
return qs422016
//line views/stuff.qtpl:199
}
//line views/stuff.qtpl:201
func StreamHyphaListHTML(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:201
qw422016.N().S(`
<div class="layout">
<main class="main-width">
<h1>List of hyphae</h1>
<p>This wiki has `)
//line views/stuff.qtpl:205
qw422016.N().D(hyphae.Count())
//line views/stuff.qtpl:205
qw422016.N().S(` hyphae.</p>
<ul class="hypha-list">
`)
//line views/stuff.qtpl:207
for h := range hyphae.YieldExistingHyphae() {
//line views/stuff.qtpl:207
qw422016.N().S(`
<li class="hypha-list__entry">
<a class="hypha-list__link" href="/hypha/`)
//line views/stuff.qtpl:209
qw422016.E().S(h.Name)
//line views/stuff.qtpl:209
qw422016.N().S(`">`)
//line views/stuff.qtpl:209
qw422016.E().S(util.BeautifulName(h.Name))
//line views/stuff.qtpl:209
qw422016.N().S(`</a>
`)
//line views/stuff.qtpl:210
if h.BinaryPath != "" {
//line views/stuff.qtpl:210
qw422016.N().S(`
<span class="hypha-list__amnt-type">`)
//line views/stuff.qtpl:211
qw422016.E().S(filepath.Ext(h.BinaryPath)[1:])
//line views/stuff.qtpl:211
qw422016.N().S(`</span>
`)
//line views/stuff.qtpl:212
}
//line views/stuff.qtpl:212
qw422016.N().S(`
</li>
`)
//line views/stuff.qtpl:214
}
//line views/stuff.qtpl:214
qw422016.N().S(`
</ul>
</main>
</div>
`)
//line views/stuff.qtpl:218
}
//line views/stuff.qtpl:218
func WriteHyphaListHTML(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:218
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:218
StreamHyphaListHTML(qw422016)
//line views/stuff.qtpl:218
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:218
}
//line views/stuff.qtpl:218
func HyphaListHTML() string {
//line views/stuff.qtpl:218
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:218
WriteHyphaListHTML(qb422016)
//line views/stuff.qtpl:218
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:218
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:218
return qs422016
//line views/stuff.qtpl:218
}
//line views/stuff.qtpl:220
func StreamAboutHTML(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:220
qw422016.N().S(`
<div class="layout">
<main class="main-width">
<section>
<h1>About `)
//line views/stuff.qtpl:224
qw422016.E().S(cfg.WikiName)
//line views/stuff.qtpl:224
qw422016.N().S(`</h1>
<ul>
<li><b><a href="https://mycorrhiza.wiki">Mycorrhiza Wiki</a> version:</b> 1.3.0</li>
`)
//line views/stuff.qtpl:227
if cfg.UseAuth {
//line views/stuff.qtpl:227
qw422016.N().S(` <li><b>User count:</b> `)
//line views/stuff.qtpl:228
qw422016.N().DUL(user.Count())
//line views/stuff.qtpl:228
qw422016.N().S(`</li>
<li><b>Home page:</b> <a href="/">`)
//line views/stuff.qtpl:229
qw422016.E().S(cfg.HomeHypha)
//line views/stuff.qtpl:229
qw422016.N().S(`</a></li>
<li><b>Administrators:</b>`)
//line views/stuff.qtpl:230
for i, username := range user.ListUsersWithGroup("admin") {
//line views/stuff.qtpl:231
if i > 0 {
//line views/stuff.qtpl:231
qw422016.N().S(`<span aria-hidden="true">, </span>
`)
//line views/stuff.qtpl:232
}
//line views/stuff.qtpl:232
qw422016.N().S(` <a href="/hypha/`)
//line views/stuff.qtpl:233
qw422016.E().S(cfg.UserHypha)
//line views/stuff.qtpl:233
qw422016.N().S(`/`)
//line views/stuff.qtpl:233
qw422016.E().S(username)
//line views/stuff.qtpl:233
qw422016.N().S(`">`)
//line views/stuff.qtpl:233
qw422016.E().S(username)
//line views/stuff.qtpl:233
qw422016.N().S(`</a>`)
//line views/stuff.qtpl:233
}
//line views/stuff.qtpl:233
qw422016.N().S(`</li>
`)
//line views/stuff.qtpl:234
} else {
//line views/stuff.qtpl:234
qw422016.N().S(` <li>This wiki does not use authorization</li>
`)
//line views/stuff.qtpl:236
}
//line views/stuff.qtpl:236
qw422016.N().S(` </ul>
<p>See <a href="/list">/list</a> for information about hyphae on this wiki.</p>
</section>
</main>
</div>
`)
//line views/stuff.qtpl:242
}
//line views/stuff.qtpl:242
func WriteAboutHTML(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:242
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:242
StreamAboutHTML(qw422016)
//line views/stuff.qtpl:242
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:242
}
//line views/stuff.qtpl:242
func AboutHTML() string {
//line views/stuff.qtpl:242
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:242
WriteAboutHTML(qb422016)
//line views/stuff.qtpl:242
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:242
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:242
return qs422016
//line views/stuff.qtpl:242
}
//line views/stuff.qtpl:244
func StreamCommonScripts(qw422016 *qt422016.Writer) {
//line views/stuff.qtpl:244
qw422016.N().S(`
`)
//line views/stuff.qtpl:245
for _, scriptPath := range cfg.CommonScripts {
//line views/stuff.qtpl:245
qw422016.N().S(`
<script src="`)
//line views/stuff.qtpl:246
qw422016.E().S(scriptPath)
//line views/stuff.qtpl:246
qw422016.N().S(`"></script>
`)
//line views/stuff.qtpl:247
}
//line views/stuff.qtpl:247
qw422016.N().S(`
`)
//line views/stuff.qtpl:248
}
//line views/stuff.qtpl:248
func WriteCommonScripts(qq422016 qtio422016.Writer) {
//line views/stuff.qtpl:248
qw422016 := qt422016.AcquireWriter(qq422016)
//line views/stuff.qtpl:248
StreamCommonScripts(qw422016)
//line views/stuff.qtpl:248
qt422016.ReleaseWriter(qw422016)
//line views/stuff.qtpl:248
}
//line views/stuff.qtpl:248
func CommonScripts() string {
//line views/stuff.qtpl:248
qb422016 := qt422016.AcquireByteBuffer()
//line views/stuff.qtpl:248
WriteCommonScripts(qb422016)
//line views/stuff.qtpl:248
qs422016 := string(qb422016.B)
//line views/stuff.qtpl:248
qt422016.ReleaseByteBuffer(qb422016)
//line views/stuff.qtpl:248
return qs422016
//line views/stuff.qtpl:248
}