diff --git a/internal/action/handler.go b/internal/action/handler.go index 2afa451..75b662c 100644 --- a/internal/action/handler.go +++ b/internal/action/handler.go @@ -60,6 +60,8 @@ func handle(cfg *config.Config, w http.ResponseWriter, r *http.Request) { if params.Ext == "wiki" { switch params.Action { + case "info": + Info(cfg, w, r, ¶ms) case "", "view": View(cfg, w, r, ¶ms) case "edit": diff --git a/internal/action/info.go b/internal/action/info.go new file mode 100644 index 0000000..b9f7088 --- /dev/null +++ b/internal/action/info.go @@ -0,0 +1,22 @@ +package action + +import ( + "net/http" + + "github.com/akikareha/himewiki/internal/config" + "github.com/akikareha/himewiki/internal/util" +) + + +func Info(cfg *config.Config, w http.ResponseWriter, r *http.Request, params *Params) { + public := config.Publish(cfg) + + tmpl := util.NewTemplate("info.html") + tmpl.Execute(w, struct { + SiteName string + Public config.Public + }{ + SiteName: cfg.Site.Name, + Public: public, + }) +} diff --git a/internal/config/public.go b/internal/config/public.go new file mode 100644 index 0000000..b637de3 --- /dev/null +++ b/internal/config/public.go @@ -0,0 +1,79 @@ +package config + +type Public struct { + Site struct { + Base string + Name string + Card string + } + + Wiki struct { + Front string + } + + Image struct { + Domains []string + Extensions []string + } + + Filter struct { + Agent string + System string + Prompt string + } + + ImageFilter struct { + Agent string + MaxLength string + MaxSize string + } +} + +func Publish(cfg *Config) Public { + return Public { + + Site: struct { + Base string + Name string + Card string + }{ + Base: cfg.Site.Base, + Name: cfg.Site.Name, + Card: cfg.Site.Card, + }, + + Wiki: struct { + Front string + }{ + Front: cfg.Wiki.Front, + }, + + Image: struct { + Domains []string + Extensions []string + }{ + Domains: cfg.Image.Domains, + Extensions: cfg.Image.Extensions, + }, + + Filter: struct { + Agent string + System string + Prompt string + }{ + Agent: cfg.Filter.Agent, + System: cfg.Filter.System, + Prompt: cfg.Filter.Prompt, + }, + + ImageFilter: struct { + Agent string + MaxLength string + MaxSize string + }{ + Agent: cfg.ImageFilter.Agent, + MaxLength: cfg.ImageFilter.MaxLength, + MaxSize: cfg.ImageFilter.MaxSize, + }, + } +} diff --git a/internal/util/templates/info.html b/internal/util/templates/info.html new file mode 100644 index 0000000..a6523fa --- /dev/null +++ b/internal/util/templates/info.html @@ -0,0 +1,106 @@ + + + + + + + + +Info - {{.SiteName}} + + + +
+ + + + +{{.SiteName}} + + +Back +
+ +

Info

+ +

Configurations

+ +

Site

+

+Base = {{.Public.Site.Base}} +

+

+Name = {{.Public.Site.Name}} +

+

+Card = {{.Public.Site.Card}} +

+

+Card +

+ +

Wiki

+

+Front = {{.Public.Wiki.Front}} +

+ +

Image

+

+Domains = +

+

+

+Extensions = +

+

+ +

Filter

+

+Agent = {{.Public.Filter.Agent}} +

+

+System = +

{{.Public.Filter.System}}
+

+

+Prompt = +

{{.Public.Filter.Prompt}}
+

+ +

ImageFilter

+

+Agent = {{.Public.ImageFilter.Agent}} +

+

+MaxLength = {{.Public.ImageFilter.MaxLength}} +

+

+MaxSize = {{.Public.ImageFilter.MaxSize}} +

+ +
+
+ + + + +{{.SiteName}} + + +Back +
+ + + diff --git a/internal/util/templates/view.html b/internal/util/templates/view.html index def37f7..ee310a8 100644 --- a/internal/util/templates/view.html +++ b/internal/util/templates/view.html @@ -37,6 +37,7 @@ Recent All Upload +Info

{{.Title}}

@@ -60,6 +61,7 @@ Recent All Upload +Info