mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 23:40:35 +01:00
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
|
// Copyright 2017 Gerasimos Maropoulos, ΓΜ. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package view
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// NoLayout disables the configuration's layout for a specific execution.
|
||
|
const NoLayout = "iris.nolayout"
|
||
|
|
||
|
// returns empty if it's no layout or empty layout and empty configuration's layout.
|
||
|
func getLayout(layout string, globalLayout string) string {
|
||
|
if layout == NoLayout {
|
||
|
return ""
|
||
|
}
|
||
|
|
||
|
if layout == "" && globalLayout != "" {
|
||
|
return globalLayout
|
||
|
}
|
||
|
|
||
|
return layout
|
||
|
}
|
||
|
|
||
|
// Options should contains the dynamic options for the engine's ExecuteWriter.
|
||
|
type Options interface {
|
||
|
// the per-execute layout,
|
||
|
// most view engines will have a static configuration field for that too.
|
||
|
GetLayout() string
|
||
|
// should returns the dynamic binding data, which will be used inside the template file
|
||
|
GetData() interface{}
|
||
|
} // this Options interface is implemented inside context, in order to use one import path for all context's methods.
|
||
|
|
||
|
// Engine is the interface which all viwe engines should be implemented in order to be adapted inside Iris.
|
||
|
type Engine interface {
|
||
|
// Load should load the templates from a directory of by binary(assets/go-bindata).
|
||
|
Load() error
|
||
|
// ExecuteWriter should execute a template by its filename with an optional layout and bindingData.
|
||
|
ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
|
||
|
// Ext should return the final file extension which this view engine is responsible to render.
|
||
|
Ext() string
|
||
|
}
|