Documentation ¶
Overview ¶
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.
Index ¶
- 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
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompileFile ¶
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 ¶
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
Types ¶
type Options ¶
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 // ExcludeImports is a list of imports, which will not be imported while compiling template. ExcludedImports []string Funcs template.FuncMap }