mirror of
https://github.com/osmarks/mycorrhiza.git
synced 2024-10-30 03:36:16 +00:00
Backlinks: Fix the bug
This commit is contained in:
parent
c0495fbfcc
commit
9713c18b6b
@ -4,9 +4,9 @@ import (
|
|||||||
"github.com/bouncepaw/mycomarkup/v5"
|
"github.com/bouncepaw/mycomarkup/v5"
|
||||||
"github.com/bouncepaw/mycomarkup/v5/links"
|
"github.com/bouncepaw/mycomarkup/v5/links"
|
||||||
"github.com/bouncepaw/mycomarkup/v5/mycocontext"
|
"github.com/bouncepaw/mycomarkup/v5/mycocontext"
|
||||||
"github.com/bouncepaw/mycomarkup/v5/options"
|
|
||||||
"github.com/bouncepaw/mycomarkup/v5/tools"
|
"github.com/bouncepaw/mycomarkup/v5/tools"
|
||||||
"github.com/bouncepaw/mycorrhiza/hyphae"
|
"github.com/bouncepaw/mycorrhiza/hyphae"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/mycoopts"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UpdateBacklinksAfterEdit is a creation/editing hook for backlinks index
|
// UpdateBacklinksAfterEdit is a creation/editing hook for backlinks index
|
||||||
@ -35,7 +35,7 @@ func extractHyphaLinks(h hyphae.Hypha) []string {
|
|||||||
|
|
||||||
// extractHyphaLinksFromContent extracts local hypha links from the provided text.
|
// extractHyphaLinksFromContent extracts local hypha links from the provided text.
|
||||||
func extractHyphaLinksFromContent(hyphaName string, contents string) []string {
|
func extractHyphaLinksFromContent(hyphaName string, contents string) []string {
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(contents, options.Options{HyphaName: hyphaName}.FillTheRest())
|
ctx, _ := mycocontext.ContextFromStringInput(contents, mycoopts.MarkupOptions(hyphaName))
|
||||||
linkVisitor, getLinks := tools.LinkVisitor(ctx)
|
linkVisitor, getLinks := tools.LinkVisitor(ctx)
|
||||||
// Ignore the result of BlockTree because we call it for linkVisitor.
|
// Ignore the result of BlockTree because we call it for linkVisitor.
|
||||||
_ = mycomarkup.BlockTree(ctx, linkVisitor)
|
_ = mycomarkup.BlockTree(ctx, linkVisitor)
|
||||||
|
@ -3,7 +3,7 @@ package help
|
|||||||
// stuff.go is used for meta stuff about the wiki or all hyphae at once.
|
// stuff.go is used for meta stuff about the wiki or all hyphae at once.
|
||||||
import (
|
import (
|
||||||
"github.com/bouncepaw/mycomarkup/v5"
|
"github.com/bouncepaw/mycomarkup/v5"
|
||||||
"github.com/bouncepaw/mycorrhiza/shroom"
|
"github.com/bouncepaw/mycorrhiza/mycoopts"
|
||||||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"io"
|
"io"
|
||||||
@ -78,7 +78,7 @@ func handlerHelp(w http.ResponseWriter, rq *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: change for the function that uses byte array when there is such function in mycomarkup.
|
// TODO: change for the function that uses byte array when there is such function in mycomarkup.
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(string(content), shroom.MarkupOptions(articlePath))
|
ctx, _ := mycocontext.ContextFromStringInput(string(content), mycoopts.MarkupOptions(articlePath))
|
||||||
ast := mycomarkup.BlockTree(ctx)
|
ast := mycomarkup.BlockTree(ctx)
|
||||||
result := mycomarkup.BlocksToHTML(ctx, ast)
|
result := mycomarkup.BlocksToHTML(ctx, ast)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
1
main.go
1
main.go
@ -1,6 +1,7 @@
|
|||||||
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=views
|
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=views
|
||||||
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=tree
|
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=tree
|
||||||
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=history
|
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=history
|
||||||
|
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=mycoopts
|
||||||
// Command mycorrhiza is a program that runs a mycorrhiza wiki.
|
// Command mycorrhiza is a program that runs a mycorrhiza wiki.
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
54
mycoopts/mycoopts.go
Normal file
54
mycoopts/mycoopts.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package mycoopts
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"github.com/bouncepaw/mycomarkup/v5/options"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/cfg"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/hyphae"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/interwiki"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
func MarkupOptions(hyphaName string) options.Options {
|
||||||
|
return options.Options{
|
||||||
|
HyphaName: hyphaName,
|
||||||
|
WebSiteURL: cfg.URL,
|
||||||
|
TransclusionSupported: true,
|
||||||
|
RedLinksSupported: true,
|
||||||
|
InterwikiSupported: true,
|
||||||
|
HyphaExists: func(hyphaName string) bool {
|
||||||
|
switch hyphae.ByName(hyphaName).(type) {
|
||||||
|
case *hyphae.EmptyHypha:
|
||||||
|
return false
|
||||||
|
default:
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
IterateHyphaNamesWith: func(λ func(string)) {
|
||||||
|
for h := range hyphae.YieldExistingHyphae() {
|
||||||
|
λ(h.CanonicalName())
|
||||||
|
}
|
||||||
|
},
|
||||||
|
HyphaHTMLData: func(hyphaName string) (rawText, binaryBlock string, err error) {
|
||||||
|
switch h := hyphae.ByName(hyphaName).(type) {
|
||||||
|
case *hyphae.EmptyHypha:
|
||||||
|
err = errors.New("Hypha " + hyphaName + " does not exist")
|
||||||
|
case *hyphae.TextualHypha:
|
||||||
|
rawText, err = hyphae.FetchMycomarkupFile(h)
|
||||||
|
case *hyphae.MediaHypha:
|
||||||
|
rawText, err = hyphae.FetchMycomarkupFile(h)
|
||||||
|
binaryBlock = mediaRaw(h)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
},
|
||||||
|
LocalTargetCanonicalName: util.CanonicalName,
|
||||||
|
LocalLinkHref: func(hyphaName string) string {
|
||||||
|
return "/hypha/" + util.CanonicalName(hyphaName)
|
||||||
|
},
|
||||||
|
LocalImgSrc: func(hyphaName string) string {
|
||||||
|
return "/binary/" + util.CanonicalName(hyphaName)
|
||||||
|
},
|
||||||
|
LinkHrefFormatForInterwikiPrefix: interwiki.HrefLinkFormatFor,
|
||||||
|
ImgSrcFormatForInterwikiPrefix: interwiki.ImgSrcFormatFor,
|
||||||
|
}.FillTheRest()
|
||||||
|
}
|
@ -2,11 +2,8 @@
|
|||||||
|
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/l18n" %}
|
{% import "github.com/bouncepaw/mycorrhiza/l18n" %}
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/util" %}
|
|
||||||
|
|
||||||
{% func beautifulLink(hyphaName string) %}<a href="/hypha/{%s= hyphaName %}">{%s util.BeautifulName(hyphaName) %}</a>{% endfunc %}
|
{% func mediaRaw(h *hyphae.MediaHypha) %}{%= Media(h, l18n.New("en", "en")) %}{% endfunc %}
|
||||||
|
|
||||||
{% func MediaRaw(h *hyphae.MediaHypha) %}{%= Media(h, l18n.New("en", "en")) %}{% endfunc %}
|
|
||||||
|
|
||||||
{% func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) %}
|
{% func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) %}
|
||||||
{% switch filepath.Ext(h.MediaFilePath()) %}
|
{% switch filepath.Ext(h.MediaFilePath()) %}
|
190
mycoopts/view.qtpl.go
Normal file
190
mycoopts/view.qtpl.go
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
// Code generated by qtc from "view.qtpl". DO NOT EDIT.
|
||||||
|
// See https://github.com/valyala/quicktemplate for details.
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:1
|
||||||
|
package mycoopts
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:1
|
||||||
|
import "path/filepath"
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:3
|
||||||
|
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:4
|
||||||
|
import "github.com/bouncepaw/mycorrhiza/l18n"
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
import (
|
||||||
|
qtio422016 "io"
|
||||||
|
|
||||||
|
qt422016 "github.com/valyala/quicktemplate"
|
||||||
|
)
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
var (
|
||||||
|
_ = qtio422016.Copy
|
||||||
|
_ = qt422016.AcquireByteBuffer
|
||||||
|
)
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
func streammediaRaw(qw422016 *qt422016.Writer, h *hyphae.MediaHypha) {
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
StreamMedia(qw422016, h, l18n.New("en", "en"))
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
}
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
func writemediaRaw(qq422016 qtio422016.Writer, h *hyphae.MediaHypha) {
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
streammediaRaw(qw422016, h)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
qt422016.ReleaseWriter(qw422016)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
}
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
func mediaRaw(h *hyphae.MediaHypha) string {
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
writemediaRaw(qb422016, h)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
qs422016 := string(qb422016.B)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
return qs422016
|
||||||
|
//line mycoopts/view.qtpl:6
|
||||||
|
}
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:8
|
||||||
|
func StreamMedia(qw422016 *qt422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
||||||
|
//line mycoopts/view.qtpl:8
|
||||||
|
qw422016.N().S(`
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:9
|
||||||
|
switch filepath.Ext(h.MediaFilePath()) {
|
||||||
|
//line mycoopts/view.qtpl:11
|
||||||
|
case ".jpg", ".gif", ".png", ".webp", ".svg", ".ico":
|
||||||
|
//line mycoopts/view.qtpl:11
|
||||||
|
qw422016.N().S(`
|
||||||
|
<div class="binary-container binary-container_with-img">
|
||||||
|
<a href="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:13
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:13
|
||||||
|
qw422016.N().S(`"><img src="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:13
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:13
|
||||||
|
qw422016.N().S(`"/></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:16
|
||||||
|
case ".ogg", ".webm", ".mp4":
|
||||||
|
//line mycoopts/view.qtpl:16
|
||||||
|
qw422016.N().S(`
|
||||||
|
<div class="binary-container binary-container_with-video">
|
||||||
|
<video controls>
|
||||||
|
<source src="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:19
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:19
|
||||||
|
qw422016.N().S(`"/>
|
||||||
|
<p>`)
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.E().S(lc.Get("ui.media_novideo"))
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.N().S(` <a href="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.N().S(`">`)
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.E().S(lc.Get("ui.media_novideo_link"))
|
||||||
|
//line mycoopts/view.qtpl:20
|
||||||
|
qw422016.N().S(`</a></p>
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:24
|
||||||
|
case ".mp3":
|
||||||
|
//line mycoopts/view.qtpl:24
|
||||||
|
qw422016.N().S(`
|
||||||
|
<div class="binary-container binary-container_with-audio">
|
||||||
|
<audio controls>
|
||||||
|
<source src="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:27
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:27
|
||||||
|
qw422016.N().S(`"/>
|
||||||
|
<p>`)
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.E().S(lc.Get("ui.media_noaudio"))
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.N().S(` <a href="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.N().S(`">`)
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.E().S(lc.Get("ui.media_noaudio_link"))
|
||||||
|
//line mycoopts/view.qtpl:28
|
||||||
|
qw422016.N().S(`</a></p>
|
||||||
|
</audio>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:32
|
||||||
|
default:
|
||||||
|
//line mycoopts/view.qtpl:32
|
||||||
|
qw422016.N().S(`
|
||||||
|
<div class="binary-container binary-container_with-nothing">
|
||||||
|
<p><a href="/binary/`)
|
||||||
|
//line mycoopts/view.qtpl:34
|
||||||
|
qw422016.N().S(h.CanonicalName())
|
||||||
|
//line mycoopts/view.qtpl:34
|
||||||
|
qw422016.N().S(`">`)
|
||||||
|
//line mycoopts/view.qtpl:34
|
||||||
|
qw422016.E().S(lc.Get("ui.media_download"))
|
||||||
|
//line mycoopts/view.qtpl:34
|
||||||
|
qw422016.N().S(`</a></p>
|
||||||
|
</div>
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:36
|
||||||
|
}
|
||||||
|
//line mycoopts/view.qtpl:36
|
||||||
|
qw422016.N().S(`
|
||||||
|
`)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
}
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
func WriteMedia(qq422016 qtio422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
StreamMedia(qw422016, h, lc)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
qt422016.ReleaseWriter(qw422016)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
}
|
||||||
|
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) string {
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
WriteMedia(qb422016, h, lc)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
qs422016 := string(qb422016.B)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
return qs422016
|
||||||
|
//line mycoopts/view.qtpl:37
|
||||||
|
}
|
@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/bouncepaw/mycomarkup/v5/mycocontext"
|
"github.com/bouncepaw/mycomarkup/v5/mycocontext"
|
||||||
"github.com/bouncepaw/mycorrhiza/cfg"
|
"github.com/bouncepaw/mycorrhiza/cfg"
|
||||||
"github.com/bouncepaw/mycorrhiza/hyphae"
|
"github.com/bouncepaw/mycorrhiza/hyphae"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/mycoopts"
|
||||||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
@ -40,7 +41,7 @@ func setDefaultHeaderLinks() {
|
|||||||
// parseHeaderLinks extracts all rocketlinks from the given text and saves them as header links.
|
// parseHeaderLinks extracts all rocketlinks from the given text and saves them as header links.
|
||||||
func parseHeaderLinks(text string) {
|
func parseHeaderLinks(text string) {
|
||||||
viewutil.HeaderLinks = []viewutil.HeaderLink{}
|
viewutil.HeaderLinks = []viewutil.HeaderLink{}
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(text, MarkupOptions(""))
|
ctx, _ := mycocontext.ContextFromStringInput(text, mycoopts.MarkupOptions(""))
|
||||||
// We call for side-effects
|
// We call for side-effects
|
||||||
_ = mycomarkup.BlockTree(ctx, func(block blocks.Block) {
|
_ = mycomarkup.BlockTree(ctx, func(block blocks.Block) {
|
||||||
switch launchpad := block.(type) {
|
switch launchpad := block.(type) {
|
||||||
|
@ -1,55 +1 @@
|
|||||||
package shroom
|
package shroom
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"github.com/bouncepaw/mycomarkup/v5/options"
|
|
||||||
"github.com/bouncepaw/mycorrhiza/cfg"
|
|
||||||
"github.com/bouncepaw/mycorrhiza/hyphae"
|
|
||||||
"github.com/bouncepaw/mycorrhiza/interwiki"
|
|
||||||
"github.com/bouncepaw/mycorrhiza/util"
|
|
||||||
"github.com/bouncepaw/mycorrhiza/views"
|
|
||||||
)
|
|
||||||
|
|
||||||
func MarkupOptions(hyphaName string) options.Options {
|
|
||||||
return options.Options{
|
|
||||||
HyphaName: hyphaName,
|
|
||||||
WebSiteURL: cfg.URL,
|
|
||||||
TransclusionSupported: true,
|
|
||||||
RedLinksSupported: true,
|
|
||||||
InterwikiSupported: true,
|
|
||||||
HyphaExists: func(hyphaName string) bool {
|
|
||||||
switch hyphae.ByName(hyphaName).(type) {
|
|
||||||
case *hyphae.EmptyHypha:
|
|
||||||
return false
|
|
||||||
default:
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
IterateHyphaNamesWith: func(λ func(string)) {
|
|
||||||
for h := range hyphae.YieldExistingHyphae() {
|
|
||||||
λ(h.CanonicalName())
|
|
||||||
}
|
|
||||||
},
|
|
||||||
HyphaHTMLData: func(hyphaName string) (rawText, binaryBlock string, err error) {
|
|
||||||
switch h := hyphae.ByName(hyphaName).(type) {
|
|
||||||
case *hyphae.EmptyHypha:
|
|
||||||
err = errors.New("Hypha " + hyphaName + " does not exist")
|
|
||||||
case *hyphae.TextualHypha:
|
|
||||||
rawText, err = hyphae.FetchMycomarkupFile(h)
|
|
||||||
case *hyphae.MediaHypha:
|
|
||||||
rawText, err = hyphae.FetchMycomarkupFile(h)
|
|
||||||
binaryBlock = views.MediaRaw(h)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
},
|
|
||||||
LocalTargetCanonicalName: util.CanonicalName,
|
|
||||||
LocalLinkHref: func(hyphaName string) string {
|
|
||||||
return "/hypha/" + util.CanonicalName(hyphaName)
|
|
||||||
},
|
|
||||||
LocalImgSrc: func(hyphaName string) string {
|
|
||||||
return "/binary/" + util.CanonicalName(hyphaName)
|
|
||||||
},
|
|
||||||
LinkHrefFormatForInterwikiPrefix: interwiki.HrefLinkFormatFor,
|
|
||||||
ImgSrcFormatForInterwikiPrefix: interwiki.ImgSrcFormatFor,
|
|
||||||
}.FillTheRest()
|
|
||||||
}
|
|
||||||
|
@ -1,234 +0,0 @@
|
|||||||
// Code generated by qtc from "hypha.qtpl". DO NOT EDIT.
|
|
||||||
// See https://github.com/valyala/quicktemplate for details.
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:1
|
|
||||||
package views
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:1
|
|
||||||
import "path/filepath"
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:3
|
|
||||||
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:4
|
|
||||||
import "github.com/bouncepaw/mycorrhiza/l18n"
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:5
|
|
||||||
import "github.com/bouncepaw/mycorrhiza/util"
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
import (
|
|
||||||
qtio422016 "io"
|
|
||||||
|
|
||||||
qt422016 "github.com/valyala/quicktemplate"
|
|
||||||
)
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
var (
|
|
||||||
_ = qtio422016.Copy
|
|
||||||
_ = qt422016.AcquireByteBuffer
|
|
||||||
)
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
func streambeautifulLink(qw422016 *qt422016.Writer, hyphaName string) {
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016.N().S(`<a href="/hypha/`)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016.N().S(hyphaName)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016.N().S(`">`)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016.E().S(util.BeautifulName(hyphaName))
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016.N().S(`</a>`)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
func writebeautifulLink(qq422016 qtio422016.Writer, hyphaName string) {
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
streambeautifulLink(qw422016, hyphaName)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qt422016.ReleaseWriter(qw422016)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
func beautifulLink(hyphaName string) string {
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
writebeautifulLink(qb422016, hyphaName)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qs422016 := string(qb422016.B)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
return qs422016
|
|
||||||
//line views/hypha.qtpl:7
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
func StreamMediaRaw(qw422016 *qt422016.Writer, h *hyphae.MediaHypha) {
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
StreamMedia(qw422016, h, l18n.New("en", "en"))
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
func WriteMediaRaw(qq422016 qtio422016.Writer, h *hyphae.MediaHypha) {
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
StreamMediaRaw(qw422016, h)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
qt422016.ReleaseWriter(qw422016)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
func MediaRaw(h *hyphae.MediaHypha) string {
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
WriteMediaRaw(qb422016, h)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
qs422016 := string(qb422016.B)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
return qs422016
|
|
||||||
//line views/hypha.qtpl:9
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:11
|
|
||||||
func StreamMedia(qw422016 *qt422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
|
||||||
//line views/hypha.qtpl:11
|
|
||||||
qw422016.N().S(`
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:12
|
|
||||||
switch filepath.Ext(h.MediaFilePath()) {
|
|
||||||
//line views/hypha.qtpl:14
|
|
||||||
case ".jpg", ".gif", ".png", ".webp", ".svg", ".ico":
|
|
||||||
//line views/hypha.qtpl:14
|
|
||||||
qw422016.N().S(`
|
|
||||||
<div class="binary-container binary-container_with-img">
|
|
||||||
<a href="/binary/`)
|
|
||||||
//line views/hypha.qtpl:16
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:16
|
|
||||||
qw422016.N().S(`"><img src="/binary/`)
|
|
||||||
//line views/hypha.qtpl:16
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:16
|
|
||||||
qw422016.N().S(`"/></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:19
|
|
||||||
case ".ogg", ".webm", ".mp4":
|
|
||||||
//line views/hypha.qtpl:19
|
|
||||||
qw422016.N().S(`
|
|
||||||
<div class="binary-container binary-container_with-video">
|
|
||||||
<video controls>
|
|
||||||
<source src="/binary/`)
|
|
||||||
//line views/hypha.qtpl:22
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:22
|
|
||||||
qw422016.N().S(`"/>
|
|
||||||
<p>`)
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.E().S(lc.Get("ui.media_novideo"))
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.N().S(` <a href="/binary/`)
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.N().S(`">`)
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.E().S(lc.Get("ui.media_novideo_link"))
|
|
||||||
//line views/hypha.qtpl:23
|
|
||||||
qw422016.N().S(`</a></p>
|
|
||||||
</video>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:27
|
|
||||||
case ".mp3":
|
|
||||||
//line views/hypha.qtpl:27
|
|
||||||
qw422016.N().S(`
|
|
||||||
<div class="binary-container binary-container_with-audio">
|
|
||||||
<audio controls>
|
|
||||||
<source src="/binary/`)
|
|
||||||
//line views/hypha.qtpl:30
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:30
|
|
||||||
qw422016.N().S(`"/>
|
|
||||||
<p>`)
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.E().S(lc.Get("ui.media_noaudio"))
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.N().S(` <a href="/binary/`)
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.N().S(`">`)
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.E().S(lc.Get("ui.media_noaudio_link"))
|
|
||||||
//line views/hypha.qtpl:31
|
|
||||||
qw422016.N().S(`</a></p>
|
|
||||||
</audio>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:35
|
|
||||||
default:
|
|
||||||
//line views/hypha.qtpl:35
|
|
||||||
qw422016.N().S(`
|
|
||||||
<div class="binary-container binary-container_with-nothing">
|
|
||||||
<p><a href="/binary/`)
|
|
||||||
//line views/hypha.qtpl:37
|
|
||||||
qw422016.N().S(h.CanonicalName())
|
|
||||||
//line views/hypha.qtpl:37
|
|
||||||
qw422016.N().S(`">`)
|
|
||||||
//line views/hypha.qtpl:37
|
|
||||||
qw422016.E().S(lc.Get("ui.media_download"))
|
|
||||||
//line views/hypha.qtpl:37
|
|
||||||
qw422016.N().S(`</a></p>
|
|
||||||
</div>
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:39
|
|
||||||
}
|
|
||||||
//line views/hypha.qtpl:39
|
|
||||||
qw422016.N().S(`
|
|
||||||
`)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
func WriteMedia(qq422016 qtio422016.Writer, h *hyphae.MediaHypha, lc *l18n.Localizer) {
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
StreamMedia(qw422016, h, lc)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
qt422016.ReleaseWriter(qw422016)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
}
|
|
||||||
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
func Media(h *hyphae.MediaHypha, lc *l18n.Localizer) string {
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
WriteMedia(qb422016, h, lc)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
qs422016 := string(qb422016.B)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
return qs422016
|
|
||||||
//line views/hypha.qtpl:40
|
|
||||||
}
|
|
@ -1,7 +1,8 @@
|
|||||||
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
|
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/backlinks" %}
|
{% import "github.com/bouncepaw/mycorrhiza/backlinks" %}
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/user" %}
|
{% import "github.com/bouncepaw/mycorrhiza/cfg" %}
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
|
||||||
|
{% import "github.com/bouncepaw/mycorrhiza/user" %}
|
||||||
|
{% import "github.com/bouncepaw/mycorrhiza/util" %}
|
||||||
{% import "github.com/bouncepaw/mycorrhiza/viewutil" %}
|
{% import "github.com/bouncepaw/mycorrhiza/viewutil" %}
|
||||||
|
|
||||||
{% func hyphaInfoEntry(h hyphae.Hypha, u *user.User, action, displayText string) %}
|
{% func hyphaInfoEntry(h hyphae.Hypha, u *user.User, action, displayText string) %}
|
||||||
@ -35,3 +36,5 @@
|
|||||||
<script src="{%s scriptPath %}"></script>
|
<script src="{%s scriptPath %}"></script>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfunc %}
|
{% endfunc %}
|
||||||
|
|
||||||
|
{% func beautifulLink(hyphaName string) %}<a href="/hypha/{%s= hyphaName %}">{%s util.BeautifulName(hyphaName) %}</a>{% endfunc %}
|
||||||
|
@ -5,217 +5,261 @@
|
|||||||
package views
|
package views
|
||||||
|
|
||||||
//line views/nav.qtpl:1
|
//line views/nav.qtpl:1
|
||||||
import "github.com/bouncepaw/mycorrhiza/cfg"
|
|
||||||
|
|
||||||
//line views/nav.qtpl:2
|
|
||||||
import "github.com/bouncepaw/mycorrhiza/backlinks"
|
import "github.com/bouncepaw/mycorrhiza/backlinks"
|
||||||
|
|
||||||
//line views/nav.qtpl:3
|
//line views/nav.qtpl:2
|
||||||
import "github.com/bouncepaw/mycorrhiza/user"
|
import "github.com/bouncepaw/mycorrhiza/cfg"
|
||||||
|
|
||||||
//line views/nav.qtpl:4
|
//line views/nav.qtpl:3
|
||||||
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
import "github.com/bouncepaw/mycorrhiza/hyphae"
|
||||||
|
|
||||||
|
//line views/nav.qtpl:4
|
||||||
|
import "github.com/bouncepaw/mycorrhiza/user"
|
||||||
|
|
||||||
//line views/nav.qtpl:5
|
//line views/nav.qtpl:5
|
||||||
|
import "github.com/bouncepaw/mycorrhiza/util"
|
||||||
|
|
||||||
|
//line views/nav.qtpl:6
|
||||||
import "github.com/bouncepaw/mycorrhiza/viewutil"
|
import "github.com/bouncepaw/mycorrhiza/viewutil"
|
||||||
|
|
||||||
//line views/nav.qtpl:7
|
//line views/nav.qtpl:8
|
||||||
import (
|
import (
|
||||||
qtio422016 "io"
|
qtio422016 "io"
|
||||||
|
|
||||||
qt422016 "github.com/valyala/quicktemplate"
|
qt422016 "github.com/valyala/quicktemplate"
|
||||||
)
|
)
|
||||||
|
|
||||||
//line views/nav.qtpl:7
|
//line views/nav.qtpl:8
|
||||||
var (
|
var (
|
||||||
_ = qtio422016.Copy
|
_ = qtio422016.Copy
|
||||||
_ = qt422016.AcquireByteBuffer
|
_ = qt422016.AcquireByteBuffer
|
||||||
)
|
)
|
||||||
|
|
||||||
//line views/nav.qtpl:7
|
//line views/nav.qtpl:8
|
||||||
func streamhyphaInfoEntry(qw422016 *qt422016.Writer, h hyphae.Hypha, u *user.User, action, displayText string) {
|
func streamhyphaInfoEntry(qw422016 *qt422016.Writer, h hyphae.Hypha, u *user.User, action, displayText string) {
|
||||||
//line views/nav.qtpl:7
|
//line views/nav.qtpl:8
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:8
|
//line views/nav.qtpl:9
|
||||||
if u.CanProceed(action) {
|
if u.CanProceed(action) {
|
||||||
//line views/nav.qtpl:8
|
//line views/nav.qtpl:9
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
<li class="hypha-info__entry hypha-info__entry_`)
|
<li class="hypha-info__entry hypha-info__entry_`)
|
||||||
//line views/nav.qtpl:9
|
//line views/nav.qtpl:10
|
||||||
qw422016.E().S(action)
|
qw422016.E().S(action)
|
||||||
//line views/nav.qtpl:9
|
//line views/nav.qtpl:10
|
||||||
qw422016.N().S(`">
|
qw422016.N().S(`">
|
||||||
<a class="hypha-info__link" href="/`)
|
<a class="hypha-info__link" href="/`)
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.E().S(action)
|
qw422016.E().S(action)
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.N().S(`/`)
|
qw422016.N().S(`/`)
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.E().S(h.CanonicalName())
|
qw422016.E().S(h.CanonicalName())
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.N().S(`">`)
|
qw422016.N().S(`">`)
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.E().S(displayText)
|
qw422016.E().S(displayText)
|
||||||
//line views/nav.qtpl:10
|
//line views/nav.qtpl:11
|
||||||
qw422016.N().S(`</a>
|
qw422016.N().S(`</a>
|
||||||
</li>
|
</li>
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:12
|
//line views/nav.qtpl:13
|
||||||
}
|
}
|
||||||
//line views/nav.qtpl:12
|
//line views/nav.qtpl:13
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
func writehyphaInfoEntry(qq422016 qtio422016.Writer, h hyphae.Hypha, u *user.User, action, displayText string) {
|
func writehyphaInfoEntry(qq422016 qtio422016.Writer, h hyphae.Hypha, u *user.User, action, displayText string) {
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
streamhyphaInfoEntry(qw422016, h, u, action, displayText)
|
streamhyphaInfoEntry(qw422016, h, u, action, displayText)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
qt422016.ReleaseWriter(qw422016)
|
qt422016.ReleaseWriter(qw422016)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
func hyphaInfoEntry(h hyphae.Hypha, u *user.User, action, displayText string) string {
|
func hyphaInfoEntry(h hyphae.Hypha, u *user.User, action, displayText string) string {
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
writehyphaInfoEntry(qb422016, h, u, action, displayText)
|
writehyphaInfoEntry(qb422016, h, u, action, displayText)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
qs422016 := string(qb422016.B)
|
qs422016 := string(qb422016.B)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
return qs422016
|
return qs422016
|
||||||
//line views/nav.qtpl:13
|
//line views/nav.qtpl:14
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:15
|
//line views/nav.qtpl:16
|
||||||
func streamhyphaInfo(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha) {
|
func streamhyphaInfo(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha) {
|
||||||
//line views/nav.qtpl:15
|
//line views/nav.qtpl:16
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:17
|
//line views/nav.qtpl:18
|
||||||
u := meta.U
|
u := meta.U
|
||||||
lc := meta.Lc
|
lc := meta.Lc
|
||||||
backs := backlinks.BacklinksCount(h)
|
backs := backlinks.BacklinksCount(h)
|
||||||
|
|
||||||
//line views/nav.qtpl:20
|
//line views/nav.qtpl:21
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
<nav class="hypha-info">
|
<nav class="hypha-info">
|
||||||
<ul class="hypha-info__list">
|
<ul class="hypha-info__list">
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:23
|
//line views/nav.qtpl:24
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "history", lc.Get("ui.history_link"))
|
streamhyphaInfoEntry(qw422016, h, u, "history", lc.Get("ui.history_link"))
|
||||||
//line views/nav.qtpl:23
|
//line views/nav.qtpl:24
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:24
|
//line views/nav.qtpl:25
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "rename", lc.Get("ui.rename_link"))
|
streamhyphaInfoEntry(qw422016, h, u, "rename", lc.Get("ui.rename_link"))
|
||||||
//line views/nav.qtpl:24
|
//line views/nav.qtpl:25
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:25
|
//line views/nav.qtpl:26
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "delete", lc.Get("ui.delete_link"))
|
streamhyphaInfoEntry(qw422016, h, u, "delete", lc.Get("ui.delete_link"))
|
||||||
//line views/nav.qtpl:25
|
//line views/nav.qtpl:26
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:26
|
//line views/nav.qtpl:27
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "text", lc.Get("ui.text_link"))
|
streamhyphaInfoEntry(qw422016, h, u, "text", lc.Get("ui.text_link"))
|
||||||
//line views/nav.qtpl:26
|
//line views/nav.qtpl:27
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:27
|
//line views/nav.qtpl:28
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "media", lc.Get("ui.media_link"))
|
streamhyphaInfoEntry(qw422016, h, u, "media", lc.Get("ui.media_link"))
|
||||||
//line views/nav.qtpl:27
|
//line views/nav.qtpl:28
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:28
|
//line views/nav.qtpl:29
|
||||||
streamhyphaInfoEntry(qw422016, h, u, "backlinks", lc.GetPlural("ui.backlinks_link", backs))
|
streamhyphaInfoEntry(qw422016, h, u, "backlinks", lc.GetPlural("ui.backlinks_link", backs))
|
||||||
//line views/nav.qtpl:28
|
//line views/nav.qtpl:29
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
func writehyphaInfo(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha) {
|
func writehyphaInfo(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha) {
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
streamhyphaInfo(qw422016, meta, h)
|
streamhyphaInfo(qw422016, meta, h)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
qt422016.ReleaseWriter(qw422016)
|
qt422016.ReleaseWriter(qw422016)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
func hyphaInfo(meta viewutil.Meta, h hyphae.Hypha) string {
|
func hyphaInfo(meta viewutil.Meta, h hyphae.Hypha) string {
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
writehyphaInfo(qb422016, meta, h)
|
writehyphaInfo(qb422016, meta, h)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
qs422016 := string(qb422016.B)
|
qs422016 := string(qb422016.B)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
return qs422016
|
return qs422016
|
||||||
//line views/nav.qtpl:31
|
//line views/nav.qtpl:32
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:33
|
//line views/nav.qtpl:34
|
||||||
func streamcommonScripts(qw422016 *qt422016.Writer) {
|
func streamcommonScripts(qw422016 *qt422016.Writer) {
|
||||||
//line views/nav.qtpl:33
|
//line views/nav.qtpl:34
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:34
|
//line views/nav.qtpl:35
|
||||||
for _, scriptPath := range cfg.CommonScripts {
|
for _, scriptPath := range cfg.CommonScripts {
|
||||||
//line views/nav.qtpl:34
|
//line views/nav.qtpl:35
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
<script src="`)
|
<script src="`)
|
||||||
//line views/nav.qtpl:35
|
//line views/nav.qtpl:36
|
||||||
qw422016.E().S(scriptPath)
|
qw422016.E().S(scriptPath)
|
||||||
//line views/nav.qtpl:35
|
//line views/nav.qtpl:36
|
||||||
qw422016.N().S(`"></script>
|
qw422016.N().S(`"></script>
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:36
|
//line views/nav.qtpl:37
|
||||||
}
|
}
|
||||||
//line views/nav.qtpl:36
|
//line views/nav.qtpl:37
|
||||||
qw422016.N().S(`
|
qw422016.N().S(`
|
||||||
`)
|
`)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
func writecommonScripts(qq422016 qtio422016.Writer) {
|
func writecommonScripts(qq422016 qtio422016.Writer) {
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
streamcommonScripts(qw422016)
|
streamcommonScripts(qw422016)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
qt422016.ReleaseWriter(qw422016)
|
qt422016.ReleaseWriter(qw422016)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
}
|
}
|
||||||
|
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
func commonScripts() string {
|
func commonScripts() string {
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
qb422016 := qt422016.AcquireByteBuffer()
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
writecommonScripts(qb422016)
|
writecommonScripts(qb422016)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
qs422016 := string(qb422016.B)
|
qs422016 := string(qb422016.B)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
qt422016.ReleaseByteBuffer(qb422016)
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
return qs422016
|
return qs422016
|
||||||
//line views/nav.qtpl:37
|
//line views/nav.qtpl:38
|
||||||
|
}
|
||||||
|
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
func streambeautifulLink(qw422016 *qt422016.Writer, hyphaName string) {
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016.N().S(`<a href="/hypha/`)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016.N().S(hyphaName)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016.N().S(`">`)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016.E().S(util.BeautifulName(hyphaName))
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016.N().S(`</a>`)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
}
|
||||||
|
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
func writebeautifulLink(qq422016 qtio422016.Writer, hyphaName string) {
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
streambeautifulLink(qw422016, hyphaName)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qt422016.ReleaseWriter(qw422016)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
}
|
||||||
|
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
func beautifulLink(hyphaName string) string {
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qb422016 := qt422016.AcquireByteBuffer()
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
writebeautifulLink(qb422016, hyphaName)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qs422016 := string(qb422016.B)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
qt422016.ReleaseByteBuffer(qb422016)
|
||||||
|
//line views/nav.qtpl:40
|
||||||
|
return qs422016
|
||||||
|
//line views/nav.qtpl:40
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package web
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/bouncepaw/mycomarkup/v5"
|
"github.com/bouncepaw/mycomarkup/v5"
|
||||||
|
"github.com/bouncepaw/mycorrhiza/mycoopts"
|
||||||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -208,7 +209,7 @@ func handlerUploadText(w http.ResponseWriter, rq *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if action == "Preview" {
|
if action == "Preview" {
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(textData, shroom.MarkupOptions(hyphaName))
|
ctx, _ := mycocontext.ContextFromStringInput(textData, mycoopts.MarkupOptions(hyphaName))
|
||||||
|
|
||||||
util.HTTP200Page(
|
util.HTTP200Page(
|
||||||
w,
|
w,
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/bouncepaw/mycomarkup/v5"
|
"github.com/bouncepaw/mycomarkup/v5"
|
||||||
"github.com/bouncepaw/mycorrhiza/files"
|
"github.com/bouncepaw/mycorrhiza/files"
|
||||||
"github.com/bouncepaw/mycorrhiza/shroom"
|
"github.com/bouncepaw/mycorrhiza/mycoopts"
|
||||||
"github.com/bouncepaw/mycorrhiza/viewutil"
|
"github.com/bouncepaw/mycorrhiza/viewutil"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
@ -124,7 +124,7 @@ func handlerRevision(w http.ResponseWriter, rq *http.Request) {
|
|||||||
}
|
}
|
||||||
textContents, err = history.FileAtRevision(mycoFilePath, revHash)
|
textContents, err = history.FileAtRevision(mycoFilePath, revHash)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(textContents, shroom.MarkupOptions(hyphaName))
|
ctx, _ := mycocontext.ContextFromStringInput(textContents, mycoopts.MarkupOptions(hyphaName))
|
||||||
contents = mycomarkup.BlocksToHTML(ctx, mycomarkup.BlockTree(ctx))
|
contents = mycomarkup.BlocksToHTML(ctx, mycomarkup.BlockTree(ctx))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) {
|
|||||||
case hyphae.ExistingHypha:
|
case hyphae.ExistingHypha:
|
||||||
fileContentsT, errT := os.ReadFile(h.TextFilePath())
|
fileContentsT, errT := os.ReadFile(h.TextFilePath())
|
||||||
if errT == nil {
|
if errT == nil {
|
||||||
ctx, _ := mycocontext.ContextFromStringInput(string(fileContentsT), shroom.MarkupOptions(hyphaName))
|
ctx, _ := mycocontext.ContextFromStringInput(string(fileContentsT), mycoopts.MarkupOptions(hyphaName))
|
||||||
getOpenGraph, descVisitor, imgVisitor := tools.OpenGraphVisitors(ctx)
|
getOpenGraph, descVisitor, imgVisitor := tools.OpenGraphVisitors(ctx)
|
||||||
ast := mycomarkup.BlockTree(ctx, descVisitor, imgVisitor)
|
ast := mycomarkup.BlockTree(ctx, descVisitor, imgVisitor)
|
||||||
contents = mycomarkup.BlocksToHTML(ctx, ast)
|
contents = mycomarkup.BlocksToHTML(ctx, ast)
|
||||||
@ -204,7 +204,7 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) {
|
|||||||
}
|
}
|
||||||
switch h := h.(type) {
|
switch h := h.(type) {
|
||||||
case *hyphae.MediaHypha:
|
case *hyphae.MediaHypha:
|
||||||
contents = views.Media(h, lc) + contents
|
contents = mycoopts.Media(h, lc) + contents
|
||||||
}
|
}
|
||||||
|
|
||||||
util.HTTP200Page(w,
|
util.HTTP200Page(w,
|
||||||
|
Loading…
Reference in New Issue
Block a user