From eab3fb77ca351efc940c06a85f2d44052585970d Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Sun, 25 Jul 2021 01:32:38 +0500 Subject: [PATCH] Write the Sibling hyphae section help article --- help/en/sibling_hyphae_section.myco | 13 ++ views/stuff.qtpl | 8 + views/stuff.qtpl.go | 312 ++++++++++++++-------------- 3 files changed, 181 insertions(+), 152 deletions(-) create mode 100644 help/en/sibling_hyphae_section.myco diff --git a/help/en/sibling_hyphae_section.myco b/help/en/sibling_hyphae_section.myco new file mode 100644 index 0000000..b58956b --- /dev/null +++ b/help/en/sibling_hyphae_section.myco @@ -0,0 +1,13 @@ +# Sibling hyphae section +On the right (or below on smaller devices) of hypha pages there is a special section that lists **sibling hyphae**. + +> **Sibling hyphae** are hyphae that are subhyphae of the same hypha. For example, //Fruit/Apple// and //Fruit/Pear// are sibling hyphae to each other. + +The sibling hyphae are listed alphabetically. The name of the hypha you are currently viewing is also part of the list. The rest are links that lead you to the hyphae. + +Sometimes, there are numbers beside the links: +* **No number.** The hypha has no subhyphae. +* **One number.** The number indicates how many direct subhyphae it has. +* **Two numbers.** The first number is the number of direct subhyphae. The second number in parentheses is the number of indirect subhyphae. + +For hypha //Fruit//, hyphae //Fruit/Apple// and //Fruit/Pear// would be direct subhyphae, and hyphae //Fruit/Apple/Red// and //Fruit/Apple/Green// would be indirect subhyphae. \ No newline at end of file diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 94bbd0e..fe2e3db 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -147,10 +147,18 @@ It outputs a poorly formatted JSON, but it works and is valid.
  • Attachment
  • +
  • Interface + +
  • Configuration (for administrators)
  • diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index b1bfabc..c7f768c 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -496,53 +496,61 @@ func streamhelpTopicsHTML(qw422016 *qt422016.Writer) {
  • Attachment
  • +
  • Interface + +
  • Configuration (for administrators)
  • `) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 } -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 func writehelpTopicsHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 streamhelpTopicsHTML(qw422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 } -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 func helpTopicsHTML() string { -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 writehelpTopicsHTML(qb422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 return qs422016 -//line views/stuff.qtpl:158 +//line views/stuff.qtpl:166 } -//line views/stuff.qtpl:160 +//line views/stuff.qtpl:168 func StreamUserListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:160 +//line views/stuff.qtpl:168 qw422016.N().S(`

    List of users

    `) -//line views/stuff.qtpl:165 +//line views/stuff.qtpl:173 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -559,345 +567,345 @@ func StreamUserListHTML(qw422016 *qt422016.Writer) { } } -//line views/stuff.qtpl:180 +//line views/stuff.qtpl:188 qw422016.N().S(`

    Admins

      `) -//line views/stuff.qtpl:183 +//line views/stuff.qtpl:191 for _, name := range admins { -//line views/stuff.qtpl:183 +//line views/stuff.qtpl:191 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:184 +//line views/stuff.qtpl:192 qw422016.E().S(name) -//line views/stuff.qtpl:184 +//line views/stuff.qtpl:192 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:185 +//line views/stuff.qtpl:193 } -//line views/stuff.qtpl:185 +//line views/stuff.qtpl:193 qw422016.N().S(`

    Moderators

      `) -//line views/stuff.qtpl:189 +//line views/stuff.qtpl:197 for _, name := range moderators { -//line views/stuff.qtpl:189 +//line views/stuff.qtpl:197 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:198 qw422016.E().S(name) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:198 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:191 +//line views/stuff.qtpl:199 } -//line views/stuff.qtpl:191 +//line views/stuff.qtpl:199 qw422016.N().S(`

    Editors

      `) -//line views/stuff.qtpl:195 +//line views/stuff.qtpl:203 for _, name := range editors { -//line views/stuff.qtpl:195 +//line views/stuff.qtpl:203 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:204 qw422016.E().S(name) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:204 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:197 +//line views/stuff.qtpl:205 } -//line views/stuff.qtpl:197 +//line views/stuff.qtpl:205 qw422016.N().S(`
    `) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 } -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 func WriteUserListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 StreamUserListHTML(qw422016) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 } -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 func UserListHTML() string { -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 WriteUserListHTML(qb422016) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 return qs422016 -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:209 } -//line views/stuff.qtpl:203 +//line views/stuff.qtpl:211 func StreamHyphaListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:203 +//line views/stuff.qtpl:211 qw422016.N().S(`

    List of hyphae

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

      `) -//line views/stuff.qtpl:209 +//line views/stuff.qtpl:217 for h := range hyphae.YieldExistingHyphae() { -//line views/stuff.qtpl:209 +//line views/stuff.qtpl:217 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:211 +//line views/stuff.qtpl:219 qw422016.E().S(util.BeautifulName(h.Name)) -//line views/stuff.qtpl:211 +//line views/stuff.qtpl:219 qw422016.N().S(` `) -//line views/stuff.qtpl:212 +//line views/stuff.qtpl:220 if h.BinaryPath != "" { -//line views/stuff.qtpl:212 +//line views/stuff.qtpl:220 qw422016.N().S(` `) -//line views/stuff.qtpl:213 +//line views/stuff.qtpl:221 qw422016.E().S(filepath.Ext(h.BinaryPath)[1:]) -//line views/stuff.qtpl:213 +//line views/stuff.qtpl:221 qw422016.N().S(` `) -//line views/stuff.qtpl:214 +//line views/stuff.qtpl:222 } -//line views/stuff.qtpl:214 +//line views/stuff.qtpl:222 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:216 +//line views/stuff.qtpl:224 } -//line views/stuff.qtpl:216 +//line views/stuff.qtpl:224 qw422016.N().S(`
    `) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 } -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 func WriteHyphaListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 StreamHyphaListHTML(qw422016) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 } -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 func HyphaListHTML() string { -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 WriteHyphaListHTML(qb422016) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 return qs422016 -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:228 } -//line views/stuff.qtpl:222 +//line views/stuff.qtpl:230 func StreamAboutHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:222 +//line views/stuff.qtpl:230 qw422016.N().S(`

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

    See /list for information about hyphae on this wiki.

    `) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 } -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 func WriteAboutHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 StreamAboutHTML(qw422016) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 } -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 func AboutHTML() string { -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 WriteAboutHTML(qb422016) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 return qs422016 -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:252 } -//line views/stuff.qtpl:246 +//line views/stuff.qtpl:254 func StreamCommonScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:246 +//line views/stuff.qtpl:254 qw422016.N().S(` `) -//line views/stuff.qtpl:247 +//line views/stuff.qtpl:255 for _, scriptPath := range cfg.CommonScripts { -//line views/stuff.qtpl:247 +//line views/stuff.qtpl:255 qw422016.N().S(` `) -//line views/stuff.qtpl:249 +//line views/stuff.qtpl:257 } -//line views/stuff.qtpl:249 +//line views/stuff.qtpl:257 qw422016.N().S(` `) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 } -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 func WriteCommonScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 } -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 func CommonScripts() string { -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 WriteCommonScripts(qb422016) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 return qs422016 -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:258 }