Didn't have the chance to migrate //all// templates just yet. We'll get there.
* Implement yet another template system
* Move orphans to the new system and fix a bug in it
* Link orphans in the admin panel
* Move the backlink handlers to the web package
* Move auth routing to web
* Move /user-list to the new system
* Move change password and translate it
* Move stuff
* Move admin-related stuff to the web
* Move a lot of files into internal dir
Outside of it are web and stuff that needs further refactoring
* Fix static not loading and de-qtpl tree
* Move tree to internal
* Keep the globe on the same line #230
* Revert "Keep the globe on the same line #230"
This reverts commit ae78e5e459.
* Migrate templates from hypview: delete, edit, start empty and existing WIP
The delete media view was removed, I didn't even know it still existed as a GET. A rudiment.
* Make views multi-file and break compilation
* Megarefactoring of hypha views
* Auth-related stuffs
* Fix some of those weird imports
* Migrate cat views
* Fix cat js
* Lower standards
* Internalize trauma
55 lines
1.6 KiB
Go
55 lines
1.6 KiB
Go
package mycoopts
|
|
|
|
import (
|
|
"errors"
|
|
"git.sr.ht/~bouncepaw/mycomarkup/v5/options"
|
|
"github.com/bouncepaw/mycorrhiza/internal/cfg"
|
|
"github.com/bouncepaw/mycorrhiza/internal/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()
|
|
}
|