From 85644925ecd53b7de96b8cd1574945d3b0a25de8 Mon Sep 17 00:00:00 2001 From: peefy Date: Tue, 9 Jul 2024 11:53:11 +0800 Subject: [PATCH] docs: add more ref bwtween guide and ref docs Signed-off-by: peefy --- docs/user_docs/guides/abstraction.md | 2 ++ docs/user_docs/guides/data-integration.md | 11 +++++++++++ docs/user_docs/guides/validation.md | 6 ------ .../current/user_docs/guides/abstraction.md | 2 ++ .../current/user_docs/guides/configuration.md | 4 ++-- .../current/user_docs/guides/data-integration.md | 11 +++++++++++ .../current/user_docs/guides/validation.md | 6 ------ .../version-0.4/user_docs/guides/configuration.md | 4 ++-- .../version-0.5/user_docs/guides/configuration.md | 4 ++-- .../version-0.6/user_docs/guides/configuration.md | 4 ++-- .../version-0.7/user_docs/guides/configuration.md | 4 ++-- .../version-0.8/user_docs/guides/configuration.md | 4 ++-- .../version-0.9/user_docs/guides/abstraction.md | 2 ++ .../version-0.9/user_docs/guides/configuration.md | 4 ++-- .../version-0.9/user_docs/guides/data-integration.md | 11 +++++++++++ .../version-0.9/user_docs/guides/validation.md | 6 ------ static/script/install-kcl-lsp.sh | 6 +++--- .../version-0.9/user_docs/guides/abstraction.md | 2 ++ .../version-0.9/user_docs/guides/data-integration.md | 11 +++++++++++ .../version-0.9/user_docs/guides/validation.md | 6 ------ 20 files changed, 69 insertions(+), 41 deletions(-) diff --git a/docs/user_docs/guides/abstraction.md b/docs/user_docs/guides/abstraction.md index cec40e2c..dd9a8c4f 100644 --- a/docs/user_docs/guides/abstraction.md +++ b/docs/user_docs/guides/abstraction.md @@ -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). diff --git a/docs/user_docs/guides/data-integration.md b/docs/user_docs/guides/data-integration.md index c05b2e7b..9c64f7ec 100644 --- a/docs/user_docs/guides/data-integration.md +++ b/docs/user_docs/guides/data-integration.md @@ -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. diff --git a/docs/user_docs/guides/validation.md b/docs/user_docs/guides/validation.md index b831a221..b7b77d11 100644 --- a/docs/user_docs/guides/validation.md +++ b/docs/user_docs/guides/validation.md @@ -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. diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/abstraction.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/abstraction.md index da590317..05b46dc4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/abstraction.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/abstraction.md @@ -146,4 +146,6 @@ spec: ## 更多信息 +想了解 KCL 是如何实现抽象的能力的?可以参阅[KCL 教程](/docs/reference/lang/tour)学习更多 KCL 语言功能。 + 除了手动维护配置外,我们还可以使用 KCL API 将**自动配置更改能力**集成到我们的应用程序中。有关 KCL 自动化能力的相关说明,请参阅[此处](/docs/user_docs/guides/automation)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/data-integration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/data-integration.md index 89511b2e..e42c910b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/data-integration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/data-integration.md @@ -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` 函数以同样的方式进行数据集成。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/validation.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/validation.md index 151c55c9..d45e5305 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/validation.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/user_docs/guides/validation.md @@ -91,9 +91,3 @@ kcl vet data.json schema.k ## 小结 KCL 是一种配置语言,通过其结构定义和用户定义的约束规则来支持数据验证。KCL Schema 中支持的验证类型包括范围、正则表达式、长度、枚举、可选/必需和条件。并且可以使用 KCL 验证工具或在此基础上构建的可视化产品来验证数据。 - -## 未来计划 - -KCL 校验能力的提升将逐渐围绕"静态化"方面展开工作,即在编译时,结合形式化验证的能力直接分析得出数据是否满足约束条件、约束条件是否冲突等结论,并且可以通过 IDE 实时透出约束错误,而无需在运行时发现错误。 - -我们还期望 KCL Schema 和约束可以作为一个包来管理(这个包只有 KCL 文件)。例如,Kubernetes 模型和约束可以开箱即用。用户可以生成配置或验证现有配置,并且可以通过 KCL 继承简单地扩展用户想要的模型和约束。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.4/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.4/user_docs/guides/configuration.md index 463461e6..8939acb8 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.4/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.4/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -117,4 +117,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.5/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.5/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.5/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.5/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.6/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.6/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.6/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.6/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.7/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.7/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.7/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.7/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.8/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.8/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.8/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.8/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/abstraction.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/abstraction.md index da590317..05b46dc4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/abstraction.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/abstraction.md @@ -146,4 +146,6 @@ spec: ## 更多信息 +想了解 KCL 是如何实现抽象的能力的?可以参阅[KCL 教程](/docs/reference/lang/tour)学习更多 KCL 语言功能。 + 除了手动维护配置外,我们还可以使用 KCL API 将**自动配置更改能力**集成到我们的应用程序中。有关 KCL 自动化能力的相关说明,请参阅[此处](/docs/user_docs/guides/automation)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/configuration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/configuration.md index 127505c9..0327747f 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/configuration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/configuration.md @@ -7,7 +7,7 @@ sidebar_position: 1 配置是软件系统的一个重要方面,由于不断发展的业务需求、基础设施需求和其他因素,这些系统会不断发生变化。通常,快速改变这些系统的行为可能具有挑战性,尤其是当这样做需要昂贵且耗时的重建和重新部署过程时。在这种情况下,仅仅对业务代码进行更改可能是不够的。幸运的是,配置提供了一种低开销的方式来修改系统功能。 -我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成JSON/YAML 和其他配置。 +我们可以根据需要将静态配置存储在 JSON 或 YAML 等文件中。此外,配置也可以存储在高级语言中,从而实现更灵活的配置。这种语言可以进行编码、呈现和静态配置。KCL 是一种提供此类功能的配置语言。开发人员可以编写 KCL 代码来生成 JSON/YAML 和其他配置。 ## 使用 KCL 编写配置代码 @@ -126,4 +126,4 @@ dbConfig: ## 小结 -通过使用KCL,我们可以生成更低低级别的数据配置。此外啊,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 +通过使用 KCL,我们可以生成更低低级别的数据配置。此外,我们通过 `-D` 标志设置动态参数以满足不同的场景需求。有关更多 KCL 的功能和教程,请参阅[此处](/docs/reference/lang/tour)。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/data-integration.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/data-integration.md index 89511b2e..e42c910b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/data-integration.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/data-integration.md @@ -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` 函数以同样的方式进行数据集成。 diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/validation.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/validation.md index 151c55c9..d45e5305 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/validation.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-0.9/user_docs/guides/validation.md @@ -91,9 +91,3 @@ kcl vet data.json schema.k ## 小结 KCL 是一种配置语言,通过其结构定义和用户定义的约束规则来支持数据验证。KCL Schema 中支持的验证类型包括范围、正则表达式、长度、枚举、可选/必需和条件。并且可以使用 KCL 验证工具或在此基础上构建的可视化产品来验证数据。 - -## 未来计划 - -KCL 校验能力的提升将逐渐围绕"静态化"方面展开工作,即在编译时,结合形式化验证的能力直接分析得出数据是否满足约束条件、约束条件是否冲突等结论,并且可以通过 IDE 实时透出约束错误,而无需在运行时发现错误。 - -我们还期望 KCL Schema 和约束可以作为一个包来管理(这个包只有 KCL 文件)。例如,Kubernetes 模型和约束可以开箱即用。用户可以生成配置或验证现有配置,并且可以通过 KCL 继承简单地扩展用户想要的模型和约束。 diff --git a/static/script/install-kcl-lsp.sh b/static/script/install-kcl-lsp.sh index 425b8c67..e4967692 100755 --- a/static/script/install-kcl-lsp.sh +++ b/static/script/install-kcl-lsp.sh @@ -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 @@ -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" } diff --git a/versioned_docs/version-0.9/user_docs/guides/abstraction.md b/versioned_docs/version-0.9/user_docs/guides/abstraction.md index cec40e2c..dd9a8c4f 100644 --- a/versioned_docs/version-0.9/user_docs/guides/abstraction.md +++ b/versioned_docs/version-0.9/user_docs/guides/abstraction.md @@ -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). diff --git a/versioned_docs/version-0.9/user_docs/guides/data-integration.md b/versioned_docs/version-0.9/user_docs/guides/data-integration.md index c05b2e7b..9c64f7ec 100644 --- a/versioned_docs/version-0.9/user_docs/guides/data-integration.md +++ b/versioned_docs/version-0.9/user_docs/guides/data-integration.md @@ -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. diff --git a/versioned_docs/version-0.9/user_docs/guides/validation.md b/versioned_docs/version-0.9/user_docs/guides/validation.md index b831a221..b7b77d11 100644 --- a/versioned_docs/version-0.9/user_docs/guides/validation.md +++ b/versioned_docs/version-0.9/user_docs/guides/validation.md @@ -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.