summaryrefslogtreecommitdiff
path: root/content/posts/2021-02-13-jsonnet.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--content/posts/2021-02-13-jsonnet/index.md (renamed from content/posts/2021-02-13-jsonnet.md)14
1 files changed, 8 insertions, 6 deletions
diff --git a/content/posts/2021-02-13-jsonnet.md b/content/posts/2021-02-13-jsonnet/index.md
index 9b03e5d..4018d46 100644
--- a/content/posts/2021-02-13-jsonnet.md
+++ b/content/posts/2021-02-13-jsonnet/index.md
@@ -1,6 +1,6 @@
---
date: "2021-02-13T22:08:19Z"
-image: files/2021-02-13-jsonnet_logo.webp
+image: /posts/2021-02-13-jsonnet/jsonnet_logo.webp
tags:
- go
- it
@@ -14,6 +14,8 @@ title: Jsonnet
вызывает вау-эффект и буквально переворачивает всё верх дном. На днях для меня
такой технологией стал [Jsonnet](https://jsonnet.org/) от Google.
+![Jsonnet](/posts/2021-02-13-jsonnet/jsonnet_logo.webp)
+
В кратце, это надмножество JSON являющееся языком описания шаблонов. Пока звучит
не очень круто, да? На деле это офигенный Тьюринг полный функциональный язык,
результатом выполнения которого будет сформированый JSON (и не только)
@@ -41,17 +43,17 @@ https://jsonnet.org/learning/tutorial.html.
гипотетической CI системы:
```jsonnet
-local map(arr, predicate) = // определяем функцию map
+local map(arr, predicate) = / определяем функцию map
if std.length(arr) == 0 then
[]
else
[
predicate(arr[0])
- ] + map(arr[1:], predicate); // функциональненько!
+ ] + map(arr[1:], predicate); / функциональненько!
local tasks = [['go1.14', '1.14-alpine'],['go1.15', '1.15-alpine'],['go1.16-RC', '1.16-rc-alpine']];
-local commands = ['go build', 'go test']; // Общая часть
-{ // Результирующий JSON
- pipeline: map(tasks, function (task) { // Вызов map от tasks
+local commands = ['go build', 'go test']; / Общая часть
+{ / Результирующий JSON
+ pipeline: map(tasks, function (task) { / Вызов map от tasks
name: task[0],
image: "golang:"+task[1],
commands: commands,