Categorygithub.com/go-corelibs/tmplstr
modulepackage
1.1.0
Repository: https://github.com/go-corelibs/tmplstr.git
Documentation: pkg.go.dev

# README

godoc codecov Go Report Card

tmplstr - text and html template utilities

A collection of utilities for working with text and html template source files.

Installation

> go get github.com/go-corelibs/tmplstr@latest

Examples

RemoveTemplateComments

func main() {
    cleaned := tmplstr.RemoveTemplateComments(`{{ _ "message" /* comment */ }}`)
    // cleaned == `{{ _ "message"  }}`
}

ParseTemplate

func main() {
    tree, _ := tmplstr.ParseTemplate(`before{{pipeline}}after`)
}

From the above example, calling tree.Format() would produce the following JSON text:

[
  {
    "text": "before"
  },
  {
    "action": {
      "open": "{{",
      "pipelines": [
        {
          "variables": [
            {
              "ident": "pipeline"
            }
          ]
        }
      ],
      "close": "}}"
    }
  },
  {
    "text": "after"
  }
]

Go-CoreLibs

Go-CoreLibs is a repository of shared code between the Go-Curses and Go-Enjin projects.

License

Copyright 2024 The Go-CoreLibs Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use file except in compliance with the License.
You may obtain a copy of the license at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

# Functions

ParseTemplate uses [github.com/alecthomas/participle/v2] to parse the given template file content into an abstract syntax tree.
PruneTemplateComments is like RemoveTemplateComments with a very fundamental difference, instead of using ScanCarve and ScanBothCarve, PruneTemplateComments uses ParseTemplate, walks the Variables in the Tree, setting all Variable.Comment values to nil and finally returning the rendered results of the modified Tree.
RemoveTemplateComments removes all C-style block comments from within template pipelines, preserving escaped and quoted comments, using [github.com/go-corelibs/strings] ScanCarve and ScanBothCarve making RemoveTemplateComments very fast compared to PruneTemplateComments.

# Structs

Action represents a single text or html template action See: https://pkg.go.dev/text/template#hdr-Actions.
No description provided by the author
Grouping represents a grouping Pipeline Example: in `{{ ident (inner pipeline) }}` the Grouping is the `(inner pipeline)` portion.
Pipeline defines the source text representing a list of Variables which may also be piped into another Pipeline instance.
No description provided by the author

# Type aliases

Pipelines is a list of Pipeline instances.
Tree is a list of Branch instances and is the top of the ParseTemplate abstract syntax tree.
No description provided by the author
VariablesWalkFn is the function signature for Variable-walking methods.