SkillAgentSearch skills...

Pug

Go port of Pug (jade) template engine

Install / Use

/learn @eknkc/Pug
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

pug

import "github.com/eknkc/pug"

<a name="pkg-overview">Overview</a>

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 (<a href="https://golang.org/pkg/html/template/">https://golang.org/pkg/html/template/</a>) 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: <a href="https://pugjs.org/api/getting-started.html">https://pugjs.org/api/getting-started.html</a>.

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.

<a name="pkg-index">Index</a>

<a name="pkg-files">Package files</a>

doc.go pug.go

<a name="CompileFile">func</a> CompileFile

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

<a name="CompileString">func</a> CompileString

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

<a name="ParseFile">func</a> ParseFile

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

<a name="ParseString">func</a> ParseString

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

<a name="Options">type</a> 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
}

Generated by godoc2md

View on GitHub
GitHub Stars50
CategoryDevelopment
Updated7mo ago
Forks6

Languages

Go

Security Score

92/100

Audited on Aug 31, 2025

No findings