Compare commits
No commits in common. "614a654824372aaa81131c17122bd3463c006baa" and "91f2ef06c09b7dce9c5a9708f6d9d40ee157a90f" have entirely different histories.
614a654824
...
91f2ef06c0
2 changed files with 28 additions and 42 deletions
28
data.go
28
data.go
|
@ -32,7 +32,6 @@ type Config struct {
|
|||
Legal string `json:"legal" toml:"legal"`
|
||||
RelMeLinks []string `json:"rel_me_links" toml:"rel_me_links"`
|
||||
CustomPages []string `json:"custom_pages" toml:"custom_pages"`
|
||||
folder string
|
||||
}
|
||||
|
||||
type Person struct {
|
||||
|
@ -83,6 +82,23 @@ func getImage(s string) string {
|
|||
return golatt.GetStaticPath(s)
|
||||
}
|
||||
|
||||
func getPath(filename string) string {
|
||||
if !strings.Contains(configPath, "/") {
|
||||
return filename
|
||||
}
|
||||
sp := strings.Split(configPath, "/")
|
||||
before := strings.Join(sp[1:len(sp)-1], "/")
|
||||
if configPath[0] != '/' && !strings.HasPrefix(configPath, "./") {
|
||||
if len(before) == 0 {
|
||||
before = sp[0]
|
||||
} else {
|
||||
before = sp[0] + "/" + before
|
||||
}
|
||||
}
|
||||
before += "/"
|
||||
return before + filename
|
||||
}
|
||||
|
||||
func (c *Config) GetBackground() template.CSS {
|
||||
return c.Color.GetBackground()
|
||||
}
|
||||
|
@ -103,7 +119,7 @@ var legalContent template.HTML
|
|||
|
||||
func (c *Config) GetLegal() (template.HTML, error) {
|
||||
if legalContent == "" {
|
||||
b, err := os.ReadFile(c.folder + c.Legal)
|
||||
b, err := os.ReadFile(getPath(c.Legal))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -119,7 +135,6 @@ type CustomPage struct {
|
|||
Description string `json:"description" toml:"description"`
|
||||
Color *Color `json:"colors" toml:"colors"`
|
||||
Content string `json:"content" toml:"content"`
|
||||
folder string
|
||||
}
|
||||
|
||||
func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
|
||||
|
@ -129,7 +144,7 @@ func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
|
|||
}
|
||||
var pages []*CustomPage
|
||||
for _, cp := range c.CustomPages {
|
||||
b, err := os.ReadFile(c.folder + cp)
|
||||
b, err := os.ReadFile(getPath(cp))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -144,9 +159,6 @@ func (c *Config) LoadCustomPages() ([]*CustomPage, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
p.folder = getFolder(c.folder + cp)
|
||||
|
||||
pages = append(pages, &p)
|
||||
}
|
||||
return pages, nil
|
||||
|
@ -201,7 +213,7 @@ var contentsMap = map[string]template.HTML{}
|
|||
func (p *CustomPage) GetContent() (template.HTML, error) {
|
||||
res, ok := contentsMap[p.URI]
|
||||
if !ok {
|
||||
b, err := os.ReadFile(p.folder + p.Content)
|
||||
b, err := os.ReadFile(getPath(p.Content))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
30
main.go
30
main.go
|
@ -24,7 +24,6 @@ var (
|
|||
var (
|
||||
domain string
|
||||
configPath string
|
||||
publicDirPath string
|
||||
dev = false
|
||||
generateToml bool
|
||||
generateJson bool
|
||||
|
@ -34,7 +33,6 @@ var (
|
|||
func init() {
|
||||
flag.StringVar(&domain, "domain", "", "domain to use")
|
||||
flag.StringVar(&configPath, "config", "", "config to use")
|
||||
flag.StringVar(&publicDirPath, "public-dir", "", "public directory to use, default is 'public' inside the folder of your config")
|
||||
flag.BoolVar(&dev, "dev", dev, "dev mode enabled")
|
||||
flag.BoolVar(&generateJson, "generate-json-config", false, "generate a config example")
|
||||
flag.BoolVar(&generateToml, "generate-toml-config", false, "generate a config example")
|
||||
|
@ -77,30 +75,22 @@ func main() {
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
cfg.folder = getFolder(configPath)
|
||||
|
||||
customPages, err := cfg.LoadCustomPages()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
publicFolder := cfg.folder + "public"
|
||||
if len(publicDirPath) != 0 {
|
||||
publicFolder = publicDirPath
|
||||
}
|
||||
|
||||
var g *golatt.Golatt
|
||||
if dev {
|
||||
g = golatt.New(
|
||||
golatt.UsableEmbedFS("templates", templates),
|
||||
os.DirFS(publicFolder),
|
||||
os.DirFS(getPath("public")),
|
||||
os.DirFS("dist"),
|
||||
)
|
||||
} else {
|
||||
g = golatt.New(
|
||||
golatt.UsableEmbedFS("templates", templates),
|
||||
os.DirFS(publicFolder),
|
||||
os.DirFS(getPath("public")),
|
||||
golatt.UsableEmbedFS("dist", assets),
|
||||
)
|
||||
}
|
||||
|
@ -158,22 +148,6 @@ func main() {
|
|||
}
|
||||
}
|
||||
|
||||
func getFolder(path string) string {
|
||||
if !strings.Contains(path, "/") {
|
||||
return ""
|
||||
}
|
||||
sp := strings.Split(path, "/")
|
||||
folder := strings.Join(sp[1:len(sp)-1], "/")
|
||||
if path[0] != '/' && !strings.HasPrefix(path, "./") {
|
||||
if len(folder) == 0 {
|
||||
folder = sp[0]
|
||||
} else {
|
||||
folder = sp[0] + "/" + folder
|
||||
}
|
||||
}
|
||||
return folder + "/"
|
||||
}
|
||||
|
||||
func generateConfigFile(isToml bool) {
|
||||
cfg := Config{
|
||||
Image: "wallpaper.webp",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue