Skip to content
Thanatat Tamtan edited this page Sep 23, 2023 · 8 revisions

Hime can read config from YAML/JSON file.

Sometime frontend developer don't want to write Go 🤯

They can write YAML/JSON instead 😬

For example

# config.yaml
routes:
  home: /
  about-us: /about-us
  auth.sign-in: /auth/sign-in
  auth.signout: /auth/signout
  admin.dashboard: /admin/dashboard
  admin.users: /admin/users
globals:
  base_url: http://localhost:8080
  app_name: Hime Example
templates:
- dir: template/web
  root: root
  minify: true
  preload:
  - layout.tmpl
  - components/footer.tmpl
  list:
    web.home:
    - home.tmpl
    web.auth/sign-in:
    - auth/sign-in.tmpl
    - auth/layout.tmpl
- dir: template/admin
  root: root
  minify: true
  preload:
  - layout.tmpl
  list:
    admin.dashboard:
    - dashboard.tmpl
    admin.users:
    - users.tmpl
app.ParseConfigFile("config.yaml")

Split multiple files

When parsing config, hime won't remove old config, but will add or override if new config contain that field.

# landing.yaml
globals:
  base_url: http://localhost:8080
routes:
  home: /
  about-us: /about-us
# backoffice.yaml
routes:
  auth.sign-in: /auth/sign-in
  auth.signout: /auth/signout
  admin.dashboard: /admin/dashboard
  admin.users: /admin/users
app.ParseConfigFile("landing.yaml")
app.ParseConfigFile("backoffice.yaml")

Separate template config

# web.yaml
dir: template/web
root: root
minify: true
preload:
- layout.tmpl
- components/footer.tmpl
list:
  web.home:
  - home.tmpl
  web.auth/sign-in:
  - auth/sign-in.tmpl
  - auth/layout.tmpl
# admin.yaml
dir: template/admin
root: root
minify: true
preload:
- layout.tmpl
list:
  admin.dashboard:
  - dashboard.tmpl
  admin.users:
  - users.tmpl
app.Template().ParseConfigFile("web.yaml")
app.Template().ParseConfigFile("admin.yaml")

Clone this wiki locally