Skip to content

Commit

Permalink
Merge pull request #408 from Peefy/add-more-ref-between-guide-and-ref…
Browse files Browse the repository at this point in the history
…-doc

docs: add more ref between guide and ref docs
  • Loading branch information
Peefy authored Jul 9, 2024
2 parents e3e70ed + 8564492 commit 357b2c9
Show file tree
Hide file tree
Showing 20 changed files with 69 additions and 41 deletions.
2 changes: 2 additions & 0 deletions docs/user_docs/guides/abstraction.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,6 @@ Through the use of KCL, we are able to separate the abstraction and implementati
## Further Information
Want to know how KCL achieves its abstraction ability? You can refer to the [KCL Tutorial](/docs/reference/lang/tour) to learn more about KCL language features.
In addition to manually maintaining the configuration, we can also use KCL APIs to integrate **automatic configuration changes** into our applications. For specific instructions, please refer to [here](/docs/user_docs/guides/automation).
11 changes: 11 additions & 0 deletions docs/user_docs/guides/data-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ server_yaml: |
- 8080
```
In addition, KCL supports using the `file` module to read data from files, allowing you to read YAML data from files and make further operations and modifications.

```python
import file
import yaml
deployment = yaml.decode(file.read("deployment.yaml")) | {
metadata.name = "override_name"
}
```

### 3. JSON Integration

Similarly, for JSON data, we can use `json.encode` and `json.decode` function performs data integration in the same way.
Expand Down
6 changes: 0 additions & 6 deletions docs/user_docs/guides/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,3 @@ kcl vet data.json schema.k
## Summary

KCL is a configuration language that supports data validation through its structure definition and user-defined constraint rules. Validation kinds supported in KCL schema include range, regex, length, enum, optional/required, and condition. To validate data, a schema is defined with validation rules written using the check keyword, and the data is validated using the validation tool or a visualization product built on top of it.

## Further Information

The improvement of KCL validation capabilities will gradually focus on the "static" aspect, that is, at compile time, combined with the ability of formal validation, it can directly analyze whether the data meets the constraints, whether the constraints conflict with each other, etc., and can be exposed in real-time through the IDE.

We also expect that KCL models and constraints can be managed as a package (this package has only KCL files). For example, the Kubernetes models and constraints can be used out of the box. Users can generate configurations or verify existing configurations, and can simply extend the models and constraints users want through KCL inheritance.
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,6 @@ spec:
## 更多信息
想了解 KCL 是如何实现抽象的能力的?可以参阅[KCL 教程](/docs/reference/lang/tour)学习更多 KCL 语言功能。
除了手动维护配置外,我们还可以使用 KCL API 将**自动配置更改能力**集成到我们的应用程序中。有关 KCL 自动化能力的相关说明,请参阅[此处](/docs/user_docs/guides/automation)。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ server_yaml: |
- 8080
```
此外,KCL 支持使用 `file` 模块从文件中读取数据,您可以从文件中读取 YAML 数据并进行进一步的操作与修改。

```python
import file
import yaml
deployment = yaml.decode(file.read("deployment.yaml")) | {
metadata.name = "override_name"
}
```

### 3. JSON 集成

同样的,对于 JSON 数据,我们可以使用 `json.encode` 和 `json.decode` 函数以同样的方式进行数据集成。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,3 @@ kcl vet data.json schema.k
## 小结

KCL 是一种配置语言,通过其结构定义和用户定义的约束规则来支持数据验证。KCL Schema 中支持的验证类型包括范围、正则表达式、长度、枚举、可选/必需和条件。并且可以使用 KCL 验证工具或在此基础上构建的可视化产品来验证数据。

## 未来计划

KCL 校验能力的提升将逐渐围绕"静态化"方面展开工作,即在编译时,结合形式化验证的能力直接分析得出数据是否满足约束条件、约束条件是否冲突等结论,并且可以通过 IDE 实时透出约束错误,而无需在运行时发现错误。

我们还期望 KCL Schema 和约束可以作为一个包来管理(这个包只有 KCL 文件)。例如,Kubernetes 模型和约束可以开箱即用。用户可以生成配置或验证现有配置,并且可以通过 KCL 继承简单地扩展用户想要的模型和约束。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -117,4 +117,4 @@ dbConfig:

## 小结

通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,6 @@ spec:
## 更多信息
想了解 KCL 是如何实现抽象的能力的?可以参阅[KCL 教程](/docs/reference/lang/tour)学习更多 KCL 语言功能。
除了手动维护配置外,我们还可以使用 KCL API 将**自动配置更改能力**集成到我们的应用程序中。有关 KCL 自动化能力的相关说明,请参阅[此处](/docs/user_docs/guides/automation)。
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 1

配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。

我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。
我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。

## 使用 KCL 编写配置代码

Expand Down Expand Up @@ -126,4 +126,4 @@ dbConfig:
## 小结
通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ server_yaml: |
- 8080
```
此外,KCL 支持使用 `file` 模块从文件中读取数据,您可以从文件中读取 YAML 数据并进行进一步的操作与修改。

```python
import file
import yaml
deployment = yaml.decode(file.read("deployment.yaml")) | {
metadata.name = "override_name"
}
```

### 3. JSON 集成

同样的,对于 JSON 数据,我们可以使用 `json.encode` 和 `json.decode` 函数以同样的方式进行数据集成。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,3 @@ kcl vet data.json schema.k
## 小结

KCL 是一种配置语言,通过其结构定义和用户定义的约束规则来支持数据验证。KCL Schema 中支持的验证类型包括范围、正则表达式、长度、枚举、可选/必需和条件。并且可以使用 KCL 验证工具或在此基础上构建的可视化产品来验证数据。

## 未来计划

KCL 校验能力的提升将逐渐围绕"静态化"方面展开工作,即在编译时,结合形式化验证的能力直接分析得出数据是否满足约束条件、约束条件是否冲突等结论,并且可以通过 IDE 实时透出约束错误,而无需在运行时发现错误。

我们还期望 KCL Schema 和约束可以作为一个包来管理(这个包只有 KCL 文件)。例如,Kubernetes 模型和约束可以开箱即用。用户可以生成配置或验证现有配置,并且可以通过 KCL 继承简单地扩展用户想要的模型和约束。
6 changes: 3 additions & 3 deletions static/script/install-kcl-lsp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ installFile() {
if [ -f "$KCL_CLI_FILE" ]; then
updateProfile "$KCLVM_HOME_DIR" && info "Finished" "kcl-language-server installed into $KCL_INSTALL_DIR/bin successfully."
# Check the KCL CLI version
chmod +x kcl-language-server
runAsRoot kcl-language-server version
chmod +x $KCL_INSTALL_DIR/bin/kcl-language-server
runAsRoot $KCL_INSTALL_DIR/bin/kcl-language-server version
else
error "Failed to install KCL language server into $KCL_CLI_FILE"
exit 1
Expand Down Expand Up @@ -334,7 +334,7 @@ cleanup() {
installCompleted() {
echo -e "\nPlease add ${KCL_INSTALL_DIR}/bin into your PATH"
echo -e "Remeber run the command source ~/.bash_profile or source ~/.bashrc to ensure your PATH is effective"
echo -e "Reopen a terminal and execute `kcl-language-server version` to ensure successful installation"
echo -e "Reopen a terminal and execute 'kcl-language-server version' to ensure successful installation"
echo -e "\nTo get started with KCL language server, please visit https://kcl-lang.io/docs/user_docs/getting-started/kcl-quick-start"
}

Expand Down
2 changes: 2 additions & 0 deletions versioned_docs/version-0.9/user_docs/guides/abstraction.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,6 @@ Through the use of KCL, we are able to separate the abstraction and implementati
## Further Information
Want to know how KCL achieves its abstraction ability? You can refer to the [KCL Tutorial](/docs/reference/lang/tour) to learn more about KCL language features.
In addition to manually maintaining the configuration, we can also use KCL APIs to integrate **automatic configuration changes** into our applications. For specific instructions, please refer to [here](/docs/user_docs/guides/automation).
11 changes: 11 additions & 0 deletions versioned_docs/version-0.9/user_docs/guides/data-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ server_yaml: |
- 8080
```
In addition, KCL supports using the `file` module to read data from files, allowing you to read YAML data from files and make further operations and modifications.

```python
import file
import yaml
deployment = yaml.decode(file.read("deployment.yaml")) | {
metadata.name = "override_name"
}
```

### 3. JSON Integration

Similarly, for JSON data, we can use `json.encode` and `json.decode` function performs data integration in the same way.
Expand Down
Loading

0 comments on commit 357b2c9

Please sign in to comment.