jsonnet

Delphi源码 2025-08-17

jsonnet数据模板语言

有关jsonnet和文档的介绍,请访问我们的网站。

该存储库包含原始实现。您还可以尝试使用Go- jsonnet ,这是一种较新的实现,在某些情况下是更快的数量级,建议优先使用C ++版本。

访问我们的讨论论坛。

安全注意:如果您需要处理不信任的输入(不信任的jsonnet代码),则最好不要使用C ++实现,因为它不会用于该用例。预期的用例是用于评估您 /您的组织所撰写的jsonnet代码,并且信任不要恶意。

软件包

jsonnet可在Homebrew上使用:

 brew install jsonnet

jsonnet可在MSYS2上找到:

 pacman -S mingw-w64-clang-i686- jsonnet
 pacman -S mingw-w64-clang-x86_64- jsonnet
 pacman -S mingw-w64-i686- jsonnet
 pacman -S mingw-w64-x86_64- jsonnet
 pacman -S mingw-w64-ucrt-x86_64- jsonnet

Python结合在PYPI上:

 pip install jsonnet

您还可以使用VCPKG依赖项管理器下载并安装jsonnet :

jsonnet">
 git clone https://git*hub*.*com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install jsonnet

Microsoft团队成员和社区贡献者保持了VCPKG的jsonnet端口。如果该版本已过时,请在VCPKG存储库上创建问题或拉出请求。

建筑jsonnet

您可以使用GCC或Clang来构建jsonnet 。请注意,在最近版本的MacOS, /usr/bin/gcc/usr/bin/g++上实际上是clang的,因此没有差异。

makefile

要使用GCC构建jsonnet ,请运行:

 make

要与Clang构建jsonnet ,请运行:

 make CC=clang CXX=clang++

要运行输出二进制,请运行:

 ./ jsonnet

要运行改革者,请运行:

 ./ jsonnet fmt

巴泽尔

也支持Bazel构建。如果尚未安装Bazel,请安装。然后,运行以下命令以使用GCC构建:

 bazel build -c opt //cmd:all

要使用Clang构建,请使用以下两个选项之一:

 env CC=clang CXX=clang++ bazel build -c opt //cmd:all

# OR

bazel build -c opt --action_env=CC=clang --action_env=CXX=clang++ //cmd:all

这构建了cmd/BUILD中定义的jsonnetjsonnet fmt目标。要启动输出二进制文件,请运行:

jsonnet bazel-bin/cmd/ jsonnet fmt">
 bazel-bin/cmd/ jsonnet
bazel-bin/cmd/ jsonnet fmt

cmake

 cmake . -Bbuild
 cmake --build build --target run_tests

贡献

请参阅我们网站上的贡献页面。

开发jsonnet

运行测试

运行全面的套房:

 make test

本地为网站服务

您需要一个doc/js/lib jsonnet .wasm

jsonnet .wasm">
 wget https://**jsonnet*.org/js/lib jsonnet .wasm -O doc/js/lib jsonnet .wasm

或者,您可以自己构建它,这需要检查Go jsonnet 。有关说明,请参见该回购中的readme.md。

标准库以doc/_stdlib_gen/stdlib-content. jsonnet 。使用以下命令将HTML(Jekyll的输入)重新生成:

 tools/scripts/update_web_content.sh

然后,从存储库的根部您可以使用Jekyll生成并为网站提供服务(您需要版本4.3.0或更高版本):

 jekyll serve -s doc/

这应该在本地建立和服务网站,并在更改任何基础文件时自动重建。

下载源码

通过命令行克隆项目:

git clone https://github.com/google/jsonnet.git