If you are a developer, you know what you are doing then considering public your theme to Magma repo for everybody to use. Fork magma repo, create a folder in /src/themes/
and add your theme there. Test your theme carefully before create a Pull Request
.
If you are not a developer, you can start from src/themes/custom
and use it as a starter kit.
Your index.html
will be a Go template file. Just like a normal html but with Go actions in {{}}
to render the data. Currently those data will be pass to you in runtime:
|Name|Type|Description|
|-|-|-|
|Config|WebsiteConfig|Configuration defined in /common/config.yaml
|
|Language|Language|Current language loaded from /languages/en.yaml
|
|Contents|GroupData[]|Array of content defined in /common/data.yaml
|
type WebsiteConfig struct {
Title string `yaml:"title"`
Description string `yaml:"description"`
Language string `yaml:"language"`
Localization string `yaml:"localization"`
UseMetric bool `yaml:"useMetric"`
Theme string `yaml:"theme"`
}
type GroupData struct {
Title string `yaml:"title"`
Columns []ColumnData `yaml:"columns"`
}
type ColumnData struct {
Title string `yaml:"title"`
Bookmarks []BookmarkData `yaml:"bookmarks"`
}
type BookmarkData struct {
Name string `yaml:"name"`
Icon string `yaml:"icon"`
Url string `yaml:"url"`
}