Skip to content

Latest commit

 

History

History
89 lines (63 loc) · 1.95 KB

File metadata and controls

89 lines (63 loc) · 1.95 KB

jsonte

The JSON Templating Engine (abbreviated as jsonte) is a streamlined templating engine specifically designed for JSON. It is optimized for use in Minecraft Bedrock addons, which frequently demand extensive JSON that can often be conveniently generated using a modest amount of scripting. Notably, jsonte incorporates its own query language.

Installation

With regolith:

regolith install jsonte

From source (requires Go v1.18 or later):

go install github.com/MCDevKit/jsonte@latest

Development

Prerequisites

Setup

# Clone the repository
git clone https://github.com/MCDevKit/jsonte
cd jsonte
# Install dependencies
go mod vendor
cd scripts
# Setup ANTLR
./setup_env.ps1
# Compile grammar
./compile_antlr.ps1
# Go back to the root directory
cd ..

Building

go build github.com/MCDevKit/jsonte

Testing

go test ./...

Testing without network access:

go test -tags=quick ./...

Benchmarking

go test ./bench -bench . -benchmem

The command above executes the benchmark suite located in bench/bench_test.go. Adjust flags such as -count, -benchtime, or a narrower -bench expression to focus on specific scenarios.

Useful subsets:

  • Array primitives: go test ./bench -bench Array -benchmem
  • JSON processing pipeline: go test ./bench -bench JSON -benchmem

Notes

Before any modifications to grammar/JsonTemplate.g4 can be made, they must be compiled using the scripts/compile_antlr.ps1 script. Due to an existing problem with the parser generation in Go, you will need to manually add each new rule to the visit method found in the jsonte/expression_visitor.go file.