diff --git a/help/en/config_file.myco b/help/en/config_file.myco new file mode 100644 index 0000000..a469691 --- /dev/null +++ b/help/en/config_file.myco @@ -0,0 +1,63 @@ += Configuration file +//This article is intended for wiki administrators.// + +The main way to configure your Mycorrhiza instance is through the **configuration file**. It is located at the root of your wiki structure and is called `config.ini`. + +The file is generated automatically when you create a new wiki: + +``` +# Generate a new wiki +$ mycorrhiza bestWiki +... +# See what's inside +$ ls bestWiki +cache config.ini static wiki.git +``` + +The file is written in the [[https://en.wikipedia.org/wiki/INI_file | .ini format]]. + +== Example configuration +The auto-generated file is the best example (it has comments too). + +Here's another example: +```ini +WikiName = My wiki +NaviTitleIcon = πŸ‘ + +[Hyphae] +HomeHypha = home +UserHypha = u +HeaderLinksHypha = header-links + +[Network] +HTTPPort = 8080 +URL = https://wiki +GeminiCertificatePath = /home/wiki/gemcerts + +[Authorization] +UseRegistration = true +``` + +== Fields +=== Root section +* `WikiName`: //string//. The name your wiki has. It is shown in the header by default and in other places. **Default:** `Mycorrhiza Wiki`. +* `NaviTitleIcon`: //string//. The icon shown before the colon in the navigational titles above each hypha. You may want to use an emoji or HTML here. **Default:** `πŸ„` (mushroom emoji). + +=== [Hyphae] +* `HomeHypha`: //string//. The name your home hypha has. **Default:** `home`. +* `UserHypha`: //string//. The name of the hypha that is parent of all user hyphae. **Default:** `u`. +* `HeaderLinkHypha`: //string//. The name of the hypha where you can configure the header. There is no default. + +=== [Network] +* `HTTPPort`: //number//. What port is used for serving the web interface of Mycorrhiza. **Default:** `1737`. +* `URL`: //url//. What URL is used for Opengraph and Web feed in the web interface. There is no default and you really should set it to something. + +=== [Authorization] +* `UseRegistration`: //boolean//. Whether you want unregistered visitors to be able to register themselves using the web form. **Default:** `false`. +* `LimitRegistration`: //number//. There cannot be more registered users than this number. If the number is zero, there is no limit. Makes sense only when `UseRegistration` is `true`. **Default:** `0`. + +=== [CustomScripts] +You can specify URLs of JavaScript files you want to load. +* `CommonScripts`: //list of url//. Comma-separated list of unquoted URLs to JS files to load on //all// pages. +* `ViewScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on //view// pages: `/hypha`, `/rev`. +* `EditScripts`: //list of urls//. Comma-separated list of unquoted URLs to JS files to load on the `/edit` page. \ No newline at end of file diff --git a/l18n/l18n.go b/l18n/l18n.go index dd94822..2f8951d 100644 --- a/l18n/l18n.go +++ b/l18n/l18n.go @@ -95,6 +95,7 @@ var localizations = map[string]string{ "en.edit.transclude": "Transclusion", "en.edit.underline": "Underline", "en.help.attachment": "Attachment", + "en.help.config_file": "Configuration file", "en.help.configuration": "Configuration (for administrators)", "en.help.empty_error_line_1": "Try finding a different entry that would help you.", "en.help.empty_error_line_2a": "If you want to write this entry by yourself, consider", @@ -329,6 +330,7 @@ var localizations = map[string]string{ "ru.edit.transclude": "Π’Ρ€Π°Π½ΡΠΊΠ»ΡŽΠ·ΠΈΡ", "ru.edit.underline": "ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅", "ru.help.attachment": "Π’Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅", + "ru.help.config_file": "Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ", "ru.help.configuration": "ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ (для администраторов)", "ru.help.empty_error_line_1": "ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.", "ru.help.empty_error_line_2a": "Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эту страницу сами, Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ вашим ΠΏΡ€Π°Π²ΠΊΠ°ΠΌ Π² ", diff --git a/l18n_src/en/help.json b/l18n_src/en/help.json index 8944b8c..f57c4d9 100644 --- a/l18n_src/en/help.json +++ b/l18n_src/en/help.json @@ -22,5 +22,6 @@ "configuration": "Configuration (for administrators)", "lock": "Lock", "whitelist": "Whitelist", - "telegram": "Telegram authorization" + "telegram": "Telegram authorization", + "config_file": "Configuration file" } diff --git a/l18n_src/ru/help.json b/l18n_src/ru/help.json index 3508333..7dadb3a 100644 --- a/l18n_src/ru/help.json +++ b/l18n_src/ru/help.json @@ -22,5 +22,6 @@ "configuration": "ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ (для администраторов)", "lock": "Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°", "whitelist": "Π‘Π΅Π»Ρ‹ΠΉ список", - "telegram": "Авторизация Ρ‡Π΅Ρ€Π΅Π· Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ" + "telegram": "Авторизация Ρ‡Π΅Ρ€Π΅Π· Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ", + "config_file": "Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ" } diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 6246bbf..b1e2b20 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -181,6 +181,7 @@ It outputs a poorly formatted JSON, but it works and is valid.
  • {%s lc.GetWithLocale(lang, "help.configuration") %} @@ -758,91 +767,91 @@ func streamhelpTopicsHTML(qw422016 *qt422016.Writer, lang string, lc *l18n.Local `) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 } -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 func writehelpTopicsHTML(qq422016 qtio422016.Writer, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 streamhelpTopicsHTML(qw422016, lang, lc) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 } -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 func helpTopicsHTML(lang string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 writehelpTopicsHTML(qb422016, lang, lc) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 return qs422016 -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 } -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 func streamhelpTopicBadgeHTML(qw422016 *qt422016.Writer, lang, topic string) { -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qw422016.N().S(` ? `) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 } -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 func writehelpTopicBadgeHTML(qq422016 qtio422016.Writer, lang, topic string) { -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 streamhelpTopicBadgeHTML(qw422016, lang, topic) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 } -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 func helpTopicBadgeHTML(lang, topic string) string { -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 writehelpTopicBadgeHTML(qb422016, lang, topic) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 return qs422016 -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 } -//line views/stuff.qtpl:198 +//line views/stuff.qtpl:199 func StreamUserListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:198 +//line views/stuff.qtpl:199 qw422016.N().S(`

    `) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:202 qw422016.E().S(lc.Get("ui.users_heading")) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:202 qw422016.N().S(`

    `) -//line views/stuff.qtpl:203 +//line views/stuff.qtpl:204 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -862,149 +871,149 @@ func StreamUserListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { sort.Strings(moderators) sort.Strings(editors) -//line views/stuff.qtpl:221 +//line views/stuff.qtpl:222 qw422016.N().S(`

    `) -//line views/stuff.qtpl:223 +//line views/stuff.qtpl:224 qw422016.E().S(lc.Get("ui.users_admins")) -//line views/stuff.qtpl:223 +//line views/stuff.qtpl:224 qw422016.N().S(`

      `) -//line views/stuff.qtpl:224 +//line views/stuff.qtpl:225 for _, name := range admins { -//line views/stuff.qtpl:224 +//line views/stuff.qtpl:225 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:225 +//line views/stuff.qtpl:226 qw422016.E().S(name) -//line views/stuff.qtpl:225 +//line views/stuff.qtpl:226 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:226 +//line views/stuff.qtpl:227 } -//line views/stuff.qtpl:226 +//line views/stuff.qtpl:227 qw422016.N().S(`

    `) -//line views/stuff.qtpl:229 +//line views/stuff.qtpl:230 qw422016.E().S(lc.Get("ui.users_moderators")) -//line views/stuff.qtpl:229 +//line views/stuff.qtpl:230 qw422016.N().S(`

      `) -//line views/stuff.qtpl:230 +//line views/stuff.qtpl:231 for _, name := range moderators { -//line views/stuff.qtpl:230 +//line views/stuff.qtpl:231 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:231 +//line views/stuff.qtpl:232 qw422016.E().S(name) -//line views/stuff.qtpl:231 +//line views/stuff.qtpl:232 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:232 +//line views/stuff.qtpl:233 } -//line views/stuff.qtpl:232 +//line views/stuff.qtpl:233 qw422016.N().S(`

    `) -//line views/stuff.qtpl:235 +//line views/stuff.qtpl:236 qw422016.E().S(lc.Get("ui.users_editors")) -//line views/stuff.qtpl:235 +//line views/stuff.qtpl:236 qw422016.N().S(`

      `) -//line views/stuff.qtpl:236 +//line views/stuff.qtpl:237 for _, name := range editors { -//line views/stuff.qtpl:236 +//line views/stuff.qtpl:237 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:238 qw422016.E().S(name) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:238 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:238 +//line views/stuff.qtpl:239 } -//line views/stuff.qtpl:238 +//line views/stuff.qtpl:239 qw422016.N().S(`
    `) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 } -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 func WriteUserListHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 StreamUserListHTML(qw422016, lc) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 } -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 func UserListHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 WriteUserListHTML(qb422016, lc) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 return qs422016 -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:243 } -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:245 func StreamHyphaListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:244 +//line views/stuff.qtpl:245 qw422016.N().S(`

    `) -//line views/stuff.qtpl:247 +//line views/stuff.qtpl:248 qw422016.E().S(lc.Get("ui.list_heading")) -//line views/stuff.qtpl:247 +//line views/stuff.qtpl:248 qw422016.N().S(`

    `) -//line views/stuff.qtpl:248 +//line views/stuff.qtpl:249 qw422016.E().S(lc.GetPlural("ui.list_desc", hyphae.Count())) -//line views/stuff.qtpl:248 +//line views/stuff.qtpl:249 qw422016.N().S(`

      `) -//line views/stuff.qtpl:251 +//line views/stuff.qtpl:252 hyphaNames := make(chan string) sortedHypha := hyphae.PathographicSort(hyphaNames) for hypha := range hyphae.YieldExistingHyphae() { @@ -1012,252 +1021,252 @@ func StreamHyphaListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { } close(hyphaNames) -//line views/stuff.qtpl:257 +//line views/stuff.qtpl:258 qw422016.N().S(` `) -//line views/stuff.qtpl:258 +//line views/stuff.qtpl:259 for hyphaName := range sortedHypha { -//line views/stuff.qtpl:258 +//line views/stuff.qtpl:259 qw422016.N().S(` `) -//line views/stuff.qtpl:259 +//line views/stuff.qtpl:260 hypha := hyphae.ByName(hyphaName) -//line views/stuff.qtpl:259 +//line views/stuff.qtpl:260 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:261 +//line views/stuff.qtpl:262 qw422016.E().S(util.BeautifulName(hypha.Name)) -//line views/stuff.qtpl:261 +//line views/stuff.qtpl:262 qw422016.N().S(` `) -//line views/stuff.qtpl:262 +//line views/stuff.qtpl:263 if hypha.BinaryPath != "" { -//line views/stuff.qtpl:262 +//line views/stuff.qtpl:263 qw422016.N().S(` `) -//line views/stuff.qtpl:263 +//line views/stuff.qtpl:264 qw422016.E().S(filepath.Ext(hypha.BinaryPath)[1:]) -//line views/stuff.qtpl:263 +//line views/stuff.qtpl:264 qw422016.N().S(` `) -//line views/stuff.qtpl:264 +//line views/stuff.qtpl:265 } -//line views/stuff.qtpl:264 +//line views/stuff.qtpl:265 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:267 } -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:267 qw422016.N().S(`
    `) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 } -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 func WriteHyphaListHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 StreamHyphaListHTML(qw422016, lc) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 } -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 func HyphaListHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 WriteHyphaListHTML(qb422016, lc) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 return qs422016 -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:271 } -//line views/stuff.qtpl:272 +//line views/stuff.qtpl:273 func StreamAboutHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:272 +//line views/stuff.qtpl:273 qw422016.N().S(`

    `) -//line views/stuff.qtpl:276 +//line views/stuff.qtpl:277 qw422016.E().S(lc.Get("ui.about_title", &l18n.Replacements{"name": cfg.WikiName})) -//line views/stuff.qtpl:276 +//line views/stuff.qtpl:277 qw422016.N().S(`

    • `) -//line views/stuff.qtpl:278 +//line views/stuff.qtpl:279 qw422016.N().S(lc.Get("ui.about_version", &l18n.Replacements{"pre": "", "post": ""})) -//line views/stuff.qtpl:278 +//line views/stuff.qtpl:279 qw422016.N().S(` 1.7.0
    • `) -//line views/stuff.qtpl:279 +//line views/stuff.qtpl:280 if cfg.UseAuth { -//line views/stuff.qtpl:279 +//line views/stuff.qtpl:280 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:281 qw422016.E().S(lc.Get("ui.about_usercount")) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:281 qw422016.N().S(` `) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:281 qw422016.N().DUL(user.Count()) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:281 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:281 +//line views/stuff.qtpl:282 qw422016.E().S(lc.Get("ui.about_homepage")) -//line views/stuff.qtpl:281 +//line views/stuff.qtpl:282 qw422016.N().S(` `) -//line views/stuff.qtpl:281 +//line views/stuff.qtpl:282 qw422016.E().S(cfg.HomeHypha) -//line views/stuff.qtpl:281 +//line views/stuff.qtpl:282 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:282 +//line views/stuff.qtpl:283 qw422016.E().S(lc.Get("ui.about_admins")) -//line views/stuff.qtpl:282 +//line views/stuff.qtpl:283 qw422016.N().S(``) -//line views/stuff.qtpl:282 +//line views/stuff.qtpl:283 for i, username := range user.ListUsersWithGroup("admin") { -//line views/stuff.qtpl:283 +//line views/stuff.qtpl:284 if i > 0 { -//line views/stuff.qtpl:283 +//line views/stuff.qtpl:284 qw422016.N().S(` `) -//line views/stuff.qtpl:284 +//line views/stuff.qtpl:285 } -//line views/stuff.qtpl:284 +//line views/stuff.qtpl:285 qw422016.N().S(` `) -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:286 qw422016.E().S(username) -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:286 qw422016.N().S(``) -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:286 } -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:286 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:287 } else { -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:287 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:287 +//line views/stuff.qtpl:288 qw422016.E().S(lc.Get("ui.about_noauth")) -//line views/stuff.qtpl:287 +//line views/stuff.qtpl:288 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:288 +//line views/stuff.qtpl:289 } -//line views/stuff.qtpl:288 +//line views/stuff.qtpl:289 qw422016.N().S(`

    `) -//line views/stuff.qtpl:290 +//line views/stuff.qtpl:291 qw422016.N().S(lc.Get("ui.about_hyphae", &l18n.Replacements{"link": "/list"})) -//line views/stuff.qtpl:290 +//line views/stuff.qtpl:291 qw422016.N().S(`

    `) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 } -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 func WriteAboutHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 StreamAboutHTML(qw422016, lc) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 } -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 func AboutHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 WriteAboutHTML(qb422016, lc) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 return qs422016 -//line views/stuff.qtpl:294 +//line views/stuff.qtpl:295 } -//line views/stuff.qtpl:296 +//line views/stuff.qtpl:297 func StreamCommonScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:296 +//line views/stuff.qtpl:297 qw422016.N().S(` `) -//line views/stuff.qtpl:297 +//line views/stuff.qtpl:298 for _, scriptPath := range cfg.CommonScripts { -//line views/stuff.qtpl:297 +//line views/stuff.qtpl:298 qw422016.N().S(` `) -//line views/stuff.qtpl:299 +//line views/stuff.qtpl:300 } -//line views/stuff.qtpl:299 +//line views/stuff.qtpl:300 qw422016.N().S(` `) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 } -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 func WriteCommonScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 } -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 func CommonScripts() string { -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 WriteCommonScripts(qb422016) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 return qs422016 -//line views/stuff.qtpl:300 +//line views/stuff.qtpl:301 }