diff --git a/static/default.css b/static/default.css index 26075dd..4eb4cb0 100644 --- a/static/default.css +++ b/static/default.css @@ -66,6 +66,7 @@ header { width: 100%; margin-bottom: 1rem; } .hypha-tabs__selection, .hypha-tabs__link { padding: .25rem .5rem; } .header-links__entry:nth-of-type(1), .hypha-tabs__tab:nth-of-type(1) { margin-left: 2rem; } + .header-links__search { margin: 0; } } diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 61d52f7..cd593c5 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -23,6 +23,9 @@ {%- for _, link := range cfg.HeaderLinks -%}
  • {%s link.Display %}
  • {%- endfor -%} +
    + +
    {%s= UserMenuHTML(u) %} diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index 285f4e7..d456cf4 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -80,18 +80,21 @@ func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, //line views/stuff.qtpl:25 } //line views/stuff.qtpl:25 - qw422016.N().S(` `) -//line views/stuff.qtpl:26 + qw422016.N().S(`
    + +
    + `) +//line views/stuff.qtpl:29 qw422016.N().S(UserMenuHTML(u)) -//line views/stuff.qtpl:26 +//line views/stuff.qtpl:29 qw422016.N().S(` `) -//line views/stuff.qtpl:30 +//line views/stuff.qtpl:33 qw422016.N().S(body) -//line views/stuff.qtpl:30 +//line views/stuff.qtpl:33 qw422016.N().S(` `) -//line views/stuff.qtpl:42 +//line views/stuff.qtpl:45 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:42 +//line views/stuff.qtpl:45 qw422016.N().S(` `) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 } -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 func WriteBaseHTML(qq422016 qtio422016.Writer, title, body string, u *user.User, headElements ...string) { -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 StreamBaseHTML(qw422016, title, body, u, headElements...) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 } -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 func BaseHTML(title, body string, u *user.User, headElements ...string) string { -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 WriteBaseHTML(qb422016, title, body, u, headElements...) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 return qs422016 -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:48 } -//line views/stuff.qtpl:47 +//line views/stuff.qtpl:50 func StreamPrimitiveSearchHTML(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string) { -//line views/stuff.qtpl:47 +//line views/stuff.qtpl:50 qw422016.N().S(`

    Search results for ‘`) -//line views/stuff.qtpl:50 +//line views/stuff.qtpl:53 qw422016.E().S(query) -//line views/stuff.qtpl:50 +//line views/stuff.qtpl:53 qw422016.N().S(`’

    Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.

    `) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 } -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 func WritePrimitiveSearchHTML(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string) { -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 StreamPrimitiveSearchHTML(qw422016, query, generator) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 } -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 func PrimitiveSearchHTML(query string, generator func(string) <-chan string) string { -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 WritePrimitiveSearchHTML(qb422016, query, generator) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 return qs422016 -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:63 } -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:65 func StreamHelpHTML(qw422016 *qt422016.Writer, content string) { -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:65 qw422016.N().S(`
    `) -//line views/stuff.qtpl:66 +//line views/stuff.qtpl:69 qw422016.N().S(content) -//line views/stuff.qtpl:66 +//line views/stuff.qtpl:69 qw422016.N().S(`
    `) -//line views/stuff.qtpl:69 +//line views/stuff.qtpl:72 qw422016.N().S(helpTopicsHTML()) -//line views/stuff.qtpl:69 +//line views/stuff.qtpl:72 qw422016.N().S(`
    `) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 } -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 func WriteHelpHTML(qq422016 qtio422016.Writer, content string) { -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 StreamHelpHTML(qw422016, content) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 } -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 func HelpHTML(content string) string { -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 WriteHelpHTML(qb422016, content) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 return qs422016 -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:74 } -//line views/stuff.qtpl:73 +//line views/stuff.qtpl:76 func StreamHelpEmptyErrorHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:73 +//line views/stuff.qtpl:76 qw422016.N().S(`

    This entry does not exist!

    Try finding a different entry that would help you.

    If you want to write this entry by yourself, consider contributing to Mycorrhiza Wiki directly.

    `) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 } -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 func WriteHelpEmptyErrorHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 StreamHelpEmptyErrorHTML(qw422016) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 } -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 func HelpEmptyErrorHTML() string { -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 WriteHelpEmptyErrorHTML(qb422016) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 return qs422016 -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:80 } -//line views/stuff.qtpl:79 +//line views/stuff.qtpl:82 func streamhelpTopicsHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:79 +//line views/stuff.qtpl:82 qw422016.N().S(` `) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 } -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 func writehelpTopicsHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 streamhelpTopicsHTML(qw422016) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 } -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 func helpTopicsHTML() string { -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 writehelpTopicsHTML(qb422016) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 return qs422016 -//line views/stuff.qtpl:96 +//line views/stuff.qtpl:99 } -//line views/stuff.qtpl:98 +//line views/stuff.qtpl:101 func StreamUserListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:98 +//line views/stuff.qtpl:101 qw422016.N().S(`

    List of users

    `) -//line views/stuff.qtpl:103 +//line views/stuff.qtpl:106 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -369,345 +372,345 @@ func StreamUserListHTML(qw422016 *qt422016.Writer) { } } -//line views/stuff.qtpl:118 +//line views/stuff.qtpl:121 qw422016.N().S(`

    Admins

      `) -//line views/stuff.qtpl:121 +//line views/stuff.qtpl:124 for _, name := range admins { -//line views/stuff.qtpl:121 +//line views/stuff.qtpl:124 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:125 qw422016.E().S(name) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:125 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:123 +//line views/stuff.qtpl:126 } -//line views/stuff.qtpl:123 +//line views/stuff.qtpl:126 qw422016.N().S(`

    Moderators

      `) -//line views/stuff.qtpl:127 +//line views/stuff.qtpl:130 for _, name := range moderators { -//line views/stuff.qtpl:127 +//line views/stuff.qtpl:130 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:131 qw422016.E().S(name) -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:131 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:129 +//line views/stuff.qtpl:132 } -//line views/stuff.qtpl:129 +//line views/stuff.qtpl:132 qw422016.N().S(`

    Editors

      `) -//line views/stuff.qtpl:133 +//line views/stuff.qtpl:136 for _, name := range editors { -//line views/stuff.qtpl:133 +//line views/stuff.qtpl:136 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:134 +//line views/stuff.qtpl:137 qw422016.E().S(name) -//line views/stuff.qtpl:134 +//line views/stuff.qtpl:137 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:135 +//line views/stuff.qtpl:138 } -//line views/stuff.qtpl:135 +//line views/stuff.qtpl:138 qw422016.N().S(`
    `) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 } -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 func WriteUserListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 StreamUserListHTML(qw422016) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 } -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 func UserListHTML() string { -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 WriteUserListHTML(qb422016) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 return qs422016 -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:142 } -//line views/stuff.qtpl:141 +//line views/stuff.qtpl:144 func StreamHyphaListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:141 +//line views/stuff.qtpl:144 qw422016.N().S(`

    List of hyphae

    This wiki has `) -//line views/stuff.qtpl:145 +//line views/stuff.qtpl:148 qw422016.N().D(hyphae.Count()) -//line views/stuff.qtpl:145 +//line views/stuff.qtpl:148 qw422016.N().S(` hyphae.

    `) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 } -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 func WriteHyphaListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 StreamHyphaListHTML(qw422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 } -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 func HyphaListHTML() string { -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 WriteHyphaListHTML(qb422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 return qs422016 -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:161 } -//line views/stuff.qtpl:160 +//line views/stuff.qtpl:163 func StreamAboutHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:160 +//line views/stuff.qtpl:163 qw422016.N().S(`

    About `) -//line views/stuff.qtpl:164 +//line views/stuff.qtpl:167 qw422016.E().S(cfg.WikiName) -//line views/stuff.qtpl:164 +//line views/stuff.qtpl:167 qw422016.N().S(`

    See /list for information about hyphae on this wiki.

    `) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 } -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 func WriteAboutHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 StreamAboutHTML(qw422016) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 } -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 func AboutHTML() string { -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 WriteAboutHTML(qb422016) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 return qs422016 -//line views/stuff.qtpl:182 +//line views/stuff.qtpl:185 } -//line views/stuff.qtpl:184 +//line views/stuff.qtpl:187 func StreamCommonScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:184 +//line views/stuff.qtpl:187 qw422016.N().S(` `) -//line views/stuff.qtpl:185 +//line views/stuff.qtpl:188 for _, scriptPath := range cfg.CommonScripts { -//line views/stuff.qtpl:185 +//line views/stuff.qtpl:188 qw422016.N().S(` `) -//line views/stuff.qtpl:187 +//line views/stuff.qtpl:190 } -//line views/stuff.qtpl:187 +//line views/stuff.qtpl:190 qw422016.N().S(` `) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 } -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 func WriteCommonScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 } -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 func CommonScripts() string { -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 WriteCommonScripts(qb422016) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 return qs422016 -//line views/stuff.qtpl:188 +//line views/stuff.qtpl:191 } diff --git a/web/search.go b/web/search.go index b99dbc6..b1c17e2 100644 --- a/web/search.go +++ b/web/search.go @@ -16,9 +16,9 @@ func initSearch() { func handlerPrimitiveSearch(w http.ResponseWriter, rq *http.Request) { util.PrepareRq(rq) + _ = rq.ParseForm() var ( - // It just so happened that this function does what we need! Sorry for party rocking. - query = util.HyphaNameFromRq(rq, "primitive-search") + query = rq.FormValue("q") u = user.FromRequest(rq) ) _, _ = io.WriteString(