# README
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.