import "github.com/eknkc/pug"
Package pug.go is an elegant templating engine for Go Programming Language. It is a port of Pug template engine, previously known as Jade.
Pug.go compiles .pug templates to standard go templates (https://golang.org/pkg/html/template/) and returns a *template.Template
instance.
While there is no JavaScript environment present, Pug.go provides basic expression support over go template syntax. Such as a(href="/user/" + UserId)
would concatenate two strings. You can use arithmetic, logical and comparison operators as well as ternery if operator.
Please check Pug Language Reference for details: https://pugjs.org/api/getting-started.html.
Differences between Pug and Pug.go (items with checkboxes are planned, just not present yet)
- Multiline attributes are not supported
-
&attributes
syntax is not supported -
case
statement is not supported - Filters are not supported
- Mixin rest arguments are not supported.
- Mixin blocks are not supported. Go templates do not allow variable template includes so this is tricky.
while
loops are not supported as Go templates do not provide it. We could use recursive templates or channel range loops etc but that would be unnecessary complexity.- Unbuffered code blocks are not possible as we don't have a JS environment. However it is possible to define variables using
- var x = "foo"
syntax as an exception.
Apart from these missing features, everything in the language reference should be supported.
- func CompileFile(filename string, options ...Options) (*template.Template, error)
- func CompileString(input string, options ...Options) (*template.Template, error)
- func ParseFile(filename string, options ...Options) (string, error)
- func ParseString(input string, options ...Options) (string, error)
- type Options
func CompileFile(filename string, options ...Options) (*template.Template, error)
Parses and compiles the contents of supplied filename. Returns corresponding Go Template (html/templates) instance. Necessary runtime functions will be injected and the template will be ready to be executed
func CompileString(input string, options ...Options) (*template.Template, error)
Parses and compiles the supplied template string. Returns corresponding Go Template (html/templates) instance. Necessary runtime functions will be injected and the template will be ready to be executed
func ParseFile(filename string, options ...Options) (string, error)
Parses the contents of supplied filename template and return the Go Template source You would not be using this unless debugging / checking the output. Please use Compile method to obtain a template instance directly
func ParseString(input string, options ...Options) (string, error)
Parses the supplied template string and return the Go Template source You would not be using this unless debugging / checking the output. Please use Compile method to obtain a template instance directly
type Options struct {
// Setting if pretty printing is enabled.
// Pretty printing ensures that the output html is properly indented and in human readable form.
// If disabled, produced HTML is compact. This might be more suitable in production environments.
// Default: false
PrettyPrint bool
// A Dir implements FileSystem using the native file system restricted to a specific directory tree.
//
// While the FileSystem.Open method takes '/'-separated paths, a Dir's string value is a filename on the native file system, not a URL, so it is separated by filepath.Separator, which isn't necessarily '/'.
// By default, a os package is used but you can supply a different filesystem using this option
Dir compiler.Dir
}
Generated by godoc2md