Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: 添加文档 #917

Open
wants to merge 10 commits into
base: refactor/develop
Choose a base branch
from
Open

docs: 添加文档 #917

wants to merge 10 commits into from

Conversation

gene9831
Copy link
Collaborator

@gene9831 gene9831 commented Dec 3, 2024

English | 简体中文

PR

PR Checklist

Please check if your PR fulfills the following requirements:

  • The commit message follows our Commit Message Guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • Built its own designer, fully self-validated

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

Background and solution

添加文档

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

遗留事项

  • 部分图片缺失。存在 not-found, public_sys-resources 链接的图片
  • html表格转换成markdown原生表格

Summary by CodeRabbit

  • New Features

    • Comprehensive documentation structure introduced, including chapters on User Guide, Platform Development Guide, and Website Documentation.
    • New sections and articles added to enhance user navigation and understanding of features.
    • Detailed guides on creating and developing applications, designers, and material asset packages.
    • Introduction of advanced features such as conditional rendering, loop rendering, and event binding.
    • New API documentation covering various functionalities and endpoints.
  • Documentation

    • Expanded and organized documentation to improve clarity and accessibility for end-users.
    • Visual aids added to enhance understanding of processes and features.
  • Bug Fixes

    • Corrections made to existing documentation for improved accuracy and usability.

Copy link
Contributor

coderabbitai bot commented Dec 3, 2024

Walkthrough

This pull request introduces a comprehensive documentation update for the TinyEngine low-code platform, significantly expanding and restructuring the documentation across multiple directories. The changes create a well-organized, multi-chapter documentation system covering user guides, platform development, ecosystem details, and practical use cases. The documentation is primarily written in Chinese and provides in-depth explanations of the platform's features, capabilities, and usage methods.

Changes

File/Directory Change Summary
docs/catalog.json Comprehensive JSON restructuring with three main chapters: User Guide, Platform Development Guide, and Website Documentation
docs/index.md New table of contents with detailed section and subsection links
docs/about-* New documentation sections for applications, designer, and materials
docs/advanced-features/* Expanded tutorials on advanced features like state management, component usage, and utility methods
docs/api/* Detailed API documentation for canvas, materials, backend services, and code generation
docs/extension-capabilities-* New sections on plugin development, meta services, and code customization
docs/generateCatalogMd.js New utility script for generating markdown from catalog JSON

Suggested labels

documentation, ospp-2024, low-code, user-guide

Suggested reviewers

  • hexqi
  • lizhijie429

Poem

🐰 Hop, hop, through docs so bright,
Low-code magic takes its flight!
Chapters bloom like spring's delight,
TinyEngine's wisdom shines so white,
A rabbit's guide to coding's might! 🚀

Possibly related PRs

Tip

CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command @coderabbitai generate docstrings to have CodeRabbit automatically generate docstrings for your pull request. We would love to hear your feedback on Discord.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added document refactor-main refactor/develop branch feature labels Dec 3, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 39

🧹 Outside diff range and nitpick comments (123)
docs/新手指引/简介.md (2)

23-23: 修正中文语法用词

在"强大的开放物料设计"中,"强大的"作为形容词修饰"开放"时,应使用"地"而不是"的"。

Apply this change:

-得益于 TinyEngine 强大的开放物料设计
+得益于 TinyEngine 强大地开放物料设计
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)


31-37: Remove extra empty lines at the end of the file

Multiple empty lines at the end of the file are unnecessary. Keep only one newline at the end.

Remove lines 31-37, leaving only one empty line at the end of the file.

docs/解决方案/区块发布方案.md (4)

1-24: Improve Markdown formatting for better readability

The document structure is well-organized, but there are some formatting improvements needed:

  • Add language specifier to code blocks
  • Fix unordered list indentation
  • Remove spaces inside code spans

Apply these formatting fixes:

- ```
+ ```text
  // Add language specifier to code blocks

-  - List item
+ - List item
  // Fix list indentation

- ` https://www.unpkg.com/ `
+ `https://www.unpkg.com/`
  // Remove spaces inside code spans

80-90: Enhance development prerequisites section

Consider adding more specific details to the prerequisites:

  • MySQL version requirements and configuration
  • Minimum Node.js version
  • Required permissions for npm token

Would you like me to help expand this section with more detailed requirements?


91-124: Consider adding automation scripts for the workflow

The manual steps for block creation, editing, and publishing could be automated using CLI tools or scripts to improve developer productivity.

Would you like me to help create automation scripts for these workflows?

🧰 Tools
🪛 Markdownlint (0.35.0)

95-95: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


103-103: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


113-113: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


107-107: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


111-111: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


117-117: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


121-121: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


125-192: Enhance API documentation

Consider the following improvements:

  • Add error response examples and status codes
  • Document rate limiting and timeout values
  • Add language specifiers to JSON code blocks
  • Include authentication requirements

Example improvement:

- ```
+ ```json
  {
    "data": {
      "id": 100,
      // ...
    }
  }
  • Error Responses

  • {
  • "error": {
  • "code": "ERROR_CODE",
    
  • "message": "Error description"
    
  • }
  • }

</blockquote></details>
<details>
<summary>docs/扩展能力使用教程/定制插件UI.md (6)</summary><blockquote>

`1-4`: **Consider enhancing the introduction with a structured overview.**

While the introduction is clear, it could be more helpful to add:
- A brief description of what plugins are
- A list of customization capabilities
- Prerequisites or requirements

---

`9-11`: **Enhance configuration properties documentation.**

Consider adding:
- Examples of valid icon string values
- Interface requirements for custom icon components
- Code examples for both string and component icon usage

---

`15-31`: **Enhance code example with type information and explanations.**

Consider:
- Adding TypeScript type annotations
- Explaining the spread operator usage with Page
- Documenting the Page plugin's interface

---

`33-33`: **Use absolute paths for image references.**

To prevent broken links when documentation is moved or restructured, consider using absolute paths from the repository root.

```diff
-![定制页面插件位置](./imgs/custom-plugin-page-pos.png)
+![定制页面插件位置](/docs/扩展能力使用教程/imgs/custom-plugin-page-pos.png)

55-66: Enhance Vue component example with best practices.

Consider improving the example by:

  • Adding TypeScript setup
  • Documenting component props and events
  • Including error handling examples
  • Demonstrating component lifecycle hooks

Example enhancement:

<script setup lang="ts">
import { ref, onMounted } from 'vue'

interface Props {
  initialTitle?: string
}

const props = withDefaults(defineProps<Props>(), {
  initialTitle: '自定义插件UI'
})

const title = ref(props.initialTitle)

onMounted(() => {
  // Add initialization logic
})
</script>

68-68: Use absolute path for image reference.

Similar to the previous image, use an absolute path to prevent broken links.

-![替换整个插件页面](./imgs/custom-plugin-page-full.png)
+![替换整个插件页面](/docs/扩展能力使用教程/imgs/custom-plugin-page-full.png)
docs/扩展能力介绍/新架构介绍.md (5)

1-4: Consider merging the empty section with the following content.

The heading "为什么需要 TinyEngine 洛书架构" is followed by an empty section. Consider removing the empty lines and connecting it directly with the content that follows for better document flow.

# TinyEngine 洛书架构介绍

## 为什么需要 TinyEngine 洛书架构
-

在 TinyEngine 开源以来...

5-7: Fix grammatical issue while maintaining excellent content.

The problem statement effectively explains the challenges faced by users who fork the codebase. However, there's a minor grammatical issue that should be fixed.

-TinyEngine引擎官方在慢慢的增加新特性
+TinyEngine引擎官方在慢慢地增加新特性
🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


8-11: Consider adding a horizontal rule for better section separation.

The transition to the solution is well-written. Consider adding a horizontal rule (---) before introducing the new architecture to create a clearer visual separation between the problem statement and solution.

于是,我们需要一种新的架构...

+---
+
基于这个需求与思路,我们设计了新的可扩展架构——洛书架构
🧰 Tools
🪛 LanguageTool

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...

(wb4)


12-17: Enhance feature list formatting and consider adding details.

The core features are well-identified, but consider:

  1. Using consistent punctuation at the end of each bullet point
  2. Adding brief examples or explanations for each feature
  3. Using sub-bullets to break down complex features

Example enhancement for the first feature:

-- 提供 cli 工具,使用 cli 快速创建出来基于 TinyEngine 引擎的低代码平台。
+- 提供 cli 工具,使用 cli 快速创建出来基于 TinyEngine 引擎的低代码平台:
+  - 支持项目模板选择
+  - 提供配置向导
+  - 自动依赖安装

1-17: Well-structured documentation with clear purpose.

The document effectively introduces the 洛书架构 (Luoshu Architecture), clearly explaining the motivation, challenges, and solutions. The content is technically accurate and well-organized.

Consider adding a conclusion section that summarizes the benefits and next steps for users interested in adopting this architecture.

Would you like me to help draft a conclusion section for this document?

🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...

(wb4)

docs/扩展能力使用教程/出码功能/出码功能简介与使用.md (2)

7-31: Consider enhancing the code example documentation.

While the example clearly shows the transformation from JSON to Vue, consider:

  1. Explaining why Text component in JSON becomes span in Vue
  2. Adding comments to highlight key aspects of the transformation

Example enhancement:

 ```json
+// Input: JSON Schema representing a div with Text component
 {
   "componentName": "div",
   "props": {
     "style": "color: red; text-align: center;"
   },
   "children": [
     {
       "componentName": "Text",  // Built-in Text component
       "props": {
         "text": "TinyEngine 前端可视化设计器,为设计器开发者提供定制服务,在线构建出自己专属的设计器。"
       }
     }
   ]
 }

+// Output: Transformed Vue template
+// Note: Text component is rendered as a span element

  <div style="color: red; text-align: center;">
    <span>TinyEngine 前端可视化设计器,为设计器开发者提供定制服务,在线构建出自己专属的设计器。</span>
  </div>

---

`34-34`: **Fix grammatical issues in Chinese text.**

There are two grammatical issues to address:
1. Line 34: "膨胀的非常巨大" should be "膨胀得非常巨大"
2. Line 40: "完美的解决" should be "完美地解决"



Also applies to: 40-40

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点:  - 由于运...

(wb4)

</details>

</details>

</blockquote></details>
<details>
<summary>docs/进阶功能/区块管理.md (2)</summary><blockquote>

`9-20`: **Fix the directory tree formatting**

The directory tree structure has an inconsistent indentation in line 13. The hyphen should be aligned with other files at the same level.

```diff
  - components
    |_ Header.vue
-     - Footer.vue
+    |_ Footer.vue
     - Container.vue

68-68: Fix Chinese grammar: Use "地" for adverbs

Change "更好的明白" to "更好地明白" as it's modifying a verb.

-区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义
+区块描述:区块的描述,可以让别人更好地明白该区块的用途以及含义
🧰 Tools
🪛 LanguageTool

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)

docs/基础功能/样式设置.md (5)

9-12: Add language identifier to the code block.

For better syntax highlighting, specify the language:

-```html
+```html
<div style="display:block; color: red; font-size: 12px; background-color: #fff;">
</div>

151-163: Improve code example formatting and readability.

Consider these improvements to the Vue template:

 <template>
-<div
-  :style="{
-    top: state.position.top,
-    right: state.position.right,
-    bottom: state.position.bottom,
-    left: state.position.left,
-  }"
->
-</div>
+  <div
+    :style="{
+      top: state.position.top,
+      right: state.position.right,
+      bottom: state.position.bottom,
+      left: state.position.left
+    }"
+  >
+  </div>
 </template>

74-79: Consider adding a code example for global styles.

To make the global styles section more comprehensive, consider adding a code example showing how to declare and use global styles.

/* Example to add */
/* global.css */
.utility-class {
  /* Common styles that can be reused */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Media query example */
@media screen and (max-width: 768px) {
  .responsive-class {
    flex-direction: column;
  }
}

137-141: Enhance the state selector example.

Consider expanding the example to show multiple states:

/* Example to add */
.test1:hover {
  background-color: #f0f0f0;
  transform: scale(1.05);
}

.test1:focus {
  outline: 2px solid #007bff;
}

.test1:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

1-169: Overall excellent documentation with room for minor improvements.

The documentation provides a comprehensive guide to style settings in TinyEngine with clear explanations, practical examples, and helpful visuals. Consider:

  1. Adding more comprehensive code examples for global styles and state selectors
  2. Ensuring consistent code formatting across examples
  3. Using correct Vue.js terminology (e.g., 'scoped' instead of 'scope')
docs/基础功能/页面管理.md (2)

9-16: Improve file tree structure consistency

The file tree structure uses inconsistent indentation and symbols (|_ vs -). Consider standardizing the representation for better readability.

 ```bash
 - project
   - views
-    |_ Index.vue
-     - Page2.vue
-    - TodoFolder
-      |_ Todo.vue
+    ├── Index.vue
+    ├── Page2.vue
+    └── TodoFolder
+        └── Todo.vue

55-55: Fix typo in image caption

There's a typo in the Chinese text: "声明周期" should be "生命周期" to match the context.

-![声明周期配置](./imgs/lifecycle.gif)
+![生命周期配置](./imgs/lifecycle.gif)
docs/扩展能力使用教程/出码功能/如何自定义出码.md (1)

32-34: Consider specifying a package version

For reproducibility and stability, consider specifying a version in the npm installation command.

-npm install @opentiny/tiny-engine-dsl-vue
+npm install @opentiny/tiny-engine-dsl-vue@<version>
docs/扩展能力使用教程/开发设置器组件.md (4)

7-7: Add descriptive alt text for better accessibility

The image markdown should include a more descriptive alt text to improve accessibility for screen readers.

-![输入框设置器组件](./imgs/input-configurator.png)
+![Screenshot showing an example of an input configurator component in the properties panel](./imgs/input-configurator.png)

49-55: Optimize input filtering logic

The current string manipulation could be simplified using a regular expression test.

 const change = (val) => {
-  value.value = val
-    .split('')
-    .filter((c) => /[A-Za-z0-9]/.test(c))
-    .join('')
+  value.value = val.replace(/[^A-Za-z0-9]/g, '')
   emit('update:modelValue', value.value)
 }

72-82: Add validation steps for configurator registration

Consider adding instructions for validating the configurator registration:

  1. How to verify the configurator is properly registered
  2. Common troubleshooting steps if the configurator doesn't appear

Example addition:

3. 验证设置器注册
   - 检查浏览器控制台是否有注册相关的错误
   - 确认设置器名称在 configurators 对象中是否正确导出
   - 验证设置器组件是否正确编译

143-144: Add descriptive alt text for the GIF

The GIF should include a more descriptive alt text for accessibility.

-![自定义输入框设置器组件效果](./imgs/my-input-configurator.gif)
+![Demonstration of the custom input configurator component filtering alphanumeric input in the properties panel](./imgs/my-input-configurator.gif)
docs/开始/快速上手.md (4)

7-14: Improve text consistency and version specifications

  1. Replace full-width characters (⼯, ⼯具) with standard width characters (工, 工具) for better readability.
  2. Consider using a more flexible version specification for Chrome, such as "Chrome 最新的稳定版本" (latest stable version) to avoid frequent documentation updates.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


40-40: Enhance image accessibility and reliability

The image references should:

  1. Include meaningful alt text describing the image content
  2. Use absolute paths or ensure images are committed to the repository
  3. Consider adding image dimensions for better page layout stability

Example fix for the first image:

-![lowcode-designer](./imgs/tiny-engine-cli.png)
+![TinyEngine CLI creating a new low-code designer project](./imgs/tiny-engine-cli.png)

Also applies to: 56-56, 70-70, 104-104


124-141: Improve directory structure formatting

Add language specification to the code block and consider using tree format for better visualization:

-```
+```tree
 ...
 ├─ designer-demo # 此处为高度可定制化的低代码平台,即用户自己的低代码设计器     
 │  ├─ env
🧰 Tools
🪛 Markdownlint (0.35.0)

124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1-157: Consider adding these helpful sections

To make the documentation more comprehensive, consider adding:

  1. Troubleshooting guide for common issues
  2. System requirements (memory, disk space)
  3. Links to API documentation and advanced topics
  4. Contributing guidelines

Would you like me to help draft these additional sections?

🧰 Tools
🪛 Markdownlint (0.35.0)

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 LanguageTool

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


[uncategorized] ~64-~64: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ... 另起一个终端,在当前目录下,输入下面命令,选择创建plugin类型,创建一个新的插件 ```shell npx @opentiny/tiny-engine-c...

(wb4)


[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ...#### 2.2.3 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: ![cli-plugin-open](./imgs/cli-plugi...

(wb4)

docs/解决方案/服务端部署方案.md (10)

7-7: Enhance URL presentation for better readability

Consider wrapping the MySQL download URL in proper markdown link syntax for better readability and maintainability.

-mysql官网下载 https://dev.mysql.com/downloads/
+mysql官网下载 [MySQL Downloads](https://dev.mysql.com/downloads/)
🧰 Tools
🪛 Markdownlint (0.35.0)

7-7: null
Bare URL used

(MD034, no-bare-urls)


19-21: Maintain consistent list style throughout the document

The document uses mixed list markers (dash and asterisk). Standardize on one style for better maintainability.

-[基础数据SQL文件](https://tinyengine-assets.obs.cn-north-4.myhuaweicloud.com/files/%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE.sql)
-
-[自实现数据中心-设计器涉及表](https://tinyengine-assets.obs.cn-north-4.myhuaweicloud.com/files/%E8%87%AA%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83-%E8%AE%BE%E8%AE%A1%E5%99%A8%E6%B6%89%E5%8F%8A%E8%A1%A8.sql)
+* [基础数据SQL文件](https://tinyengine-assets.obs.cn-north-4.myhuaweicloud.com/files/%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE.sql)
+
+* [自实现数据中心-设计器涉及表](https://tinyengine-assets.obs.cn-north-4.myhuaweicloud.com/files/%E8%87%AA%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83-%E8%AE%BE%E8%AE%A1%E5%99%A8%E6%B6%89%E5%8F%8A%E8%A1%A8.sql)
🧰 Tools
🪛 Markdownlint (0.35.0)

19-19: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


21-21: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


19-21: Consider versioning SQL files and providing checksums

The SQL files are hosted on an external cloud service without version information or integrity checks. Consider:

  1. Adding version information to the SQL files
  2. Providing SHA256 checksums for verification
  3. Documenting the schema version compatibility
🧰 Tools
🪛 Markdownlint (0.35.0)

19-19: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


21-21: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


42-51: Enhance security-related documentation for environment variables

For sensitive environment variables like tokens and keys:

  1. Add information about required permissions/scopes
  2. Document secure ways to generate these values
  3. Include validation patterns where applicable
🧰 Tools
🪛 Markdownlint (0.35.0)

42-42: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


43-43: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


44-44: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


45-45: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


47-47: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


48-48: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


49-49: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


50-50: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


51-51: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


40-95: Standardize table formatting for better maintainability

The tables use inconsistent pipe styling. Consider standardizing the table format:

|变量名称|说明|
|---|---|
|GIT_USERNAME|应用发布时具备push代码权限的代码仓用户名|
-Instead of-
|变量名称|说明|
|---|---|
|GIT_USERNAME|应用发布时具备push代码权限的代码仓用户名||
🧰 Tools
🪛 Markdownlint (0.35.0)

41-41: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


42-42: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


43-43: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


44-44: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


45-45: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


47-47: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


48-48: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


49-49: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


50-50: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


51-51: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


60-60: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


61-61: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


62-62: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


63-63: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


64-64: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


71-71: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


72-72: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


73-73: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


74-74: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


75-75: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


82-82: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


83-83: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


84-84: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


85-85: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


86-86: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


91-91: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


92-92: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


93-93: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


94-94: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


95-95: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


109-113: Add validation steps for environment configuration

Consider adding commands to verify the environment setup:

source ~/.bashrc
+# Verify environment variables are set correctly
+echo "Verifying environment setup..."
+echo "MQ_IP: $MQ_IP"
+echo "MQ_PORT: $MQ_PORT"

128-132: Document common startup issues and troubleshooting steps

Consider adding a troubleshooting section that covers:

  1. Common npm installation errors and solutions
  2. Port conflict resolution
  3. Dependency version mismatch handling

319-319: Enhance Docker deployment documentation

The note about removing --daemon for Docker deployment is crucial. Consider expanding the Docker deployment section to include:

  1. Example Dockerfile
  2. Docker Compose configuration
  3. Container health checks
  4. Volume mounting guidelines

336-337: Document port configuration security considerations

The production port difference (7001 vs 7011) needs more context:

  1. Add firewall configuration guidelines
  2. Document recommended proxy settings
  3. Include SSL/TLS setup instructions
🧰 Tools
🪛 Markdownlint (0.35.0)

336-336: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


338-343: Remove duplicate SQL file references

These SQL file links are duplicates of the ones provided at the beginning of the document. Consider:

  1. Removing this section
  2. Or moving all SQL-related content to a dedicated section
docs/基础功能/初识设计器.md (2)

7-7: Enhance image accessibility with descriptive alt text

The image alt text should provide a clear description of what the interface overview shows, including key components and their layout.

-![设计器界面示例图](./imgs/platformExpend.png)
+![设计器界面示例图:展示了顶部工具栏、左侧插件栏、中间画布区和右侧设置面板的整体布局](./imgs/platformExpend.png)

34-36: Consider expanding plugin descriptions

While the list of plugins is comprehensive, users would benefit from brief descriptions of each plugin's core functionality and common use cases.

Consider expanding the content like this:

- 物料插件:提供可拖拽的UI组件库
- 大纲树插件:展示页面组件层级结构
- 页面管理工具插件:管理多页面应用的页面配置
[... other plugins with descriptions ...]
docs/新手指引/快速上手.md (1)

26-26: Consider using code formatting for URLs.

Wrap the image URL in backticks for better readability.

Apply this change:

-设置src属性,修改图片地址为:https://res.hc-cdn.com/lowcode-portal/1.1.65/img/home/top-banner.jpg
+设置src属性,修改图片地址为:`https://res.hc-cdn.com/lowcode-portal/1.1.65/img/home/top-banner.jpg`
docs/教程/第一期2023.10.27.md (4)

3-3: Format URL using proper markdown syntax

The bare URL should be formatted using proper markdown link syntax.

-[https://www.bilibili.com/video/BV16j411e7y2/](https://www.bilibili.com/video/BV16j411e7y2/)
+[直播答疑视频 (Live Q&A Video)](https://www.bilibili.com/video/BV16j411e7y2/)

5-7: Fix markdown heading hierarchy

The document structure should follow proper heading hierarchy (h1 -> h2 -> h3). Currently, h3 headings are used directly under h1.

# 直播答疑视频链接

-# 基础功能使用类问题
+## 基础功能使用类问题

-### 问题1:如何使用第三方组件库?
+### 问题1:如何使用第三方组件库?

-# 功能增强拓展类问题
+## 功能增强拓展类问题

Also applies to: 173-175

🧰 Tools
🪛 Markdownlint (0.35.0)

7-7: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


36-51: Add language specifier to code block

The code block showing package structure should specify the language for proper syntax highlighting.

-  ```js
+  ```text
   |_ canvas  负责中间画布渲染
   |_ common  公共的组件以及 metaComponent 
   ...

125-125: Improve Chinese language usage in questions

For better Chinese language expression in questions, replace "或者" with "还是".

-问题7:在使用 TinyEngine 低代码引擎时,组件内的静态资源(图片或者音频)如何引用?
+问题7:在使用 TinyEngine 低代码引擎时,组件内的静态资源(图片还是音频)如何引用?

-问题4:TinyEngine 低代码引擎是否提供商业版本或者商业上的技术支持?
+问题4:TinyEngine 低代码引擎是否提供商业版本还是商业上的技术支持?

Also applies to: 187-187

🧰 Tools
🪛 LanguageTool

[uncategorized] ~125-~125: 表示选择的疑问句中不能使用 “或者” ,请改用:"还是"。
Context: ...## 问题7:在使用 TinyEngine 低代码引擎时,组件内的静态资源(图片或者音频)如何引用? 答:这个问题要分多种情况讨论, - 设计器开发: 可以拉下...

(wb3)

docs/基础功能/设计器界面模块简介.md (6)

7-7: Enhance image accessibility with descriptive alt text.

The current alt text "设计器界面示例图" is generic. Consider providing more descriptive alt text that explains the key elements visible in the image.

Apply this diff to improve the alt text:

- ![设计器界面示例图](./imgs/platformExpend.png)
+ ![设计器界面布局图,展示顶部工具栏、左侧插件栏、中心画布和右侧设置面板的排列](./imgs/platformExpend.png)

25-26: Consider adding keyboard shortcuts for key actions.

For productivity features like undo/redo and fullscreen, consider adding keyboard shortcut information (e.g., Ctrl+Z, F11) to help users work more efficiently.

Apply this diff to add shortcut information:

- - 撤销回退功能,撤销或回退上一步操作
- - 全屏功能,将当前页面全屏(跟网页全屏功能一样)
+ - 撤销回退功能,撤销或回退上一步操作 (Ctrl+Z / Ctrl+Y)
+ - 全屏功能,将当前页面全屏 (F11)

34-36: Add plugin availability and configuration information.

Consider adding details about:

  • Which plugins are enabled by default
  • Any dependencies or prerequisites for specific plugins
  • How to enable/disable plugins if applicable

42-42: Enhance canvas interaction documentation.

Consider adding details about:

  • Drag-and-drop gestures and indicators
  • Keyboard navigation within the canvas
  • Component alignment and snapping features
  • Multi-select operations

48-54: Add practical examples for common configurations.

Consider enhancing this section with:

  • Common property configurations for frequently used components
  • Example CSS snippets for typical styling needs
  • Step-by-step examples of event binding

62-62: Expand node tree functionality documentation.

Consider adding information about:

  • Node reordering capabilities
  • Keyboard shortcuts for node navigation
  • Node search/filter functionality
  • Node visibility toggling
docs/扩展能力使用教程/出码功能/自定义页面出码插件.md (5)

1-3: Consider enhancing the documentation structure with additional sections.

The documentation is well-organized but could benefit from:

  • Adding a table of contents for easier navigation
  • Including a "Prerequisites" section
  • Adding a "Quick Start" section with basic examples

Also applies to: 45-47


141-147: Add error handling to the component name transformation example.

The component name transformation should include validation and error handling.

 function handleComponentName(optionData) {
+  if (!optionData || typeof optionData.componentName !== 'string') {
+    return;
+  }
   if (optionData.componentName === 'Text') {
     optionData.componentName = 'span'
   }
 }

292-299: Consider adding validation for statement insertion.

The statement insertion example should demonstrate validation of the position and value parameters.

 globalHooks.addStatement({
   position: 'AFTER_IMPORT',
   value: 'const test = "hello world"',
   key: 'test'
+  // Add validation
+  validate: (value) => {
+    return typeof value === 'string' && value.trim().length > 0;
+  }
 })

465-478: Enhance interface documentation with JSDoc comments.

The IConfig interface would benefit from detailed JSDoc documentation for each property.

+/**
+ * Configuration interface for the code generation plugin
+ * @interface IConfig
+ */
 interface IConfig {
+  /**
+   * Plugin-specific configuration options
+   * @property {Object} pluginConfig
+   */
   pluginConfig: {
     page: {
+      /** Base path for page components */
       pageBasePath: string; //  默认为 './src/views'
       sfcConfig: ISFCConfig;
     },
     // ...
   }
 }

461-462: Add security considerations section to the API documentation.

Consider adding a section that covers:

  • Input validation best practices
  • Safe code generation practices
  • Common security pitfalls to avoid
docs/基础功能/使用状态管理和变量绑定.md (1)

17-17: Improve code formatting

The inline code reference could be more consistently formatted.

Consider adding spaces around the code reference:

-我们添加的 state 通常是一个可以随不同状态有不同值的变量,如果想要改变 state,可以在 JS 面板中通过 `this.state.xxx` 获取到 state并且改变之。
+我们添加的 state 通常是一个可以随不同状态有不同值的变量,如果想要改变 state,可以在 JS 面板中通过 ` this.state.xxx ` 获取到 state 并且改变之。
docs/关于物料/介绍.md (1)

7-8: Consider adding cross-references

The documentation mentions component libraries and blocks but doesn't link to their detailed documentation.

Consider adding links to related documentation:

  • Link to component library documentation when mentioning "组件库"
  • Link to block management documentation when discussing block customization
docs/API/全局布局API.md (2)

39-39: Remove empty heading

There appears to be an empty heading at the end of the document. Please either remove it or add the intended content.


24-35: Enhance API documentation with parameter details

The API documentation would benefit from more detailed descriptions of parameters and return values. Consider adding:

  • Parameter types and constraints
  • Return value descriptions
  • Usage examples for each API method

Example enhancement for activePlugin:

-    activePlugin, // 激活plugin面板,参数(插件名,是否激活对应面板)
+    activePlugin, // 激活plugin面板
+    // @param {string} pluginName - 插件名称
+    // @param {boolean} isActive - 是否激活对应面板
+    // @returns {void}
+    // @example
+    // activePlugin('myPlugin', true)
docs/解决方案/物料同步方案.md (1)

34-34: Enhance environment configuration documentation

Line 34 mentions configuration in .env.local but doesn't specify the required variables. Consider adding:

  • List of required environment variables
  • Example configuration values
  • Description of each configuration option

Example addition:

配置示例 (.env.local):
DB_HOST=localhost
DB_PORT=3306
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
docs/开始/简介.md (1)

28-35: Consider adding specific examples for each orchestration type

The platform capabilities section would benefit from more concrete examples or code snippets demonstrating each type of orchestration (图元编排, 流程编排, 页面编排).

docs/实战案例/SMB轻量应用服务.md (1)

30-34: Consider adding code examples for lifecycle functions

The section about block lifecycle functions would be more helpful with concrete code examples showing how to implement these functions.

docs/基础功能/设计前端应用流程.md (1)

25-28: Consider adding validation error messages

The page creation section lists several format requirements. It would be helpful to include examples of the error messages users might encounter when validation fails.

docs/扩展能力介绍/元服务和元应用.md (3)

18-28: Enhance Vue code example with TypeScript types and comments

The Vue example would benefit from TypeScript types and additional comments explaining the getMergeMeta function's parameters and return type.

 <script setup>
+// Import types from tiny-engine
+import type { MetaComponent } from '@opentiny/tiny-engine-types'
 import { getMergeMeta } from '@opentiny/tiny-engine-meta-register'
 
-// 获取元应用
+// Get meta application entry component
+// comp: MetaComponent - The meta component configuration
 const entry = getMergeMeta(comp).entry
 </script>

58-74: Add type definitions and improve service documentation

The Meta Service example would be clearer with TypeScript interfaces and documentation for the service APIs.

+interface MetaServiceAPI {
+  parseRequiredBlocks: (blocks: any) => any;
+  getAllNestedBlocksSchema: () => any;
+  generatePageCode: () => string;
+  generateAppCode: () => string;
+}

+interface MetaService {
+  id: string;
+  type: 'MetaService';
+  options: Record<string, any>;
+  apis: MetaServiceAPI;
+}

 export const GenerateCodeService = {
   id: 'engine.service.generateCode',
   type: 'MetaService',
   options: {},
   apis: {
+    // Parse required blocks for code generation
     parseRequiredBlocks,
+    // Get schema for all nested blocks
     getAllNestedBlocksSchema,
+    // Generate code for a single page
     generatePageCode,
+    // Generate code for entire application
     generateAppCode
   }
 }

1-11: Consider adding architectural diagram

The documentation would benefit from a visual representation showing the relationship between Meta Applications and Meta Services, helping users better understand the separation of concerns.

Consider adding a diagram after the introduction section to illustrate how Meta Applications interact with Meta Services.

docs/基础功能/使用组件.md (1)

20-20: Fix Chinese grammar in explanation

The sentence contains a grammatical error in the usage of "好的".

-直接拖拽并不能很好的拖入到指定的层级中
+直接拖拽并不能很好地拖入到指定的层级中
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/基础功能/国际化.md (1)

72-72: Enhance i18n usage example

The documentation would benefit from more examples showing i18n usage in different contexts.

Consider adding examples for:

  • Using i18n in component props
  • Dynamic translations with variables
  • Handling pluralization
  • Date and number formatting
🧰 Tools
🪛 Markdownlint (0.35.0)

72-72: null
Link fragments should be valid

(MD051, link-fragments)

docs/API/设置面板API.md (3)

1-1: Fix formatting: Replace hard tabs with spaces

Replace the hard tab in the title line with spaces to maintain consistent formatting.

-# 设置面板模块API	
+# 设置面板模块API
🧰 Tools
🪛 Markdownlint (0.35.0)

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)


5-5: Improve language clarity

Simplify the expression by removing redundant words.

-变量绑定列表中的变量可能来自于其他元应用。
+变量绑定列表中的变量可能来自其他元应用。
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...

(wb2)


97-97: Add alt text for image

Enhance accessibility by providing descriptive alt text for the image.

-![bindEvent]( ./imgs/bindEventApi.png)
+![事件绑定对话框界面]( ./imgs/bindEventApi.png)
docs/生态中心/如何导入组件库.md (2)

30-36: Add blank lines around table

Improve markdown formatting by adding blank lines before and after the table.

![基本信息](./imgs/componentConfigBase.png)
+
| 字段名称 | 描述 |  
| --- | --- |  
| 组件ID | 决定组件的使用方式<tiny-input></tiny-input> | 
| 组件名称 | 设计器物料面板中组件显示的名称 | 
| 图标 | 设计器物料面板中组件显示的图标 | 
| schema片段 | [决定组件在画布上的显示效果](./imgs/componentConfigSchema.png) | 
| 组件属性 | 包含属性、事件、插槽,对应设计器中右侧属性面板可配置的属性、插槽及高级面板中的事件配置 | 
+
🧰 Tools
🪛 Markdownlint (0.35.0)

30-30: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


17-17: Add hyperlink to ESModule documentation

Enhance the documentation by providing a direct link to the ESModule specification.

-| JS文件CDN | 必填,[ESModule格式](https://tc39.es/ecma262/#sec-modules)的JS文件CDN地址,如果地址错误或文件不可用将导致画布无法渲染组件。 |
+| JS文件CDN | 必填,[ESModule格式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)的JS文件CDN地址,如果地址错误或文件不可用将导致画布无法渲染组件。 |
docs/扩展能力使用教程/定制元服务逻辑.md (2)

21-23: Add type annotations and documentation

Consider adding TypeScript type annotations and JSDoc comments to improve code maintainability.

+/** @type {ServiceOptions} */
 GlobalService.options = {
+  /** @type {string} Custom URL for the service */
   url: 'custom url'
 }

89-94: Add error handling for event subscription

Consider adding error handling for the event callback to improve robustness.

 subscribe({
   topic: 'custom_event',
   callback: (data) => {
+    try {
       // 回调逻辑
+    } catch (error) {
+      console.error('Error processing custom_event:', error);
+    }
   }
 })
docs/扩展能力介绍/注册表.md (1)

19-44: Consider adding TypeScript type definitions for better documentation.

The registry configuration example would benefit from TypeScript type definitions to clearly document the expected shape and types of each property.

interface RegistryConfig {
  root: {
    id: string;
    metas: Array<typeof Service>;
  };
  config: typeof engineConfig;
  layout: {
    options: Record<string, unknown>;
  };
  themes: Array<{
    id: string;
  }>;
  toolbars: Array<typeof Plugin>;
  plugins: Array<typeof Plugin>;
  settings: Array<typeof Plugin>;
  Canvas: typeof Canvas;
}
docs/进阶功能/使用JS面板和事件绑定.md (1)

53-55: Document the purpose and behavior of the wrap function.

The example shows usage of a wrap function that's crucial for the functionality, but its purpose and behavior are not explained. Consider adding documentation about:

  • What the wrap function does
  • Why it's necessary
  • How it affects the wrapped functions
docs/API/物料API.md (1)

83-98: Enhance API method documentation with return types and examples.

The API methods would benefit from explicit return type documentation and usage examples for each method. Consider adding:

  • Return type for each method
  • Parameter types
  • Example usage for complex methods like generateNode and updateCanvasDependencies
{
  // Initialize material module
  initMaterial: (options: { isInit: boolean, appData: AppData }) => Promise<void>,
  
  // Generate component schema node
  generateNode: (component: { type: string, componentName: string }) => SchemaNode,
  
  // Update canvas dependencies
  updateCanvasDependencies: (block: Block) => Promise<void>,
  
  // ... (document other methods similarly)
}
docs/index.md (1)

1-104: LGTM! Well-structured documentation hierarchy.

The table of contents is logically organized with clear categorization and consistent formatting. The four main sections (使用指南, 网站文档, 平台开发指南, and 实战案例) provide an intuitive navigation structure.

Consider adding a brief description under each main section header to help users quickly understand what content they can expect to find in each section.

docs/实战案例/图元编排设计器.md (1)

19-19: Consider revising Chinese grammar in several locations.

The following grammar improvements are suggested based on Chinese language conventions:

  • Line 19: Consider rephrasing "每一个云服务" to "每一项云服务"
  • Line 68: Add "地" after "完备"
  • Line 74: Add "地" after "一定"
  • Line 121: Add "地" after "快速"
  • Line 127: Add "地" after "优秀"

Also applies to: 68-68, 74-74, 121-121, 127-127

🧰 Tools
🪛 LanguageTool

[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。 考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...

(wa5)

docs/进阶功能/如何使用插槽.md (1)

147-165: LGTM! Well-structured slot configuration schema.

The JSON schema example clearly illustrates how to define slots in material configuration.

Consider adding a brief example of how this schema translates to the actual Vue component implementation for better clarity.

docs/实战案例/PDM元数据审批电子流.md (2)

17-17: Add descriptive alt text for better accessibility.

The image tag should include meaningful alternative text to improve accessibility.

-  <img src="./imgs/process.png" style="width:60%;">
+  <img src="./imgs/process.png" style="width:60%;" alt="PDM metadata approval flow process diagram">
🧰 Tools
🪛 Markdownlint (0.35.0)

17-17: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


29-29: Replace generic alt text with descriptive text.

The image uses a generic "avatar" alt text which should be replaced with a meaningful description.

-![avatar](./imgs/pdm.png)
+![PDM metadata approval system architecture diagram](./imgs/pdm.png)
docs/进阶功能/使用工具类方法 utils.md (1)

153-156: Consider adding type checking in the isNil function.

The current implementation might lead to unexpected results with falsy values. Consider using strict equality for more precise null checking.

 function isNil(value) {
-    return value == null
+    return value === null || value === undefined
 }
docs/扩展能力使用教程/出码功能/官方出码能力API.md (2)

36-39: Fix interface naming convention.

TypeScript interface names should use PascalCase.

-interface codeGenInstance {
+interface CodeGenInstance {
   generate(IAppSchema): ICodeGenResult
 }

171-177: Add error handling for file operations.

The example code should demonstrate proper error handling for the file replacement operation.

-      this.replaceFile({
+      const success = this.replaceFile({
           path: './src/test.js',
           fileContent: 'function foo() { console.log("hello world") }',
           fileType: 'js',
           fileName: 'test.js'
         }
       )
+      if (!success) {
+        this.addLog('Failed to replace file: ./src/test.js')
+      }
docs/API/画布API.md (3)

3-4: Fix heading hierarchy

The heading hierarchy should be properly structured. After h1, the next level should be h2.

-### 元服务useCanvas
+## 元服务useCanvas
🧰 Tools
🪛 Markdownlint (0.35.0)

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


7-23: Add language specifier to code block

The code block should specify the language for proper syntax highlighting.

-```
+```json
🧰 Tools
🪛 Markdownlint (0.35.0)

7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


53-54: Improve documentation clarity for setState method

The setState method has a typo in the documentation (extra comma) and lacks description.

-   setState,,// 转接的方法, 调用render的setState
+   setState, // 转接的方法,调用render的setState,用于更新组件状态

Also applies to: 75-75

docs/API/后端API/DSL代码生成.md (1)

15-24: Add error handling documentation

The code example should include error handling for file operations and generateCode method calls.

 const { generateCode } = require('@opentiny/tiny-engine-dsl-ng-tiny/lib/generate-code.js')

+try {
   const result = generateCode({ pageInfo, blocksData })
-  result.forEach((item) => fs.writeFileSync(`dist/${item.filePath}/${item.panelName}`, item.panelValue))
+  result.forEach((item) => {
+    const dir = `dist/${item.filePath}`
+    if (!fs.existsSync(dir)) {
+      fs.mkdirSync(dir, { recursive: true })
+    }
+    fs.writeFileSync(`${dir}/${item.panelName}`, item.panelValue)
+  })
+} catch (error) {
+  console.error('Code generation failed:', error)
+  throw error
+}
docs/API/主包API.md (2)

3-4: Add version compatibility information

Include version compatibility information and minimum requirements for the main package and its dependencies.

Add a section like:

## Compatibility

- Minimum Node.js version: X.Y.Z
- Compatible TinyEngine versions: X.Y.Z and above
- Browser compatibility: Modern browsers (Chrome X+, Firefox Y+, Safari Z+)

157-166: Document initialization sequence

Add information about the correct sequence of initialization and any prerequisites.

 2. `defineEntry`:提供了defineEntry函数,作为注册表的注册入口,能够将用户注册表注册到TinyEngine中,如:
+
+注意:在调用 defineEntry 之前,请确保:
+1. 所有必需的插件已经加载
+2. 配置对象已经正确初始化
+3. 环境变量已经设置
+
 ```js
 import registry from '../registry.js'
 import { defineEntry } from '@opentiny/tiny-engine'
docs/扩展能力使用教程/出码功能/如何自定义出码插件.md (1)

Line range hint 267-293: Add error handling and resource cleanup in publish function

The file processing loop lacks error handling and proper resource cleanup.

Implement proper error handling:

private async publish(folder, blockInfo, version): Promise<any> {
+  try {
     // ... existing code ...
     for(const file of files) {
-      const fileContent = await fs.readFile(path.join(folder, file));
+      try {
+        const fileContent = await fs.readFile(path.join(folder, file));
         const base64Data = fileContent.toString('base64');
         // ... rest of the code ...
+      } catch (err) {
+        this.logger.error(`Failed to process file ${file}: ${err.message}`);
+        throw err;
+      }
     }
     return this.filterFiles(files, prefix);
+  } catch (error) {
+    this.logger.error(`Publication failed: ${error.message}`);
+    throw error;
+  }
}
docs/解决方案/设计器中引入第三方组件库.md (3)

1-41: Consider enhancing the document structure with additional formatting.

The content is well-organized, but readability could be improved by:

  • Adding a table of contents at the beginning
  • Using consistent heading levels
  • Adding more line breaks between sections
🧰 Tools
🪛 LanguageTool

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:进一步"地"解释
Context: ...ts、组件面板配置snippets。下面将在协议基础上对核心字段作进一步的解释,可以打开源码中物料资产包文件(packages\design-core\p...

(wb4)


42-169: Consider adding validation rules and constraints documentation.

The JSON examples are comprehensive, but would benefit from additional documentation about:

  • Valid value ranges for numeric fields
  • Format requirements for string fields
  • Required field combinations or dependencies

170-454: Consider adding error handling documentation.

The material package example would benefit from:

  • Common error scenarios and their solutions
  • Validation error examples
  • Troubleshooting guide for preview issues
docs/API/后端API/AI功能接口.md (1)

15-16: Consider adding more error response examples.

The error response section would be more helpful with:

  • Examples for different error scenarios
  • Error code listing and descriptions
  • Handling strategies for each error type
docs/API/后端API/APP服务.md (2)

68-72: Add example values for better clarity

The type parameter example shows "Block" but the备注 (remarks) shows "Page". This could be confusing for developers. Consider clarifying the valid values and their use cases.


1-117: Add missing alt text to HTML tables

The HTML tables lack accessibility attributes. Consider adding appropriate ARIA labels and alt text for better accessibility.

Add aria-label attributes to tables, for example:

-<table>
+<table aria-label="Request Parameters">
🧰 Tools
🪛 Markdownlint (0.35.0)

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🪛 LanguageTool

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 获取页面/区块源码 ### 基本信息 Path:...

(EN_A_VS_AN)


[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 页面/区块预览用元数据 ### 基本信息 **Path:...

(EN_A_VS_AN)

docs/API/后端API/数据源管理.md (2)

149-151: Add example and description for template ID parameter

The id parameter in the delete template endpoint lacks an example value and description. Consider adding these details for completeness.


1-266: Document error responses and status codes

The API documentation would benefit from including possible error responses and HTTP status codes for each endpoint.

Consider adding a section for each endpoint that describes:

  • Success status codes
  • Error status codes
  • Error response format
  • Common error scenarios
🧰 Tools
🪛 Markdownlint (0.35.0)

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/基础功能/查看大纲树.md (2)

5-5: Add alt text to icon image

The icon image lacks alt text which is important for accessibility.

-![](./imgs/icon-tree.png)
+![Outline Tree Icon](./imgs/icon-tree.png)
🧰 Tools
🪛 Markdownlint (0.35.0)

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


1-9: Enhance documentation with additional context

The documentation would benefit from:

  1. A brief introduction explaining what the outline tree is and its purpose
  2. Expected outcome or result after following the steps
  3. Any related features or functionalities
🧰 Tools
🪛 Markdownlint (0.35.0)

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


8-8: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/关于应用/开发应用.md (2)

7-7: Add descriptive alt text to images for accessibility.

Images should include alt text to improve accessibility. Consider adding descriptive alt text:

-![view-app1]( ./imgs/appDevOne.png)
+![Application development interface showing the "My Applications" section]( ./imgs/appDevOne.png)

-![view-app2]( ./imgs/appDevTwo.png)
+![Visual designer interface for application development]( ./imgs/appDevTwo.png)

Also applies to: 11-11


9-10: Use proper heading format instead of bold text.

Convert the bold text to a proper heading for better document structure:

-**可视化设计器**
+### 可视化设计器
🧰 Tools
🪛 Markdownlint (0.35.0)

9-9: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/生态中心/发布其他生态.md (3)

1-1: Fix heading format by removing leading space.

Remove the leading space before the heading for proper Markdown formatting:

- ## 如何发布其他生态
+## 如何发布其他生态
🧰 Tools
🪛 Markdownlint (0.35.0)

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)


4-4: Add descriptive alt text to image for accessibility.

Add alt text that describes the image content:

-![](./imgs/ecology3.png)
+![Plugin publishing interface showing repository address, version, and visibility settings](./imgs/ecology3.png)
🧰 Tools
🪛 Markdownlint (0.35.0)

4-4: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


7-8: Improve language clarity in passive voice constructions.

Consider revising these sentences for better clarity:

-被标识为官方的插件会显示"官方"字样
-被标识为默认的插件会在创建设计器时默认被选中
+标识为官方的插件会显示"官方"字样
+标识为默认的插件会在创建设计器时自动选中
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

docs/关于物料/创建物料资产包.md (2)

8-8: Improve clarity with proper quantifiers.

Consider revising the sentence for better clarity:

-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。
+物料资产包版本是用户自定义的,用户可以将物料资产包回退到任意一个版本。
🧰 Tools
🪛 LanguageTool

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)


5-6: Consider adding a numbered step list for better readability.

While the current format is clear, consider using a numbered list to make the steps more explicit:

-用户可以在生态中心创建物料资产包,*新建物料资产包* &rarr; *填写必要的字段* &rarr; *保存。*
+用户可以在生态中心创建物料资产包,步骤如下:
+1. 新建物料资产包
+2. 填写必要的字段
+3. 保存

当前支持Vue和Angular两种技术栈,用户可以任意选择。当用户选择了Vue技术栈时,则只能添加Vue的组件与区块,不能添加Angular的组件库与区块。
docs/生态中心/介绍.md (1)

5-5: Add alt text to improve accessibility

The ecosystem diagram should include alternative text to improve accessibility for screen readers.

-![](./imgs/ecology1.png)
+![TinyEngine生态中心架构图,展示物料、插件、工具栏、主题和DSL五大生态系统及其关系](./imgs/ecology1.png)
🧰 Tools
🪛 Markdownlint (0.35.0)

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/基础功能/页面和区块预览.md (2)

9-9: Enhance image alt text descriptions

The current generic "Alt text" should be replaced with descriptive text that explains what each image shows.

-![Alt text](./imgs/preview-btn.png)
+![页面和区块预览功能的入口按钮位置](./imgs/preview-btn.png)

-![Alt text](./imgs/preview-pre.png)
+![设计器画布中显示的页面结构示例](./imgs/preview-pre.png)

-![Alt text](./imgs/preview.png)
+![预览模式下的最终页面渲染效果](./imgs/preview.png)

Also applies to: 15-15, 19-19


5-5: Suggested grammar improvements

Consider these refinements to improve the Chinese grammar:

  • "最终的表现" → "最终地表现"
  • "很是困难" → "非常困难"
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 9e799e7 and fc45cc1.

⛔ Files ignored due to path filters (227)
  • docs/API/imgs/bindEventApi.png is excluded by !**/*.png
  • docs/关于应用/imgs/appCreateOne.png is excluded by !**/*.png
  • docs/关于应用/imgs/appCreateTwo.png is excluded by !**/*.png
  • docs/关于应用/imgs/appDevOne.png is excluded by !**/*.png
  • docs/关于应用/imgs/appDevTwo.png is excluded by !**/*.png
  • docs/关于物料/imgs/createMaterial.gif is excluded by !**/*.gif
  • docs/关于物料/imgs/createMaterialBlock.png is excluded by !**/*.png
  • docs/关于物料/imgs/createMaterialBlockCancel.png is excluded by !**/*.png
  • docs/关于物料/imgs/createMaterialLib.png is excluded by !**/*.png
  • docs/关于物料/imgs/createMaterialLibCancel.png is excluded by !**/*.png
  • docs/关于物料/imgs/materialPanel.png is excluded by !**/*.png
  • docs/关于设计器/imgs/buildPlatform1.png is excluded by !**/*.png
  • docs/关于设计器/imgs/buildPlatform2.png is excluded by !**/*.png
  • docs/关于设计器/imgs/createPlatform.png is excluded by !**/*.png
  • docs/关于设计器/imgs/defineDsl.png is excluded by !**/*.png
  • docs/关于设计器/imgs/defineMaterial.png is excluded by !**/*.png
  • docs/关于设计器/imgs/definePlugs.png is excluded by !**/*.png
  • docs/关于设计器/imgs/defineTheme.png is excluded by !**/*.png
  • docs/关于设计器/imgs/defineTools.png is excluded by !**/*.png
  • docs/关于设计器/imgs/platformExpend.png is excluded by !**/*.png
  • docs/基础功能/imgs/addComponent-13.png is excluded by !**/*.png
  • docs/基础功能/imgs/addFolder.png is excluded by !**/*.png
  • docs/基础功能/imgs/addPage.png is excluded by !**/*.png
  • docs/基础功能/imgs/addVar.png is excluded by !**/*.png
  • docs/基础功能/imgs/addWords.png is excluded by !**/*.png
  • docs/基础功能/imgs/bindVariable-25.png is excluded by !**/*.png
  • docs/基础功能/imgs/canvasoverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/choseClickCompontes.png is excluded by !**/*.png
  • docs/基础功能/imgs/choseComponent.png is excluded by !**/*.png
  • docs/基础功能/imgs/choseComponentID.png is excluded by !**/*.png
  • docs/基础功能/imgs/choseFile.png is excluded by !**/*.png
  • docs/基础功能/imgs/clickNode.png is excluded by !**/*.png
  • docs/基础功能/imgs/componentDown.png is excluded by !**/*.png
  • docs/基础功能/imgs/componentUp.png is excluded by !**/*.png
  • docs/基础功能/imgs/copyComponent.png is excluded by !**/*.png
  • docs/基础功能/imgs/copyKeyValue.png is excluded by !**/*.png
  • docs/基础功能/imgs/createApp.png is excluded by !**/*.png
  • docs/基础功能/imgs/createFolder.png is excluded by !**/*.png
  • docs/基础功能/imgs/createPage.png is excluded by !**/*.png
  • docs/基础功能/imgs/delBatchWord.png is excluded by !**/*.png
  • docs/基础功能/imgs/delWord.png is excluded by !**/*.png
  • docs/基础功能/imgs/deleteClassNameNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/dragComponent.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/editClassNameNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/editClassNameStatic.png is excluded by !**/*.png
  • docs/基础功能/imgs/editGlobalStyleNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/editWord.png is excluded by !**/*.png
  • docs/基础功能/imgs/eventOverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-add.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-code.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-copy.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-del.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-edit.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-i18n.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-page.png is excluded by !**/*.png
  • docs/基础功能/imgs/icon-tree.png is excluded by !**/*.png
  • docs/基础功能/imgs/inlineSettingResultNew.png is excluded by !**/*.png
  • docs/基础功能/imgs/inlineStyleBindVar.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/inlineStyleSettingNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/inserPosition.png is excluded by !**/*.png
  • docs/基础功能/imgs/insertComponent.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/lifecycle.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/modifyStyle.png is excluded by !**/*.png
  • docs/基础功能/imgs/modifyVar.png is excluded by !**/*.png
  • docs/基础功能/imgs/modifyedStyle.png is excluded by !**/*.png
  • docs/基础功能/imgs/pageManaHistoryRestore.png is excluded by !**/*.png
  • docs/基础功能/imgs/pageManaIndex.png is excluded by !**/*.png
  • docs/基础功能/imgs/pagedelOrCopy.png is excluded by !**/*.png
  • docs/基础功能/imgs/platformExpend.png is excluded by !**/*.png
  • docs/基础功能/imgs/pluginoverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/preview-btn.png is excluded by !**/*.png
  • docs/基础功能/imgs/preview-pre.png is excluded by !**/*.png
  • docs/基础功能/imgs/preview.png is excluded by !**/*.png
  • docs/基础功能/imgs/selectClassNameNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/selectParentID.png is excluded by !**/*.png
  • docs/基础功能/imgs/setClassNameNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/setClassNameStatic.png is excluded by !**/*.png
  • docs/基础功能/imgs/setCompoentAttr.png is excluded by !**/*.png
  • docs/基础功能/imgs/setCompoentBaseAttr.png is excluded by !**/*.png
  • docs/基础功能/imgs/setCompoentStyle.png is excluded by !**/*.png
  • docs/基础功能/imgs/setStyleHoverNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/settingPanelOverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/state1.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/state2.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/state3.png is excluded by !**/*.png
  • docs/基础功能/imgs/stylePanelOverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/styleSettingNew.gif is excluded by !**/*.gif
  • docs/基础功能/imgs/styleSettingResult1.png is excluded by !**/*.png
  • docs/基础功能/imgs/styleSettingResult2.png is excluded by !**/*.png
  • docs/基础功能/imgs/styleSettingStatic.png is excluded by !**/*.png
  • docs/基础功能/imgs/toolbaroverview.png is excluded by !**/*.png
  • docs/基础功能/imgs/treeselectOverview.png is excluded by !**/*.png
  • docs/实战案例/imgs/app.png is excluded by !**/*.png
  • docs/实战案例/imgs/blockProps.png is excluded by !**/*.png
  • docs/实战案例/imgs/blockSettings.png is excluded by !**/*.png
  • docs/实战案例/imgs/code.png is excluded by !**/*.png
  • docs/实战案例/imgs/download.png is excluded by !**/*.png
  • docs/实战案例/imgs/image-20230919202709-5khs9h1.png is excluded by !**/*.png
  • docs/实战案例/imgs/image-20230920083516-hg4vhhs.png is excluded by !**/*.png
  • docs/实战案例/imgs/image-20230920084925-yirmz91.png is excluded by !**/*.png
  • docs/实战案例/imgs/image-20230920093120-jdzux3h.png is excluded by !**/*.png
  • docs/实战案例/imgs/pdm.png is excluded by !**/*.png
  • docs/实战案例/imgs/process.png is excluded by !**/*.png
  • docs/实战案例/imgs/smbHome.png is excluded by !**/*.png
  • docs/开始/imgs/cli-create-plugin.png is excluded by !**/*.png
  • docs/开始/imgs/cli-plugin-open.png is excluded by !**/*.png
  • docs/开始/imgs/tiny-engine-cli-open.png is excluded by !**/*.png
  • docs/开始/imgs/tiny-engine-cli.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/custom-plugin-page-full.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/custom-plugin-page-pos.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/input-configurator.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/my-input-configurator.gif is excluded by !**/*.gif
  • docs/扩展能力使用教程/imgs/plugin1.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin2.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin3.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin4.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin5.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin6.png is excluded by !**/*.png
  • docs/扩展能力使用教程/imgs/plugin7.png is excluded by !**/*.png
  • docs/扩展能力使用教程/出码功能/imgs/TinyEngineSchem2Code.png is excluded by !**/*.png
  • docs/扩展能力使用教程/出码功能/imgs/customGenCodePlugin.png is excluded by !**/*.png
  • docs/扩展能力使用教程/出码功能/imgs/exportcode.gif is excluded by !**/*.gif
  • docs/扩展能力使用教程/出码功能/imgs/pageGenerate.png is excluded by !**/*.png
  • docs/扩展能力使用教程/出码功能/imgs/vuetemplate.png is excluded by !**/*.png
  • docs/新手指引/imgs/addComponent.png is excluded by !**/*.png
  • docs/新手指引/imgs/addState.png is excluded by !**/*.png
  • docs/新手指引/imgs/bangEnv.png is excluded by !**/*.png
  • docs/新手指引/imgs/firstPage.png is excluded by !**/*.png
  • docs/新手指引/imgs/imgswitch.png is excluded by !**/*.png
  • docs/新手指引/imgs/page1.png is excluded by !**/*.png
  • docs/新手指引/imgs/preImgChange.png is excluded by !**/*.png
  • docs/新手指引/imgs/setImgSrc.png is excluded by !**/*.png
  • docs/新手指引/imgs/setImgSta.png is excluded by !**/*.png
  • docs/新手指引/imgs/setImgSty.png is excluded by !**/*.png
  • docs/新手指引/imgs/showImg.png is excluded by !**/*.png
  • docs/新手指引/imgs/tinyengine.png is excluded by !**/*.png
  • docs/生态中心/imgs/componentConfigBase.png is excluded by !**/*.png
  • docs/生态中心/imgs/componentConfigSchema.png is excluded by !**/*.png
  • docs/生态中心/imgs/componentConfigTec.png is excluded by !**/*.png
  • docs/生态中心/imgs/componentLibInfo.png is excluded by !**/*.png
  • docs/生态中心/imgs/ecology1.png is excluded by !**/*.png
  • docs/生态中心/imgs/ecology2.png is excluded by !**/*.png
  • docs/生态中心/imgs/ecology3.png is excluded by !**/*.png
  • docs/解决方案/imgs/add_block.png is excluded by !**/*.png
  • docs/解决方案/imgs/add_block1.png is excluded by !**/*.png
  • docs/解决方案/imgs/add_block2.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_code.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_code3.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_1.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_10.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_2.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_4.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_5.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_6.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_7.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_8.png is excluded by !**/*.png
  • docs/解决方案/imgs/backend_deploy_9.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-10.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-11.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-12.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-2.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-3.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-4.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-5.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-6.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-7.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-8.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-9.png is excluded by !**/*.png
  • docs/解决方案/imgs/block-publish-db-1.png is excluded by !**/*.png
  • docs/解决方案/imgs/create_block.png is excluded by !**/*.png
  • docs/解决方案/imgs/events.png is excluded by !**/*.png
  • docs/解决方案/imgs/npm1.png is excluded by !**/*.png
  • docs/解决方案/imgs/npm2.png is excluded by !**/*.png
  • docs/解决方案/imgs/npm3.png is excluded by !**/*.png
  • docs/解决方案/imgs/property.png is excluded by !**/*.png
  • docs/解决方案/imgs/publish_block.png is excluded by !**/*.png
  • docs/解决方案/imgs/publish_block2.png is excluded by !**/*.png
  • docs/解决方案/imgs/save_block.png is excluded by !**/*.png
  • docs/解决方案/imgs/slots.png is excluded by !**/*.png
  • docs/解决方案/imgs/snippets.png is excluded by !**/*.png
  • docs/解决方案/imgs/synchronize-materials.png is excluded by !**/*.png
  • docs/进阶功能/imgs/ScreenShot_20241029195609.png is excluded by !**/*.png
  • docs/进阶功能/imgs/add-Function.png is excluded by !**/*.png
  • docs/进阶功能/imgs/addAiPlugin.png is excluded by !**/*.png
  • docs/进阶功能/imgs/addVar-17.png is excluded by !**/*.png
  • docs/进阶功能/imgs/addVar-19.png is excluded by !**/*.png
  • docs/进阶功能/imgs/addvar-15.png is excluded by !**/*.png
  • docs/进阶功能/imgs/askToModifyPage.png is excluded by !**/*.png
  • docs/进阶功能/imgs/bindEvent.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/bindVariable-16.png is excluded by !**/*.png
  • docs/进阶功能/imgs/bindVariable-18.png is excluded by !**/*.png
  • docs/进阶功能/imgs/blockBaseSetting.png is excluded by !**/*.png
  • docs/进阶功能/imgs/blockExposeAttr.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/blockexposeattrusage.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/conditionRender.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/createBlockFromPage.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/createEmptyBlock.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-1.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-2.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-3.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-4.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-load-1.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-load-2.png is excluded by !**/*.png
  • docs/进阶功能/imgs/data-source-load-3.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource1.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource2.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource3.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource4.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource5.png is excluded by !**/*.png
  • docs/进阶功能/imgs/dataSource7.png is excluded by !**/*.png
  • docs/进阶功能/imgs/defineslot.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/icon-code.png is excluded by !**/*.png
  • docs/进阶功能/imgs/openAiWindow.png is excluded by !**/*.png
  • docs/进阶功能/imgs/pageJs.png is excluded by !**/*.png
  • docs/进阶功能/imgs/pageJsContent.png is excluded by !**/*.png
  • docs/进阶功能/imgs/pageJsJsxFunc.png is excluded by !**/*.png
  • docs/进阶功能/imgs/pageJsMethod.png is excluded by !**/*.png
  • docs/进阶功能/imgs/parseJxBindingJsxFunc.png is excluded by !**/*.png
  • docs/进阶功能/imgs/parseJxBindingJsxFuncResult.png is excluded by !**/*.png
  • docs/进阶功能/imgs/state-isLogin为false时.png is excluded by !**/*.png
  • docs/进阶功能/imgs/state-isLogin为ture时.png is excluded by !**/*.png
  • docs/进阶功能/imgs/use-npm.png is excluded by !**/*.png
  • docs/进阶功能/imgs/useBlock.png is excluded by !**/*.png
  • docs/进阶功能/imgs/useLoop.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/usingslot.gif is excluded by !**/*.gif
  • docs/进阶功能/imgs/utils4.png is excluded by !**/*.png
  • docs/进阶功能/imgs/viewRender.png is excluded by !**/*.png
📒 Files selected for processing (68)
  • docs/API/API总览.md (1 hunks)
  • docs/API/主包API.md (1 hunks)
  • docs/API/全局布局API.md (1 hunks)
  • docs/API/后端API/AI功能接口.md (1 hunks)
  • docs/API/后端API/APP服务.md (1 hunks)
  • docs/API/后端API/DSL代码生成.md (1 hunks)
  • docs/API/后端API/应用工具类管理.md (1 hunks)
  • docs/API/后端API/数据源管理.md (1 hunks)
  • docs/API/物料API.md (1 hunks)
  • docs/API/画布API.md (1 hunks)
  • docs/API/设置面板API.md (1 hunks)
  • docs/catalog.json (1 hunks)
  • docs/index.md (1 hunks)
  • docs/关于应用/创建应用(创建空白应用、从模板创建应用).md (1 hunks)
  • docs/关于应用/开发应用.md (1 hunks)
  • docs/关于物料/介绍.md (1 hunks)
  • docs/关于物料/创建物料资产包.md (1 hunks)
  • docs/关于物料/构建物料资产包.md (1 hunks)
  • docs/关于物料/添加组件库和区块.md (1 hunks)
  • docs/关于设计器/介绍.md (1 hunks)
  • docs/关于设计器/创建设计器.md (1 hunks)
  • docs/关于设计器/定制物料资产包、主题、DSL、工具栏和插件栏.md (1 hunks)
  • docs/关于设计器/定制设计器.md (1 hunks)
  • docs/基础功能/使用状态管理和变量绑定.md (1 hunks)
  • docs/基础功能/使用组件.md (1 hunks)
  • docs/基础功能/初识设计器.md (1 hunks)
  • docs/基础功能/国际化.md (1 hunks)
  • docs/基础功能/查看大纲树.md (1 hunks)
  • docs/基础功能/样式设置.md (1 hunks)
  • docs/基础功能/行内样式绑定状态变量.md (1 hunks)
  • docs/基础功能/设计前端应用流程.md (1 hunks)
  • docs/基础功能/设计器界面模块简介.md (1 hunks)
  • docs/基础功能/页面和区块预览.md (1 hunks)
  • docs/基础功能/页面管理.md (1 hunks)
  • docs/实战案例/PDM元数据审批电子流.md (1 hunks)
  • docs/实战案例/SMB轻量应用服务.md (1 hunks)
  • docs/实战案例/图元编排设计器.md (1 hunks)
  • docs/开始/快速上手.md (1 hunks)
  • docs/开始/简介.md (1 hunks)
  • docs/扩展能力介绍/元服务和元应用.md (1 hunks)
  • docs/扩展能力介绍/新架构介绍.md (1 hunks)
  • docs/扩展能力介绍/注册表.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/出码功能简介与使用.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/如何自定义出码.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/如何自定义出码插件.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/官方出码能力API.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/自定义页面出码插件.md (1 hunks)
  • docs/扩展能力使用教程/如何开发插件.md (1 hunks)
  • docs/扩展能力使用教程/定制元服务逻辑.md (1 hunks)
  • docs/扩展能力使用教程/定制插件UI.md (1 hunks)
  • docs/扩展能力使用教程/开发设置器组件.md (1 hunks)
  • docs/教程/从零搭建一个页面.md (1 hunks)
  • docs/教程/第一期2023.10.27.md (1 hunks)
  • docs/新手指引/快速上手.md (1 hunks)
  • docs/新手指引/简介.md (1 hunks)
  • docs/生态中心/介绍.md (1 hunks)
  • docs/生态中心/发布其他生态.md (1 hunks)
  • docs/生态中心/如何发布区块.md (1 hunks)
  • docs/生态中心/如何导入组件库.md (1 hunks)
  • docs/解决方案/区块发布方案.md (1 hunks)
  • docs/解决方案/区块局域网发布方案.md (1 hunks)
  • docs/解决方案/服务端部署方案.md (1 hunks)
  • docs/解决方案/物料同步方案.md (1 hunks)
  • docs/解决方案/设计器中引入第三方组件库.md (1 hunks)
  • docs/进阶功能/使用JS面板和事件绑定.md (1 hunks)
  • docs/进阶功能/使用工具类方法 utils.md (1 hunks)
  • docs/进阶功能/区块管理.md (1 hunks)
  • docs/进阶功能/如何使用插槽.md (1 hunks)
✅ Files skipped from review due to trivial changes (10)
  • docs/关于物料/添加组件库和区块.md
  • docs/关于设计器/创建设计器.md
  • docs/关于物料/构建物料资产包.md
  • docs/教程/从零搭建一个页面.md
  • docs/API/API总览.md
  • docs/关于设计器/介绍.md
  • docs/关于设计器/定制设计器.md
  • docs/关于应用/创建应用(创建空白应用、从模板创建应用).md
  • docs/关于设计器/定制物料资产包、主题、DSL、工具栏和插件栏.md
  • docs/catalog.json
🧰 Additional context used
🪛 Markdownlint (0.35.0)
docs/基础功能/国际化.md

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


12-12: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


22-22: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


28-28: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


29-29: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


32-32: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


39-39: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


40-40: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


44-44: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


48-48: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


52-52: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


58-58: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


59-59: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


64-64: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


68-68: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


71-71: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


75-75: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


72-72: null
Link fragments should be valid

(MD051, link-fragments)

docs/基础功能/行内样式绑定状态变量.md

12-12: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


15-15: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


19-19: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


25-25: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


28-28: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


31-31: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/生态中心/如何发布区块.md

9-9: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/基础功能/设计前端应用流程.md

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


12-12: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


17-17: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


31-31: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


41-41: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


44-44: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


47-47: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


50-50: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


61-61: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/教程/第一期2023.10.27.md

7-7: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


175-175: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


177-177: null
Bare URL used

(MD034, no-bare-urls)

docs/新手指引/快速上手.md

8-8: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


10-10: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


14-14: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


18-18: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


22-22: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/生态中心/如何导入组件库.md

30-30: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


41-41: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

docs/API/设置面板API.md

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)

docs/进阶功能/使用工具类方法 utils.md

8-8: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/解决方案/区块发布方案.md

95-95: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


103-103: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


113-113: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


63-63: null
Bare URL used

(MD034, no-bare-urls)


53-53: null
Spaces inside code span elements

(MD038, no-space-in-code)


65-65: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


107-107: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


111-111: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


117-117: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


121-121: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

docs/开始/快速上手.md

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/API/后端API/AI功能接口.md

21-21: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


27-27: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/新手指引/简介.md

15-15: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


19-19: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/基础功能/设计器界面模块简介.md

5-5: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)

docs/基础功能/使用组件.md

11-11: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


26-26: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


29-29: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


34-34: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


45-45: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


50-50: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


55-55: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


58-58: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


65-65: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


68-68: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


71-71: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/API/画布API.md

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


25-25: null
Spaces inside code span elements

(MD038, no-space-in-code)


7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


28-28: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


60-60: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


142-142: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/开始/简介.md

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)

docs/实战案例/PDM元数据审批电子流.md

17-17: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/解决方案/服务端部署方案.md

19-19: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


21-21: Expected: asterisk; Actual: dash
Unordered list style

(MD004, ul-style)


7-7: null
Bare URL used

(MD034, no-bare-urls)


23-23: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


336-336: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


41-41: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


42-42: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


43-43: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


44-44: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


45-45: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


47-47: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


48-48: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


49-49: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


50-50: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


51-51: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


60-60: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


61-61: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


62-62: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


63-63: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


64-64: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


71-71: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


72-72: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


73-73: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


74-74: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


75-75: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


82-82: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


83-83: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


84-84: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


85-85: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


86-86: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


91-91: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


92-92: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


93-93: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


94-94: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


95-95: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

docs/API/后端API/APP服务.md

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/解决方案/区块局域网发布方案.md

208-208: Column: 7
Hard tabs

(MD010, no-hard-tabs)


208-208: Column: 27
Hard tabs

(MD010, no-hard-tabs)


210-210: Column: 14
Hard tabs

(MD010, no-hard-tabs)


210-210: Column: 28
Hard tabs

(MD010, no-hard-tabs)


211-211: Column: 15
Hard tabs

(MD010, no-hard-tabs)


211-211: Column: 29
Hard tabs

(MD010, no-hard-tabs)


212-212: Column: 16
Hard tabs

(MD010, no-hard-tabs)


212-212: Column: 26
Hard tabs

(MD010, no-hard-tabs)


213-213: Column: 9
Hard tabs

(MD010, no-hard-tabs)


213-213: Column: 27
Hard tabs

(MD010, no-hard-tabs)


214-214: Column: 12
Hard tabs

(MD010, no-hard-tabs)


214-214: Column: 27
Hard tabs

(MD010, no-hard-tabs)


215-215: Column: 12
Hard tabs

(MD010, no-hard-tabs)


215-215: Column: 27
Hard tabs

(MD010, no-hard-tabs)


200-200: null
Bare URL used

(MD034, no-bare-urls)


62-62: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


377-377: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


209-209: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


300-300: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


308-308: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)


309-309: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

docs/API/后端API/应用工具类管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


63-63: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


110-110: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


144-144: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/API/后端API/数据源管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/关于应用/开发应用.md

9-9: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/基础功能/初识设计器.md

5-5: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)

docs/基础功能/查看大纲树.md

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


8-8: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/生态中心/介绍.md

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/生态中心/发布其他生态.md

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)


4-4: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

🪛 LanguageTool
docs/教程/第一期2023.10.27.md

[uncategorized] ~125-~125: 表示选择的疑问句中不能使用 “或者” ,请改用:"还是"。
Context: ...## 问题7:在使用 TinyEngine 低代码引擎时,组件内的静态资源(图片或者音频)如何引用? 答:这个问题要分多种情况讨论, - 设计器开发: 可以拉下...

(wb3)


[uncategorized] ~187-~187: 表示选择的疑问句中不能使用 “或者” ,请改用:"还是"。
Context: ...大家敬请期待 ### 问题4:TinyEngine 低代码引擎是否提供商业版本或者商业上的技术支持? 答:目前只有一个开源版本的代码,没有商业版本。至于商业技术...

(wb3)

docs/扩展能力介绍/新架构介绍.md

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...

(wb4)

docs/实战案例/图元编排设计器.md

[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。 考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...

(wa5)


[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍 TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...

(wb4)


[uncategorized] ~74-~74: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一定"地"开发
Context: ...或切换。 ### 遵循插件规范开发 TinyEngine插件开发需要遵循一定的开发规范,主要是文件规范与导出规范: * 文件规范,必须包含下面几个文件 `...

(wb4)


[uncategorized] ~121-~121: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:快速"地"完成
Context: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 ​​![image](./imgs/...

(wb4)


[uncategorized] ~127-~127: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:优秀"地"插
Context: ...TinyEngine的基础引擎能力,快速搭建出PoC原型,再此基础上,利用其优秀的插件架构和提供的插件公共能力,添加业务相关插件,快速开发出一个领域定制的专属设计...

(wb4)

docs/生态中心/如何导入组件库.md

[uncategorized] ~4-~4: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...入组件库 ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...

(wb4)

docs/API/设置面板API.md

[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...

(wb2)

docs/扩展能力使用教程/出码功能/出码功能简介与使用.md

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...

(wb4)


[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...

(wb4)

docs/开始/快速上手.md

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


[uncategorized] ~64-~64: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ... 另起一个终端,在当前目录下,输入下面命令,选择创建plugin类型,创建一个新的插件 ```shell npx @opentiny/tiny-engine-c...

(wb4)


[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ...#### 2.2.3 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: ![cli-plugin-open](./imgs/cli-plugi...

(wb4)

docs/新手指引/简介.md

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

docs/API/后端API/DSL代码生成.md

[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]

输出示例:

<cod...

(UNLIKELY_OPENING_PUNCTUATION)

docs/基础功能/使用组件.md

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/进阶功能/使用JS面板和事件绑定.md

[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 ![在页面JS中定义渲染函数](./imgs/pag...

(wb2)


[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。

(wb4)

docs/开始/简介.md

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)

docs/实战案例/PDM元数据审批电子流.md

[uncategorized] ~27-~27: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。

avatar ...

(wb4)

docs/API/后端API/APP服务.md

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 获取页面/区块源码 ### 基本信息 Path:...

(EN_A_VS_AN)


[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 页面/区块预览用元数据 ### 基本信息 **Path:...

(EN_A_VS_AN)

docs/解决方案/区块局域网发布方案.md

[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正确"地"显示
Context: ...正常发布在私仓上,如果想要在TinyEngine的页面上去获取到私仓里的包,正确的显示区块,我们还需要借助unpkg去获取到包的数据,而由于公网的unpkg无法直...

(wb4)


[uncategorized] ~181-~181: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正常"地"使用
Context: ...ng) 验证完成后,可以在物料中把刚才发布的区块进行添加,添加完毕后就可以正常的使用区块功能。 ## 五、服务部署 当前步骤都是在电脑本地环境下运行调试的,...

(wb4)

docs/进阶功能/区块管理.md

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)


[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 ![区块暴露属性的消费](./imgs/blockexp...

(JI11_JI2)

docs/解决方案/设计器中引入第三方组件库.md

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:进一步"地"解释
Context: ...ts、组件面板配置snippets。下面将在协议基础上对核心字段作进一步的解释,可以打开源码中物料资产包文件(packages\design-core\p...

(wb4)

docs/关于物料/创建物料资产包.md

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/基础功能/页面和区块预览.md

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

docs/生态中心/发布其他生态.md

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

🔇 Additional comments (27)
docs/新手指引/简介.md (1)

1-30: Well-structured documentation with clear sections

The document is well-organized with proper heading hierarchy and clear sections explaining the platform's background, positioning, and key features.

🧰 Tools
🪛 Markdownlint (0.35.0)

15-15: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


19-19: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

🪛 LanguageTool

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

docs/扩展能力使用教程/定制插件UI.md (1)

33-33: Verify referenced images exist in the repository.

Let's ensure the referenced images are present in the repository.

Also applies to: 68-68

✅ Verification successful

Images referenced in the documentation exist in the correct location

Both referenced images custom-plugin-page-pos.png and custom-plugin-page-full.png are present in the expected docs/扩展能力使用教程/imgs/ directory.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
fd -t f "custom-plugin-page-pos.png|custom-plugin-page-full.png" docs/

Length of output: 165

docs/扩展能力使用教程/出码功能/出码功能简介与使用.md (2)

1-6: LGTM! Clear and well-structured introduction.

The introduction effectively explains the concept of code export and its role in the TinyEngine platform.


56-56: Enhance image accessibility and verify the path.

Consider improving the image alt text for better accessibility and ensuring the image path is correct.

Suggested improvement for the image tag:

-![应用出码示例](./imgs/exportcode.gif)
+![应用出码示例 - 展示如何使用工具栏进行应用代码导出的操作演示](./imgs/exportcode.gif)
✅ Verification successful

Image path is valid and accessible

The verification shows that the referenced image file exportcode.gif exists at the correct relative path docs/扩展能力使用教程/出码功能/imgs/exportcode.gif. While the alt text could be more descriptive for accessibility, the technical implementation of the image reference is correct.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify if the image exists and check for other image references
fd -e gif -e png -e jpg -e jpeg . docs/扩展能力使用教程/出码功能/imgs/

# Check if there are any broken image references
rg -l '!\[.*\]\(.*\)' docs/扩展能力使用教程/出码功能/ | xargs -I {} sh -c 'echo "Checking {}:"; rg "!\[.*\]\(.*\)" {}'

Length of output: 980

docs/进阶功能/区块管理.md (3)

78-93: LGTM! Clear and well-structured Vue component example

The Vue component example effectively demonstrates the props concept using the Composition API.


1-129: Overall documentation quality is good

The documentation provides a comprehensive guide to block management with:

  • Clear explanations and concepts
  • Relevant code examples
  • Visual aids for better understanding
  • Proper structure and organization

The minor formatting and grammar issues noted above should be addressed, but they don't impact the overall quality and usefulness of the documentation.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)


[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 ![区块暴露属性的消费](./imgs/blockexp...

(JI11_JI2)


34-34: Verify referenced images exist

Let's ensure all referenced images are present in the repository.

Also applies to: 49-49, 64-64, 101-101, 107-107

✅ Verification successful

All referenced images are present in the repository

All image files referenced in the documentation were found in the repository:

  • createEmptyBlock.png
  • createBlockFromPage.gif
  • blockBaseSetting.png
  • blockExposeAttr.gif
  • blockexposeattrusage.gif
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all referenced images exist in the repository

# Extract image paths and check existence
IMAGES=(
  "docs/进阶功能/imgs/createEmptyBlock.png"
  "docs/进阶功能/imgs/createBlockFromPage.gif"
  "docs/进阶功能/imgs/blockBaseSetting.png"
  "docs/进阶功能/imgs/blockExposeAttr.gif"
  "docs/进阶功能/imgs/blockexposeattrusage.gif"
)

for img in "${IMAGES[@]}"; do
  if fd -t f "^$(basename "$img")$" | grep -q .; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

Length of output: 1575

docs/基础功能/样式设置.md (1)

34-57: LGTM! Clear instructions with helpful visuals.

The style panel configuration section is well-documented with clear steps and supporting images.

docs/基础功能/页面管理.md (4)

1-4: LGTM! Clear and concise introduction.

The title and introduction effectively communicate the purpose and capabilities of the page management plugin.


1-60: Well-structured and comprehensive documentation

The documentation effectively covers all aspects of page management, from basic concepts to advanced features, with appropriate visual aids and examples. The structure is logical and easy to follow.


26-26: Verify referenced images exist

The documentation references several images. Let's ensure they are properly included in the repository.

Also applies to: 32-32, 39-39

✅ Verification successful

All referenced images are present and accessible

All image files referenced in the documentation (addFolder.png, addPage.png, and pagedelOrCopy.png) exist in the correct location under docs/基础功能/imgs/ directory.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that referenced images exist in the repository
# Expected: All image files should be found

echo "Checking for referenced images..."
for img in "addFolder.png" "addPage.png" "pagedelOrCopy.png"; do
  if fd -p "docs/基础功能/imgs/$img"; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

Length of output: 777


55-55: Verify remaining image references

Let's ensure the remaining images exist in the repository.

Also applies to: 60-60

✅ Verification successful

All referenced images are present in the repository

All image files referenced in the documentation are found in their expected locations:

  • docs/基础功能/imgs/lifecycle.gif
  • docs/基础功能/imgs/pageManaIndex.png
  • docs/基础功能/imgs/pageManaHistoryRestore.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that referenced images exist in the repository
# Expected: All image files should be found

echo "Checking for referenced images..."
for img in "lifecycle.gif" "pageManaIndex.png" "pageManaHistoryRestore.png"; do
  if fd -p "docs/基础功能/imgs/$img"; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

Length of output: 882

docs/扩展能力使用教程/出码功能/如何自定义出码.md (3)

1-121: Well-structured and comprehensive documentation

The document provides a clear and thorough explanation of code generation customization in TinyEngine. It effectively covers:

  • Core concepts and processes
  • Official capabilities and workflow
  • Installation and usage
  • Plugin customization
  • Custom package creation

The content is well-organized with appropriate examples and visual aids.


121-121: Verify the referenced image file

The document references the image file ./imgs/customGenCodePlugin.png. Let's ensure it exists in the correct location.

✅ Verification successful

Image file exists at the correct location

The referenced image file ./imgs/customGenCodePlugin.png exists at the expected relative path from the markdown file's location, making the image reference valid.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced image exists
fd --type f "customGenCodePlugin.png" docs/

Length of output: 91


5-5: Verify the referenced document link

The document references 出码功能简介与使用.md using a relative path. Let's ensure this document exists and is properly linked.

✅ Verification successful

Document link is correctly referenced

The referenced document 出码功能简介与使用.md exists at the expected location in the same directory, making the relative path link ./出码功能简介与使用.md valid and functional.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced document exists
fd --type f "出码功能简介与使用.md" docs/

Length of output: 166

docs/基础功能/初识设计器.md (3)

11-29: Well-documented toolbar functionality!

The section provides a clear and comprehensive overview of each toolbar function, making it easy for users to understand available actions.


38-62: Excellent documentation of core interface components!

The sections covering the canvas, settings panel, and node tree are well-structured and provide clear explanations of their functionality. The inclusion of relevant images helps users understand each component's purpose and location in the interface.


7-7: Verify image assets existence

Let's ensure all referenced images are present in the correct location.

Also applies to: 13-13, 32-32, 40-40, 50-50, 53-53, 56-56, 60-60

✅ Verification successful

This will help us see what images actually exist in the directory, rather than just checking for specific files. This way we can verify if the referenced images exist and also see what other images might be present.


All referenced images are present in the correct location

Based on the fd command output, all the images referenced in the documentation file are present in the correct location at docs/基础功能/imgs/:

  • platformExpend.png
  • toolbaroverview.png
  • pluginoverview.png
  • canvasoverview.png
  • settingPanelOverview.png
  • stylePanelOverview.png
  • eventOverview.png
  • treeselectOverview.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all referenced images exist in the correct location

# Get the directory of the current markdown file
DOC_DIR="docs/基础功能"
IMG_DIR="$DOC_DIR/imgs"

# List of images to check
IMAGES=(
    "platformExpend.png"
    "toolbaroverview.png"
    "pluginoverview.png"
    "canvasoverview.png"
    "settingPanelOverview.png"
    "stylePanelOverview.png"
    "eventOverview.png"
    "treeselectOverview.png"
)

# Check each image
for img in "${IMAGES[@]}"; do
    if [ ! -f "$IMG_DIR/$img" ]; then
        echo "Missing image: $IMG_DIR/$img"
    fi
done

Length of output: 1353


Script:

#!/bin/bash
# Let's try a different approach using fd to find the actual images
fd -t f -e png . "docs/基础功能/imgs"

Length of output: 1978

docs/新手指引/快速上手.md (3)

1-7: LGTM! Clear and concise introduction.

The introduction effectively explains the purpose of the guide and sets clear expectations for the reader.


42-43: LGTM! Positive conclusion.

The conclusion provides a good sense of accomplishment for readers who complete the tutorial.


1-43: Verify the existence of referenced images.

Let's ensure all referenced images exist in the repository.

✅ Verification successful

All referenced images are present in the repository

All image files referenced in the documentation exist in the correct location under docs/新手指引/imgs/. The fd command confirmed the presence of all required images:

  • showImg.png
  • page1.png
  • addComponent.png
  • addState.png
  • imgswitch.png
  • setImgSrc.png
  • setImgSty.png
  • setImgSta.png
  • bangEnv.png
  • preImgChange.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all referenced images exist in the repository

# Extract image paths and check their existence
images=(
    "docs/新手指引/imgs/showImg.png"
    "docs/新手指引/imgs/page1.png"
    "docs/新手指引/imgs/addComponent.png"
    "docs/新手指引/imgs/addState.png"
    "docs/新手指引/imgs/imgswitch.png"
    "docs/新手指引/imgs/setImgSrc.png"
    "docs/新手指引/imgs/setImgSty.png"
    "docs/新手指引/imgs/setImgSta.png"
    "docs/新手指引/imgs/bangEnv.png"
    "docs/新手指引/imgs/preImgChange.png"
)

for img in "${images[@]}"; do
    if [ ! -f "$img" ]; then
        echo "Missing image: $img"
    fi
done

Length of output: 1524


Script:

#!/bin/bash
# Let's try a different approach using fd to find the actual images
fd -e png . "docs/新手指引/imgs"

Length of output: 421

🧰 Tools
🪛 Markdownlint (0.35.0)

8-8: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


10-10: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


14-14: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


18-18: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


22-22: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/扩展能力使用教程/出码功能/自定义页面出码插件.md (1)

548-549: Verify documentation coverage of all API features.

Let's verify that all exported APIs and features are properly documented.

✅ Verification successful

Let me analyze the output to verify the documentation coverage.

The search results show:

  1. A large number of exported functions and types across the codebase
  2. The documentation file in question is specifically about custom page code generation plugins
  3. The IInsertPosition type being reviewed is related to code generation functionality

Let me verify if all the exported APIs related to code generation are properly documented.


Let me do one more verification to check the code generation related APIs and their documentation coverage.


Based on the documentation review, I can now provide a final assessment of the documentation coverage:

Documentation coverage is complete and accurate

The documentation thoroughly covers the IInsertPosition type and its usage context:

  1. The type is properly documented with all valid values: 'AFTER_IMPORT' | 'BEFORE_PROPS' | 'AFTER_PROPS' | 'BEFORE_EMIT' | 'AFTER_EMIT' | 'BEFORE_STATE' | 'AFTER_STATE' | 'BEFORE_METHODS' | 'AFTER_METHODS'

  2. The documentation provides:

    • Complete API reference in the TypeScript interfaces section
    • Clear explanation of how to use these positions with addStatement method
    • Practical examples showing usage in code generation
    • Comprehensive context about where and when to use these insert positions
  3. The type is properly integrated into the broader code generation documentation, showing its role in the plugin system

The documentation is well-structured and provides all necessary information for developers to understand and use the IInsertPosition type correctly.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for potential undocumented APIs
echo "Searching for exported functions and types..."
rg -t ts -t js "export (type|interface|function|class)" --no-filename

# Search for TODO comments that might indicate incomplete documentation
echo "Checking for TODO comments..."
rg -i "todo|fixme|xxx" --no-filename

Length of output: 68140


Script:

#!/bin/bash
# Search for exported types/interfaces related to code generation
echo "Searching for code generation related types..."
rg -t ts -t js "export (type|interface)" --context 2

# Search for code generation related content in docs
echo "Searching docs for code generation APIs..."
fd -e md -x grep -l "InsertPosition" {} \;

Length of output: 332


Script:

#!/bin/bash
# Search for code generation related content in the specific doc file
echo "Checking code generation documentation content..."
cat "./docs/扩展能力使用教程/出码功能/自定义页面出码插件.md"

# Search for all exported types/interfaces in the codebase
echo "Searching for all exported types..."
ast-grep --pattern 'export type $_ = $$$'

Length of output: 13261

docs/实战案例/SMB轻量应用服务.md (1)

11-11: Verify image paths and ensure images are committed

Multiple image references (./imgs/...) are used. Please verify:

  1. All referenced images exist in the repository
  2. Image paths are correct relative to the document location
  3. Images are committed as part of this PR

Also applies to: 17-17, 28-28, 38-38, 44-44, 48-48

✅ Verification successful

The first verification showed that most images exist, but I need to verify the relative paths are correct based on the document's location and check all image references in the document.


All referenced images exist and paths are correct

All image references in docs/实战案例/SMB轻量应用服务.md use relative paths (./imgs/) and the corresponding images are present in the correct location (docs/实战案例/imgs/). The verification confirms:

  • Document location: docs/实战案例/SMB轻量应用服务.md
  • All 6 referenced images exist:
    • smbHome.png
    • app.png
    • blockSettings.png
    • blockProps.png
    • download.png
    • code.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if referenced images exist
for img in smbHome.png app.png blockSettings.png blockProps.png download.png code.png; do
  fd -t f "$img" || echo "Missing: $img"
done

Length of output: 995


Script:

#!/bin/bash
# Check the actual document location and verify relative paths
fd -p "SMB轻量应用服务.md$" --full-path

# List all image references in the document
rg "!\[.*\]\(.*\.png\)" "docs/实战案例/SMB轻量应用服务.md"

Length of output: 415

docs/实战案例/图元编排设计器.md (1)

88-98: LGTM! Clear plugin export structure example.

The code example clearly demonstrates the required plugin export structure with well-documented properties.

docs/进阶功能/如何使用插槽.md (1)

12-36: LGTM! Clear and practical slot usage examples.

The Vue.js code examples effectively demonstrate both slot declaration and usage patterns.

docs/生态中心/介绍.md (1)

1-10: Documentation structure and content look good!

The ecological center overview is well-structured and provides clear explanations of the five key ecosystems. The content flows logically from the overview to specific components, making it easy for readers to understand the TinyEngine ecosystem.

🧰 Tools
🪛 Markdownlint (0.35.0)

5-5: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/基础功能/页面和区块预览.md (1)

1-25: Documentation is comprehensive and well-structured!

The page/block preview documentation effectively:

  • Explains the purpose and necessity of the preview feature
  • Provides clear navigation instructions
  • Includes visual examples
  • Lists additional validation features

The content organization makes it easy for developers to understand and use the preview functionality.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

docs/新手指引/简介.md Outdated Show resolved Hide resolved
docs/解决方案/区块发布方案.md Outdated Show resolved Hide resolved
docs/基础功能/样式设置.md Outdated Show resolved Hide resolved
docs/解决方案/区块局域网发布方案.md Outdated Show resolved Hide resolved
docs/API/后端API/AI功能接口.md Outdated Show resolved Hide resolved
docs/API/后端API/应用工具类管理.md Outdated Show resolved Hide resolved
docs/API/后端API/应用工具类管理.md Outdated Show resolved Hide resolved
docs/基础功能/查看大纲树.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (10)
docs/基础功能/国际化.md (2)

72-72: Fix variable binding example format

The variable binding example could be more readable using code formatting.

Apply this diff:

-输入变量t('lowcode.67564435'),其中lowcode.67564435为词条的key值
+输入变量 `t('lowcode.67564435')`,其中 `lowcode.67564435` 为词条的key值

77-79: Add visual reference for language toggle

The instructions mention a language toggle button but don't show where it is located. Consider adding a screenshot of the top toolbar highlighting the language toggle button.

Add a new image and description:

**图 7** 语言切换按钮
![Language toggle button in the top toolbar](./imgs/language-toggle.png "Language toggle button location")
docs/新手指引/简介.md (5)

3-4: Improve text formatting for better readability

Consider merging these lines into a single paragraph to ensure consistent rendering across different Markdown processors:

-<b>低代码平台</b>是一种应用程序开发平台,允许用户以图形化方式构建应用程序,通过拖放组件、模板和可视化界面,降低了开发者和非技术用户的技能门槛。用户只需编写少量代码,便可以实现复杂的功能。这种方式不仅提高了开发速度,
-随着数字化转型的加速,企业越来越多地寻求降低开发成本、提升开发效率的解决方案。
+<b>低代码平台</b>是一种应用程序开发平台,允许用户以图形化方式构建应用程序,通过拖放组件、模板和可视化界面,降低了开发者和非技术用户的技能门槛。用户只需编写少量代码,便可以实现复杂的功能。这种方式不仅提高了开发速度,随着数字化转型的加速,企业越来越多地寻求降低开发成本、提升开发效率的解决方案。

Also, consider using Markdown's native bold syntax **低代码平台** instead of HTML <b> tags.


12-13: Improve text formatting and list readability

Consider reformatting these lines for better readability:

-低代码引擎它内置了一个功能强大的低代码设计器,用户可以基于低代码引擎定制(开发)出各种低代码平台,如:流程编排平台、页面编排平台、图元编排平台、移动端页面开发平台
-、大屏开发平台等等......
+低代码引擎它内置了一个功能强大的低代码设计器,用户可以基于低代码引擎定制(开发)出各种低代码平台,如:
+- 流程编排平台
+- 页面编排平台
+- 图元编排平台
+- 移动端页面开发平台
+- 大屏开发平台
+等。

23-23: Fix Chinese grammar in the sentence

Add the particle "地" for correct Chinese grammar:

-得益于 TinyEngine 强大的开放物料设计
+得益于 TinyEngine 强大地开放物料设计
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)


31-37: Remove excessive empty lines

Keep only one empty line at the end of the file. Remove lines 32-37.


1-29: Enhance document structure and navigation

Consider these improvements to the document structure:

  1. Add a table of contents at the beginning for better navigation
  2. Convert the numbered feature list (points 1-5) to proper Markdown heading sections for better structure and navigation

Example TOC:

## 目录
- [简介](#简介)
- [低代码引擎背景](#低代码引擎背景)
- [低代码引擎的定位](#低代码引擎的定位)
- [TinyEngine 低代码引擎介绍](#tinyengine-低代码引擎介绍)
  - [插件体系](#插件体系)
  - [物料协议](#物料协议)
  - [混合开发](#混合开发)
  - [AI 辅助开发](#ai-辅助开发)
  - [架构优势](#架构优势)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

docs/开始/简介.md (3)

45-49: Remove unnecessary blank lines at the end of the document

Multiple consecutive blank lines at the end of the document should be removed to maintain cleaner documentation.

随着低代码平台的普及,TinyEngine 将不断优化和扩展其功能。未来,TinyEngine 可能会集成更多的人工智能和机器学习功能,使得应用程序更加智能化和自动化。同时,团队将继续提升用户体验,确保平台的易用性和灵活性。
-
-
-
-

16-16: Clarify the mixed development statement

The current phrasing "支持高代码与低代码,混合开发部署应用" could be ambiguous. Consider rephrasing to clarify if mixed development applies to both high-code and low-code.

Suggested revision:

-支持高代码与低代码,混合开发部署应用
+支持高代码与低代码的混合开发与部署应用
🧰 Tools
🪛 LanguageTool

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)


9-9: Fix typo: Remove repeated word

There's a repeated word "的" in the phrase "企业组织理念的的".

-TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的的低代码平台,打造出专业级的企业应用程序生成器。
+TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的低代码平台,打造出专业级的企业应用程序生成器。
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between fc45cc1 and ef6228d.

📒 Files selected for processing (9)
  • docs/基础功能/初识设计器.md (1 hunks)
  • docs/基础功能/国际化.md (1 hunks)
  • docs/基础功能/样式设置.md (1 hunks)
  • docs/基础功能/设计器界面模块简介.md (1 hunks)
  • docs/开始/简介.md (1 hunks)
  • docs/扩展能力使用教程/出码功能/如何自定义出码.md (1 hunks)
  • docs/扩展能力使用教程/开发设置器组件.md (1 hunks)
  • docs/新手指引/快速上手.md (1 hunks)
  • docs/新手指引/简介.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/新手指引/快速上手.md
  • docs/扩展能力使用教程/开发设置器组件.md
  • docs/基础功能/样式设置.md
  • docs/基础功能/设计器界面模块简介.md
  • docs/扩展能力使用教程/出码功能/如何自定义出码.md
  • docs/基础功能/初识设计器.md
🧰 Additional context used
🪛 Markdownlint (0.35.0)
docs/基础功能/国际化.md

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


12-12: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


22-22: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


28-28: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


29-29: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


32-32: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


39-39: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


40-40: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


44-44: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


48-48: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


52-52: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


58-58: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


59-59: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


64-64: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


68-68: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


71-71: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


75-75: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

🪛 LanguageTool
docs/开始/简介.md

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)

docs/新手指引/简介.md

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

🔇 Additional comments (6)
docs/基础功能/国际化.md (3)

1-9: Add alt text to images for accessibility

The note icon image is missing alt text.

Apply this diff:

-![](public_sys-resources/icon-note.gif)
+![Note icon](public_sys-resources/icon-note.gif)
🧰 Tools
🪛 Markdownlint (0.35.0)

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


10-25: Add alt text to images and improve image references

The i18n icon and screenshot images are missing alt text. Additionally, consider using more descriptive figure captions.

Apply these diffs:

-![](./imgs/icon-i18n.png)
+![Internationalization menu icon](./imgs/icon-i18n.png)

-![](./imgs/addWords.png "addWords")
+![Screenshot of adding a new internationalization entry](./imgs/addWords.png "Adding new internationalization entry")
🧰 Tools
🪛 Markdownlint (0.35.0)

12-12: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


22-22: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


26-36: Add alt text to images and improve image references

The icons and screenshot images are missing alt text.

Apply these diffs:

-![](./imgs/icon-i18n.png)
+![Internationalization menu icon](./imgs/icon-i18n.png)

-![](./imgs/icon-edit.png)
+![Edit icon](./imgs/icon-edit.png)

-![](./imgs/editWord.png "editWord")
+![Screenshot of editing an internationalization entry](./imgs/editWord.png "Editing internationalization entry")
🧰 Tools
🪛 Markdownlint (0.35.0)

28-28: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


29-29: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


32-32: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/新手指引/简介.md (1)

15-15: Previous accessibility comment still applies

The images still need descriptive alt text for accessibility purposes, as mentioned in the previous review.

Also applies to: 19-19

docs/开始/简介.md (2)

18-18: Consider adding more details about AI integration

The mention of AI model capabilities ("平台接入 AI 大模型能力") would benefit from:

  • Specific examples of AI features
  • How developers can utilize these capabilities
  • Any limitations or requirements

Let's check if there are other documentation files about AI integration:


15-15: Verify the standalone deployment capability

The claim "直接生成可部署的源码,运行时无需引擎支撑" is a significant feature. Let's ensure this is properly documented elsewhere.

✅ Verification successful

The standalone deployment capability is verified

Based on the codebase analysis, the claim "直接生成可部署的源码,运行时无需引擎支撑" (generates deployable source code without engine support at runtime) is accurate. The evidence shows:

  1. The buildMaterials.mjs script generates a standalone bundle that includes:
    • Complete component definitions with their npm packages and versions
    • Self-contained blocks and snippets
    • Component maps with explicit package dependencies
  2. The build process creates deployable assets that are independent of the engine:
    • Components are bundled with their required npm packages
    • Assets are compiled into standalone deployable format
    • No runtime engine dependencies are included in the output
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for documentation about standalone deployment
fd -e md -e mdx | xargs rg -l "无需引擎|独立部署|standalone|deployable"

Length of output: 212


Script:

#!/bin/bash
# Let's check the content of these files for more details about standalone deployment
echo "=== README.md ==="
cat README.md

echo -e "\n=== README.zh-CN.md ==="
cat README.zh-CN.md

echo -e "\n=== docs/开始/简介.md ==="
cat "docs/开始/简介.md"

Length of output: 6692


Script:

#!/bin/bash
# Let's search for code generation related files and implementations
echo "=== Searching for code generation related files ==="
fd -t f | rg -l "generate|codegen|源码|部署"

echo -e "\n=== Checking package.json for build scripts ==="
cat package.json | jq '.scripts'

echo -e "\n=== Looking for code generation implementations ==="
ast-grep --pattern 'function $_($$_) {
  $$$
  generate
  $$$
}'

Length of output: 2118


Script:

#!/bin/bash
# Let's check the build and materials-related scripts
echo "=== Checking build materials script ==="
cat ./scripts/buildMaterials.mjs

echo -e "\n=== Checking designer-demo build configuration ==="
fd -t f -p "packages/designer-demo" | rg -l "build|vite.config"

Length of output: 6096

docs/index.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (22)
docs/生态中心/发布其他生态.md (4)

1-1: Fix markdown heading formatting

The heading has incorrect indentation. Remove the leading space to comply with markdown standards.

- ## 如何发布其他生态
+## 如何发布其他生态
🧰 Tools
🪛 Markdownlint (0.37.0)

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)


4-4: Enhance image reference documentation

Consider adding alt text that better describes the image content and ensure the image path is correct.

-![发布插件](./imgs/ecology3.png)
+![插件发布流程和配置界面截图](./imgs/ecology3.png)

5-9: Improve content structure and readability

The content would benefit from better formatting and clearer sentence structure. Consider using bullet points for better readability.

-插件仓库地址为插件 npm 包所在的仓库地址
-版本号决定了安装哪一个版本的 npm 包
-被标识为官方的插件会显示"官方"字样
-被标识为默认的插件会在创建设计器时默认被选中
-公开决定了插件的可见范围,私有代表仅自己可见,公开代表所有用户可见,半公开只对选中组织内的用户可见
+### 配置说明:
+
+* **仓库地址**:插件的 npm 包所在的仓库地址
+* **版本号**:指定要安装的 npm 包版本
+* **标识类型**:
+  * 官方插件:会显示"官方"标识
+  * 默认插件:创建设计器时会默认选中
+* **可见范围**:
+  * 私有:仅创建者可见
+  * 公开:所有用户可见
+  * 半公开:仅选中组织内的用户可见
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)


1-9: Consider adding more comprehensive documentation

The current documentation could be enhanced with additional sections:

  1. Prerequisites or requirements
  2. Step-by-step publishing process
  3. Troubleshooting guide
  4. Examples or use cases

Would you like me to help generate a more detailed documentation structure?

🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

🪛 Markdownlint (0.37.0)

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)

docs/关于物料/创建物料资产包.md (2)

5-5: Consider improving the step formatting

The steps would be more readable using a numbered list format.

-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。*
+用户可以在生态中心创建物料资产包,步骤如下:
+1. 新建物料资产包
+2. 填写必要的字段
+3. 保存

8-8: Improve grammar in version description

Consider adding a measure word for better Chinese grammar.

-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。
+物料资产包版本是用户自定义的,用户可以将物料资产包回退到任意一个版本。
🧰 Tools
🪛 LanguageTool

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/解决方案/区块发布方案.md (4)

131-132: Format API endpoints consistently

Use code formatting for API endpoints for better readability:

- 接口地址: /material-center/block/deploy
+ 接口地址: `/material-center/block/deploy`

- 接口地址:`/app-center/api/tasks/status/:taskId`
+ 接口地址: `/app-center/api/tasks/status/:taskId`

Also applies to: 166-167


95-121: Fix markdown formatting issues

Please address the following markdown formatting issues:

  1. Fix list indentation (remove extra spaces before list items)
  2. Add language specifiers to code blocks
  3. Use consistent code block style (prefer fenced code blocks with backticks)
  4. Remove spaces inside code spans

Example fix for list indentation:

-  - 创建区块
+ - 创建区块

-  - 编辑区块并保存
+ - 编辑区块并保存
🧰 Tools
🪛 Markdownlint (0.37.0)

95-95: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


103-103: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


113-113: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


107-107: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


111-111: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


117-117: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


121-121: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


57-58: Ensure consistent terminology

Please verify the Chinese translation of "Microsoft" throughout the document. Use "微软" consistently instead of any other variations.


13-21: Add security warning for token handling

Please add a security warning about the proper handling of npm access tokens:

> :warning: **Security Note**: Never commit npm access tokens to version control or share them in public repositories. Always use secure environment variables or secret management systems to handle sensitive tokens.
docs/index.md (1)

1-2: Consider adding a brief introduction section.

The documentation would benefit from a short introduction section before the table of contents, explaining the purpose and scope of TinyEngine.

 # 目录
+
+TinyEngine 是一个低代码开发平台,提供可视化搭建、组件开发、应用管理等功能。本文档将帮助您了解和使用 TinyEngine 的各项功能。
docs/扩展能力使用教程/如何开发插件.md (4)

29-34: Use tree highlighting for directory structure

For better visualization of directory structure, use tree instead of bash highlighting.

-```bash
+```tree
 pluginProject
  - src 插件源码
  - index.js 注册插件入口,需要导出约定的数据结构
  - package.json

---

`41-49`: **Fix code indentation**

The object properties have inconsistent indentation. Align all properties for better readability.

```diff
 export default {
-    id: 'pluginId', // 插件id
+  id: 'pluginId', // 插件id
   title: 'pluginName', // 插件名
   icon: 'js', // 插件 icon
   align: 'top', // 插件位置,左侧插件可选值:'top' | 'bottom'  工具栏可选值:'right' | 'center' | 'left'
   component, // 插件面板打开时渲染的组件
   api, // 插件暴露的 api,可以提供给其他插件调用
 }

79-79: Improve prop description formatting

The isCloseLeft prop description is embedded in the prop value, making it hard to read. Consider moving it to a separate props documentation section.

-<plugin-panel title="插件 教程" isCloseLeft="false 关闭图标是否在左侧(挨着标题),默认 false,在右侧">
+<plugin-panel 
+  title="插件 教程" 
+  :isCloseLeft="false"  <!-- 关闭图标是否在左侧(挨着标题),默认 false,在右侧 -->
+>

284-284: Fix typo in function name

There's a typo in the function name 'insertNodde'.

-insertNodde(...参数)
+insertNode(...参数)
docs/开始/快速上手.md (3)

13-13: Fix formatting inconsistency

Remove the extra space at the beginning of the line:

-- chrome浏览器 110+ 版本
+- chrome浏览器 110+ 版本

89-96: Fix code block indentation and diff formatting

The code block uses inconsistent indentation. Also, the diff markers need proper spacing:

 export default {
   // ...
-  plugins: [Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, State, Schema, Help, Robot],
+  plugins: [DemoPlugin, Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, State, Schema, Help, Robot],
   dsls: [{ id: 'engine.dsls.dslvue' }],
   settings: [Props, Styles, Events],
   canvas: Canvas
 }
🧰 Tools
🪛 Markdownlint (0.37.0)

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-141: Add language specification to code block

Add a language specification to the directory structure code block for proper syntax highlighting:

-```
+```text
 ...
 ├─ designer-demo # 此处为高度可定制化的低代码平台,即用户自己的低代码设计器     
 │  ├─ env
🧰 Tools
🪛 Markdownlint (0.37.0)

124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/基础功能/使用组件.md (1)

20-20: Improve language clarity

Consider revising the sentence structure for better readability:

-对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中
+对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好地拖入到指定的层级中
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/解决方案/设计器中引入第三方组件库.md (3)

6-8: Add version compatibility information

Consider adding a section about version compatibility at the beginning of the document. This would help users understand which versions of element-plus are supported by the integration process.

Example addition:

## 版本兼容性

本文档基于以下版本进行说明:
- element-plus: ^2.3.8
- @opentiny/tiny-engine: <version>

其他版本可能需要适当调整配置。

10-10: Improve language clarity

Consider revising the sentence structure:

-下面将在协议基础上对**核心字段**作进一步的解释
+下面将在协议基础上对**核心字段**作进一步地解释
🧰 Tools
🪛 LanguageTool

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:进一步"地"解释
Context: ...ts、组件面板配置snippets。下面将在协议基础上对核心字段作进一步的解释,可以打开源码中物料资产包文件(packages\design-core\p...

(wb4)


208-213: Enhance preview section with troubleshooting information

Consider adding common troubleshooting steps and verification methods to the preview section to help users diagnose potential issues.

Example addition:

### 常见问题排查
- 如果预览白屏,请检查 importmap 中的 CDN 链接是否可访问
- 如果组件无法渲染,请检查 npm 配置是否正确
- 如果样式异常,请确认 css 文件是否正确加载
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ef6228d and 320c528.

📒 Files selected for processing (18)
  • docs/index.md (1 hunks)
  • docs/关于应用/创建应用(创建空白应用、从模板创建应用).md (1 hunks)
  • docs/关于物料/创建物料资产包.md (1 hunks)
  • docs/关于设计器/创建设计器.md (1 hunks)
  • docs/关于设计器/定制物料资产包、主题、DSL、工具栏和插件栏.md (1 hunks)
  • docs/基础功能/使用组件.md (1 hunks)
  • docs/基础功能/国际化.md (1 hunks)
  • docs/基础功能/查看大纲树.md (1 hunks)
  • docs/基础功能/样式设置.md (1 hunks)
  • docs/基础功能/行内样式绑定状态变量.md (1 hunks)
  • docs/基础功能/设计前端应用流程.md (1 hunks)
  • docs/开始/快速上手.md (1 hunks)
  • docs/扩展能力使用教程/如何开发插件.md (1 hunks)
  • docs/生态中心/介绍.md (1 hunks)
  • docs/生态中心/发布其他生态.md (1 hunks)
  • docs/生态中心/如何发布区块.md (1 hunks)
  • docs/解决方案/区块发布方案.md (1 hunks)
  • docs/解决方案/设计器中引入第三方组件库.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (9)
  • docs/基础功能/查看大纲树.md
  • docs/关于设计器/创建设计器.md
  • docs/基础功能/行内样式绑定状态变量.md
  • docs/关于应用/创建应用(创建空白应用、从模板创建应用).md
  • docs/生态中心/如何发布区块.md
  • docs/生态中心/介绍.md
  • docs/基础功能/设计前端应用流程.md
  • docs/关于设计器/定制物料资产包、主题、DSL、工具栏和插件栏.md
  • docs/基础功能/样式设置.md
🧰 Additional context used
🪛 LanguageTool
docs/解决方案/设计器中引入第三方组件库.md

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:进一步"地"解释
Context: ...ts、组件面板配置snippets。下面将在协议基础上对核心字段作进一步的解释,可以打开源码中物料资产包文件(packages\design-core\p...

(wb4)

docs/关于物料/创建物料资产包.md

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/基础功能/使用组件.md

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/开始/快速上手.md

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


[uncategorized] ~64-~64: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ... 另起一个终端,在当前目录下,输入下面命令,选择创建plugin类型,创建一个新的插件 ```shell npx @opentiny/tiny-engine-c...

(wb4)


[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ...#### 2.2.3 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: ![cli-plugin-open](./imgs/cli-plugi...

(wb4)

docs/生态中心/发布其他生态.md

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

🪛 Markdownlint (0.37.0)
docs/基础功能/国际化.md

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/开始/快速上手.md

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/生态中心/发布其他生态.md

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)

docs/解决方案/区块发布方案.md

95-95: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


99-99: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


103-103: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


113-113: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


63-63: null
Bare URL used

(MD034, no-bare-urls)


53-53: null
Spaces inside code span elements

(MD038, no-space-in-code)


65-65: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


107-107: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


111-111: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


117-117: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


121-121: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

🔇 Additional comments (19)
docs/关于物料/创建物料资产包.md (2)

1-4: LGTM!

The document structure follows good documentation practices with clear hierarchical headers.


10-10: Verify the referenced image file exists

Please ensure the image file exists at the specified path.

✅ Verification successful

Image reference is valid

The referenced image file createMaterial.gif exists at the correct relative path ./imgs/createMaterial.gif from the markdown file location.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists
fd -t f "createMaterial.gif" docs/关于物料/imgs/

Length of output: 125

docs/解决方案/区块发布方案.md (1)

32-33: Consider using environment variables in code examples

The hardcoded configuration values should demonstrate the use of environment variables for better security and flexibility.

Additionally, consider adding a note about environment variable configuration:

- unpkgBaseUrl = 'https://npm.onmicrosoft.cn'
+ // Configure UNPKG_BASE_URL in your environment
+ const unpkgBaseUrl = process.env.UNPKG_BASE_URL || 'https://npm.onmicrosoft.cn'

- const name = `@opentiny-assets/tinyengine-${env}-block-${label}-${id}`
+ // Configure PACKAGE_PREFIX in your environment
+ const packagePrefix = process.env.PACKAGE_PREFIX || '@opentiny-assets'
+ const name = `${packagePrefix}/tinyengine-${env}-block-${label}-${id}`

Also applies to: 44-45

docs/index.md (3)

5-34: LGTM! Well-structured user guide section.

The user guide section is logically organized, progressing from basic to advanced topics, with clear categorization and consistent naming conventions.


85-104: Consider reordering sections as previously suggested.

As mentioned in the previous review comment by hexqi, consider moving the website documentation section ("网站文档") after the platform development guide section for better logical flow.


1-104: Verify the integrity of documentation links.

Let's verify that all linked markdown files exist in the repository to prevent broken links.

✅ Verification successful

Let me analyze the output. The script checked for the existence of all markdown files linked in docs/index.md, and no missing files were reported in the output (no "Missing file:" messages were printed). This means all the linked markdown files exist in their expected locations.

All documentation links are valid and point to existing files.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for existence of all linked markdown files

# Extract all markdown file paths and verify their existence
grep -o '\[.*\](\./[^)]*\.md)' docs/index.md | sed 's/\[.*\](\(.*\))/\1/' | while read -r file; do
    # Remove './' prefix and decode URL-encoded spaces
    cleaned_file=$(echo "docs${file#.}" | sed 's/%20/ /g')
    if [ ! -f "$cleaned_file" ]; then
        echo "Missing file: $cleaned_file"
    fi
done

Length of output: 37786

docs/扩展能力使用教程/如何开发插件.md (2)

5-6: Add line ending spaces for proper Markdown rendering

Add two spaces at the end of line 5 to ensure proper rendering of text and image on separate lines.

-在设计器中,插件的范围包括顶部工具栏、左侧插件栏。
-![插件示意图](./imgs/plugin1.png)
+在设计器中,插件的范围包括顶部工具栏、左侧插件栏。  
+![插件示意图](./imgs/plugin1.png)

329-332: ⚠️ Potential issue

Add type checking for generateNode function

The generateNode function is called without type checking or error handling.

<template>
-  <canvas-drag-item :data="generateNode({ component: 'snippetName' })">
+  <canvas-drag-item 
+    :data="safeGenerateNode({ component: 'snippetName' })"
+    @error="handleError">
    // UI content
  </canvas-drag-item>
</template>
docs/开始/快速上手.md (1)

40-40: Verify image paths and accessibility

Let's verify that all referenced images exist and are accessible:

Also applies to: 56-56, 70-70, 104-104, 157-157

✅ Verification successful

All referenced images are present and accessible

All image paths in the documentation are valid and the referenced images exist in the correct location at docs/开始/imgs/:

  • ✓ tiny-engine-cli.png
  • ✓ tiny-engine-cli-open.png
  • ✓ cli-create-plugin.png
  • ✓ cli-plugin-open.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all referenced images exist
for img in "tiny-engine-cli.png" "tiny-engine-cli-open.png" "cli-create-plugin.png" "cli-plugin-open.png"; do
  if [ -f "docs/开始/imgs/$img" ]; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

Length of output: 1004

docs/基础功能/使用组件.md (1)

11-11: Add alt text to images for accessibility

Images throughout the documentation are missing alt text, which is essential for accessibility.

Also applies to: 14-14, 26-26, 29-29, 34-34, 45-45, 50-50, 55-55, 58-58, 65-65, 68-68, 71-71

docs/解决方案/设计器中引入第三方组件库.md (2)

30-30: Add alt text to images for accessibility

Images in the documentation are missing alt text. This is essential for accessibility.

Also applies to: 97-97, 132-132, 174-174


231-231: ⚠️ Potential issue

Fix incorrect component description

The description appears to be copied from a button component. Update it to accurately describe the ElInput component:

-"description": "常用的操作按钮,提供包括默认按钮、图标按钮、图片按钮、下拉按钮等类型",
+"description": "常用的输入框组件,支持文本输入、密码输入等多种类型",

Likely invalid or redundant comment.

docs/基础功能/国际化.md (7)

7-8: Fix image path and add alt text

The note icon image has accessibility and path issues:

  1. Add alt text for accessibility
  2. The image path appears to be incorrect
-![](public_sys-resources/icon-note.gif)
+![注意事项图标](../public_sys-resources/icon-note.gif)
🧰 Tools
🪛 Markdownlint (0.37.0)

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


12-12: Add alt text to images in the "Adding entries" section

-![国际化插件图标](./imgs/icon-i18n.png)
+![国际化资源管理插件图标](./imgs/icon-i18n.png)

-![](public_sys-resources/icon-note.gif)
+![注意事项图标](../public_sys-resources/icon-note.gif)

-![新增词条按钮](./imgs/addWords.png "addWords")
+![国际化词条添加界面](./imgs/addWords.png "国际化词条添加界面")

Also applies to: 16-16, 22-22


28-29: Add alt text to images in the "Editing entries" section

-![国际化插件图标](./imgs/icon-i18n.png)
+![国际化资源管理插件图标](./imgs/icon-i18n.png)

-![编辑图标](./imgs/icon-edit.png)
+![词条编辑按钮图标](./imgs/icon-edit.png)

-![编辑词条](./imgs/editWord.png "editWord")
+![国际化词条编辑界面](./imgs/editWord.png "国际化词条编辑界面")

Also applies to: 32-32


39-40: Add alt text to images in the "Single deletion" section

-![国际化插件图标](./imgs/icon-i18n.png)
+![国际化资源管理插件图标](./imgs/icon-i18n.png)

-![删除图标](./imgs/icon-del.png)
+![词条删除按钮图标](./imgs/icon-del.png)

-![删除词条](./imgs/delWord.png "delWord")
+![国际化词条删除确认界面](./imgs/delWord.png "国际化词条删除确认界面")

Also applies to: 44-44


48-48: Add alt text to images in the "Batch deletion" section

-![国际化插件图标](./imgs/icon-i18n.png)
+![国际化资源管理插件图标](./imgs/icon-i18n.png)

-![批量删除词条](./imgs/delBatchWord.png "delBatchWord")
+![国际化词条批量删除界面](./imgs/delBatchWord.png "国际化词条批量删除界面")

Also applies to: 52-52


58-59: Add alt text to images in the "Copy key values" section

-![国际化插件图标](./imgs/icon-i18n.png)
+![国际化资源管理插件图标](./imgs/icon-i18n.png)

-![复制图标](./imgs/icon-copy.png)
+![词条复制按钮图标](./imgs/icon-copy.png)

-![复制词条键值](./imgs/copyKeyValue.png "复制词条键值")
+![国际化词条复制成功提示](./imgs/copyKeyValue.png "国际化词条复制成功提示")

Also applies to: 64-64


68-68: Add alt text to images and enhance t() function documentation

-![物料插件图标](./imgs/icon-add.png)
+![物料资产包插件图标](./imgs/icon-add.png)

-![变量绑定图标](./imgs/icon-code.png)
+![变量绑定按钮图标](./imgs/icon-code.png)

-![绑定变量](./imgs/bindVariable-25.png "绑定变量-25")
+![国际化词条变量绑定界面](./imgs/bindVariable-25.png "国际化词条变量绑定界面")

Consider adding a brief explanation of the t() function's syntax and purpose, for example:

> **说明:** t() 是国际化函数,用于根据当前语言环境返回对应的翻译文本。函数接受词条的key值作为参数。

Also applies to: 71-71, 75-75

docs/开始/快速上手.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 31

🧹 Nitpick comments (118)
docs/about-materials/创建物料资产包.md (3)

5-6: Consider improving the formatting of the step-by-step process

The steps for creating a material asset package could be more readable.

Consider this format:

-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。*
+用户可以在生态中心创建物料资产包,步骤如下:
+
+1. 点击"新建物料资产包"
+2. 填写必要的字段
+3. 保存

8-8: Improve grammar in version control description

The static analysis tool correctly identified a grammar issue in the Chinese text.

Consider this revision:

-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。
+物料资产包的版本是用户自定义的,用户可以将物料资产包回退到任意一个版本。
🧰 Tools
🪛 LanguageTool

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)


1-10: Consider adding more detailed information

The documentation could benefit from additional sections:

  1. Prerequisites for creating material asset packages
  2. Field descriptions for the required information
  3. Examples of version naming conventions
  4. Troubleshooting section

Would you like me to help generate content for these additional sections?

🧰 Tools
🪛 LanguageTool

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/development-getting-started/简介.md (3)

9-9: Fix typo: Remove repeated word "的"

There is a repeated word "的" in the sentence.

-TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的的低代码平台,打造出专业级的企业应用程序生成器。
+TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的低代码平台,打造出专业级的企业应用程序生成器。

28-35: Consider standardizing the numbering format

For better consistency across the documentation, consider using standard Arabic numerals (1, 2, 3) instead of "1)" style numbering.

-1) 图元编排
+1. 图元编排

-2) 流程编排
+2. 流程编排

-3) 页面编排
+3. 页面编排

45-49: Remove extra empty lines

Keep only one empty line at the end of the file, as per common documentation conventions.

 
-
-
-
-
docs/ecosystem-center/如何发布区块.md (3)

3-5: Fix incomplete sentence and improve link formatting

The sentence on line 3 appears to be incomplete: "区块录入需要根据". Consider completing the sentence structure.

Additionally, the protocol link could be better formatted for consistency:

-[区块协议](https://www.opentiny.design/tiny-engine#/protocol) 填写 content 字段
+[区块协议](https://www.opentiny.design/tiny-engine#/protocol)填写 content 字段。

6-8: Improve readability with proper paragraph breaks

The content explanation would be more readable with proper paragraph breaks and punctuation:

-因为区块可以简单理解为组件的组合,content 内每个属性的含义也可以参考课程 如何发布组件,在那个课程里详细介绍了每个属性的含义。
-需要注意的是:区块录入之后,需要在设计器中发布区块之后,才能够加入物料包中使用,用户可以参考应用开发者-区块管理课程。
-也就是说,区块录入只是替代了在设计器里新建和搭建区块的步骤。
+因为区块可以简单理解为组件的组合,content 内每个属性的含义也可以参考课程《如何发布组件》,在那个课程里详细介绍了每个属性的含义。
+
+需要注意的是:区块录入之后,需要在设计器中发布区块之后,才能够加入物料包中使用。用户可以参考《应用开发者-区块管理》课程。
+
+也就是说,区块录入只是替代了在设计器里新建和搭建区块的步骤。

1-9: Consider adding more comprehensive content sections

The current documentation could benefit from additional sections to provide a more complete guide:

  • Prerequisites or requirements before publishing a block
  • Step-by-step publishing process
  • Troubleshooting common issues
  • Examples or use cases

Would you like me to help draft these additional sections to enhance the documentation?

docs/ecosystem-center/如何导入组件库.md (2)

11-24: Add blank lines around table for better readability.

The table should be surrounded by blank lines to improve readability and comply with Markdown best practices.

| 字段名称 | 描述 |  
| --- | --- |  
| 组件库名称 | 填写组件库名称,用于列表展示和搜索。 |  

43-60: Consider clarifying reserved fields.

Several fields are marked as "reserved" (保留字段) with "暂未用到". Consider:

  1. Adding a brief explanation of their intended future use
  2. Or removing them from the documentation if they're not relevant to users
docs/ecosystem-center/发布其他生态.md (2)

1-2: Fix heading formatting

The heading has incorrect formatting with leading spaces. Markdown headings should start at the beginning of the line.

- ## 如何发布其他生态
+ ## 如何发布其他生态
🧰 Tools
🪛 Markdownlint (0.37.0)

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)


5-9: Improve content structure and language

The content would be more readable with better structure and some language improvements.

Consider restructuring the content as follows:

-插件仓库地址为插件 npm 包所在的仓库地址
-版本号决定了安装哪一个版本的 npm 包
-被标识为官方的插件会显示"官方"字样
-被标识为默认的插件会在创建设计器时默认被选中
-公开决定了插件的可见范围,私有代表仅自己可见,公开代表所有用户可见,半公开只对选中组织内的用户可见
+### 基本信息
+- **仓库地址**:插件 npm 包所在的仓库地址
+- **版本号**:指定要安装的 npm 包版本
+
+### 插件标识
+- **官方标识**:标记为官方的插件会显示"官方"标记
+- **默认选中**:标记为默认的插件会在创建设计器时自动选中
+
+### 可见范围
+插件可以设置以下可见范围:
+- **私有**:仅自己可见
+- **公开**:所有用户可见
+- **半公开**:仅选中组织内的用户可见

This structure:

  1. Improves readability with clear sections
  2. Uses proper bullet points for better organization
  3. Fixes passive voice constructions
  4. Makes the content easier to scan and understand
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

docs/API/backend-api/应用工具类管理.md (5)

1-160: Convert HTML tables to native Markdown format

The document uses HTML tables which are less maintainable and harder to read in source form. Consider converting all HTML tables to native Markdown format for better maintainability and readability.

Example conversion for the first table (others follow same pattern):

-<table>
-  <thead class="ant-table-thead">
-    <tr>
-      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
-    </tr>
-  </thead>
-  <tbody className="ant-table-tbody">
-    <!-- table content -->
-  </tbody>
-</table>

+| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
+|------|------|----------|--------|------|----------|
+| data | object | 非必须 | | 工具类详情信息 | |
+| ├─ id | number | 非必须 | | | |
🧰 Tools
🪛 Markdownlint (0.37.0)

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


63-63: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


110-110: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


144-144: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


13-15: Add detailed API descriptions

The interface descriptions are empty or minimal. Consider adding more detailed descriptions including:

  • Purpose of the endpoint
  • Expected behavior
  • Common use cases
  • Any important notes or caveats

Also applies to: 58-60, 103-105, 139-141


26-33: Standardize response schema documentation

The response schema documentation could be improved by:

  1. Adding example values
  2. Providing more detailed field descriptions
  3. Documenting error responses and status codes
  4. Adding validation rules where applicable

Also applies to: 71-78, 119-126, 153-160


4-6: Remove redundant anchor tags

The document contains redundant anchor tags that don't follow a consistent format. Consider using native Markdown headers which automatically generate anchors.

-## 修改工具类
-
-<a id=修改工具类> </a>
+## 修改工具类 {#modify-utility-class}

Also applies to: 49-51, 93-95, 129-131


146-149: Improve query parameter documentation

The optional query parameters documentation could be enhanced by:

  1. Adding parameter type information
  2. Providing example values that demonstrate valid formats
  3. Documenting default values if any
docs/basic-features/页面和区块预览.md (4)

1-6: Grammar improvements needed in the introduction

The content structure is good, but there are some grammar issues in the introduction that could be improved:

  • "最终的表现" should be "最终地表现"
  • "很是困难" would be more natural as "很困难"
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)


13-19: Enhance image documentation

The before/after structure is good, but consider these improvements:

  1. Add more descriptive alt text instead of "Alt text"
  2. Consider adding image captions or descriptions to better explain what users should observe

Example improvement:

-![Alt text](./imgs/preview-pre.png)
+![Canvas page structure showing the layout configuration](./imgs/preview-pre.png)
+
+*Figure 1: Page structure as displayed in the canvas editor*

21-25: Consider expanding feature descriptions

The feature list is clear but could be more helpful with additional details:

  • Add brief explanations or examples for each feature
  • Consider adding links to related documentation sections (e.g., internationalization, form validation)

1-25: Overall documentation structure is good

The documentation effectively explains the page/block preview feature. The structure flows logically from introduction to examples and features. The suggested improvements will help enhance readability and maintainability.

Consider adding these sections to make the documentation more complete:

  1. Troubleshooting common issues
  2. Browser compatibility notes
  3. Performance considerations
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

docs/practical-cases/PDM元数据审批电子流.md (3)

33-49: Enhance the directory structure documentation

The directory structure explanation could be improved by:

  1. Using a proper Markdown code block with 'tree' syntax highlighting
  2. Adding brief descriptions for each directory's purpose
-  ```js
+  ```tree
   |-- canvas            # Canvas module for workflow visualization
   |-- controller        # Controller logic for workflow management
   |-- common           # Shared utilities and common logic
   |-- plugins          # Plugin implementations
   |-- settings         # Configuration and settings components
   |-- toolbars         # Toolbar components and actions
   |-- theme           # Theme-related styles and configurations
   |-- index.html      # Entry HTML file
   |-- main.js         # Main application entry point
   |-- App.vue         # Root Vue component
   |-- addons.js       # Plugin registration and configuration
   `-- vite.config.js  # Vite build configuration

77-111: Improve JSON schema documentation

The JSON schema example needs improvements:

  1. Use proper JSON syntax highlighting
  2. Add comments explaining the purpose of each configuration section
  3. Consider adding examples of how to use these properties
-```json
+```jsonc
 // Button component configuration schema
 {
   "schema": {
     "type": "object",
     "properties": {
       "size": {
         "title": "定义按钮尺寸",
         "type": "string",
         "enum": ["large", "medium", "small", "mini"],
         "enumNames": ["较大尺寸", "中等尺寸", "较小尺寸", "迷你尺寸"],
-        "default": ""
+        "default": "medium"  // Set a meaningful default
       },
       // ... rest of the schema
     }
   }
 }
+
+// Usage example:
+{
+  "size": "medium",
+  "text": "提交审批"
+}

56-71: Enhance plugin configuration example

The plugin configuration example needs improvements:

  1. Add comments explaining the purpose of each section
  2. Consider showing more realistic plugin configurations
 import Materials from '@xxxx/lowcode-plugin-materials'
+// Import other required plugins
+import ProcessTree from './plugins/process-tree'
+import ApprovalComponents from './plugins/approval-components'
 
 export default {
   plugins: [
     Materials,
-    // ...
+    ProcessTree,
+    ApprovalComponents
   ],
   toolbars: [
-    // ...
+    {
+      name: 'approval-flow',
+      title: '审批流程',
+      icon: 'flow'
+    }
   ],
   settings: [
-    // ...
+    {
+      name: 'workflow-settings',
+      title: '流程配置'
+    }
   ],
 }
docs/extension-capabilities-tutorial/code-output-function/出码功能简介与使用.md (2)

7-30: Consider enhancing the code example with more features

While the current example effectively demonstrates the basic transformation, consider expanding it to showcase more advanced features like:

  • Component properties and events
  • Multiple nested components
  • Dynamic data binding
  • Custom components

This would help users better understand the full capabilities of the code output function.


34-34: Fix Chinese grammar in two sentences

Please correct the following grammar issues:

  1. Line 34: "膨胀的非常巨大" should be "膨胀得非常巨大"
  2. Line 40: "完美的解决" should be "完美地解决"

These corrections will improve the document's readability and adherence to Chinese grammar rules.

Also applies to: 40-40

🧰 Tools
🪛 LanguageTool

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...

(wb4)

docs/basic-features/页面管理.md (3)

9-16: Improve the tree structure visualization for better readability.

The current tree structure uses inconsistent indentation and mixed symbols (|_ and -). Consider using a consistent approach.

Here's a suggested improvement:

-  - views
-    |_ Index.vue
-     - Page2.vue
-    - TodoFolder
-      |_ Todo.vue
+  - views
+    ├── Index.vue
+    ├── Page2.vue
+    └── TodoFolder
+        └── Todo.vue

51-55: Add code examples for lifecycle configuration.

While the GIF demonstrates the UI interaction, adding code examples would help developers understand the expected implementation.

Consider adding a code example like this:

例如,配置 Vue3 的生命周期函数:

```vue
<script setup>
import { onMounted, onUpdated } from 'vue'

// 组件挂载完成后执行
onMounted(() => {
  console.log('Component is mounted')
})

// 组件更新后执行
onUpdated(() => {
  console.log('Component is updated')
})
</script>

---

`1-60`: **Overall documentation structure and content is good.**

The documentation effectively covers both basic and advanced features of the page management functionality. A few suggestions for enhancement:
1. Consider adding a table of contents for better navigation
2. Add cross-references to related API documentation
3. Include troubleshooting section for common issues

</blockquote></details>
<details>
<summary>docs/about-designer/定制物料资产包、主题、DSL、工具栏和插件栏.md (5)</summary><blockquote>

`1-6`: **LGTM! Consider adding more context in the introduction.**

The document structure is clear and well-organized. Consider adding:
- A brief overview of the designer tool itself
- Prerequisites or requirements before customization
- Expected outcome after customization

---

`7-9`: **Consider adding details about the material package replacement process.**

While the current content clearly states the constraints, it would be helpful to add:
- Steps to add a new material package
- How to perform the replacement
- Supported material package formats

---

`10-12`: **Consider adding theme-specific details.**

The section would benefit from additional information about:
- Available theme options
- Theme customization capabilities
- Theme compatibility requirements

---

`13-15`: **Consider adding technical details about DSL compatibility.**

To make this section more helpful, consider adding:
- List of supported technology stacks
- Examples of compatible DSL and material combinations
- Common compatibility issues to watch out for

---

`16-20`: **Consider adding practical examples and organization tips.**

These sections would benefit from:
- Examples of common tool and plugin combinations
- Best practices for organizing the layout
- Screenshots of well-organized configurations
- List of available tools and plugins with their purposes

</blockquote></details>
<details>
<summary>docs/extension-capabilities-tutorial/定制插件UI.md (5)</summary><blockquote>

`1-4`: **Consider enhancing the introduction section.**

While the introduction is clear, consider adding:
- A brief overview of what plugins are in TinyEngine
- The benefits of UI customization
- Prerequisites or requirements for customization

---

`9-11`: **Enhance icon property documentation.**

For the `icon` property, consider:
- Listing available built-in SVG icons
- Adding an example of using a custom component as an icon
- Specifying the expected component interface

---

`15-31`: **Add type annotations and comments to the configuration example.**

Consider enhancing the code example with:
- TypeScript type annotations for better IDE support
- Comments explaining each configuration property's effect
- A complete example showing the import statement for the Page plugin

---

`55-66`: **Enhance the Vue component example with best practices.**

Consider improving the Vue component example by:
- Adding TypeScript support with `lang="ts"` and proper typing
- Including component props interface
- Adding component documentation using JSDoc
- Demonstrating interaction with the plugin system


Example enhancement:
```diff
 <!-- custom-page.vue -->
+<script lang="ts">
+/**
+ * Custom plugin page component
+ * @component CustomPage
+ * @description Demonstrates a custom plugin UI implementation
+ */
+interface Props {
+  pluginContext?: any; // Define proper type based on plugin system
+}
+</script>

 <template>
   <div>{{ title }}</div>
 </template>

-<script setup>
+<script setup lang="ts">
 import { ref } from 'vue'
+
+const props = defineProps<Props>()
 
 const title = ref('自定义插件UI')
 </script>

1-68: Consider adding additional sections for completeness.

To make this documentation more comprehensive, consider adding:

  1. A troubleshooting section with common issues and solutions
  2. Examples of combining multiple customization approaches
  3. Best practices and performance considerations
  4. Links to related API documentation
docs/about-materials/介绍.md (4)

1-4: Consider adding a brief introduction paragraph

To improve document readability, consider adding a short introduction paragraph after the main title that provides an overview of what readers will learn and why it's important.

 # 关于物料资产包

+物料资产包是TinyEngine设计器中的核心概念之一,它定义了如何在可视化界面中使用和管理组件与区块。本文将介绍物料的基本概念以及物料资产包的作用。
+
 ## 什么是物料

5-7: Enhance visual hierarchy of the materials definition

Consider using bold text for key terms and adding bullet points for better readability.

-物料是可视化页面搭建的原料,按照粒度可分为组件库和区块
+物料是可视化页面搭建的原料,按照粒度可分为以下两类:
+
+* **组件库**:较小粒度的基础构建单元
+* **区块**:较大粒度的业务单元

10-11: Consider adding practical examples or references

To enhance the documentation's value, consider:

  1. Adding a link to the material asset package configuration schema or example
  2. Including a reference to related API documentation
 设计器中的物料需要进行一定的配置和处理,才能让用户在设计器使用起来。这个过程中,需要一份配置文件,也就是物料资产包。物料资产包文件中,针对每个物料定义了它们在设计器中的使用描述。

+例如,一个基本的物料资产包配置可能如下:
+```json
+{
+  "name": "示例组件库",
+  "version": "1.0.0",
+  "components": [
+    {
+      "name": "Button",
+      "description": "按钮组件"
+    }
+  ]
+}
+```
+
+> 💡 查看[物料API文档](../API/物料API.md)了解更多配置详情。

1-2: Add a table of contents for better navigation

For improved document navigation, consider adding a table of contents after the introduction:

 # 关于物料资产包

+## 目录
+
+- [什么是物料](#什么是物料)
+  - [组件库](#组件库)
+  - [区块](#区块)
+- [什么是物料资产包](#什么是物料资产包)
docs/about-materials/添加组件库和区块.md (3)

1-5: Consider adding a line break after the introduction

The content structure is good, but adding a line break after line 5 would improve readability and maintain consistent spacing throughout the document.


7-19: Consider enhancing the documentation with more details

While the current structure is clear, consider the following improvements:

  1. Add step-by-step instructions for each operation
  2. Include any prerequisites or important notes
  3. Mention any limitations or common issues users might encounter
  4. Add examples of when users might want to add/remove components

Here's a suggested enhancement for the component library section:

-* **添加组件库:** 选中未选择的组件库
+* **添加组件库:**
+  1. 打开物料资产包编辑页面
+  2. 在组件库列表中找到所需的组件库
+  3. 选中未选择的组件库
+  4. 系统会自动保存您的选择
+
+  > 注意:添加新的组件库可能会影响项目的构建大小

19-19: Enhance ecosystem center reference with more details

The mention of the ecosystem center could be more helpful with:

  1. A link to the ecosystem center documentation
  2. Brief steps on how to access it
  3. Prerequisites for adding custom components
-* 用户也可以在生态中心录入自己的组件库与区块。
+* 用户也可以在生态中心录入自己的组件库与区块:
+  1. 访问[生态中心](#)(需添加实际链接)
+  2. 登录您的账号
+  3. 按照[组件开发指南](#)(需添加实际链接)开发您的组件
+  4. 提交组件到生态中心
docs/practical-cases/SMB轻量应用服务.md (4)

21-24: Improve list formatting

The numbered list formatting can be improved by removing extra whitespace and ensuring proper Markdown list syntax.

-区块的主要目的有两点:
-    
-    1. 对多页面中可复用的功能或是逻辑组件化
-    2. 对复杂页面中的功能可以进行多人协作开发并将模块之间解耦开
+区块的主要目的有两点:
+
+1. 对多页面中可复用的功能或是逻辑组件化
+2. 对复杂页面中的功能可以进行多人协作开发并将模块之间解耦开

30-33: Improve readability of key points

Consider using bullet points for better visual separation of the key points about block development.

-    区块的公开范围会影响到他人使用集成区块
-    区块的暴露属性等同于vue component 中的 props属性
-    区块的事件则是区块emit出去的事件,可以在上层应用区块的页面或区块进行监听捕获
-    同时在这里我们还可以设置区块的生命周期函数,来完成开发中在某一生命周期对应的逻辑,比如说对区块初始化处理
+- 区块的公开范围会影响到他人使用集成区块
+- 区块的暴露属性等同于vue component 中的 props属性
+- 区块的事件则是区块emit出去的事件,可以在上层应用区块的页面或区块进行监听捕获
+- 同时在这里我们还可以设置区块的生命周期函数,来完成开发中在某一生命周期对应的逻辑,比如说对区块初始化处理

36-36: Consider breaking long paragraph into smaller sections

This long paragraph contains multiple important points about component properties, events, and data loops. Consider breaking it into smaller, more focused sections for better readability.

-开发区块过程中还需要关注搭建区块时使用的组件的属性和事件,利用好这些条件能让区块的开发工作更加顺利,如下图,我们可以通过绑定事件来对交互逻辑进行实现。从图中可以看到,设计器还提供了配置循环数据的能力,示例区块中的4个相同的小区块就是使用这种能力实现的
+开发区块过程中需要关注以下几点:
+
+1. 组件的属性和事件设置
+   - 合理利用这些配置可以简化开发工作
+   - 通过事件绑定实现交互逻辑
+
+2. 循环数据配置
+   - 设计器提供了循环数据的配置能力
+   - 示例区块中的4个相同的小区块就是使用这种能力实现的

1-48: Add table of contents for better navigation

Consider adding a table of contents at the beginning of the document for better navigation, especially since this is a comprehensive guide.

Add this section after the introduction:

## 目录

- [前言](#前言)
- [基于TinyEngine设计器开发的SMB项目](#基于tinyengine设计器开发的smb项目)
  - [如何开发区块](#如何开发区块)
  - [下载代码到本地](#下载代码到本地)
docs/basic-features/设计前端应用流程.md (1)

59-60: Maintain consistent image naming convention

The image references use mixed naming conventions:

  • choseFile.png (camelCase)
  • createFolder.png (camelCase)
  • setCompoentAttr.png (camelCase with typo)

Consider standardizing the naming convention for better maintainability.

Also, there's a typo in some image names: "Compoent" should be "Component"

-![choseFile](./imgs/choseFile.png)
+![chooseFile](./imgs/chooseFile.png)
docs/basic-features/国际化.md (1)

72-73: Consider enhancing the variable binding example.

While the current example shows basic usage, consider adding:

  • Multiple examples with different key formats
  • Example with variables/interpolation
  • Common pitfalls to avoid

Example enhancement:

5. Input the variable using one of these formats:
   - Basic: t('lowcode.67564435')
   - With variables: t('lowcode.greeting', { name: username })
   - With pluralization: t('lowcode.items', { count: itemCount })
docs/basic-features/初识设计器.md (2)

62-62: Consider adding more details about node tree interaction.

The explanation could benefit from additional details about how users can interact with the node tree, such as keyboard shortcuts or drag-and-drop capabilities if available.


1-62: Consider documentation maintainability and internationalization.

A few architectural suggestions:

  1. Consider moving images to a centralized assets directory for better organization
  2. Consider adding alt text descriptions for all images to improve accessibility
  3. Consider implementing a documentation translation strategy, possibly using i18n tooling
docs/advanced-features/集成ChatGPT搭建简单页面能力.md (1)

14-16: Consider adding example prompts

The section explaining AI code generation would benefit from including example prompts that users can reference.

docs/extension-capabilities-tutorial/定制元服务逻辑.md (2)

79-79: Consider specifying the full import path

The import statement import { FooService, BarService } from '...' uses a relative path. Consider specifying the full import path for better clarity.


7-9: Add example use cases

Consider adding practical example use cases for when developers might need to customize meta services. This would help readers better understand when to apply these customization patterns.

docs/API/backend-api/AI功能接口.md (2)

15-16: Consider using code blocks for JSON examples

Replace the HTML-formatted JSON error example with a proper code block for better readability.

异常响应实例:
```json
{
  "data": null,
  "locale": "zh-cn",
  "error": {
    "code": "CM002",
    "message": "参数错误"
  },
  "err_msg": "Additional properties are not allowed ('role1' was unexpected) - 'messages.0'"
}

---

`3-4`: **Add API version information**

Consider adding API version information to help users understand compatibility requirements.

</blockquote></details>
<details>
<summary>docs/API/backend-api/APP服务.md (2)</summary><blockquote>

`66-72`: **Fix inconsistent framework parameter example**

The framework parameter example shows inconsistent values:
- Example shows "Angular"
- Remarks show "Vue"

Please clarify if both frameworks are supported and list all valid values.

---

`1-117`: **Consider translating documentation to English**

The documentation mixes Chinese and English text. Consider:
1. Creating separate language versions of the documentation
2. Using English as the primary language for API documentation
3. Adding language selection support in the documentation

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...              </table>   ## 获取页面/区块源码  <a id=获取页面/区块源码> </a>  ### 基本信息  **Path:**...

(EN_A_VS_AN)

---

[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...              </table> ## 页面/区块预览用元数据  <a id=页面/区块预览用元数据> </a>  ### 基本信息  **Path:...

(EN_A_VS_AN)

</details>
<details>
<summary>🪛 Markdownlint (0.37.0)</summary>

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>

</details>

</blockquote></details>
<details>
<summary>docs/advanced-features/使用JS面板和事件绑定.md (2)</summary><blockquote>

`33-79`: **Review Vue code example for best practices**

The Vue code example has a few areas that could be improved:
1. The `setup` function is using a non-standard pattern by wrapping everything in a custom `wrap` function
2. The state initialization could be more explicit about its type
3. The event handler could be simplified


Consider updating the example to follow more standard Vue 3 patterns:

```diff
 <script setup>
 import * as vue from 'vue'
 import { defineProps, defineEmits } from 'vue'
 import { I18nInjectionKey } from 'vue-i18n'

 const props = defineProps({})
 const emit = defineEmits([])

 const { t, stores } = vue.inject(I18nInjectionKey).lowcode()

-const state = vue.reactive({
-  testValue: {}
-})
+const state = vue.reactive<{ testValue: Record<string, unknown> }>({
+  testValue: {}
+})

-const getA = wrap(function (eventArgs, args0) {
+const getA = (eventArgs: Event[], args0: number) => {
   const testData = {
     name: 'rico',
     age: 18
   }
   return testData
-})
+}

-wrap({
-  stores,
-  state,
-  getA
-})

-const setup = wrap(function setup({ props, state, watch, onMounted }) {
-  state.testValue = getA()
-})
-setup({ props, context: { emit }, state, ...vue })
+// Initialize on component mount
+vue.onMounted(() => {
+  state.testValue = getA([], 0)
+})
 </script>

90-91: Add link to component documentation

The text mentions that function signatures should be referenced from the component's documentation, but no link is provided.

Consider adding a direct link to the TinyVue Tree component documentation for easier reference.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 ![在页面JS中定义渲染函数](./imgs/pag...

(wb2)

docs/advanced-features/区块管理.md (3)

13-14: Fix directory structure formatting

The directory structure has inconsistent indentation for Footer.vue and Container.vue.

  - components
    |_ Header.vue
-     - Footer.vue
-     - Container.vue
+    |_ Footer.vue
+    |_ Container.vue

78-93: Enhance Vue code example with TypeScript and Composition API best practices

The Vue component example could be improved to better demonstrate modern Vue practices.

Consider updating the example:

 <template>
   <header>
     <h1>{{props.title}}</h1>
     <span>{{props.description}}</span>
   </header>
 </template>

 <script setup lang="ts">
+interface Props {
+  title: string
+  description: string
+}

-const props = defineProps({
-  title: { type: String, default: '' },
-  description: { type: String, default: '' }
-})
+const props = withDefaults(defineProps<Props>(), {
+  title: '',
+  description: ''
+})
 </script>

129-129: Add more details about version management

The version list section ends abruptly with minimal information.

Consider expanding this section to include:

  • How versions are created
  • Version numbering scheme
  • How to manage multiple versions
  • How to deprecate old versions
docs/about-designer/定制设计器.md (1)

5-6: Consider adding more details about prerequisites

The content mentions prerequisites (物料资产包、主题、工具、插件和DSL定制) but doesn't provide links to where users can learn about these requirements. Consider adding references to related documentation.

docs/about-designer/介绍.md (1)

5-5: Consider restructuring the long paragraph for better readability

The current paragraph contains multiple important points but could be easier to read if broken down into bullet points or shorter sentences.

Consider restructuring like this:

-什么是扩展能力呢,一方面我们可以快速拥有一个官方标准的设计器,另外一方面如果用户有独特的业务功能需要,我们可以不用看它的源码、不用关心其实现,用户可以使用 API、插件等方式快速开发自己的工具,插件,DSL等的npm包,用于构建用户自定义的设计器。而设计器引擎对于设计器的扩展能力支持基本上覆盖了设计器的所有功能点。
+扩展能力包含以下几个方面:
+
+1. 快速接入:可以快速使用官方标准的设计器
+2. 自定义开发:针对独特的业务功能需求:
+   - 无需了解源码实现
+   - 通过 API、插件等方式快速开发
+   - 支持开发自定义工具、插件、DSL 等 npm 包
+3. 完整覆盖:设计器引擎的扩展能力基本覆盖了设计器的所有功能点
docs/getting-started/快速上手.md (2)

26-27: Consider hosting the example image locally

The external image URL (https://res.hc-cdn.com/lowcode-portal/1.1.65/img/home/top-banner.jpg) might not be persistent. Consider:

  1. Hosting the image within the repository
  2. Using a more stable URL
  3. Adding a fallback image

This ensures the tutorial remains functional even if the external resource becomes unavailable.


1-46: Consider enhancing document navigation

The tutorial is well-structured, but could be improved with:

  1. A table of contents at the beginning
  2. Estimated time to complete
  3. Prerequisites section
  4. Troubleshooting section
  5. Next steps or related tutorials section

Here's a suggested addition for the beginning of the document:

 # 快速上手

+**预计完成时间:** 15分钟
+
+**目录**
+- [效果图](#效果图)
+- [第一步,新建页面](#第一步新建页面)
+- [第二步,拖入元素](#第二步拖入元素)
+- [第三步,设置状态变量](#第三步设置状态变量)
+- [第四步,设置文本和图片地址](#第四步设置文本和图片地址)
+- [第五步,设置图片样式和绑定显示变量](#第五步设置图片样式和绑定显示变量)
+- [第六步,给开关绑定事件](#第六步给开关绑定事件)
+- [第七步,绑定点击事件并预览](#第七步绑定点击事件并预览)
+
+**准备工作**
+- 已安装并配置TinyEngine
+- 基本了解组件拖放操作
+
 为了帮助开发者迅速掌握TinyEngine并深入理解其核心特性...
docs/development-getting-started/快速上手.md (3)

9-14: Enhance environment requirements specificity

Consider the following improvements to the requirements section:

  1. Specify the minimum required pnpm version
  2. Remove the extra space before "chrome浏览器"
 - Node.js v18+版本
-  pnpm 包管理⼯具
+  pnpm v8+包管理⼯具
 - 前端项目代码编辑器
 - git 代码版本管理⼯具
-  chrome浏览器 110+ 版本
+ - chrome浏览器 110+ 版本
🧰 Tools
🪛 LanguageTool

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


84-98: Improve diff block formatting consistency

The diff block has inconsistent formatting. The ++ and -- markers should be at the start of the line without spaces.

 import { Breadcrumb, Fullscreen, /* ... */, GenerateCodeService } from '@opentiny/tiny-engine'
 import engineConfig from './engine.config'
-import DemoPlugin from './demo-plugin'
+import DemoPlugin from './demo-plugin'

 export default {
   // ...
-  plugins: [Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, State, Schema, Help, Robot],
+  plugins: [DemoPlugin, Materials, Tree, Page, Block, Datasource, Bridge, I18n, Script, State, Schema, Help, Robot],
   dsls: [{ id: 'engine.dsls.dslvue' }],
   settings: [Props, Styles, Events],
   canvas: Canvas
 }
🧰 Tools
🪛 Markdownlint (0.37.0)

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-141: Enhance directory structure documentation

The directory structure example uses "..." without explaining which parts are omitted. Consider:

  1. Adding a comment to explain what "..." represents
  2. Including more essential directories that developers need to be aware of

-...
+# Root level configuration files and directories
├─ designer-demo # 此处为高度可定制化的低代码平台,即用户自己的低代码设计器
│ ├─ env
│ ├─ public
│ ├─ src
│ ├─ engine.config.js
│ ├─ index.html
│ ├─ package.json
│ ├─ preview.html
│ ├─ registry.js # 用户注册表
│ ├─ vite.config.js
├─ pnpm-workspace.yaml
├─ package.json
├─ README.md
└─ README.zh-CN.md
-...
+# Other directories (packages, examples, etc.) are omitted for brevity


<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 Markdownlint (0.37.0)</summary>

124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

</blockquote></details>
<details>
<summary>docs/extension-capabilities-tutorial/开发设置器组件.md (3)</summary><blockquote>

`19-64`: **Consider enhancing the Vue component example with best practices**

While the component implementation is functional, consider these improvements:
1. Add TypeScript support for better type safety
2. Add a watch on modelValue prop to sync external changes
3. Use computed property for two-way binding instead of ref

Here's an improved version of the component:

```diff
<template>
  <span>我是自定义的 input configurator</span>
-  <tiny-input v-model="value" :type="type" :placeholder="placeholder" @update:modelValue="change"> </tiny-input>
+  <tiny-input
+    :model-value="inputValue"
+    :type="type"
+    :placeholder="placeholder"
+    @update:model-value="change"
+  />
</template>

-<script>
+<script lang="ts">
import { ref } from 'vue'
import { Input } from '@opentiny/vue'
+import type { PropType } from 'vue'

export default {
  name: 'MyInputConfigurator',
  components: {
    TinyInput: Input
  },
  props: {
    modelValue: {
-      type: String
+      type: String as PropType<string>,
+      default: ''
    },
    type: {
-      type: String
+      type: String as PropType<string>,
+      default: 'text'
    },
    placeholder: {
-      type: String
+      type: String as PropType<string>,
+      default: ''
    }
  },
  emits: ['update:modelValue'],
  setup(props, { emit }) {
-    const value = ref(props.modelValue)
+    const inputValue = computed({
+      get: () => props.modelValue,
+      set: (val: string) => {
+        const filtered = val
+          .split('')
+          .filter((c) => /[A-Za-z0-9]/.test(c))
+          .join('')
+        emit('update:modelValue', filtered)
+      }
+    })

-    const change = (val) => {
-      value.value = val
-        .split('')
-        .filter((c) => /[A-Za-z0-9]/.test(c))
-        .join('')
-      emit('update:modelValue', value.value)
+    const change = (val: string) => {
+      inputValue.value = val
    }

    return {
-      value,
+      inputValue,
      change
    }
  }
}
</script>

87-141: Enhance the JSON configuration example documentation

The configuration example could be improved in several ways:

  1. The commented line // "component": "I18nConfigurator" seems important - consider explaining why it's commented out and when to use it
  2. The truncated sections (//...) should be expanded or linked to full examples
  3. Add explanations for the schema structure and property configurations

Consider adding a section explaining the schema structure:

### Schema Structure
- `properties`: Defines the configurable properties of the component
  - `label`: Multilingual label for the property group
  - `content`: Array of individual property configurations
    - `property`: The property name to be configured
    - `widget`: Specifies the configurator component to use
- `events`: Defines available component events
- `slots`: Defines available component slots

1-144: Consider enhancing the documentation with additional context

The documentation is well-structured but could be improved by:

  1. Adding a table of contents for better navigation
  2. Including links to related documentation (TinyVue, Vue.js v-model)
  3. Adding troubleshooting section for common issues
  4. Providing more examples of different configurator types

Consider adding this section at the beginning:

## Table of Contents
- [相关概念](#相关概念)
- [开发](#开发)
- [使用](#使用)
  - [注册设置器](#注册设置器)
  - [物料中使用设置器](#物料中使用设置器)

## 前置条件
- Vue.js 3.x
- TinyVue
- TinyEngine CLI

## 相关文档
- [Vue.js v-model](https://vuejs.org/guide/components/v-model.html)
- [TinyVue Input](link-to-tiny-vue-docs)
docs/practical-cases/图元编排设计器.md (4)

44-58: Enhance code block readability

The code blocks are well-structured but could benefit from some improvements:

  1. Add comments to explain key directories in the project structure
  2. Use consistent indentation in the plugin export example
  3. Add type annotations in the plugin configuration example

Example improvements for the project structure:

 .
-|-- canvas
-|-- controller
-|-- common
-|-- plugins
-|-- settings
-|-- toolbars
-|-- theme
+|-- canvas          # Canvas module for drawing capabilities
+|-- controller     # Core business logic controllers
+|-- common        # Shared utilities and constants
+|-- plugins       # Left sidebar plugins
+|-- settings      # Right sidebar configuration panels
+|-- toolbars      # Top toolbar items
+|-- theme         # Theme configuration
 |-- index.html
 |-- main.js
 |-- App.vue

Also applies to: 79-83, 88-98, 105-119


60-61: Consider adding implementation details

The technical content would benefit from:

  1. Code examples showing Antv X6 integration with TinyEngine
  2. Specific examples of plugin communication and state management
  3. Performance considerations when implementing the canvas

Would you like assistance in adding these implementation details to the documentation?

Also applies to: 68-71


68-68: Fix Chinese grammar in adverbial phrases

Several instances of incorrect usage of "的" should be replaced with "地" when modifying verbs:

  • Line 68: "完备的" → "完备地"
  • Line 74: "一定的" → "一定地"
  • Line 121: "快速的" → "快速地"
  • Line 127: "优秀的" → "优秀地"

Also applies to: 74-74, 121-121, 127-127

🧰 Tools
🪛 LanguageTool

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍 TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...

(wb4)


1-4: Add table of contents for better navigation

Consider adding a table of contents after the title to improve document navigation. This would help readers quickly locate specific sections like background, requirements, and implementation details.

Would you like assistance in generating a table of contents for this document?

docs/advanced-features/如何使用插槽.md (3)

12-36: Enhance code example readability

The Vue.js code examples are accurate but could be improved:

  1. Remove the commented filename on line 13 and use a proper code block title
  2. Add explanatory comments for the slot usage example

Consider this improvement:

-// Header.vue
+<!-- Header.vue -->

And add a comment before the second example:

+<!-- Example of using the Header component with a named slot -->
 <template>
  <Header>

59-59: Review state variable naming

The state variable this.state.ggggg appears to be a placeholder or example name. Consider using a more meaningful variable name that better represents its purpose, such as this.state.menuTitle or this.state.headerText.


156-158: Enhance internationalization support

The label definition only includes zh_CN. Consider adding English translations for better international developer experience:

 "label": {
   "zh_CN": "menu",
+  "en_US": "menu"
 },
docs/getting-started/简介.md (3)

1-5: Consider improving the introduction's formatting for better readability.

The content is good, but the readability could be enhanced by:

  • Breaking the long paragraph in line 3 into smaller chunks
  • Adding bullet points to highlight key benefits
  • Using emphasis (**text**) instead of HTML tags (<b>text</b>)
-<b>低代码平台</b>是一种应用程序开发平台,允许用户以图形化方式构建应用程序,通过拖放组件、模板和可视化界面,降低了开发者和非技术用户的技能门槛。用户只需编写少量代码,便可以实现复杂的功能。这种方式不仅提高了开发速度,
+**低代码平台**是一种应用程序开发平台,允许用户以图形化方式构建应用程序。
+
+主要特点:
+- 通过拖放组件、模板和可视化界面进行开发
+- 降低开发者和非技术用户的技能门槛
+- 用户只需编写少量代码,便可以实现复杂的功能
+- 显著提高开发速度

31-37: Remove unnecessary empty lines at the end of the file.

Keep only one empty line at the end of the file to maintain clean documentation.


1-2: Consider adding navigation elements to improve documentation usability.

Suggestions:

  1. Add a table of contents at the beginning
  2. Include links to related documentation (API overview, ecosystem center, etc.)
  3. Add a "下一步" (Next Steps) section at the end
docs/basic-features/使用组件.md (2)

20-20: Fix grammatical issue in Chinese text

The phrase "很好的" should be "很好地" when modifying a verb.

-直接拖拽并不能很好的拖入到指定的层级中
+直接拖拽并不能很好地拖入到指定的层级中
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)


1-72: Overall documentation review summary

The documentation is well-structured and provides comprehensive guidance on using components in the low-code platform. To improve it further:

  1. Ensure all referenced images are properly uploaded and linked
  2. Fix the grammatical issue in the canvas section
  3. Consider adding a conclusion section

Consider organizing the images in a more structured way:

  • Use semantic names for images (e.g., component-drag-demo.gif instead of dragComponent.gif)
  • Consider using a CDN for hosting images to improve load times
  • Add alt text descriptions for better accessibility
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/basic-features/使用状态管理和变量绑定.md (1)

17-17: Consider adding code block for state usage example

The explanation of using this.state.xxx would be clearer with a complete code example in a fenced code block.

Consider adding:

// Example of state usage
this.state.counter = 1;
console.log(this.state.counter); // Outputs: 1
docs/advanced-features/数据源和Collection—mock数据.md (1)

13-14: Consider adding code example for Collection component configuration

The steps for Collection component setup could benefit from a configuration code example.

Consider adding a code example showing the data source binding:

// Example Collection configuration
{
  dataSource: 'mockDataSource',
  fields: ['field1', 'field2']
}
docs/advanced-features/数据源和Collection—远程字段.md (1)

8-8: Consider adding request configuration example

The step mentioning request settings could benefit from a configuration example.

Consider adding:

// Example request configuration
{
  url: 'https://api.example.com/data',
  method: 'GET',
  params: {
    limit: 10
  }
}
docs/advanced-features/条件渲染.md (1)

10-10: Add alt text for better accessibility

The image reference lacks alt text which is important for accessibility. Consider adding descriptive alt text.

-![addvar-15](./imgs/addvar-15.png)
+![添加变量示例 - Adding variable example](./imgs/addvar-15.png)
docs/advanced-features/循环渲染.md (1)

40-46: Improve code block formatting

The HTML code block has inconsistent indentation and could benefit from better formatting. Also, consider using Vue template syntax highlighting.

-```html
+```vue
 <template>   
-<div v-for="(item, index) in state.imageList" :key="index">     
-<span>{{ item.title }}</span>   
-<!---列表细节--->   
-</div> </template>
+  <div v-for="(item, index) in state.imageList" :key="index">     
+    <span>{{ item.title }}</span>   
+    <!---列表细节--->   
+  </div>
+</template>
docs/advanced-features/高级面板设置.md (2)

55-59: Consider using a more appropriate code block identifier

The bash code block is used for describing parameters, but this isn't bash code. Consider using a more appropriate identifier or removing it entirely.

-```bash
+```
 # 循环渲染项迭代变量名 item
 # 拓展参数设置:
 ["item.imageId", "item.imageVersion"]

10-10: Add descriptive alt text for GIF demonstrations

The GIF demonstrations lack descriptive alt text, which is important for accessibility.

-![条件渲染示例](./imgs/conditionRender.gif)
+![条件渲染的步骤演示 - Step-by-step demonstration of conditional rendering](./imgs/conditionRender.gif)

-![循环渲染](./imgs/useLoop.gif)
+![循环渲染的操作演示 - Demonstration of loop rendering setup](./imgs/useLoop.gif)

-![事件绑定演示](./imgs/bindEvent.gif)
+![事件绑定的配置过程演示 - Demonstration of event binding configuration](./imgs/bindEvent.gif)

Also applies to: 19-19, 48-48

docs/advanced-features/使用工具类方法 utils.md (1)

153-156: Consider enhancing the isNil utility function

While the function works, it could be improved by being more explicit in its type checking.

Consider this enhanced version:

-function isNil(value) {
-    return value == null
-}
+function isNil(value) {
+    return value === null || value === undefined;
+}

This version:

  • Uses strict equality for more precise type checking
  • Explicitly checks for both null and undefined
docs/API/backend-api/数据源管理.md (2)

32-39: Convert HTML tables to Markdown format

The documentation uses HTML tables which can be harder to maintain. Consider converting these to native Markdown tables for better readability and maintainability in the source files.

Example conversion for the first table:

| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|------|------|----------|--------|------|----------|
| data | object | 非必须 | | | |
| ├─ data | object | 非必须 | | 数据源数据 | |
| ├─ name | string | 非必须 | | 数据源名称 | mock: @string |

Also applies to: 44-51, 77-84, 89-96, 122-129, 155-162, 188-195, 225-232, 258-265


210-210: Improve documentation for unused API endpoint

The comment "未启用 预留接口" (Unused reserved interface) should be more descriptive about why the endpoint is reserved and when it might be implemented.

docs/index.md (1)

23-23: Replace spaces in file paths with hyphens or underscores.

The following paths contain spaces which might cause issues in some environments:

  • 使用工具类方法 utils.md
  • 定制物料资产包、主题、DSL、工具栏和插件栏.md

Consider using hyphens or underscores instead of spaces.

Also applies to: 37-37, 190-190

docs/catalog.json (1)

167-168: Consider shortening lengthy article names.

Some article names are quite long and might affect readability:

  • "创建应用(创建空白应用、从模板创建应用)"
  • "定制物料资产包、主题、DSL、工具栏和插件栏"

Consider breaking these into smaller, more focused articles or using shorter, more concise names.

Also applies to: 190-191

docs/extension-capabilities-overview/新架构介绍.md (2)

6-6: Fix grammatical error in text

Change "慢慢的增加" to "慢慢地增加" to follow correct Chinese grammar rules for adverbial modifiers.

-TinyEngine引擎官方在慢慢的增加新特性
+TinyEngine引擎官方在慢慢地增加新特性
🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


14-17: Consider enhancing the core features section

The core features section could benefit from more detailed explanations:

  1. Specify what the CLI tool provides and how it helps
  2. Explain the Layout component's customization capabilities
  3. Define what "元服务" and "元应用" mean in this context
  4. Provide examples or links to detailed documentation for each feature
docs/extension-capabilities-tutorial/code-output-function/如何自定义出码.md (1)

38-46: Add error handling example in code snippet

The code example should demonstrate proper error handling for the generate method.

 import { generateApp } from '@opentiny/tiny-engine-dsl-vue'
 
 // 得到出码实例 CodeGenInstance
 const instance = generateApp()
 
 // 调用实例 generate 方法,传入应用协议数据 appSchema
-const res = await instance.generate(appSchema)
+try {
+  const res = await instance.generate(appSchema)
+  // Handle successful generation
+} catch (error) {
+  console.error('Code generation failed:', error)
+  // Handle error appropriately
+}
docs/extension-capabilities-tutorial/code-output-function/官方出码能力API.md (2)

17-19: Enhance type definition documentation

The IConfig type is used but not documented. Consider:

  1. Adding the complete IConfig interface definition
  2. Documenting each configuration option
  3. Providing example configurations for common use cases

220-222: Consider inlining essential type definitions

While linking to GitHub is good for comprehensive type definitions, consider:

  1. Including essential type definitions directly in the documentation
  2. Adding a brief description of what users can expect to find in the GitHub link
  3. Versioning information for the type definitions
docs/API/backend-api/DSL代码生成.md (1)

9-13: Document HTTP response codes and error scenarios.

The API documentation should include:

  • Possible HTTP response status codes
  • Error response format
  • Common error scenarios and their handling
docs/extension-capabilities-tutorial/如何开发插件.md (1)

122-135: Add props validation to the Vue component example.

The Vue component example should include props validation for better type safety and documentation.

 <plugin-setting
   v-if="isOpen"
-  :title="插件设置面板"
+  :title="title"
   :isSecond="false"
   @cancel="关闭设置面板的回调方法"
 >

Add props definition:

export default {
  props: {
    title: {
      type: String,
      required: true
    },
    isSecond: {
      type: Boolean,
      default: false
    },
    isOpen: {
      type: Boolean,
      required: true
    }
  }
}
docs/extension-capabilities-tutorial/code-output-function/自定义页面出码插件.md (4)

141-147: Consider adding type annotations to improve code clarity

The component name transformation example would benefit from TypeScript type annotations for better maintainability and documentation.

-function handleComponentName(optionData) {
+function handleComponentName(optionData: IOptionData): void {
   if (optionData.componentName === 'Text') {
     optionData.componentName = 'span'
   }
 }

250-270: Consider extracting magic strings into constants

The expression handling example uses magic strings that should be extracted into named constants for better maintainability.

+const EXPRESSION_TYPES = {
+  JS_EXPRESSION: 'JSExpression'
+} as const;
+
 const handleExpressionChildren = (schemaData = {}, globalHooks, config) => {
   const { children, schema } = schemaData
   const type = schema?.children?.type
   const isJSX = config.isJSX
   const prefix = isJSX ? '{' : '{{'
   const suffix = isJSX ? '}' : '}}'
 
-  if (type === JS_EXPRESSION) {
+  if (type === EXPRESSION_TYPES.JS_EXPRESSION) {
     specialTypeHandler[JS_RESOURCE](schema.children, globalHooks, config)

465-478: Enhance interface documentation with property descriptions

The IConfig interface would benefit from JSDoc comments describing each property's purpose and usage.

 interface IConfig {
+  /** Configuration for various plugins */
   pluginConfig: {
+    /** Page-specific plugin configuration */
     page: {
+      /** Base path for page files, defaults to './src/views' */
       pageBasePath: string;
+      /** Single-file component configuration */
       sfcConfig: ISFCConfig;
     },
+    /** Block-specific plugin configuration */
     block: {
+      /** Base path for block files, defaults to './src/components' */
       blockBasePath: string;
+      /** Single-file component configuration */
       sfcConfig: ISFCConfig;
     }
     //... other configurations omitted
   }
   //... other properties omitted
 }

548-549: Consider using enum instead of type for IInsertPosition

Using an enum for IInsertPosition would provide better type safety and IDE support.

-type IInsertPosition = 'AFTER_IMPORT' | 'BEFORE_PROPS' | 'AFTER_PROPS' | 'BEFORE_EMIT' | 'AFTER_EMIT' | 'BEFORE_STATE' | 'AFTER_STATE' | 'BEFORE_METHODS' | 'AFTER_METHODS'
+enum InsertPosition {
+  AFTER_IMPORT = 'AFTER_IMPORT',
+  BEFORE_PROPS = 'BEFORE_PROPS',
+  AFTER_PROPS = 'AFTER_PROPS',
+  BEFORE_EMIT = 'BEFORE_EMIT',
+  AFTER_EMIT = 'AFTER_EMIT',
+  BEFORE_STATE = 'BEFORE_STATE',
+  AFTER_STATE = 'AFTER_STATE',
+  BEFORE_METHODS = 'BEFORE_METHODS',
+  AFTER_METHODS = 'AFTER_METHODS'
+}
docs/extension-capabilities-overview/元服务和元应用.md (4)

1-11: Consider adding a visual diagram to illustrate the relationship

The introduction clearly explains the separation between meta-applications (UI/layout) and meta-services (core functionality). Consider adding a diagram to visually represent this architecture and the interaction between these components.


18-28: Enhance the Vue component example with error handling and TypeScript types

The Vue component example could be improved by:

  1. Adding error handling for when getMergeMeta returns null
  2. Including TypeScript type annotations
  3. Adding comments explaining the comp parameter

Consider enhancing the example:

 <template>
-  <component :is="entry"></component>
+  <component v-if="entry" :is="entry"></component>
+  <div v-else>Failed to load component</div>
 </template>
 <script setup lang="ts">
 import { getMergeMeta } from '@opentiny/tiny-engine-meta-register'
+import type { MetaComponent } from '@opentiny/tiny-engine-types'
 
-// 获取元应用
+// comp: The component identifier to load from meta registry
+// Returns the component entry point or null if not found
-const entry = getMergeMeta(comp).entry
+const entry = getMergeMeta(comp)?.entry as MetaComponent
 </script>

32-37: Add error handling to the meta-service example

The meta-service example should include error handling and type safety.

Consider enhancing the example:

 import { getMetaApi } from '@opentiny/tiny-engine-meta-register'
+import type { GenerateCodeApi } from '@opentiny/tiny-engine-types'
 
-// 获取元服务的 api
-const { getAllNestedBlocksSchema, generatePageCode } = getMetaApi('engine.service.generateCode')
+// Get the code generation service API
+const api = getMetaApi('engine.service.generateCode') as GenerateCodeApi
+if (!api) {
+  throw new Error('Failed to load code generation service')
+}
+const { getAllNestedBlocksSchema, generatePageCode } = api

58-74: Add TypeScript interfaces for meta-service definition

The meta-service example would benefit from TypeScript interfaces to document the expected structure and types.

Consider adding:

interface MetaServiceApi {
  parseRequiredBlocks: (params: unknown) => Promise<unknown>;
  getAllNestedBlocksSchema: (params: unknown) => Promise<unknown>;
  generatePageCode: (params: unknown) => Promise<unknown>;
  generateAppCode: (params: unknown) => Promise<unknown>;
}

interface MetaService {
  id: string;
  type: 'MetaService';
  options: Record<string, unknown>;
  apis: MetaServiceApi;
}
docs/extension-capabilities-overview/注册表.md (2)

9-14: Add examples for each registry function

The three main functions of the registry are well-defined, but would benefit from concrete examples demonstrating each capability:

  1. How configuration is passed to the engine
  2. How default and custom configurations are merged
  3. How inter-service communication works

94-104: Add error handling to configuration retrieval example

The example should demonstrate proper error handling when configurations or meta services are not found.

Consider enhancing the example:

 <script setup lang="ts">
 import { getMergeMeta } from '@opentiny/tiny-engine-meta-register'
+import type { EngineConfig, MaterialsPanel } from '@opentiny/tiny-engine-types'
 
-// 获取配置
-const platformId = getMergeMeta('engine.config')?.platformId
+// Get engine configuration
+const engineConfig = getMergeMeta('engine.config') as EngineConfig
+if (!engineConfig) {
+  throw new Error('Engine configuration not found')
+}
+const { platformId } = engineConfig
 
-// 获取元应用元服务
-const materialsPanel = getMergeMeta('engine.plugins.materials')?.entry
+// Get materials panel meta application
+const materialsPanel = getMergeMeta('engine.plugins.materials')?.entry as MaterialsPanel
+if (!materialsPanel) {
+  throw new Error('Materials panel not found')
+}
 </script>
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 320c528 and 93f60bb.

⛔ Files ignored due to path filters (226)
  • docs/about-applications/imgs/appCreateOne.png is excluded by !**/*.png
  • docs/about-applications/imgs/appCreateTwo.png is excluded by !**/*.png
  • docs/about-applications/imgs/appDevOne.png is excluded by !**/*.png
  • docs/about-applications/imgs/appDevTwo.png is excluded by !**/*.png
  • docs/about-designer/imgs/buildPlatform1.png is excluded by !**/*.png
  • docs/about-designer/imgs/buildPlatform2.png is excluded by !**/*.png
  • docs/about-designer/imgs/createPlatform.png is excluded by !**/*.png
  • docs/about-designer/imgs/defineDsl.png is excluded by !**/*.png
  • docs/about-designer/imgs/defineMaterial.png is excluded by !**/*.png
  • docs/about-designer/imgs/definePlugs.png is excluded by !**/*.png
  • docs/about-designer/imgs/defineTheme.png is excluded by !**/*.png
  • docs/about-designer/imgs/defineTools.png is excluded by !**/*.png
  • docs/about-designer/imgs/platformExpend.png is excluded by !**/*.png
  • docs/about-materials/imgs/createMaterial.gif is excluded by !**/*.gif
  • docs/about-materials/imgs/createMaterialBlock.png is excluded by !**/*.png
  • docs/about-materials/imgs/createMaterialBlockCancel.png is excluded by !**/*.png
  • docs/about-materials/imgs/createMaterialLib.png is excluded by !**/*.png
  • docs/about-materials/imgs/createMaterialLibCancel.png is excluded by !**/*.png
  • docs/about-materials/imgs/materialPanel.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ScreenShot_20241029195609.png is excluded by !**/*.png
  • docs/advanced-features/imgs/add-Function.png is excluded by !**/*.png
  • docs/advanced-features/imgs/addAiPlugin.png is excluded by !**/*.png
  • docs/advanced-features/imgs/addVar-17.png is excluded by !**/*.png
  • docs/advanced-features/imgs/addVar-19.png is excluded by !**/*.png
  • docs/advanced-features/imgs/addvar-15.png is excluded by !**/*.png
  • docs/advanced-features/imgs/askToModifyPage.png is excluded by !**/*.png
  • docs/advanced-features/imgs/bindEvent.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/bindVariable-16.png is excluded by !**/*.png
  • docs/advanced-features/imgs/bindVariable-18.png is excluded by !**/*.png
  • docs/advanced-features/imgs/blockBaseSetting.png is excluded by !**/*.png
  • docs/advanced-features/imgs/blockExposeAttr.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/blockexposeattrusage.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/conditionRender.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/createBlockFromPage.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/createEmptyBlock.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-2.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-3.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-4.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-load-1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-load-2.png is excluded by !**/*.png
  • docs/advanced-features/imgs/data-source-load-3.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource2.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource3.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource4.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource5.png is excluded by !**/*.png
  • docs/advanced-features/imgs/dataSource7.png is excluded by !**/*.png
  • docs/advanced-features/imgs/defineslot.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/icon-code.png is excluded by !**/*.png
  • docs/advanced-features/imgs/openAiWindow.png is excluded by !**/*.png
  • docs/advanced-features/imgs/pageJs.png is excluded by !**/*.png
  • docs/advanced-features/imgs/pageJsContent.png is excluded by !**/*.png
  • docs/advanced-features/imgs/pageJsJsxFunc.png is excluded by !**/*.png
  • docs/advanced-features/imgs/pageJsMethod.png is excluded by !**/*.png
  • docs/advanced-features/imgs/parseJxBindingJsxFunc.png is excluded by !**/*.png
  • docs/advanced-features/imgs/parseJxBindingJsxFuncResult.png is excluded by !**/*.png
  • docs/advanced-features/imgs/state-isLogin为false时.png is excluded by !**/*.png
  • docs/advanced-features/imgs/state-isLogin为ture时.png is excluded by !**/*.png
  • docs/advanced-features/imgs/use-npm.png is excluded by !**/*.png
  • docs/advanced-features/imgs/useBlock.png is excluded by !**/*.png
  • docs/advanced-features/imgs/useLoop.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/usingslot.gif is excluded by !**/*.gif
  • docs/advanced-features/imgs/utils4.png is excluded by !**/*.png
  • docs/advanced-features/imgs/viewRender.png is excluded by !**/*.png
  • docs/basic-features/imgs/addComponent-13.png is excluded by !**/*.png
  • docs/basic-features/imgs/addFolder.png is excluded by !**/*.png
  • docs/basic-features/imgs/addPage.png is excluded by !**/*.png
  • docs/basic-features/imgs/addVar.png is excluded by !**/*.png
  • docs/basic-features/imgs/addWords.png is excluded by !**/*.png
  • docs/basic-features/imgs/bindVariable-25.png is excluded by !**/*.png
  • docs/basic-features/imgs/canvasoverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/choseClickCompontes.png is excluded by !**/*.png
  • docs/basic-features/imgs/choseComponent.png is excluded by !**/*.png
  • docs/basic-features/imgs/choseComponentID.png is excluded by !**/*.png
  • docs/basic-features/imgs/choseFile.png is excluded by !**/*.png
  • docs/basic-features/imgs/clickNode.png is excluded by !**/*.png
  • docs/basic-features/imgs/componentDown.png is excluded by !**/*.png
  • docs/basic-features/imgs/componentUp.png is excluded by !**/*.png
  • docs/basic-features/imgs/copyComponent.png is excluded by !**/*.png
  • docs/basic-features/imgs/copyKeyValue.png is excluded by !**/*.png
  • docs/basic-features/imgs/createApp.png is excluded by !**/*.png
  • docs/basic-features/imgs/createFolder.png is excluded by !**/*.png
  • docs/basic-features/imgs/createPage.png is excluded by !**/*.png
  • docs/basic-features/imgs/delBatchWord.png is excluded by !**/*.png
  • docs/basic-features/imgs/delWord.png is excluded by !**/*.png
  • docs/basic-features/imgs/deleteClassNameNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/dragComponent.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/editClassNameNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/editClassNameStatic.png is excluded by !**/*.png
  • docs/basic-features/imgs/editGlobalStyleNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/editWord.png is excluded by !**/*.png
  • docs/basic-features/imgs/eventOverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-add.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-code.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-copy.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-del.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-edit.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-i18n.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-page.png is excluded by !**/*.png
  • docs/basic-features/imgs/icon-tree.png is excluded by !**/*.png
  • docs/basic-features/imgs/inlineSettingResultNew.png is excluded by !**/*.png
  • docs/basic-features/imgs/inlineStyleBindVar.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/inlineStyleSettingNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/inserPosition.png is excluded by !**/*.png
  • docs/basic-features/imgs/insertComponent.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/lifecycle.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/modifyStyle.png is excluded by !**/*.png
  • docs/basic-features/imgs/modifyVar.png is excluded by !**/*.png
  • docs/basic-features/imgs/modifyedStyle.png is excluded by !**/*.png
  • docs/basic-features/imgs/pageManaHistoryRestore.png is excluded by !**/*.png
  • docs/basic-features/imgs/pageManaIndex.png is excluded by !**/*.png
  • docs/basic-features/imgs/pagedelOrCopy.png is excluded by !**/*.png
  • docs/basic-features/imgs/platformExpend.png is excluded by !**/*.png
  • docs/basic-features/imgs/pluginoverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/preview-btn.png is excluded by !**/*.png
  • docs/basic-features/imgs/preview-pre.png is excluded by !**/*.png
  • docs/basic-features/imgs/preview.png is excluded by !**/*.png
  • docs/basic-features/imgs/selectClassNameNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/selectParentID.png is excluded by !**/*.png
  • docs/basic-features/imgs/setClassNameNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/setClassNameStatic.png is excluded by !**/*.png
  • docs/basic-features/imgs/setCompoentAttr.png is excluded by !**/*.png
  • docs/basic-features/imgs/setCompoentBaseAttr.png is excluded by !**/*.png
  • docs/basic-features/imgs/setCompoentStyle.png is excluded by !**/*.png
  • docs/basic-features/imgs/setStyleHoverNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/settingPanelOverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/state1.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/state2.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/state3.png is excluded by !**/*.png
  • docs/basic-features/imgs/stylePanelOverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/styleSettingNew.gif is excluded by !**/*.gif
  • docs/basic-features/imgs/styleSettingResult1.png is excluded by !**/*.png
  • docs/basic-features/imgs/styleSettingResult2.png is excluded by !**/*.png
  • docs/basic-features/imgs/styleSettingStatic.png is excluded by !**/*.png
  • docs/basic-features/imgs/toolbaroverview.png is excluded by !**/*.png
  • docs/basic-features/imgs/treeselectOverview.png is excluded by !**/*.png
  • docs/development-getting-started/imgs/cli-create-plugin.png is excluded by !**/*.png
  • docs/development-getting-started/imgs/cli-plugin-open.png is excluded by !**/*.png
  • docs/development-getting-started/imgs/tiny-engine-cli-open.png is excluded by !**/*.png
  • docs/development-getting-started/imgs/tiny-engine-cli.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/componentConfigBase.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/componentConfigSchema.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/componentConfigTec.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/componentLibInfo.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/ecology1.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/ecology2.png is excluded by !**/*.png
  • docs/ecosystem-center/imgs/ecology3.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/code-output-function/imgs/TinyEngineSchem2Code.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/code-output-function/imgs/customGenCodePlugin.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/code-output-function/imgs/exportcode.gif is excluded by !**/*.gif
  • docs/extension-capabilities-tutorial/code-output-function/imgs/pageGenerate.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/code-output-function/imgs/vuetemplate.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/custom-plugin-page-full.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/custom-plugin-page-pos.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/input-configurator.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/my-input-configurator.gif is excluded by !**/*.gif
  • docs/extension-capabilities-tutorial/imgs/plugin1.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin2.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin3.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin4.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin5.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin6.png is excluded by !**/*.png
  • docs/extension-capabilities-tutorial/imgs/plugin7.png is excluded by !**/*.png
  • docs/getting-started/imgs/addComponent.png is excluded by !**/*.png
  • docs/getting-started/imgs/addState.png is excluded by !**/*.png
  • docs/getting-started/imgs/bangEnv.png is excluded by !**/*.png
  • docs/getting-started/imgs/firstPage.png is excluded by !**/*.png
  • docs/getting-started/imgs/imgswitch.png is excluded by !**/*.png
  • docs/getting-started/imgs/page1.png is excluded by !**/*.png
  • docs/getting-started/imgs/preImgChange.png is excluded by !**/*.png
  • docs/getting-started/imgs/setImgSrc.png is excluded by !**/*.png
  • docs/getting-started/imgs/setImgSta.png is excluded by !**/*.png
  • docs/getting-started/imgs/setImgSty.png is excluded by !**/*.png
  • docs/getting-started/imgs/showImg.png is excluded by !**/*.png
  • docs/getting-started/imgs/tinyengine.png is excluded by !**/*.png
  • docs/practical-cases/imgs/app.png is excluded by !**/*.png
  • docs/practical-cases/imgs/blockProps.png is excluded by !**/*.png
  • docs/practical-cases/imgs/blockSettings.png is excluded by !**/*.png
  • docs/practical-cases/imgs/code.png is excluded by !**/*.png
  • docs/practical-cases/imgs/download.png is excluded by !**/*.png
  • docs/practical-cases/imgs/image-20230919202709-5khs9h1.png is excluded by !**/*.png
  • docs/practical-cases/imgs/image-20230920083516-hg4vhhs.png is excluded by !**/*.png
  • docs/practical-cases/imgs/image-20230920084925-yirmz91.png is excluded by !**/*.png
  • docs/practical-cases/imgs/image-20230920093120-jdzux3h.png is excluded by !**/*.png
  • docs/practical-cases/imgs/pdm.png is excluded by !**/*.png
  • docs/practical-cases/imgs/process.png is excluded by !**/*.png
  • docs/practical-cases/imgs/smbHome.png is excluded by !**/*.png
  • docs/solutions/imgs/add_block.png is excluded by !**/*.png
  • docs/solutions/imgs/add_block1.png is excluded by !**/*.png
  • docs/solutions/imgs/add_block2.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_code.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_code3.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_1.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_10.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_2.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_4.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_5.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_6.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_7.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_8.png is excluded by !**/*.png
  • docs/solutions/imgs/backend_deploy_9.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-10.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-11.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-12.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-2.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-3.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-4.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-5.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-6.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-7.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-8.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-9.png is excluded by !**/*.png
  • docs/solutions/imgs/block-publish-db-1.png is excluded by !**/*.png
  • docs/solutions/imgs/create_block.png is excluded by !**/*.png
  • docs/solutions/imgs/events.png is excluded by !**/*.png
  • docs/solutions/imgs/npm1.png is excluded by !**/*.png
  • docs/solutions/imgs/npm2.png is excluded by !**/*.png
  • docs/solutions/imgs/npm3.png is excluded by !**/*.png
  • docs/solutions/imgs/property.png is excluded by !**/*.png
  • docs/solutions/imgs/publish_block.png is excluded by !**/*.png
  • docs/solutions/imgs/publish_block2.png is excluded by !**/*.png
  • docs/solutions/imgs/save_block.png is excluded by !**/*.png
  • docs/solutions/imgs/slots.png is excluded by !**/*.png
  • docs/solutions/imgs/snippets.png is excluded by !**/*.png
  • docs/solutions/imgs/synchronize-materials.png is excluded by !**/*.png
📒 Files selected for processing (62)
  • docs/API/backend-api/AI功能接口.md (1 hunks)
  • docs/API/backend-api/APP服务.md (1 hunks)
  • docs/API/backend-api/DSL代码生成.md (1 hunks)
  • docs/API/backend-api/应用工具类管理.md (1 hunks)
  • docs/API/backend-api/数据源管理.md (1 hunks)
  • docs/about-applications/创建应用(创建空白应用、从模板创建应用).md (1 hunks)
  • docs/about-applications/开发应用.md (1 hunks)
  • docs/about-designer/介绍.md (1 hunks)
  • docs/about-designer/创建设计器.md (1 hunks)
  • docs/about-designer/定制物料资产包、主题、DSL、工具栏和插件栏.md (1 hunks)
  • docs/about-designer/定制设计器.md (1 hunks)
  • docs/about-materials/介绍.md (1 hunks)
  • docs/about-materials/创建物料资产包.md (1 hunks)
  • docs/about-materials/构建物料资产包.md (1 hunks)
  • docs/about-materials/添加组件库和区块.md (1 hunks)
  • docs/advanced-features/使用JS面板和事件绑定.md (1 hunks)
  • docs/advanced-features/使用工具类方法 utils.md (1 hunks)
  • docs/advanced-features/区块管理.md (1 hunks)
  • docs/advanced-features/如何使用插槽.md (1 hunks)
  • docs/advanced-features/循环渲染.md (1 hunks)
  • docs/advanced-features/数据源和Collection—mock数据.md (1 hunks)
  • docs/advanced-features/数据源和Collection—使用数据源.md (1 hunks)
  • docs/advanced-features/数据源和Collection—远程字段.md (1 hunks)
  • docs/advanced-features/条件渲染.md (1 hunks)
  • docs/advanced-features/集成ChatGPT搭建简单页面能力.md (1 hunks)
  • docs/advanced-features/高级面板设置.md (1 hunks)
  • docs/basic-features/使用状态管理和变量绑定.md (1 hunks)
  • docs/basic-features/使用组件.md (1 hunks)
  • docs/basic-features/初识设计器.md (1 hunks)
  • docs/basic-features/国际化.md (1 hunks)
  • docs/basic-features/查看大纲树.md (1 hunks)
  • docs/basic-features/样式设置.md (1 hunks)
  • docs/basic-features/行内样式绑定状态变量.md (1 hunks)
  • docs/basic-features/设计前端应用流程.md (1 hunks)
  • docs/basic-features/设计器界面模块简介.md (1 hunks)
  • docs/basic-features/页面和区块预览.md (1 hunks)
  • docs/basic-features/页面管理.md (1 hunks)
  • docs/catalog.json (1 hunks)
  • docs/development-getting-started/快速上手.md (1 hunks)
  • docs/development-getting-started/简介.md (1 hunks)
  • docs/ecosystem-center/介绍.md (1 hunks)
  • docs/ecosystem-center/发布其他生态.md (1 hunks)
  • docs/ecosystem-center/如何发布区块.md (1 hunks)
  • docs/ecosystem-center/如何导入组件库.md (1 hunks)
  • docs/extension-capabilities-overview/元服务和元应用.md (1 hunks)
  • docs/extension-capabilities-overview/新架构介绍.md (1 hunks)
  • docs/extension-capabilities-overview/注册表.md (1 hunks)
  • docs/extension-capabilities-tutorial/code-output-function/出码功能简介与使用.md (1 hunks)
  • docs/extension-capabilities-tutorial/code-output-function/如何自定义出码.md (1 hunks)
  • docs/extension-capabilities-tutorial/code-output-function/如何自定义出码插件.md (1 hunks)
  • docs/extension-capabilities-tutorial/code-output-function/官方出码能力API.md (1 hunks)
  • docs/extension-capabilities-tutorial/code-output-function/自定义页面出码插件.md (1 hunks)
  • docs/extension-capabilities-tutorial/如何开发插件.md (1 hunks)
  • docs/extension-capabilities-tutorial/定制元服务逻辑.md (1 hunks)
  • docs/extension-capabilities-tutorial/定制插件UI.md (1 hunks)
  • docs/extension-capabilities-tutorial/开发设置器组件.md (1 hunks)
  • docs/getting-started/快速上手.md (1 hunks)
  • docs/getting-started/简介.md (1 hunks)
  • docs/index.md (1 hunks)
  • docs/practical-cases/PDM元数据审批电子流.md (1 hunks)
  • docs/practical-cases/SMB轻量应用服务.md (1 hunks)
  • docs/practical-cases/图元编排设计器.md (1 hunks)
✅ Files skipped from review due to trivial changes (7)
  • docs/basic-features/查看大纲树.md
  • docs/about-designer/创建设计器.md
  • docs/about-materials/构建物料资产包.md
  • docs/basic-features/行内样式绑定状态变量.md
  • docs/about-applications/创建应用(创建空白应用、从模板创建应用).md
  • docs/ecosystem-center/介绍.md
  • docs/basic-features/设计器界面模块简介.md
🧰 Additional context used
📓 Learnings (1)
docs/development-getting-started/快速上手.md (1)
Learnt from: gene9831
PR: opentiny/tiny-engine#917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of `@opentiny/tiny-engine-cli` is `2.0.0`, and documentation should reference this version instead of any release candidates.
🪛 LanguageTool
docs/API/backend-api/DSL代码生成.md

[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]

输出示例:

<cod...

(UNLIKELY_OPENING_PUNCTUATION)

docs/extension-capabilities-overview/新架构介绍.md

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...

(wb4)

docs/extension-capabilities-tutorial/code-output-function/出码功能简介与使用.md

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...

(wb4)


[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...

(wb4)

docs/advanced-features/使用JS面板和事件绑定.md

[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 ![在页面JS中定义渲染函数](./imgs/pag...

(wb2)


[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。

(wb4)

docs/API/backend-api/APP服务.md

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 获取页面/区块源码 ### 基本信息 Path:...

(EN_A_VS_AN)


[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 页面/区块预览用元数据 ### 基本信息 **Path:...

(EN_A_VS_AN)

docs/practical-cases/PDM元数据审批电子流.md

[uncategorized] ~27-~27: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。

avatar ...

(wb4)

docs/basic-features/使用组件.md

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)

docs/development-getting-started/简介.md

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)

docs/getting-started/简介.md

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

docs/practical-cases/图元编排设计器.md

[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。 考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...

(wa5)


[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍 TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...

(wb4)


[uncategorized] ~74-~74: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一定"地"开发
Context: ...或切换。 ### 遵循插件规范开发 TinyEngine插件开发需要遵循一定的开发规范,主要是文件规范与导出规范: * 文件规范,必须包含下面几个文件 `...

(wb4)


[uncategorized] ~121-~121: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:快速"地"完成
Context: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 ​​![image](./imgs/...

(wb4)


[uncategorized] ~127-~127: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:优秀"地"插
Context: ...TinyEngine的基础引擎能力,快速搭建出PoC原型,再此基础上,利用其优秀的插件架构和提供的插件公共能力,添加业务相关插件,快速开发出一个领域定制的专属设计...

(wb4)

docs/ecosystem-center/发布其他生态.md

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

docs/development-getting-started/快速上手.md

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 - chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。 ## 二、Tiny Engine CLI ...

(wb4)


[uncategorized] ~64-~64: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ... 另起一个终端,在当前目录下,输入下面命令,选择创建plugin类型,创建一个新的插件 ```shell npx @opentiny/tiny-engine-c...

(wb4)


[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ...#### 2.2.3 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: ![cli-plugin-open](./imgs/cli-plugi...

(wb4)

docs/advanced-features/区块管理.md

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)


[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 ![区块暴露属性的消费](./imgs/blockexp...

(JI11_JI2)

docs/about-materials/创建物料资产包.md

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/basic-features/页面和区块预览.md

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

docs/ecosystem-center/如何导入组件库.md

[uncategorized] ~4-~4: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...入组件库 ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...

(wb4)

🪛 Markdownlint (0.37.0)
docs/advanced-features/循环渲染.md

13-13: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/advanced-features/使用工具类方法 utils.md

8-8: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/API/backend-api/APP服务.md

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/practical-cases/PDM元数据审批电子流.md

17-17: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/API/backend-api/应用工具类管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


63-63: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


110-110: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


144-144: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/API/backend-api/AI功能接口.md

21-21: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


27-27: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/basic-features/国际化.md

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/ecosystem-center/发布其他生态.md

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)

docs/development-getting-started/快速上手.md

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)


124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/API/backend-api/数据源管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/about-applications/开发应用.md

9-9: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/ecosystem-center/如何导入组件库.md

30-30: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


41-41: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🔇 Additional comments (64)
docs/about-materials/创建物料资产包.md (2)

1-4: LGTM: Clear document structure

The document title and section headers are well-organized and follow proper Markdown heading hierarchy.


10-10: Verify image availability

The PR objectives mention issues with missing images. Let's verify if this image exists.

✅ Verification successful

Image file exists and is correctly referenced

The image file createMaterial.gif exists at the expected location docs/about-materials/imgs/createMaterial.gif, and the markdown reference to it is correct.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists
fd "createMaterial.gif" docs/about-materials/imgs/

# Check for any other potential locations of the image
fd "createMaterial.gif"

Length of output: 164

docs/development-getting-started/简介.md (3)

1-4: LGTM! Clear document structure.

The document follows proper Markdown formatting conventions with appropriate heading levels.


11-25: LGTM! Well-structured features and use cases.

The features are clearly presented with bullet points, and the application scenarios are comprehensively described.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)


37-44: LGTM! Clear community and roadmap information.

The community contribution and future development sections effectively communicate the project's vision and opportunities for involvement.

docs/ecosystem-center/如何发布区块.md (1)

9-9: 🛠️ Refactor suggestion

Verify image path and add alt text description

The image reference needs attention:

  1. Based on PR objectives, there are known issues with missing images
  2. The alt text could be more descriptive
-![发布区块](./imgs/ecology2.png)
+![区块发布流程示意图](./imgs/ecology2.png)
✅ Verification successful

Image path is correct and accessible

The image file ecology2.png exists at the correct relative path ./imgs/ecology2.png from the markdown file's location. While improving the alt text would enhance accessibility, the current implementation is technically functional.

  • docs/ecosystem-center/imgs/ecology2.png is present and correctly referenced
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and verify its path
fd "ecology2.png" docs/ecosystem-center/imgs/

# Check for other potential image locations
fd "ecology2.png" docs/

Length of output: 149

docs/ecosystem-center/如何导入组件库.md (4)

1-7: LGTM! Clear and well-structured introduction.

The introduction effectively explains component libraries and their benefits.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~4-~4: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...入组件库 ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...

(wb4)


68-69: LGTM! Clear conclusion.

The conclusion effectively summarizes the next steps for users after completing the component library configuration.


29-29: Verify all image references.

Multiple image references need verification:

  • ./imgs/componentConfigBase.png
  • ./imgs/componentConfigSchema.png
  • ./imgs/componentConfigTec.png

Also applies to: 40-40

✅ Verification successful

All referenced images are present in the expected location

All image references in the documentation are valid and the corresponding files exist in the docs/ecosystem-center/imgs/ directory:

  • componentConfigBase.png
  • componentConfigSchema.png
  • componentConfigTec.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all referenced images exist
fd -e png "componentConfig(Base|Schema|Tec).png" docs/

Length of output: 210


9-9: Verify image accessibility.

The image reference ./imgs/componentLibInfo.png needs verification to ensure it's accessible and properly linked.

✅ Verification successful

Image path is correctly referenced and accessible

The image file componentLibInfo.png exists at the expected relative path ./imgs/componentLibInfo.png from the markdown file's location in docs/ecosystem-center/. The reference is valid and accessible.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd -e png "componentLibInfo.png" docs/

Length of output: 86

docs/ecosystem-center/发布其他生态.md (1)

3-4: Verify image accessibility

Please ensure that the referenced image ./imgs/ecology3.png exists and is accessible. The PR objectives mention issues with missing images.

✅ Verification successful

Image file exists and is accessible

The referenced image ./imgs/ecology3.png exists at the correct location and is accessible.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists and is accessible
fd -e png "ecology3.png" docs/ecosystem-center/imgs/

Length of output: 92

docs/basic-features/样式设置.md (4)

9-12: Code examples are well-structured and clear!

The code examples effectively demonstrate the concepts with proper formatting and language-specific syntax highlighting.

Also applies to: 16-30, 138-141, 151-163


1-4: Documentation structure and content are well-organized!

The documentation follows a logical progression from basic concepts to advanced features, with clear explanations and practical examples.

Also applies to: 34-44, 58-61, 80-83, 131-134, 147-150


1-169: Markdown formatting follows best practices!

The document uses proper Markdown syntax throughout, with consistent heading hierarchy and correct code block formatting. No HTML tables were found that need conversion to Markdown format.


45-46: Verify image accessibility and paths

Multiple image references are used throughout the document. Let's verify their existence and accessibility.

Also applies to: 47-48, 55-56, 68-69, 72-73, 78-79, 90-91, 92-93, 110-111, 121-122, 129-130, 145-146, 169-169

✅ Verification successful

All referenced images are present and accessible

All image files referenced in the markdown document are present in the correct location at docs/basic-features/imgs/. The verification script confirmed the existence of all 15 image files with their correct filenames.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced images exist in the correct location

# Get the directory of the current markdown file
DOC_DIR=$(dirname "docs/basic-features/样式设置.md")

# List of image files referenced
IMAGES=(
    "styleSettingStatic.png"
    "styleSettingNew.gif"
    "styleSettingResult1.png"
    "styleSettingResult2.png"
    "inlineStyleSettingNew.gif"
    "inlineSettingResultNew.png"
    "editGlobalStyleNew.gif"
    "setClassNameStatic.png"
    "setClassNameNew.gif"
    "editClassNameNew.gif"
    "editClassNameStatic.png"
    "deleteClassNameNew.gif"
    "selectClassNameNew.gif"
    "setStyleHoverNew.gif"
    "inlineStyleBindVar.gif"
)

# Check each image
echo "Checking image files in $DOC_DIR/imgs/:"
for img in "${IMAGES[@]}"; do
    if [ -f "$DOC_DIR/imgs/$img" ]; then
        echo "✓ Found: $img"
    else
        echo "✗ Missing: $img"
    fi
done

Length of output: 3042

docs/basic-features/页面和区块预览.md (1)

9-9: Verify image path and accessibility

The image reference ./imgs/preview-btn.png needs verification:

  1. Ensure the image exists in the correct relative path
  2. Consider using absolute paths for better reliability
✅ Verification successful

Image path is correctly referenced and accessible

The image file exists at the expected relative path docs/basic-features/imgs/preview-btn.png, which matches the referenced path ./imgs/preview-btn.png from the markdown file located at docs/basic-features/页面和区块预览.md. The relative path is working as intended.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced image exists
fd -t f "preview-btn.png" docs/

Length of output: 72

docs/extension-capabilities-tutorial/code-output-function/出码功能简介与使用.md (3)

1-60: Documentation structure and content look good!

The document effectively explains the code output functionality with:

  • Clear introduction and definition
  • Practical code examples
  • Well-reasoned rationale for using code output
  • Step-by-step usage instructions
🧰 Tools
🪛 LanguageTool

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...

(wb4)


[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...

(wb4)


56-56: Verify the existence of referenced image

The PR objectives mention issues with missing images. Please ensure that:

  1. The image file exportcode.gif exists in the imgs directory
  2. The image is properly committed to the repository
✅ Verification successful

Image reference is correctly linked and exists in the repository

The image file exportcode.gif exists at the expected location docs/extension-capabilities-tutorial/code-output-function/imgs/, and the relative path in the markdown file correctly references it.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists in the correct location
fd -t f "exportcode.gif" docs/extension-capabilities-tutorial/code-output-function/imgs/

Length of output: 166


60-60: Verify the existence of referenced document

Please ensure that the referenced document "如何自定义出码.md" exists in the same directory.

✅ Verification successful

Document reference is valid

The referenced document "如何自定义出码.md" exists in the same directory, making this a valid cross-reference.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced document exists
fd -t f "如何自定义出码.md" docs/extension-capabilities-tutorial/code-output-function/

Length of output: 228

docs/basic-features/页面管理.md (2)

1-4: LGTM! Clear and concise introduction.

The title and introduction effectively explain the purpose of the page management plugin.


26-26: Verify and fix image references.

The PR objectives mention issues with missing images. Let's verify the image paths and ensure they exist.

Consider the following improvements:

  1. Add alt text with more descriptive information
  2. Consider using absolute paths with the public URL of your documentation site

Example improvement:

-![新增文件夹](./imgs/addFolder.png)
+![页面管理 - 如何新增文件夹的操作界面](/docs/basic-features/imgs/addFolder.png)

Also applies to: 32-32, 39-39

✅ Verification successful

Image references are correctly configured and accessible

All referenced images (addFolder.png, addPage.png, pagedelOrCopy.png) exist in the expected location under docs/basic-features/imgs/. The relative path ./imgs/ in the markdown files correctly points to these images. While the suggested improvements for alt text and absolute paths could enhance accessibility and maintainability, the current implementation is functional and valid.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
echo "Checking image files..."
for img in "addFolder.png" "addPage.png" "pagedelOrCopy.png"; do
  if fd -p "docs/basic-features/imgs/${img}"; then
    echo "✓ Found: ${img}"
  else
    echo "✗ Missing: ${img}"
  fi
done

Length of output: 676

docs/about-designer/定制物料资产包、主题、DSL、工具栏和插件栏.md (1)

8-8: Verify image references and ensure proper image hosting.

The PR objectives mention issues with missing images. Let's verify the image references:

Also applies to: 11-11, 14-14, 17-17, 20-20

✅ Verification successful

All image references are valid and accessible

The verification shows that all referenced images exist in the correct location:

  • defineMaterial.png
  • defineTheme.png
  • defineDsl.png
  • defineTools.png
  • definePlugs.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced images exist and are accessible

# List all referenced images
echo "Checking for referenced images..."
IMAGES=("defineMaterial.png" "defineTheme.png" "defineDsl.png" "defineTools.png" "definePlugs.png")

# Check if images exist in the relative path
for img in "${IMAGES[@]}"; do
  echo "Checking for ./docs/about-designer/imgs/$img"
  if [ -f "./docs/about-designer/imgs/$img" ]; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

# Check for the imgs directory
if [ ! -d "./docs/about-designer/imgs" ]; then
  echo "Warning: imgs directory not found at ./docs/about-designer/imgs"
fi

Length of output: 1547

docs/extension-capabilities-tutorial/定制插件UI.md (2)

68-68: Verify the referenced image exists.

The image custom-plugin-page-full.png is referenced but might be missing based on the PR objectives mentioning missing images.

✅ Verification successful

Image file exists at the specified location

The image custom-plugin-page-full.png is present in the expected directory docs/extension-capabilities-tutorial/imgs/.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced image exists
fd -t f "custom-plugin-page-full.png" docs/extension-capabilities-tutorial/imgs/

Length of output: 150


33-33: Verify the referenced image exists.

The image custom-plugin-page-pos.png is referenced but might be missing based on the PR objectives mentioning missing images.

✅ Verification successful

Image file exists at the referenced location

The image custom-plugin-page-pos.png is present in the expected directory docs/extension-capabilities-tutorial/imgs/.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced image exists
fd -t f "custom-plugin-page-pos.png" docs/extension-capabilities-tutorial/imgs/

Length of output: 148

docs/about-materials/介绍.md (1)

16-16: Verify image accessibility and path

The PR objectives mention issues with missing images. Please ensure that:

  1. The image file exists at the specified path
  2. The image is properly committed to the repository
  3. Consider adding alt text with more details for better accessibility
✅ Verification successful

Image path and accessibility verified

The image file materialPanel.png exists at the specified path docs/about-materials/imgs/ and the directory structure is correct. While adding descriptive alt text would improve accessibility, the basic image reference is functional.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd -t f "materialPanel.png" docs/about-materials/imgs/

# Check if the directory structure exists
fd -t d "imgs" docs/about-materials/

Length of output: 162

docs/about-materials/添加组件库和区块.md (1)

8-8: Verify image availability and consider absolute paths

The PR objectives mention issues with missing images. Please ensure that all referenced images exist in the correct location.

Let's verify the image paths:

Consider using absolute paths from the repository root to prevent broken links:

-![添加组件库](./imgs/createMaterialLib.png)
+![添加组件库](/docs/about-materials/imgs/createMaterialLib.png)

Also applies to: 11-11, 14-14, 17-17

✅ Verification successful

All referenced images are present in the correct location

The verification shows that:

  • The imgs directory exists at docs/about-materials/imgs/
  • All referenced images are present in their expected locations:
    • createMaterialLib.png
    • createMaterialBlock.png
    • createMaterialLibCancel.png
    • createMaterialBlockCancel.png

Since the images are correctly placed in a relative directory and all files exist, using relative paths is actually the preferred approach here as it makes the documentation more portable and easier to maintain.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if the referenced images exist in the repository

# Check for the existence of the images directory and files
echo "Checking for images directory..."
fd -t d "imgs" "docs/about-materials"

echo "Checking for referenced image files..."
for img in "createMaterialLib.png" "createMaterialBlock.png" "createMaterialLibCancel.png" "createMaterialBlockCancel.png"; do
  fd "$img" "docs/about-materials"
done

Length of output: 1140

docs/practical-cases/SMB轻量应用服务.md (1)

11-11: Verify image references and ensure proper image hosting

All image references (./imgs/smbHome.png, ./imgs/app.png, etc.) need verification. The PR objectives mention issues with missing images linked to not-found.

Let's verify the image paths and their existence:

Also applies to: 17-17, 28-28, 38-38, 44-44, 48-48

✅ Verification successful

All referenced images are present in the correct location

The verification shows that all image files referenced in the documentation exist in the expected docs/practical-cases/imgs/ directory:

  • smbHome.png
  • app.png
  • blockSettings.png
  • blockProps.png
  • download.png
  • code.png

The relative path ./imgs/ in the markdown file is correct since it points to the imgs subdirectory within the same directory as the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist in the repository
for img in smbHome.png app.png blockSettings.png blockProps.png download.png code.png; do
  echo "Checking for $img..."
  fd -t f "$img" docs/
done

Length of output: 1570

docs/basic-features/设计前端应用流程.md (2)

1-7: LGTM! Clear document structure and introduction.

The document follows proper Markdown formatting with a clear title and introduction.


1-63: Well-structured documentation with clear steps

The documentation is well-organized with:

  • Clear step-by-step instructions
  • Logical flow from application creation to code generation
  • Comprehensive coverage of each feature
  • Good use of bullet points and numbered lists
docs/basic-features/国际化.md (1)

1-79: Well-structured documentation with clear sections.

The documentation is well-organized with:

  • Clear hierarchical headings
  • Numbered instructions
  • Consistent formatting
🧰 Tools
🪛 Markdownlint (0.37.0)

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

docs/basic-features/初识设计器.md (8)

1-4: LGTM! Clear document structure and introduction.

The document starts with a proper heading hierarchy and provides a clear introduction to the content.


17-28: LGTM! Well-structured toolbar documentation.

The toolbar features are clearly documented with a comprehensive list of functionalities.


32-32: Verify image availability and path.

The plugin overview image reference needs verification.

✅ Verification successful

Image path is correctly referenced and file exists

The image file pluginoverview.png exists at the expected location docs/basic-features/imgs/pluginoverview.png, which matches the relative path used in the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd pluginoverview.png

Length of output: 67


13-13: Verify image availability and path.

The toolbar overview image reference needs verification.

✅ Verification successful

Image path is valid and accessible

The referenced image toolbaroverview.png exists at the correct relative path ./imgs/toolbaroverview.png from the markdown file's location.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd toolbaroverview.png

Length of output: 69


50-50: Verify multiple image references.

Multiple image references in the settings panel section need verification.

Also applies to: 53-53, 56-56

✅ Verification successful

All referenced images exist in the correct location

The verification confirms that all three image files referenced in the settings panel section are present in the expected docs/basic-features/imgs/ directory:

  • settingPanelOverview.png
  • stylePanelOverview.png
  • eventOverview.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all settings panel related images exist and are accessible
fd "settingPanelOverview.png|stylePanelOverview.png|eventOverview.png"

Length of output: 213


40-40: Verify image availability and path.

The canvas overview image reference needs verification.

✅ Verification successful

Image path is correctly referenced and file exists

The image file canvasoverview.png exists at the expected location docs/basic-features/imgs/canvasoverview.png, which matches the relative path used in the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd canvasoverview.png

Length of output: 67


60-60: Verify image availability and path.

The tree select overview image reference needs verification.

✅ Verification successful

Image path is correctly referenced and file exists

The image treeselectOverview.png is present at the expected location docs/basic-features/imgs/treeselectOverview.png, and the relative path in the markdown file ./imgs/treeselectOverview.png is correctly specified.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd treeselectOverview.png

Length of output: 75


7-7: Verify image availability and path.

The image reference needs verification as the PR objectives mention issues with missing images.

✅ Verification successful

Image path is valid and accessible

The image platformExpend.png exists at the referenced location docs/basic-features/imgs/platformExpend.png, matching the relative path in the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists and is accessible
fd platformExpend.png

Length of output: 111

docs/advanced-features/集成ChatGPT搭建简单页面能力.md (1)

5-5: Verify image references

The following image references need to be verified to ensure they are properly linked and accessible:

  • ./imgs/addAiPlugin.png
  • ./imgs/openAiWindow.png
  • ./imgs/useBlock.png
  • ./imgs/askToModifyPage.png

Also applies to: 10-10, 17-17, 21-21

✅ Verification successful

All image references are correctly linked and accessible

All referenced images exist in the correct location at docs/advanced-features/imgs/:

  • ✓ addAiPlugin.png
  • ✓ openAiWindow.png
  • ✓ useBlock.png
  • ✓ askToModifyPage.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced images exist
for img in addAiPlugin.png openAiWindow.png useBlock.png askToModifyPage.png; do
  fd -t f "$img" docs/
done

Length of output: 623

docs/about-designer/定制设计器.md (1)

9-9: 🛠️ Refactor suggestion

Verify image accessibility and paths

The image references need attention in two areas:

  1. Add alt text to improve accessibility
  2. Verify that the images exist in the specified path, as PR objectives mention missing images

Consider updating the image references with meaningful alt text:

-![build-platform1]( ./imgs/buildPlatform1.png)
+![Visual method for building a custom designer]( ./imgs/buildPlatform1.png)

-![build-platform2]( ./imgs/buildPlatform2.png)
+![Source code method for building a custom designer]( ./imgs/buildPlatform2.png)

Also applies to: 13-13

docs/getting-started/快速上手.md (4)

1-6: LGTM! Clear and well-structured introduction.

The introduction effectively explains the purpose of the tutorial and sets clear expectations for the reader.


45-46: LGTM! Appropriate conclusion.

The congratulatory message provides a good ending to the tutorial.


14-43: Verify all tutorial images

Let's verify the existence of all referenced images in the step-by-step instructions.

✅ Verification successful

All tutorial images are present and correctly referenced

All images referenced in the tutorial are found in the expected location at docs/getting-started/imgs/. The relative paths in the markdown file correctly point to these images.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all referenced tutorial images exist
# Note: Adjusting paths to be relative to repo root since the file is in docs/getting-started/

# List of images to check
IMAGES=(
    "page1.png"
    "addComponent.png"
    "addState.png"
    "imgswitch.png"
    "setImgSrc.png"
    "setImgSty.png"
    "setImgSta.png"
    "bangEnv.png"
    "preImgChange.png"
)

echo "Checking for required images..."
for img in "${IMAGES[@]}"; do
    echo "Looking for: $img"
    fd --type f "$img" docs/
done

Length of output: 1707


8-10: Verify image accessibility

The PR objectives mention issues with missing images. Let's verify if this image exists in the repository.

✅ Verification successful

Image exists and is accessible

The image showImg.png exists at the correct path docs/getting-started/imgs/showImg.png and has a file size of 779243 bytes, indicating it's a valid image file. The relative path in the markdown file is correct and the image should be properly displayed.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if the referenced image exists
# Note: Adjusting path to be relative to repo root since the file is in docs/getting-started/

# Check if the image exists
fd --type f "showImg.png" docs/

# List all available images in the docs directory for reference
echo "Available images in docs directory:"
fd --type f --extension png docs/

Length of output: 512


Script:

#!/bin/bash
# Let's verify the image existence with a corrected command
fd --type f . docs/ --extension png

# Also check if the specific image exists and is not empty
if [ -f "docs/getting-started/imgs/showImg.png" ]; then
    ls -l "docs/getting-started/imgs/showImg.png"
else
    echo "Image file does not exist at the expected path"
fi

Length of output: 9243

docs/development-getting-started/快速上手.md (1)

40-40: Verify image accessibility and paths

Please verify that all image files exist in the correct paths:

  • ./imgs/tiny-engine-cli.png
  • ./imgs/tiny-engine-cli-open.png
  • ./imgs/cli-create-plugin.png
  • ./imgs/cli-plugin-open.png

Also applies to: 56-56, 70-70, 104-104, 157-157

✅ Verification successful

All referenced images are present and accessible

All image files mentioned in the markdown document are correctly located in the docs/development-getting-started/imgs/ directory:

  • tiny-engine-cli.png
  • tiny-engine-cli-open.png
  • cli-create-plugin.png
  • cli-plugin-open.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if the referenced image files exist

# Find the docs directory
docs_dir=$(fd -t d "docs$")

# Check each image file
for img in tiny-engine-cli.png tiny-engine-cli-open.png cli-create-plugin.png cli-plugin-open.png; do
  echo "Checking for $img..."
  fd -t f "$img" "$docs_dir/imgs"
done

Length of output: 1814


Script:

#!/bin/bash
# Let's try a different approach to find the images
# First, let's check if the imgs directory exists relative to the markdown file
ls -la docs/development-getting-started/imgs/

# Also, let's search for these images anywhere in the repository
echo "Searching for images anywhere in the repository:"
fd -t f "tiny-engine-cli.png|tiny-engine-cli-open.png|cli-create-plugin.png|cli-plugin-open.png"

Length of output: 900

docs/extension-capabilities-tutorial/开发设置器组件.md (1)

7-7: Verify image accessibility and paths

The documentation references two images using relative paths:

  • ./imgs/input-configurator.png
  • ./imgs/my-input-configurator.gif

Please ensure these images are:

  1. Committed to the repository
  2. Located in the correct relative path
  3. Accessible and properly displayed

Also applies to: 144-144

✅ Verification successful

Image paths are correctly configured and accessible

Both referenced images are present in the expected location:

  • docs/extension-capabilities-tutorial/imgs/input-configurator.png
  • docs/extension-capabilities-tutorial/imgs/my-input-configurator.gif
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist in the expected location
fd -t f "input-configurator.png|my-input-configurator.gif" docs/extension-capabilities-tutorial/imgs/

Length of output: 236

docs/practical-cases/图元编排设计器.md (1)

5-5: Verify image accessibility and fix broken references

The document contains multiple image references that might be inaccessible. Please ensure:

  1. All images are properly uploaded to the ./imgs/ directory
  2. Image paths are correctly specified
  3. Images are accessible in the rendered documentation

Also applies to: 36-36, 62-62, 123-123

✅ Verification successful

All referenced images are present and accessible

The verification shows that all the referenced images exist in the correct location:

  • image-20230919202709-5khs9h1.png
  • image-20230920083516-hg4vhhs.png
  • image-20230920084925-yirmz91.png
  • image-20230920093120-jdzux3h.png

The images are properly placed in the docs/practical-cases/imgs/ directory and the relative paths in the markdown file are correct.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if referenced images exist
for img in \
  "imgs/image-20230919202709-5khs9h1.png" \
  "imgs/image-20230920083516-hg4vhhs.png" \
  "imgs/image-20230920084925-yirmz91.png" \
  "imgs/image-20230920093120-jdzux3h.png"; do
  if [ ! -f "docs/practical-cases/$img" ]; then
    echo "Missing image: $img"
  fi
done

Length of output: 995


Script:

#!/bin/bash
# Let's check if the imgs directory exists and list its contents
if [ -d "docs/practical-cases/imgs" ]; then
  echo "Directory exists. Contents:"
  ls -la docs/practical-cases/imgs/
else
  echo "Directory 'docs/practical-cases/imgs' does not exist"
fi

# Also check if images exist in any other common documentation image directories
echo -e "\nChecking other possible image locations:"
fd -t f -e png . docs/practical-cases/ --exec ls -la {}

Length of output: 2393

docs/advanced-features/如何使用插槽.md (3)

99-99: ⚠️ Potential issue

Fix broken image link

The image link ./imgs/usingslot.gif appears to be broken. Please ensure the image is properly uploaded and the path is correct.

✅ Verification successful

Image link is correctly referenced

The image file usingslot.gif exists at the expected location docs/advanced-features/imgs/usingslot.gif, which matches the relative path used in the markdown file. The image reference is working correctly.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists
fd -e gif "usingslot.gif" docs/advanced-features/imgs/

Length of output: 96


45-45: ⚠️ Potential issue

Fix broken image link

The image link ./imgs/defineslot.gif appears to be broken. According to the PR objectives, there are issues with missing images linked to not-found and public_sys-resources. Please ensure the image is properly uploaded and the path is correct.

✅ Verification successful

Image link is correctly referenced

The image file defineslot.gif exists at the expected path docs/advanced-features/imgs/defineslot.gif, and the relative path ./imgs/defineslot.gif in the documentation correctly references this location.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists
fd -e gif "defineslot.gif" docs/advanced-features/imgs/

Length of output: 98


1-165: Verify documentation against implementation

The documentation provides a comprehensive guide for slot usage, but we should verify that it accurately reflects the current TinyEngine implementation.

✅ Verification successful

Documentation accurately reflects implementation

The documentation is verified to be consistent with the actual TinyEngine implementation based on the following evidence:

  1. The builtin.json confirms the Slot component implementation with matching properties:

    • name property for slot naming
    • params property for scoped slot parameters
  2. The implementation exists across multiple components:

    • Core slot component: packages/canvas/render/src/builtin/CanvasSlot.vue
    • Slot configuration: packages/configurator/src/slot-configurator/SlotConfigurator.vue
    • JS slot handling: packages/configurator/src/js-slot-configurator/JsSlotConfigurator.vue
  3. The schema structure in builtin.json matches the documented JSON examples, including:

    • Component name as "Slot"
    • Properties for slot name and parameters
    • Container configuration
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for slot-related implementations in the codebase
echo "Searching for slot implementations..."
rg -l "componentName.*['\"]Slot['\"]" --type json

echo "Searching for slot-related tests..."
rg -l "slot.*test" --type spec

Length of output: 451


Script:

#!/bin/bash
# Let's examine the slot implementation in the builtin.json
echo "Checking builtin.json for slot implementation:"
cat packages/canvas/render/src/builtin/builtin.json

echo -e "\nSearching for slot-related code in Vue components:"
rg -g '*.vue' -l 'slot'

echo -e "\nSearching for slot-related schema definitions:"
rg -g '*.{json,js,ts}' -l '"slots".*:.*{' 

echo -e "\nSearching for slot-related documentation in other languages:"
fd -e md . | xargs rg -l "slot"

Length of output: 19020

docs/getting-started/简介.md (1)

15-16: Verify image availability and consider adding alt text descriptions.

The PR objectives mention issues with missing images. Please ensure:

  1. The referenced images exist in the correct path (./imgs/tinyengine.png and ./imgs/firstPage.png)
  2. Add meaningful alt text descriptions for accessibility

Also applies to: 19-20

✅ Verification successful

Alt text descriptions recommended for better accessibility

The referenced images (tinyengine.png and firstPage.png) exist in the correct path. However, consider adding meaningful alt text descriptions to improve accessibility:

![基于低代码引擎的应用开发流程 (Low-code engine based application development process)](./imgs/tinyengine.png)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
fd -e png -p "docs/getting-started/imgs/(tinyengine|firstPage).png"

Length of output: 150

docs/basic-features/使用组件.md (5)

1-8: LGTM! Clear and well-structured overview.

The introduction effectively explains components as building blocks in the low-code development context.


11-16: Verify image references and paths

The section references several images. Let's verify their existence and correct paths.

✅ Verification successful

All referenced images exist in the correct location

All image references in the documentation are valid and the files exist at the expected paths:

  • ./imgs/icon-add.png
  • ./imgs/dragComponent.gif
  • ./imgs/addComponent-13.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced images exist in the correct location

# Get the directory of the current markdown file
DOC_DIR=$(dirname "docs/basic-features/使用组件.md")

# Check for referenced images
for img in "icon-add.png" "dragComponent.gif" "addComponent-13.png"; do
  if [ -f "${DOC_DIR}/imgs/${img}" ]; then
    echo "✓ Found: ${img}"
  else
    echo "✗ Missing: ${img}"
  fi
done

Length of output: 673


36-59: Well-structured content, verify image references

The content is well-organized with clear steps and good use of bullet points. Let's verify the referenced images.

✅ Verification successful

Let me try another verification with the correct fd syntax to check for these images:


All image references are valid and correctly placed

The content is well-structured and all referenced images (choseClickCompontes.png, clickNode.png, choseComponentID.png, and selectParentID.png) exist in the correct location at docs/basic-features/imgs/.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if component selection images exist

# Check for referenced images
for img in "choseClickCompontes.png" "clickNode.png" "choseComponentID.png" "selectParentID.png"; do
  if fd -p "**/${img}" .; then
    echo "✓ Found: ${img}"
  else
    echo "✗ Missing: ${img}"
  fi
done

Length of output: 2019


Script:

#!/bin/bash
# Description: Check if component selection images exist with correct fd syntax

# Check for referenced images
for img in "choseClickCompontes.png" "clickNode.png" "choseComponentID.png" "selectParentID.png"; do
  if fd --glob "**/$img" .; then
    echo "✓ Found: $img"
  else
    echo "✗ Missing: $img"
  fi
done

Length of output: 999


25-34: Verify referenced figures and their content

Let's verify the existence and content of the referenced images.

✅ Verification successful

Let me try another verification with the correct fd syntax to check for these images:


All referenced images are present and correctly located

All three images referenced in the documentation (insertComponent.gif, inserPosition.png, and choseComponent.png) exist in the correct location at docs/basic-features/imgs/. The file sizes indicate they contain actual content:

  • insertComponent.gif (2.8MB)
  • inserPosition.png (77KB)
  • choseComponent.png (30KB)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced figures exist

# Check for referenced images
for img in "insertComponent.gif" "inserPosition.png" "choseComponent.png"; do
  if fd -p "**/${img}" .; then
    echo "✓ Found: ${img}"
  else
    echo "✗ Missing: ${img}"
  fi
done

Length of output: 1439


Script:

#!/bin/bash
# Description: Check if referenced figures exist with correct fd syntax

# Check for referenced images in docs/basic-features/imgs directory
fd -g "insertComponent.gif" docs/basic-features/imgs
fd -g "inserPosition.png" docs/basic-features/imgs
fd -g "choseComponent.png" docs/basic-features/imgs

# Also check if the imgs directory exists
if [ -d "docs/basic-features/imgs" ]; then
    echo "✓ imgs directory exists"
else
    echo "✗ imgs directory does not exist"
fi

# List contents of imgs directory if it exists
if [ -d "docs/basic-features/imgs" ]; then
    echo -e "\nContents of imgs directory:"
    ls -la docs/basic-features/imgs/
fi

Length of output: 5693


60-72: Consider adding a conclusion section

While the content effectively explains component editing capabilities, consider adding a brief conclusion section to summarize the key points covered in the document.

Let's also verify the referenced images:

docs/basic-features/使用状态管理和变量绑定.md (1)

7-7: Verify image references and consider adding alt text descriptions

The document references three images:

  • ./imgs/state1.gif
  • ./imgs/state2.gif
  • ./imgs/state3.png

Consider adding more descriptive alt text to improve accessibility.

Also applies to: 13-13, 19-19

✅ Verification successful

Image files are present and correctly referenced

All three referenced images exist in the expected location:

  • ./docs/basic-features/imgs/state1.gif
  • ./docs/basic-features/imgs/state2.gif
  • ./docs/basic-features/imgs/state3.png

The relative paths in the documentation are correct and the files are accessible. However, the suggestion to add descriptive alt text for better accessibility remains valid.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify image files exist in the correct location
fd -e gif -e png . -x ls -l {} \; | grep -E "state[1-3]\.(gif|png)"

Length of output: 338

docs/advanced-features/数据源和Collection—使用数据源.md (1)

59-70: LGTM! Well-structured code example with proper error handling.

The code example demonstrates good practices:

  • Uses async/await pattern
  • Includes error handling with try-catch
  • Provides user feedback through toast notifications
docs/index.md (1)

1-104: Consider reordering the sections for better user flow.

As suggested in the previous review, consider moving "网站文档" after "平台开发指南" to create a more natural progression from basic usage to advanced development topics.

docs/catalog.json (1)

1-199: Verify the existence of all referenced markdown files.

Let's verify that all markdown files referenced in the catalog exist in the repository.

✅ Verification successful

All markdown files referenced in catalog.json are missing

The verification reveals that none of the markdown files referenced in catalog.json exist in the docs directory. This suggests that either:

  1. The documentation files have not been added to the repository yet
  2. The files exist in a different location than expected
  3. The catalog.json is a template or placeholder for future documentation

Let's verify if the docs directory exists and check its contents:


All referenced markdown files exist in their respective subdirectories

The initial verification script was incorrect as it was looking for files directly in the docs directory. The directory listing shows that all markdown files exist but are organized in subdirectories matching the structure defined in catalog.json. For example:

  • "简介.md" exists at "docs/getting-started/简介.md"
  • "快速上手.md" exists at "docs/getting-started/快速上手.md"
  • "API总览.md" exists at "docs/API/API总览.md"

Let's verify this by checking a few specific files:


The catalog.json file correctly maps to existing documentation structure

The verification confirms that all markdown files referenced in catalog.json exist in their proper subdirectories. The initial concern was incorrect because:

  1. The files are organized in subdirectories matching the catalog structure
  2. Sample verification of files from different sections all returned positive results
  3. The directory listing shows a complete documentation structure with all referenced files present
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all markdown files referenced in catalog.json exist

# Extract all markdown file paths from catalog.json
echo "Checking for missing markdown files..."
jq -r '.. | .path? | select(. != null) | select(endswith(".md"))' docs/catalog.json | while read -r file; do
  if [ ! -f "docs/$file" ]; then
    echo "Missing file: docs/$file"
  fi
done

Length of output: 14666


Script:

#!/bin/bash
# Check if docs directory exists and list its contents
if [ -d "docs" ]; then
  echo "Contents of docs directory:"
  ls -R docs/
else
  echo "docs directory does not exist"
fi

Length of output: 6295


Script:

#!/bin/bash
# Verify existence of a sample of files from different sections
echo "Verifying sample files..."
files=(
  "docs/getting-started/简介.md"
  "docs/basic-features/初识设计器.md"
  "docs/advanced-features/区块管理.md"
  "docs/API/API总览.md"
  "docs/solutions/服务端部署方案.md"
)

for file in "${files[@]}"; do
  if [ -f "$file" ]; then
    echo "✓ Found: $file"
  else
    echo "✗ Missing: $file"
  fi
done

Length of output: 1179

docs/about-applications/开发应用.md (1)

7-7: Verify the existence of referenced images.

Let's verify that the referenced images exist in the correct location.

Also applies to: 11-11

✅ Verification successful

Image references are correctly configured

The referenced images appDevOne.png and appDevTwo.png exist in the correct location at docs/about-applications/imgs/. The relative path ./imgs/appDevOne.png in the markdown file is valid since the images are properly placed in the imgs subdirectory relative to the markdown file's location.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if referenced images exist

# Check for image files
for img in "docs/about-applications/imgs/appDevOne.png" "docs/about-applications/imgs/appDevTwo.png"; do
  if [ ! -f "$img" ]; then
    echo "Missing image: $img"
  fi
done

Length of output: 325


Script:

#!/bin/bash
# Let's try a different approach using fd to find image files
fd -e png -p 'appDevOne.png|appDevTwo.png' docs/about-applications

# Also check the directory structure
ls -la docs/about-applications/imgs 2>/dev/null || echo "imgs directory not found"

# Check if the parent directory exists
ls -la docs/about-applications 2>/dev/null || echo "about-applications directory not found"

Length of output: 903

docs/extension-capabilities-tutorial/code-output-function/自定义页面出码插件.md (1)

55-55: Verify the image path and ensure it exists in the repository

The image reference ./imgs/pageGenerate.png might lead to broken documentation if the image is not properly maintained.

✅ Verification successful

Image path is correctly referenced and exists in the repository

The image file pageGenerate.png exists at the expected location docs/extension-capabilities-tutorial/code-output-function/imgs/pageGenerate.png, which matches the relative path used in the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists in the repository
fd --type f "pageGenerate.png" docs/extension-capabilities-tutorial/code-output-function/imgs/

Length of output: 174

docs/extension-capabilities-overview/元服务和元应用.md (1)

43-54: Document the required structure of metaData

The example shows importing metaData but doesn't explain its required structure. This is crucial for developers implementing custom meta-applications.

Let's check if the metaData structure is documented elsewhere:

Would you like me to help create documentation for the metaData structure?

✅ Verification successful

The previous search was too specific. Let's broaden our search to find any relevant documentation about meta applications and their configuration structure.


Let's try to find the metadata structure by looking for meta.js files and metadata examples in the codebase.


We found several meta.js files. Let's examine their contents to understand the metadata structure.


Required metaData structure found

Based on the examined meta.js files, the metaData structure should include these key properties:

// meta.js
export default {
  id: string,       // Unique identifier for the meta application
  title: string,    // Display title
  type: string,     // Type of the meta application (e.g. 'plugins')
  icon?: string,    // Optional icon identifier
  align?: string    // Optional alignment property
}

This structure is consistently used across multiple meta.js files in the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for metaData structure documentation
rg -l "metaData.*structure" docs/

Length of output: 35


Script:

#!/bin/bash
# Let's try different search patterns to find metadata documentation
rg -i "meta.*data" docs/ -A 5 -B 5

# Also search for any examples or documentation of meta applications
rg -i "meta.*application" docs/ -A 5 -B 5

# Search for any configuration or structure definitions
fd -e md -e js . docs/ --exec grep -l "export.*meta"

Length of output: 128797


Script:

#!/bin/bash
# Let's search for meta.js files that might contain the metadata structure
fd -e js meta.js

# Search for metadata structure in any JavaScript files
rg -i "meta.*=.*{" -A 10

# Look for metadata examples in documentation
rg -i "meta.*example" -A 10 docs/

Length of output: 1661


Script:

#!/bin/bash
# Let's examine one of the meta.js files to understand the structure
cat packages/plugins/materials/meta.js

# Also check a few other meta.js files to confirm the pattern
cat packages/plugins/page/meta.js
cat packages/plugins/state/meta.js

# Look for any documentation about meta applications
rg -i "meta.*application.*structure" docs/ -A 5

Length of output: 555

docs/extension-capabilities-overview/注册表.md (1)

108-123: Document configuration merging behavior

The example shows how to override configurations but doesn't explain:

  1. Deep vs shallow merging behavior
  2. Array concatenation vs replacement
  3. Priority rules when conflicts occur

Let's check if merging behavior is documented elsewhere:

Would you like me to help create documentation for the configuration merging rules?

docs/API/backend-api/应用工具类管理.md Outdated Show resolved Hide resolved
docs/practical-cases/PDM元数据审批电子流.md Outdated Show resolved Hide resolved
docs/practical-cases/PDM元数据审批电子流.md Outdated Show resolved Hide resolved
docs/practical-cases/PDM元数据审批电子流.md Outdated Show resolved Hide resolved
docs/practical-cases/SMB轻量应用服务.md Outdated Show resolved Hide resolved
docs/extension-capabilities-tutorial/如何开发插件.md Outdated Show resolved Hide resolved
docs/extension-capabilities-overview/注册表.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Nitpick comments (19)
docs/api/物料API.md (2)

4-23: Enhance code block readability with language specifier

The code block should specify the language for proper syntax highlighting.

-```
+```javascript
 export default {
   id: 'engine.plugins.materials',
   // ...
 }

16-16: Add documentation for basePropertyOptions

The basePropertyOptions configuration is referenced but not explained. Consider adding a description of its purpose and available options.

docs/api/画布API.md (2)

7-23: Improve code block formatting and documentation

The statePageState object documentation needs improvements:

  1. Add language specifier to the code block
  2. Document the hidden property currentPage properly instead of commenting it inline
-```
+```javascript
 {
   currentVm: null,
   // ... other properties
-//隐藏属性  currenetPage
 }

Add a proper description for the hidden property:

Note: The object also contains a hidden property `currentPage` that [describe its purpose].
🧰 Tools
🪛 Markdownlint (0.37.0)

7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


75-75: Fix typo in method documentation

The line contains a duplicate comma and an incomplete sentence.

-   setState,,// 转接的方法, 调用render的setState
+   setState, // 转接的方法, 调用render的setState

Also applies to: 76-76

docs/api/主包API.md (2)

10-54: Organize exports by category for better readability

The exports section would be more maintainable if organized by categories (e.g., toolbar components, plugins, services).

Consider restructuring the exports section like this:

// Toolbar Components
export { default as Breadcrumb, BreadcrumbService } from '@opentiny/tiny-engine-toolbar-breadcrumb'
// ... other toolbar exports

// Core Plugins
export { default as Materials, ResourceService, MaterialService } from '@opentiny/tiny-engine-plugin-materials'
// ... other plugin exports

// Services
export { GenerateCodeService, PluginPanel, /* ... */ } from '@opentiny/tiny-engine-common'
// ... other service exports

168-181: Add return type documentation for getMergeMeta and getMergeRegistry

The documentation should specify the return types and possible error cases for these functions.

Add type information like this:

/**
 * @param {string} metaId - The ID of the meta application/service
 * @returns {Object} The meta registration object
 * @throws {Error} When meta ID is not found
 */
getMergeMeta('engine.config')
docs/api/backend-api/应用工具类管理.md (1)

26-33: Convert HTML tables to native Markdown format

The documentation uses HTML tables with complex styling classes. This makes the documentation harder to maintain and less portable. Native Markdown tables are more readable in source form and widely supported.

Example conversion for the first table:

-<table>
-  <thead class="ant-table-thead">
-    <tr>
-      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
-    </tr>
-  </thead>
-  ...
-</table>

+| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
+|------|------|----------|--------|------|----------|
+| ... | ... | ... | ... | ... | ... |

Also applies to: 71-78, 119-126, 153-160

docs/api/backend-api/数据源管理.md (3)

13-14: Add detailed API descriptions.

Several API endpoints lack proper descriptions. Consider adding:

  • Purpose and use cases
  • Example requests and responses
  • Any limitations or constraints
  • Rate limiting information if applicable

This will help developers better understand how to use these APIs effectively.

Also applies to: 64-65, 109-110, 142-143, 175-176, 208-211, 245-246


252-254: Add field descriptions and validation rules.

The path parameter documentation lacks proper descriptions and validation rules. For example, the id parameter should include:

  • Valid value ranges
  • Format requirements
  • Example values

1-266: Standardize API response structure and documentation language.

Consider the following improvements for consistency:

  1. Standardize response structure across all endpoints
  2. Choose a single language (Chinese or English) for documentation
  3. Use consistent terminology throughout the document
  4. Add a standard error response section for each endpoint

This will make the API documentation more professional and easier to maintain.

🧰 Tools
🪛 Markdownlint (0.37.0)

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/设置面板API.md (4)

1-1: Improve document formatting and language.

  1. Replace hard tabs with spaces for better compatibility across different editors.
  2. Simplify the Chinese text in line 5 from "来自于" to "来自" for better clarity.

Also applies to: 5-5

🧰 Tools
🪛 Markdownlint (0.37.0)

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)


38-53: Enhance code example with TypeScript types and additional examples.

The configuration object structure could be more helpful with:

  1. TypeScript type annotations for better type safety
  2. A complete example showing actual values

Consider adding this example:

interface VariableConfigurator {
  id: string;
  content: string;
  getVariables: () => {
    bindPrefix: string;
    variables: Record<string, any>;
  };
  getVariablesAsync?: () => Promise<{
    bindPrefix: string;
    variables: Record<string, any>;
  }>;
  condition?: () => boolean;
  postConfirm?: (context: any) => void;
  _order: number;
}

// Example implementation
const configurator: VariableConfigurator = {
  id: 'dataSource',
  content: '数据源变量',
  getVariables: () => ({
    bindPrefix: 'ds',
    variables: {
      tableData: [],
      loading: false
    }
  }),
  _order: 1
};

78-87: Enhance event binding example with more details.

The current example shows adding onKeyDown but could be more helpful with a complete event configuration.

Consider expanding the example:

{
  options: {
    commonEvents: {
      ...commonEvents,
      onKeyDown: {
        name: '按键按下',
        description: '当按下键盘按键时触发',
        parameters: [{
          name: 'event',
          type: 'KeyboardEvent',
          description: '键盘事件对象'
        }],
        return: {
          type: 'void',
          description: '无返回值'
        }
      }
    }
  }
}

103-106: Expand the default method list example with realistic use cases.

The current example is too brief. Consider providing a more detailed example showing actual default methods.

const defaultMethodList = [
  {
    name: 'showMessage',
    description: '显示消息提示',
    parameters: [{ name: 'message', type: 'string' }]
  },
  {
    name: 'refreshData',
    description: '刷新数据',
    parameters: []
  }
];

// 合并默认方法和自定义方法
filteredMethodList.value = [newMethod, ...defaultMethodList, ...methodList];
docs/api/backend-api/DSL代码生成.md (2)

26-88: Standardize code block formatting

The documentation uses HTML tags for code blocks instead of markdown syntax. This makes it harder to maintain and less consistent with markdown standards.

Convert HTML code blocks to markdown syntax using triple backticks with language specification. For example:

- <pre><code data-language="js" class="lang-js">
+ ```javascript
  // code here
- </code></pre>
+ ```
🧰 Tools
🪛 LanguageTool

[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]

输出示例:

<cod...

(UNLIKELY_OPENING_PUNCTUATION)


96-103: Convert HTML tables to markdown format

The documentation uses HTML tables which are harder to maintain in markdown files.

Convert to markdown table format for better maintainability. For example:

| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
|------|------|----------|--------|------|----------|
| panelName | string | 必须 | | 文件名 | |
...
docs/api/backend-api/APP服务.md (2)

21-23: Enhance Content-Type header documentation

The Content-Type header documentation could be more informative by explaining the implications of the application/json requirement.

Add a note explaining that this header indicates the request body must be a valid JSON string and the server will parse it accordingly.


68-71: Improve framework parameter documentation

The framework parameter examples could be more comprehensive to show all supported frameworks.

Add a complete list of supported frameworks in the remarks column. For example:

| framework || Angular | 支持的框架: Angular, Vue, React |
docs/api/backend-api/AI功能接口.md (1)

21-21: Use proper Markdown headings instead of bold text

The document uses bold text for section headers. Convert these to proper Markdown headings for better structure and consistency.

Replace with:

-**Headers**
+### Headers

-**Body**
+### Body

Also applies to: 27-27

🧰 Tools
🪛 Markdownlint (0.37.0)

21-21: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 93f60bb and 32d13cb.

⛔ Files ignored due to path filters (1)
  • docs/api/imgs/bindEventApi.png is excluded by !**/*.png
📒 Files selected for processing (11)
  • docs/api/API总览.md (1 hunks)
  • docs/api/backend-api/AI功能接口.md (1 hunks)
  • docs/api/backend-api/APP服务.md (1 hunks)
  • docs/api/backend-api/DSL代码生成.md (1 hunks)
  • docs/api/backend-api/应用工具类管理.md (1 hunks)
  • docs/api/backend-api/数据源管理.md (1 hunks)
  • docs/api/主包API.md (1 hunks)
  • docs/api/全局布局API.md (1 hunks)
  • docs/api/物料API.md (1 hunks)
  • docs/api/画布API.md (1 hunks)
  • docs/api/设置面板API.md (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • docs/api/API总览.md
  • docs/api/全局布局API.md
🧰 Additional context used
🪛 LanguageTool
docs/api/backend-api/DSL代码生成.md

[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]

输出示例:

<cod...

(UNLIKELY_OPENING_PUNCTUATION)

docs/api/设置面板API.md

[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...

(wb2)

docs/api/backend-api/APP服务.md

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 获取页面/区块源码 ### 基本信息 Path:...

(EN_A_VS_AN)


[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 页面/区块预览用元数据 ### 基本信息 **Path:...

(EN_A_VS_AN)

🪛 Markdownlint (0.37.0)
docs/api/设置面板API.md

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)

docs/api/backend-api/应用工具类管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


63-63: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


110-110: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


144-144: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/backend-api/AI功能接口.md

21-21: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


27-27: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/backend-api/APP服务.md

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/backend-api/数据源管理.md

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/画布API.md

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


25-25: null
Spaces inside code span elements

(MD038, no-space-in-code)


7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


28-28: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


60-60: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)


142-142: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
docs/api/backend-api/APP服务.md (1)

83-117: LGTM! Comprehensive API documentation

The preview metadata API documentation is well-structured with clear parameter descriptions and detailed response format.

🧰 Tools
🪛 LanguageTool

[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... ## 页面/区块预览用元数据 ### 基本信息 **Path:...

(EN_A_VS_AN)

🪛 Markdownlint (0.37.0)

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)


98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

docs/api/backend-api/应用工具类管理.md Outdated Show resolved Hide resolved
docs/api/backend-api/应用工具类管理.md Outdated Show resolved Hide resolved
docs/api/backend-api/应用工具类管理.md Outdated Show resolved Hide resolved
docs/api/backend-api/数据源管理.md Outdated Show resolved Hide resolved
docs/api/backend-api/数据源管理.md Outdated Show resolved Hide resolved
docs/api/backend-api/DSL代码生成.md Outdated Show resolved Hide resolved
docs/api/backend-api/DSL代码生成.md Outdated Show resolved Hide resolved
docs/api/backend-api/AI功能接口.md Outdated Show resolved Hide resolved
docs/api/backend-api/AI功能接口.md Outdated Show resolved Hide resolved
docs/api/backend-api/AI功能接口.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 15

🔭 Outside diff range comments (1)
docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md (1)

Line range hint 284-284: Fix typo in function name.

There's a typo in the function name insertNodde.

-insertNodde(...参数)
+insertNode(...参数)
🧹 Nitpick comments (102)
docs/generateCatalogMd.js (1)

1-2: Consider adding error handling for catalog.json.
If catalog.json is missing or malformed, the script may fail unexpectedly. A try/catch around the require call or a file existence check would make this more robust.

docs/ecosystem-center/publish-other-ecosystems.md (2)

1-1: Remove leading space in heading.
Markdown heading (line 1) should start at the left margin to satisfy lint rules (MD023).

- ## 如何发布其他生态
+## 如何发布其他生态
🧰 Tools
🪛 Markdownlint (0.37.0)

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)


7-8: Improve phrasing for passive voice usage.
The sentence "被标识为官方的插件会显示…” could be rewritten for clarity based on standard Chinese grammar.

- 被标识为官方的插件会显示“官方”字样
+ 如果插件被标记为官方,则会在插件名称旁显示“官方”字样
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...

(wa3)


[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

docs/about-materials/create-material-asset-package.md (1)

5-8: Enhance readability with better formatting

Consider improving the document structure:

  1. The steps could be more clearly formatted as a numbered list
  2. The technology stack limitations could be in a separate "Limitations" section

Consider this structure:

-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。*
-当前支持Vue和Angular两种技术栈,用户可以任意选择。当用户选择了Vue技术栈时,则只能添加Vue的组件与区块,不能添加Angular的组件库与区块。
+用户可以在生态中心创建物料资产包,步骤如下:
+
+1. 新建物料资产包
+2. 填写必要的字段
+3. 保存
+
+### 技术栈限制
+
+当前支持Vue和Angular两种技术栈,用户可以任意选择。注意:
+- 选择Vue技术栈时,只能添加Vue的组件与区块
+- 不能添加Angular的组件库与区块
🧰 Tools
🪛 LanguageTool

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 构建物料资产包...

(wa5)

docs/ecosystem-center/introduction.md (1)

7-10: Consider adding more technical details

The overview provides a good high-level explanation, but consider:

  1. Adding examples or links for each type of component
  2. Providing more details about DSL capabilities
  3. Including links to related documentation sections

Example enhancement:

物料是可视化页面搭建的原料:
- 组件:基础UI元素,如按钮、输入框等
- 区块:预制的功能块,如页头、导航栏等
- 物料包:组件与区块的集合,便于统一管理和使用

DSL(领域特定语言)功能:
- 支持将页面设计转换为源代码
- 提供自定义代码生成规则
- 支持多种框架的代码生成
docs/basic-features/state-management-and-variable-binding.md (2)

17-17: Enhance code example explanation

The explanation of accessing state via this.state.xxx could be improved with a more complete example.

Consider adding a concrete example:

我们添加的 state 通常是一个可以随不同状态有不同值的变量。在 JS 面板中可以通过以下方式访问和修改 state:

```javascript
// 获取 state
const currentValue = this.state.counter;

// 修改 state
this.state.counter = newValue;

这样可以动态改变组件的状态,实现交互效果。


---

`3-4`: **Add more context about state management**

Consider adding a brief introduction about reactive data and its importance in modern web applications.


Example addition:
```markdown
state 是响应式的数据,它能够自动追踪数据变化并更新相关的UI组件。状态管理面板提供了集中式的方式来管理这些响应式变量,使得数据流更加清晰和可维护。

主要功能包括:
- 添加新的状态变量
- 删除不需要的状态
- 搜索现有状态
- 编辑状态值和配置
docs/basic-features/page-and-block-preview.md (2)

5-5: Improve Chinese grammar.

Based on Chinese grammar rules:

  1. Change "的表现" to "地表现" as it modifies a verb
  2. Change "很是困难" to "很困难" for better expression
-在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的**页面/区块预览**能力来为开发提供帮助
+在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终地表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很困难,这时候就需要设计器的**页面/区块预览**能力来为开发提供帮助
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)


9-9: Improve image alt text.

Replace generic "Alt text" with descriptive alt text that explains what each image shows.

-![Alt text](./imgs/preview-btn.png)
+![预览按钮位置](./imgs/preview-btn.png)

-![Alt text](./imgs/preview-pre.png)
+![画布页面结构示例](./imgs/preview-pre.png)

-![Alt text](./imgs/preview.png)
+![预览页面效果示例](./imgs/preview.png)

Also applies to: 15-15, 19-19

docs/api/api-overview.md (2)

7-11: Consider adding brief descriptions for each API type.

The list of TinyEngine capability APIs would be more helpful with a one-line description for each API type explaining its purpose.

Example format:

- 主包API - Core package APIs for fundamental TinyEngine operations
- 画布API - Canvas manipulation and rendering capabilities

16-26: Add links to detailed API documentation.

Consider adding links to the detailed documentation for each API category to help users navigate to specific API details.

Example format:

- [AI功能接口](./backend-api/ai-function-api.md) - AI functionality interfaces
- [应用管理](./backend-api/app-management.md) - Application management
docs/advanced-features/data-source-and-collection-remote-fields.md (1)

19-26: Enhance the callback function example.

The code example would benefit from:

  1. More detailed comments explaining the data structure
  2. Error handling examples
  3. TypeScript type definitions

Example enhancement:

/**
 * Handles the response data from the remote API
 * @param {Array<{aa: {ss: string}, status: string}>} data - The raw response data
 * @returns {Array<{name: string, status: string}>} - Transformed data
 */
function dataHandler(data) {
  try {
    return data.map(v => ({
      name: v.aa?.ss,  // Using optional chaining
      status: v.status
    }));
  } catch (error) {
    console.error('Failed to process data:', error);
    return [];
  }
}
docs/advanced-features/integrating-chatgpt-for-simple-pages.md (2)

4-5: Enhance the plugin description and prerequisites.

Consider adding:

  1. Prerequisites for using the AI plugin
  2. Security considerations when using AI-generated code
  3. Version compatibility information

Example addition:

使用AI插件前,请确保:
- 设计器版本 >= X.Y.Z
- 已配置必要的API密钥
- 了解AI生成代码的安全注意事项

16-17: Expand on block usage capabilities.

The special note about using predefined blocks could benefit from:

  1. Examples of block usage commands
  2. List of available blocks
  3. Limitations or constraints

Example addition:

**特别提示**:我们可以让AI直接使用预置的区块

示例命令:
- "使用登录区块创建一个登录页面"
- "添加一个数据表格区块"

可用区块列表:
- 登录区块
- 表格区块
- ...
docs/basic-features/inline-style-variable-binding.md (1)

11-16: Improve image references and icon handling

The inline icon reference could be improved for better maintainability.

Consider moving the icon reference to a dedicated icons section or using a consistent approach for all images:

-3. 单击行内样式的编辑框后的![变量绑定图标](./imgs/icon-code.png)。
+3. 单击行内样式的编辑框后的变量绑定图标 <img src="./imgs/icon-code.png" alt="变量绑定图标" style="vertical-align: middle">。
docs/about-designer/customize-material-package-themes-dsl-toolbar-plugins.md (1)

5-5: Fix Markdown formatting for emphasized text

The text uses incorrect Markdown syntax for emphasis.

-设计器创建完成后会自动打开编辑页面,用户可以在这里定制设计器的*物料资产包*、*主题*、*工具*、*插件*和*DSL*,如下图:
+设计器创建完成后会自动打开编辑页面,用户可以在这里定制设计器的**物料资产包**、**主题**、**工具**、**插件**和**DSL**,如下图:
docs/advanced-features/conditional-rendering.md (1)

27-29: Fix typo in "ture"

There's a typo in the text and image filename - "ture" should be "true".

-   **图 4**  state.isLogin为ture时
-   ![state-isLogin为ture时.png](./imgs/state-isLogin为ture时.png)
+   **图 4**  state.isLogin为true时
+   ![state-isLogin为true时.png](./imgs/state-isLogin为true时.png)
docs/extension-capabilities-overview/new-architecture.md (2)

6-6: Improve grammar in Chinese text

As suggested by LanguageTool, the modifier should use "地" instead of "的" before the verb:

-TinyEngine引擎官方在慢慢的增加新特性
+TinyEngine引擎官方在慢慢地增加新特性
🧰 Tools
🪛 LanguageTool

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)


14-17: Consider expanding core features descriptions

The core features are currently listed as brief bullet points. Consider expanding each point with:

  • Concrete examples
  • Use cases
  • Configuration examples

For example, the CLI tool section could include basic usage examples:

- 提供 cli 工具,使用 cli 快速创建出来基于 TinyEngine 引擎的低代码平台。
  例如:
  ```bash
  tiny-cli create my-project
  cd my-project
  tiny-cli dev

</blockquote></details>
<details>
<summary>docs/api/global-layout-api.md (2)</summary><blockquote>

`23-35`: **Enhance API documentation with parameter types and return values**

The API documentation would be more helpful with:
- Parameter types and descriptions
- Return value types and descriptions
- Example usage for each method


For example:
```markdown
apis: {
  /**
   * 激活plugin面板
   * @param {string} pluginName - 插件名称
   * @param {boolean} isActive - 是否激活对应面板
   * @returns {void}
   * @example
   * layoutService.activePlugin('componentTree', true);
   */
  activePlugin,
  // ... other methods with similar documentation
}

39-39: Remove empty section marker

The document ends with an empty section marker (###). This should be removed.

-### 
docs/advanced-features/loop-rendering.md (1)

40-46: Improve HTML code block formatting

The HTML code example could be better formatted for readability:

-<template>   
-<div v-for="(item, index) in state.imageList" :key="index">     
-<span>{{ item.title }}</span>   
-<!---列表细节--->   
-</div> </template>
+<template>
+  <div v-for="(item, index) in state.imageList" :key="index">
+    <span>{{ item.title }}</span>
+    <!-- 列表细节 -->
+  </div>
+</template>
docs/getting-started/quick-start.md (1)

27-27: Consider hosting the example image locally

The image URL https://res.hc-cdn.com/lowcode-portal/1.1.65/img/home/top-banner.jpg is an external dependency. Consider:

  1. Hosting this image in your repository to prevent broken links if the external resource becomes unavailable
  2. Using a relative path consistent with other images in the documentation
docs/getting-started/introduction.md (3)

3-3: Use Markdown formatting instead of HTML

Replace HTML formatting with Markdown syntax for better consistency:

-<b>低代码平台</b>是一种应用程序开发平台
+**低代码平台**是一种应用程序开发平台

23-23: Fix Chinese grammar in the sentence

According to Chinese grammar rules, modify the sentence structure:

-得益于 TinyEngine 强大的开放物料设计
+得益于 TinyEngine 强大地开放物料设计
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)


31-37: Remove unnecessary empty lines

The file ends with multiple empty lines that can be removed to maintain cleaner documentation.

docs/basic-features/page-management.md (2)

26-26: Update image references to use absolute paths

The image references use relative paths (./imgs/...) which might break when the documentation is rendered in different contexts. Consider updating to absolute paths from the repository root.

Example format:

-![新增文件夹](./imgs/addFolder.png)
+![新增文件夹](/docs/basic-features/imgs/addFolder.png)

Also applies to: 32-32, 37-37, 49-49, 55-55, 60-60


53-53: Consider adding code examples for lifecycle configurations

The section about Vue3 lifecycle configurations would benefit from practical code examples showing how these configurations are applied.

Would you like me to help generate example code snippets for the Vue3 lifecycle configurations?

docs/practical-cases/smb-lightweight-application-service.md (1)

37-45: Enhance code download section with step-by-step instructions

The code download section could be more detailed. Consider adding:

  1. Prerequisites for local development
  2. Step-by-step instructions for the download process
  3. Expected file structure after download
  4. Common troubleshooting tips

Would you like me to help expand this section with more detailed instructions?

docs/development-getting-started/introduction.md (4)

9-9: Fix duplicate punctuation in Chinese text

There is a duplicate "的" in the sentence:

-它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的的低代码平台
+它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的低代码平台

28-35: Standardize list formatting

The numbered list (1, 2, 3) uses inconsistent formatting. Consider using consistent Markdown numbered list syntax:

-1) 图元编排
-2) 流程编排
-3) 页面编排
+1. 图元编排
+2. 流程编排
+3. 页面编排

45-49: Remove unnecessary empty lines

There are multiple empty lines at the end of the file. Consider removing them to maintain cleaner documentation.


18-18: Consider adding AI capability examples

Since AI integration is listed as a feature, it would be helpful to provide concrete examples or use cases of how AI capabilities enhance the platform.

Would you like me to help draft examples of AI integration scenarios?

docs/extension-capabilities-tutorial/customize-plugin-ui.md (2)

15-31: Consider adding type information for better clarity.

The code example is clear, but could benefit from TypeScript-style type annotations to indicate the expected types for the Page object and plugin configuration.

 // registry.js
-export default {
+interface PluginConfig {
+  title?: string;
+  icon?: string | Component;
+  align?: 'left' | 'center' | 'right' | 'top' | 'bottom';
+}
+
+export default {

55-66: Consider adding error handling example.

The Vue component example could benefit from showing how to handle potential errors or loading states.

 <script setup>
 import { ref } from 'vue'
 
 const title = ref('自定义插件UI')
+const error = ref(null)
+
+// Example error handling
+const handleError = (e) => {
+  error.value = e.message
+}
 </script>
docs/basic-features/intro-to-designer.md (1)

34-36: Consider adding keyboard shortcuts.

The plugin panel description could be enhanced by including keyboard shortcuts for commonly used actions.

 插件点击之后会向右展开对应插件的设置面板
+
+常用快捷键:
+- 物料插件: Ctrl/Cmd + M
+- 大纲树: Ctrl/Cmd + O
+- 页面管理: Ctrl/Cmd + P
docs/basic-features/frontend-application-flow.md (1)

53-62: Consider adding command-line alternative.

The code generation section could benefit from including command-line instructions for users who prefer terminal-based workflows.

 根据配置的页面设计,生成应用的基本代码。代码生成后,会下载至本地,供您使用。

+### 方式一:使用UI界面
 1. 单击顶部工具栏的"下载源码"按钮。
 2. 选择下载路径。
 3. 选择生成到本地的文件。
 
    **图 9**  选择生成文件  
    ![choseFile](./imgs/choseFile.png)
 
 4. 单击"确定",代码将下载至本地路径。
+
+### 方式二:使用命令行
+```bash
+# 生成代码到指定目录
+tiny-engine generate --output ./my-app
+```
docs/advanced-features/advanced-panel-settings.md (1)

30-37: Consider adding type safety to the loop example

The Vue template could benefit from TypeScript type annotations for better type safety and developer experience.

 <template>
-  <div v-for="(item, index) in state.imageList" :key="index">
+  <div v-for="(item, index) in state.imageList" :key="item.id || index">
     <span>{{ item.title }}</span>
   <!---列表细节--->
   </div>
 </template>
+<script setup lang="ts">
+interface ImageItem {
+  id?: string;
+  title: string;
+}
+
+const state = {
+  imageList: ref<ImageItem[]>([])
+};
+</script>
docs/extension-capabilities-overview/meta-services-and-meta-apps.md (1)

23-27: Consider adding error handling for getMergeMeta

The code example should demonstrate proper error handling for the getMergeMeta function.

 import { getMergeMeta } from '@opentiny/tiny-engine-meta-register'

 // 获取元应用
-const entry = getMergeMeta(comp).entry
+try {
+  const meta = getMergeMeta(comp)
+  const entry = meta?.entry
+  if (!entry) {
+    console.warn('Meta application entry not found')
+  }
+} catch (error) {
+  console.error('Failed to get meta application:', error)
+}
docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md (3)

34-34: Fix grammar in Chinese text

Based on the static analysis, there's a grammar issue with the use of "的" vs "得":

-运行时引擎的代码会膨胀的非常巨大
+运行时引擎的代码会膨胀得非常巨大
🧰 Tools
🪛 LanguageTool

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...

(wb4)


40-40: Fix grammar in Chinese text

Based on the static analysis, there's a grammar issue with the use of "的" vs "地":

-可以相对完美的解决以上痛点
+可以相对完美地解决以上痛点
🧰 Tools
🪛 LanguageTool

[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...

(wb4)


7-22: Consider adding type information to the JSON schema example

The JSON to Vue conversion example would be more helpful with type information and a more complex example demonstrating nested components.

Consider expanding the example to include:

  1. TypeScript interfaces for the schema
  2. More complex nested component structure
  3. Example of handling component props and events
interface ComponentSchema {
  componentName: string;
  props?: Record<string, unknown>;
  children?: ComponentSchema[];
}

Also applies to: 26-30

docs/basic-features/using-components.md (3)

11-14: Add alt text to enhance accessibility

Images should include descriptive alt text for better accessibility. This applies to both the icon image and the GIF.

-1. 在左侧插件栏中,单击![物料插件图标](./imgs/icon-add.png),展开物料资产包。
+1. 在左侧插件栏中,单击![物料插件图标 - 用于添加组件的图标](./imgs/icon-add.png),展开物料资产包。

-![拖入组件](./imgs/dragComponent.gif)
+![演示如何将组件从物料面板拖拽到画布中的动图](./imgs/dragComponent.gif)

20-20: Improve grammar in the explanation

The phrase "很好的拖入" should use "地" instead of "的" as it modifies a verb.

-直接拖拽并不能很好的拖入到指定的层级中
+直接拖拽并不能很好地拖入到指定的层级中
🧰 Tools
🪛 LanguageTool

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...

(wb4)


25-26: Standardize image references

The document uses inconsistent formats for image references. Some use quotation marks for titles while others don't. Let's standardize them.

-   ![insertComponent](./imgs/insertComponent.gif)
+   ![演示如何插入组件的动图](./imgs/insertComponent.gif "插入组件演示")

-   ![inserPosition](./imgs/inserPosition.png)
+   ![选择组件插入位置的截图](./imgs/inserPosition.png "选择插入位置")

(Similar changes should be applied to other image references)

Also applies to: 28-29, 33-34, 44-45, 49-50, 54-55, 57-58, 64-65, 67-68, 70-71

docs/basic-features/internationalization.md (2)

7-8: Add alt text to system icons and improve note formatting

The system note icons should include alt text, and the note formatting can be improved for better readability.

-> ![](public_sys-resources/icon-note.gif) **说明:**
+> ![注意图标](public_sys-resources/icon-note.gif) **说明:**
-> 注意的是国际化只针对画布中的项目,不针对设计器本身。
+> 国际化只针对画布中的项目,不针对设计器本身。

Apply similar changes to the second note section.

Also applies to: 16-19

🧰 Tools
🪛 Markdownlint (0.37.0)

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)


72-72: Improve code example clarity

The variable binding example could be more clear with proper escaping and formatting.

-5. 输入变量t\('lowcode.67564435'\),其中lowcode.67564435为词条的key值,可参考[复制词条键值](#复制词条键值)获取。
+5. 输入变量 `t('lowcode.67564435')`,其中 `lowcode.67564435` 为词条的key值,可参考[复制词条键值](#复制词条键值)获取。
docs/api/settings-panel-api.md (4)

1-1: Replace hard tabs with spaces

Hard tabs should be replaced with spaces for consistent formatting across different editors.

-# 设置面板模块API	
+# 设置面板模块API
🧰 Tools
🪛 Markdownlint (0.37.0)

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)


5-5: Improve grammar in the introduction

Remove redundant word "于" to improve readability.

-变量绑定列表中的变量可能来自于其他元应用。
+变量绑定列表中的变量可能来自其他元应用。
🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...

(wb2)


97-97: Add alt text and improve image reference

The bindEvent image should include descriptive alt text.

-  ![bindEvent]( ./imgs/bindEventApi.png)
+  ![事件绑定对话框界面截图](./imgs/bindEventApi.png "事件绑定对话框")

38-53: Enhance code example documentation

The configuration object example could benefit from more detailed comments explaining each field's purpose and constraints.

 {
   id: string;
-  content: string; // 列表项显示的文本
+  content: string; // 列表项显示的文本,建议使用清晰且具有描述性的名称
   getVariables: () => {
     bindPrefix: string;
     variables: any;
-  }; // 获取变量绑定列表的方法
+  }; // 同步获取变量绑定列表的方法,应返回包含bindPrefix和variables的对象
   getVariablesAsync: () => {
     bindPrefix: string;
     variables: any;
-  }; // 获取变量绑定列表的异步方法。如果有同步方法,只会执行同步方法
+  }; // 异步获取变量绑定列表的方法。注意:当同时定义了getVariables时,此方法不会被调用
   condition: () => boolean; // 控制是否显示的方法
   postConfirm: (context) => void, // 点击确定后执行的额外逻辑
-  _order: number; // 用来排序的字段。因为组件导入过程中顺序不是确定的,所以需要增加一个字段用来确定顺序
+  _order: number; // 排序字段,较小的数值会显示在列表前面。建议使用10的倍数以便于后续插入新项
 }
docs/ecosystem-center/how-to-import-library.md (1)

30-36: Add blank lines around tables

According to markdown best practices, tables should be surrounded by blank lines for better readability and proper rendering.

 ![基本信息](./imgs/componentConfigBase.png)
+
 | 字段名称 | 描述 |  
 | --- | --- |  
 | 组件ID | 决定组件的使用方式<tiny-input></tiny-input> | 
 | 组件名称 | 设计器物料面板中组件显示的名称 | 
 | 图标 | 设计器物料面板中组件显示的图标 | 
 | schema片段 | [决定组件在画布上的显示效果](./imgs/componentConfigSchema.png) | 
 | 组件属性 | 包含属性、事件、插槽,对应设计器中右侧属性面板可配置的属性、插槽及高级面板中的事件配置 | 
+

Also applies to: 41-67

🧰 Tools
🪛 Markdownlint (0.37.0)

30-30: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

docs/extension-capabilities-tutorial/customize-meta-service-logic.md (2)

79-79: Improve import statement clarity

The import statement uses ellipsis which might be confusing. Consider providing a more concrete example.

-import { FooService, BarService } from '...'
+import { FooService, BarService } from '@opentiny/tiny-engine'  // 请替换为实际的导入路径

91-93: Add example callback logic

The callback function only contains a comment. Consider adding a practical example to demonstrate typical usage.

     callback: (data) => {
-      // 回调逻辑
+      console.log('Received custom event:', data)
+      // 示例:更新服务状态
+      const state = CustomFooService.apis.getState()
+      CustomFooService.apis.setState({ ...state, ...data })
     }
docs/extension-capabilities-overview/registry.md (1)

109-123: Improve code formatting consistency

The configuration example has inconsistent empty lines and comment formatting. Consider standardizing the format.

 const register = {
-  
   layout: {
     ...Layout
-    // 传输配置项
+    // 传入配置项
     options: {...}
   },
   toolbars: [
-    // 第二个对象传入配置、覆盖项
+    // 传入配置和覆盖项
     [Media, { ... }]
   ],
-  // 传入自定义插件
+  // 传入插件列表
   plugins: [Materials, Tree, customPlugin],
 }
docs/advanced-features/js-panel-and-event-binding.md (3)

33-43: Vue template code example needs improvement

The Vue code example could be enhanced for better clarity and maintainability.

Consider applying these improvements:

 <template>
   <div>
-    <span>{{ state.testValue }}</span>
+    <!-- Add a comment explaining what testValue represents -->
+    <span class="test-value">{{ state.testValue }}</span>
     <img
       src="/images/1.jpg" 
       style="width: 200px; height: 200px"
       @click="(...eventArgs) => getA(eventArgs, 12)"
+      alt="Description of the image"
     />
   </div>
 </template>

90-90: Grammar improvement needed

The sentence contains redundant words: "来自于" should be simplified to "来自".

Change to: "这里的函数参数的定义来自 TinyVue 的文档"

🧰 Tools
🪛 LanguageTool

[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 ![在页面JS中定义渲染函数](./imgs/pag...

(wb2)


103-103: Grammar improvement needed

The sentence needs proper adverb form: "方便的" should be "方便地".

Change to: "页面js能够很方便地为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便地提供一些状态获取方法,国际化词条获取方法等。"

🧰 Tools
🪛 LanguageTool

[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。

(wb4)

docs/advanced-features/block-management.md (2)

78-93: Vue code example needs type annotations

The Vue code example could benefit from TypeScript type annotations for better type safety and documentation.

Consider applying these improvements:

 <template>
   <header>
     <h1>{{props.title}}</h1>
     <span>{{props.description}}</span>
   </header>
 </template>

 <script setup lang="ts">
-const props = defineProps({
+interface HeaderProps {
+  title: string;
+  description: string;
+}
+
+const props = defineProps<HeaderProps>({
   title: { type: String, default: '' },
   description: { type: String, default: '' }
 })
 </script>

68-68: Grammar improvement needed

The sentence needs proper adverb form: "更好的" should be "更好地".

Change to: "区块描述:区块的描述,可以让别人更好地明白该区块的用途以及含义"

🧰 Tools
🪛 LanguageTool

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)

docs/api/material-api.md (2)

4-26: API documentation needs type annotations

The JavaScript code example would benefit from TypeScript type annotations for better API documentation.

Consider applying these improvements:

+interface MaterialPluginConfig {
+  id: string;
+  title: string;
+  type: string;
+  icon: string;
+  align: string;
+  entry: any;
+  layout: typeof MaterialLayout;
+  options: {
+    defaultTabId: string;
+    displayComponentIds: string[];
+    basePropertyOptions: any;
+  };
+  components: {
+    header: typeof MaterialHeader;
+  };
+  apis: Record<string, Function>;
+  metas: any[];
+}

-export default {
+export default <MaterialPluginConfig>{
   id: 'engine.plugins.materials',
   title: '物料',
   type: 'plugins',
   icon: 'plugin-icon-materials',
   align: 'top',
   entry,
   layout: MaterialLayout,
   options: {
     defaultTabId: 'engine.plugins.materials.component',
     displayComponentIds: ['engine.plugins.materials.component', 'engine.plugins.materials.block'],
     basePropertyOptions
   },
   components: {
     header: MaterialHeader
   },
   apis: { ...MaterialBlock.apis },
   metas: [MaterialBlock, MaterialComponent, ResourceService, MaterialService]
 }

69-73: State management could be improved

The reactive state management could be enhanced with TypeScript interfaces and better organization.

Consider applying these improvements:

+interface ThirdPartyDeps {
+  scripts: string[];
+  styles: Set<string>;
+}
+
+interface MaterialState {
+  components: any[];
+  blocks: any[];
+  thirdPartyDeps: ThirdPartyDeps;
+}
+
-const materialState = reactive({
+const materialState = reactive<MaterialState>({
   components: [],
   blocks: [],
   thirdPartyDeps: { scripts: [], styles: new Set() }
 })
docs/advanced-features/data-source-and-collection-usage.md (1)

95-102: Improve variable naming in code example

The data handler example could be more descriptive with better variable naming.

 function dataHandler(data) {
-  return data.map(v => ({
-      name: v.nickName,
-      status: v.status
+  return data.map(user => ({
+      name: user.nickName,
+      status: user.status
     })
   )
 }
docs/practical-cases/pdm-metadata-approval-workflow.md (2)

13-13: Improve Chinese language style

Based on Chinese writing conventions, the following corrections are needed:

  • Line 13: Change "常见的" to "常见地"
  • Line 18: Change "完美的" to "完美地"

Also applies to: 18-18

🧰 Tools
🪛 LanguageTool

[uncategorized] ~13-~13: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:常用"地"审批
Context: ...完成。但是,所有类型的审批流大致相似。如:页面上常见的元素包括表单、表格以及常用的审批组件等。 技术分析:若采用传统的开发方式,每当新增一种流程时,前端开发人员...

(wb4)


69-103: Enhance JSON schema documentation

The button properties schema could benefit from additional documentation:

  • Add descriptions for each property
  • Include examples of usage
 // 以下JSON为节选按钮暴露的属性
 {
   "schema": {
     "type": "object",
     "properties": {
       "size": {
         "title": "定义按钮尺寸",
+        "description": "用于控制按钮的显示大小,不同尺寸适用于不同的场景",
         "type": "string",
         "enum": ["large", "medium", "small", "mini"],
         "enumNames": ["较大尺寸", "中等尺寸", "较小尺寸", "迷你尺寸"],
+        "examples": ["medium"],
         "default": ""
       },
       "text": {
         "title": "设置按钮显示的文本",
+        "description": "按钮上显示的文字内容",
         "type": "string",
+        "examples": ["提交", "确认"],
         "default": ""
       }
     }
   }
 }
docs/extension-capabilities-tutorial/develop-configurator-components.md (2)

49-54: Consider optimizing the string filtering logic

The current string filtering implementation can be simplified for better performance and readability.

     const change = (val) => {
-      value.value = val
-        .split('')
-        .filter((c) => /[A-Za-z0-9]/.test(c)) // 判断字符串中的每个字符是否属于字母或者数字
-        .join('')
+      value.value = val.replace(/[^A-Za-z0-9]/g, '') // Remove non-alphanumeric characters
       emit('update:modelValue', value.value)
     }

118-120: Remove commented code

The commented line "component": "I18nConfigurator" appears to be old/unused code. Consider removing it to maintain clean documentation.

docs/development-getting-started/quick-start.md (1)

124-141: Add language identifier to code block

The directory structure code block should specify a language identifier for proper syntax highlighting.

-```
+```text
 ...
 ├─ designer-demo # 此处为高度可定制化的低代码平台,即用户自己的低代码设计器     
 │  ├─ env
🧰 Tools
🪛 Markdownlint (0.37.0)

124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/practical-cases/graphical-element-arrangement-designer.md (3)

78-83: Add language identifier to code block

The directory structure code block should specify a language identifier for proper syntax highlighting.

-```bash
+```text
pluginProject
 - src 插件源码
 - index.js 注册插件入口,需要导出约定的数据结构
 - package.json

44-58: Add language identifier to code block

The directory structure code block should specify a language identifier for proper syntax highlighting.

-```js
+```text
.
|-- canvas
|-- controller

105-119: Improve example clarity

The plugin configuration example uses a placeholder import path. Consider using a more realistic example or adding a comment to clarify it's a placeholder.

-import Materials from '@xxxx/lowcode-plugin-materials'
+// Replace @xxxx with your actual package scope
+import Materials from '@your-scope/lowcode-plugin-materials'
docs/advanced-features/how-to-use-slots.md (2)

12-24: Improve code block readability.

The code block contains a comment indicating it's from "Header.vue" but uses a generic "vue" language identifier. Consider using "vue3" for better syntax highlighting and to indicate the Vue version.

-```vue
+```vue3
 // Header.vue
 <template>

147-165: Enhance schema documentation.

The schema example could be improved by adding comments explaining the purpose of each field, especially for the params array which is crucial for slot configuration.

 {
   // 物料 schema 定义
   "schema": {
     // 定义插槽
     "slots": {
-      "menu": {
+      // menu: 插槽名称,用于在模板中引用
+      "menu": {
         // 在右侧属性面板显示的名称
         "label": {
           "zh_CN": "menu"
         },
-        "params": ["title"]
+        // params: 定义可以传递给插槽的参数列表
+        "params": ["title"]
       }
     }
   }
 }
docs/basic-features/style-settings.md (2)

151-156: Improve code example formatting and safety.

The code example could be improved by:

  1. Adding type safety for the value parameter
  2. Using strict equality comparison
 function isNil(value) {
-    return value == null
+    return value === null || value === undefined
 }

163-169: Add error handling example.

The code example could be enhanced by showing proper error handling when the value is nil.

 function xxxHandler(value) {
     if(this.utils.isNil(value)) {
+      console.warn('Value is required but received null/undefined')
       return
   }
   // ... other logic 
 }
docs/advanced-features/using-utils-methods.md (1)

27-34: Enhance utility function example.

The example utility function could be improved by:

  1. Adding JSDoc comments for better documentation
  2. Including parameter types and return type
 // utils.js
+/**
+ * Test utility function for demonstration
+ * @returns {void}
+ */
 const testUtils = function utils() {
       console.log(321)
 }

 export { testUtils }
docs/extension-capabilities-tutorial/code-output-function/official-code-output-api.md (2)

17-19: Add return type information for generateApp.

The TypeScript type definition should include information about what CodeGenInstance contains to help developers understand the return value.

-function generateApp(config?: IConfig): CodeGenInstance
+function generateApp(config?: IConfig): CodeGenInstance {
+  generate: (schema: IAppSchema) => Promise<ICodeGenResult>;
+}

46-58: Enhance the plugin example with error handling.

The custom plugin example should demonstrate proper error handling for a production-ready implementation.

 function customPlugin() {
   return {
     name: 'tiny-engine-generate-code-plugin-demo',
     description: 'demo',
-    run(schema, context) {
+    async run(schema, context) {
+      try {
         console.log('here is a demo plugin')
+      } catch (error) {
+        context.addLog(`Plugin execution failed: ${error.message}`);
+        throw error;
+      }
     }
   }
 }
docs/api/canvas-api.md (2)

3-4: Fix heading hierarchy.

The document starts with an h3 heading after the h1 title. Maintain proper heading hierarchy by using h2 for the main sections.

 # 画布模块API
 
-### 元服务useCanvas
+## 元服务useCanvas
🧰 Tools
🪛 Markdownlint (0.37.0)

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)


7-23: Add TypeScript interface definition for statePageState.

Convert the JSON structure into a proper TypeScript interface for better developer understanding.

interface StatePageState {
  currentVm: any | null;
  currentSchema: Schema | null;  // 当前画布渲染的schema
  currentType: string | null;
  pageSchema: PageSchema | null;  // 当前画布的原始页面数据
  properties: Record<string, any> | null;
  dataSource: DataSource | null;
  dataSourceMap: Record<string, any> | null;
  isSaved: boolean;  // 画布的修改是否已经保存
  isLock: boolean;  // 画布是否锁定
  isBlock: boolean;  // 画布加载的是否是区块
  nodesStatus: Record<string, any>;
  loading: boolean;  // 画布是否加载中
}
🧰 Tools
🪛 Markdownlint (0.37.0)

7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/solutions/block-release-solution.md (2)

137-144: Add input validation requirements for the API.

The API documentation should specify input validation requirements for the parameters.

 {
     "deploy_info": "构建某某区块",  // 发布区块时的信息
     "block": {},  //  区块信息
     "needToSave": true, // boolean 是否保存当前区块信息到block表
     "version": "1.0.0"  // 区块包的版本号,需符合npm仓库版本号规范
+    // Add validation requirements:
+    // - deploy_info: Required, string, max length 200
+    // - block: Required, object, must contain valid block schema
+    // - version: Required, string, must match semver format
 }

65-67: Use code block language identifier.

Specify the language for the code block to enable syntax highlighting.

-```
+```text
 https://registry.npmmirror.com/${包名}/${版本号}/files/${文件路径及文件名}

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 Markdownlint (0.37.0)</summary>

65-65: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

</blockquote></details>
<details>
<summary>docs/index.md (2)</summary><blockquote>

`36-84`: **Consider reordering sections based on user importance.**

Based on the past review comment, consider moving the "网站文档" (Website Documentation) section after the "平台开发指南" (Platform Development Guide) section to improve the documentation flow from user perspective to developer perspective.

---

`32-34`: **Consider organizing tutorials chronologically.**

The tutorials section mixes a general tutorial with a dated one. Consider:
1. Organizing tutorials chronologically
2. Using a more descriptive naming convention for dated tutorials

</blockquote></details>
<details>
<summary>docs/api/backend-api/dsl-code-generation.md (2)</summary><blockquote>

`15-24`: **Improve code example readability.**

The code example could be improved by:
1. Adding proper spacing between imports and function call
2. Using template literals for file paths
3. Adding error handling for file operations


```diff
 const path = require('path')
 const fs = require('fs')
 const { generateCode } = require('@opentiny/tiny-engine-dsl-ng-tiny/lib/generate-code.js')
+
 const result = generateCode({ pageInfo, blocksData })
-result.forEach((item) =&gt; fs.writeFileSync(`dist/${item.filePath}/${item.panelName}`, item.panelValue))
+result.forEach((item) => {
+  const filePath = path.join('dist', item.filePath, item.panelName)
+  try {
+    fs.writeFileSync(filePath, item.panelValue)
+  } catch (error) {
+    console.error(`Failed to write file ${filePath}:`, error)
+  }
+})

96-103: Convert HTML table to Markdown format.

Consider converting the HTML table to Markdown format for better maintainability and consistency with other documentation.

-<table>
-  <thead class="ant-table-thead">
-    <tr>
-      <th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
-    </tr>
-  </thead>
-  <!-- ... rest of the table ... -->
-</table>
+| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
+|------|------|----------|--------|------|----------|
+| panelName | string | 必须 | | 文件名 | |
+| panelValue | string | 必须 | | 文件文本 | |
+| panelType | string | 必须 | | 代码类型 | |
+| prettierOpt | object | 必须 | | 代码美化选项 | |
+| └─ parser | string | 非必须 | | 指定要使用的解析器 | |
+| └─ tabWidth | number | 非必须 | | 指定使用几个空格来表示一个制表符 | |
+| └─ printWidth | number | 非必须 | | 指定每行代码的最大列数 | |
+| type | string | 必须 | | 代码类型 | |
+| filePath | string | 必须 | | 文件路径 | |
docs/api/main-package-api.md (3)

11-41: Add descriptions for exported services.

Consider adding brief descriptions for each exported service to help users understand their purpose. For example:

  • BreadcrumbService: Navigation breadcrumb functionality
  • HistoryService: Undo/redo operation management
  • MaterialService: Material asset management

98-153: Add comments to explain configuration sections.

The registry configuration example would benefit from comments explaining each section's purpose and available options.

 export default {
+  // Root configuration for core services
   root: {
     id: 'engine.root',
     metas: [GenerateCodeService, GlobalService]
   },
+  // Engine-specific configuration
   config: engineConfig,
+  // Layout configuration including toolbar placement
   layout: {
     ...Layout,
     options: {
       ...Layout.options,
       isShowLine: true,
       isShowCollapse: true,
+      // Toolbar button placement in different areas of the layout
       toolbars: {
         left: ['engine.toolbars.breadcrumb', 'engine.toolbars.lock', 'engine.toolbars.logo'],
         center: ['engine.toolbars.media'],
         right: [
           ['engine.toolbars.redoundo', 'engine.toolbars.clean'],
           ['engine.toolbars.preview'],
           ['engine.toolbars.generate-code', 'engine.toolbars.save']
         ],
         collapse: [
           ['engine.toolbars.collaboration'],
           ['engine.toolbars.refresh', 'engine.toolbars.fullscreen'],
           ['engine.toolbars.lang']
         ]
       }
     }
   },
   // ... rest of the configuration

189-192: Add example of error handling for API calls.

The example of using getMetaApi should include error handling:

 // 通过getMetaApi获取元应用/元服务API
-const { selectNode } = getMetaApi('engine.canvas').canvasApi.value
+try {
+  const api = getMetaApi('engine.canvas')
+  if (api?.canvasApi?.value) {
+    const { selectNode } = api.canvasApi.value
+    // Use selectNode...
+  } else {
+    console.warn('Canvas API not available')
+  }
+} catch (error) {
+  console.error('Failed to get Canvas API:', error)
+}
docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md (2)

13-32: Enhance code example with TypeScript types.

The plugin example would benefit from TypeScript type annotations for better developer experience and code clarity.

 // 默认配置
-const defaultOptions = {}
+interface PluginOptions {
+  // Add your plugin options here
+}
+const defaultOptions: PluginOptions = {}
 
-function customPlugin(options) {
+function customPlugin(options?: Partial<PluginOptions>) {
   const runtimeOptions = merge(defaultOptions, options)
 
   // 返回对象
-  return {
+  interface PluginReturn {
+    name: string;
+    description: string;
+    run: (schema: any, context: any) => void;
+  }
+  return <PluginReturn>{
     // 插件名
     name: 'tiny-engine-generate-code-plugin-demo',

163-180: Add type definitions for schema interface.

The schema structure example would be more helpful with TypeScript interfaces.

interface ISchema {
  componentName: 'Page' | 'Block';  // Literal type for better type safety
  css: string;
  props: Record<string, unknown>;
  lifeCycles: Record<string, Function>;
  children: IComponentSchema[];
  dataSource: {
    list: Array<unknown>;
  };
  methods: Record<string, Function>;
  bridge: {
    imports: Array<unknown>;
  };
  state: Record<string, unknown>;
  inputs: Array<unknown>;
  outputs: Array<unknown>;
}
docs/extension-capabilities-tutorial/how-to-develop-plugins.md (2)

328-332: Add type safety to the canvas drag item example.

The canvas drag item example could be improved with TypeScript types and proper component props definition.

 <template>
-  <canvas-drag-item :data="generateNode({ component: 'snippetName' })">
+  <canvas-drag-item
+    :data="generateNode({ component: 'snippetName' })"
+    :key="'snippet-' + snippetName"
+  >
     // 这里展示组件示意图之类的UI
   </canvas-drag-item>
 </template>
+<script lang="ts">
+interface GenerateNodeOptions {
+  component: string;
+  [key: string]: unknown;
+}

334-347: Modernize Vue component with Composition API.

The Vue component example could be modernized to use the Composition API with <script setup> syntax.

-<script>
+<script setup lang="ts">
 import { useResource } from '@opentiny/tiny-engine-controller'
 import { CanvasDragItem } from '@opentiny/tiny-engine-canvas'
-export default {
-    components: {
-      CanvasDragItem,
-  },
-  setup() {
-      const { generateNode } = useResource()
-    return {
-        generateNode
-    }
-  }
-}
+
+const { generateNode } = useResource()
 </script>
docs/catalog.json (1)

1-199: LGTM! Well-structured documentation catalog.

The documentation structure is well-organized with a clear hierarchy of chapters, sections, and articles. The naming conventions are consistent, and the structure provides good navigation for users.

Consider adding:

  • Version information for documentation tracking
  • Last updated timestamps for articles
  • Estimated reading time for articles
  • Prerequisites or difficulty level indicators for tutorials
docs/solutions/block-lan-release-solution.md (2)

102-102: Fix language inconsistencies

There are some language inconsistencies in the Chinese text:

  • Line 102: "正确的显示" should be "正确地显示"
  • Line 181: "正常的使用" should be "正常地使用"

These are adverbs modifying verbs and should use "地" instead of "的".

Also applies to: 181-181

🧰 Tools
🪛 LanguageTool

[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正确"地"显示
Context: ...正常发布在私仓上,如果想要在TinyEngine的页面上去获取到私仓里的包,正确的显示区块,我们还需要借助unpkg去获取到包的数据,而由于公网的unpkg无法直...

(wb4)


267-292: Add comments to explain the code logic

The code block for handling expression children could use more inline comments to explain the logic:

 const handleExpressionChildren = (schemaData = {}, globalHooks, config) => {
   const { children, schema } = schemaData
   const type = schema?.children?.type
   const isJSX = config.isJSX
+  // 根据JSX语法决定表达式包裹符号
   const prefix = isJSX ? '{' : '{{'
   const suffix = isJSX ? '}' : '}}'

-  // 如果是 js expression 类型
+  // 处理JavaScript表达式类型的children
   if (type === JS_EXPRESSION) {
+    // 处理特殊资源引用
     specialTypeHandler[JS_RESOURCE](schema.children, globalHooks, config)

+    // 生成表达式并添加到children数组
     children.push(
       `${prefix} ${schema.children?.value.replace(isJSX ? thisRegexp : thisPropsBindRe, '') || ''} ${suffix}`
     )

+    // 清理schema防止重复处理
     delete schema.children
     return
   }
 }
docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md (2)

17-29: Add error handling example in the plugin code

The plugin code example should demonstrate proper error handling:

 run: (schema, context) {
-  // ... 自定义出码逻辑
-  const res = '' // ... 这里自定义 option style 的 vue 文件
+  try {
+    // ... 自定义出码逻辑
+    const res = '' // ... 这里自定义 option style 的 vue 文件
 
-  const file = {
-    fileType: 'vue',
-    fileName: 'fileName.vue',
-    path: blockBasePath,
-    fileContent: res
-  }
+    const file = {
+      fileType: 'vue',
+      fileName: 'fileName.vue',
+      path: blockBasePath,
+      fileContent: res
+    }
 
-  this.addFile(file)
+    this.addFile(file)
+  } catch (error) {
+    console.error('Failed to generate code:', error);
+    throw new Error(`Code generation failed: ${error.message}`);
+  }
 }

465-480: Enhance interface documentation

The IConfig interface documentation could be improved with more detailed JSDoc comments:

 interface IConfig {
   pluginConfig: {
     page: {
-      pageBasePath: string; //  默认为 './src/views'
+      /**
+       * 页面文件的基础路径
+       * @default './src/views'
+       */
+      pageBasePath: string;
       sfcConfig: ISFCConfig;
     },
     block: {
-      blockBasePath: string; // 默认为 './src/components'
+      /**
+       * 区块文件的基础路径
+       * @default './src/components'
+       */
+      blockBasePath: string;
       sfcConfig: ISFCConfig;
     }
   }
 }
docs/api/backend-api/ai-function-api.md (1)

29-36: Convert HTML tables to Markdown format

The request and response parameter tables should be converted from HTML to Markdown format for better maintainability. Consider using a table generator tool to convert these complex HTML tables to Markdown format.

Would you like me to help convert these HTML tables to Markdown format?

Also applies to: 41-48

docs/api/backend-api/app-utility-management.md (2)

26-33: Convert HTML tables to Markdown format for better maintainability

The documentation uses HTML tables which can be harder to maintain. Consider converting them to Markdown tables for better readability and maintainability.

Example conversion:

-<table>
-  <thead class="ant-table-thead">
-    <tr>
-      <th key=name>名称</th><th key=type>类型</th>
-    </tr>
-  </thead>
-  ...
-</table>
+| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
+|------|------|----------|--------|------|----------|
+| data | object | 非必须 | | | |

1-24: Add examples and more detailed parameter descriptions

The API documentation would benefit from:

  1. Request/response examples
  2. More detailed descriptions for parameters
  3. Common use cases or scenarios

Consider adding a section like this:

### Example Request

```json
{
  "name": "utilityClass1",
  "app": 123,
  "content": {
    "type": "function",
    "value": "function example() { ... }"
  }
}

Example Response

{
  "data": {
    "id": 1,
    "name": "utilityClass1",
    "content": {
      "type": "function",
      "value": "function example() { ... }"
    }
  }
}

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 Markdownlint (0.37.0)</summary>

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>

</details>

</blockquote></details>
<details>
<summary>docs/api/backend-api/app-services.md (1)</summary><blockquote>

`27-34`: **Add schema examples for better understanding**

The schema structure is complex and would benefit from practical examples showing different scenarios.

Add example schemas for common use cases:

```markdown
### Example Schemas

1. Basic Component:
```json
{
  "componentName": "Button",
  "props": {
    "text": "Click Me",
    "onClick": {
      "type": "function",
      "value": "() => alert('clicked')"
    }
  }
}
  1. Container with Children:
{
  "componentName": "div",
  "children": [
    {
      "componentName": "Input",
      "props": {
        "placeholder": "Enter text"
      }
    }
  ]
}

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 32d13cba903b53286601e423b89cee7e41e21bc1 and 804c330a21ec5f8c56864840d3d87c375ed3a1f5.

</details>

<details>
<summary>📒 Files selected for processing (71)</summary>

* `docs/about-applications/create-application-blank-or-template.md` (1 hunks)
* `docs/about-applications/develop-application.md` (1 hunks)
* `docs/about-designer/create-designer.md` (1 hunks)
* `docs/about-designer/customize-designer.md` (1 hunks)
* `docs/about-designer/customize-material-package-themes-dsl-toolbar-plugins.md` (1 hunks)
* `docs/about-designer/introduction.md` (1 hunks)
* `docs/about-materials/add-library-and-blocks.md` (1 hunks)
* `docs/about-materials/build-material-asset-package.md` (1 hunks)
* `docs/about-materials/create-material-asset-package.md` (1 hunks)
* `docs/about-materials/introduction.md` (1 hunks)
* `docs/advanced-features/advanced-panel-settings.md` (1 hunks)
* `docs/advanced-features/block-management.md` (1 hunks)
* `docs/advanced-features/conditional-rendering.md` (1 hunks)
* `docs/advanced-features/data-source-and-collection-mock-data.md` (1 hunks)
* `docs/advanced-features/data-source-and-collection-remote-fields.md` (1 hunks)
* `docs/advanced-features/data-source-and-collection-usage.md` (1 hunks)
* `docs/advanced-features/how-to-use-slots.md` (1 hunks)
* `docs/advanced-features/integrating-chatgpt-for-simple-pages.md` (1 hunks)
* `docs/advanced-features/js-panel-and-event-binding.md` (1 hunks)
* `docs/advanced-features/loop-rendering.md` (1 hunks)
* `docs/advanced-features/using-utils-methods.md` (1 hunks)
* `docs/api/api-overview.md` (1 hunks)
* `docs/api/backend-api/ai-function-api.md` (1 hunks)
* `docs/api/backend-api/app-services.md` (1 hunks)
* `docs/api/backend-api/app-utility-management.md` (1 hunks)
* `docs/api/backend-api/data-source-management.md` (1 hunks)
* `docs/api/backend-api/dsl-code-generation.md` (1 hunks)
* `docs/api/canvas-api.md` (1 hunks)
* `docs/api/global-layout-api.md` (1 hunks)
* `docs/api/main-package-api.md` (1 hunks)
* `docs/api/material-api.md` (1 hunks)
* `docs/api/settings-panel-api.md` (1 hunks)
* `docs/basic-features/designer-ui-modules.md` (1 hunks)
* `docs/basic-features/frontend-application-flow.md` (1 hunks)
* `docs/basic-features/inline-style-variable-binding.md` (1 hunks)
* `docs/basic-features/internationalization.md` (1 hunks)
* `docs/basic-features/intro-to-designer.md` (1 hunks)
* `docs/basic-features/outline-tree.md` (1 hunks)
* `docs/basic-features/page-and-block-preview.md` (1 hunks)
* `docs/basic-features/page-management.md` (1 hunks)
* `docs/basic-features/state-management-and-variable-binding.md` (1 hunks)
* `docs/basic-features/style-settings.md` (1 hunks)
* `docs/basic-features/using-components.md` (1 hunks)
* `docs/catalog.json` (1 hunks)
* `docs/development-getting-started/introduction.md` (1 hunks)
* `docs/development-getting-started/quick-start.md` (1 hunks)
* `docs/ecosystem-center/how-to-import-library.md` (1 hunks)
* `docs/ecosystem-center/how-to-publish-block.md` (1 hunks)
* `docs/ecosystem-center/introduction.md` (1 hunks)
* `docs/ecosystem-center/publish-other-ecosystems.md` (1 hunks)
* `docs/extension-capabilities-overview/meta-services-and-meta-apps.md` (1 hunks)
* `docs/extension-capabilities-overview/new-architecture.md` (1 hunks)
* `docs/extension-capabilities-overview/registry.md` (1 hunks)
* `docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md` (1 hunks)
* `docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md` (1 hunks)
* `docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md` (1 hunks)
* `docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output.md` (1 hunks)
* `docs/extension-capabilities-tutorial/code-output-function/official-code-output-api.md` (1 hunks)
* `docs/extension-capabilities-tutorial/customize-meta-service-logic.md` (1 hunks)
* `docs/extension-capabilities-tutorial/customize-plugin-ui.md` (1 hunks)
* `docs/extension-capabilities-tutorial/develop-configurator-components.md` (1 hunks)
* `docs/extension-capabilities-tutorial/how-to-develop-plugins.md` (1 hunks)
* `docs/generateCatalogMd.js` (1 hunks)
* `docs/getting-started/introduction.md` (1 hunks)
* `docs/getting-started/quick-start.md` (1 hunks)
* `docs/index.md` (1 hunks)
* `docs/practical-cases/graphical-element-arrangement-designer.md` (1 hunks)
* `docs/practical-cases/pdm-metadata-approval-workflow.md` (1 hunks)
* `docs/practical-cases/smb-lightweight-application-service.md` (1 hunks)
* `docs/solutions/block-lan-release-solution.md` (1 hunks)
* `docs/solutions/block-release-solution.md` (1 hunks)

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (7)</summary>

* docs/about-applications/develop-application.md
* docs/about-designer/create-designer.md
* docs/basic-features/outline-tree.md
* docs/about-applications/create-application-blank-or-template.md
* docs/about-materials/build-material-asset-package.md
* docs/ecosystem-center/how-to-publish-block.md
* docs/basic-features/designer-ui-modules.md

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>📓 Learnings (1)</summary>

<details>
<summary>docs/development-getting-started/quick-start.md (1)</summary>

Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.


</details>

</details><details>
<summary>🪛 Markdownlint (0.37.0)</summary>

<details>
<summary>docs/basic-features/internationalization.md</summary>

7-7: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

---

16-16: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

</details>
<details>
<summary>docs/ecosystem-center/publish-other-ecosystems.md</summary>

1-1: null
Headings must start at the beginning of the line

(MD023, heading-start-left)

</details>
<details>
<summary>docs/ecosystem-center/how-to-import-library.md</summary>

30-30: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

---

41-41: null
Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

</details>
<details>
<summary>docs/solutions/block-lan-release-solution.md</summary>

208-208: Column: 7
Hard tabs

(MD010, no-hard-tabs)

---

208-208: Column: 27
Hard tabs

(MD010, no-hard-tabs)

---

210-210: Column: 14
Hard tabs

(MD010, no-hard-tabs)

---

210-210: Column: 28
Hard tabs

(MD010, no-hard-tabs)

---

211-211: Column: 15
Hard tabs

(MD010, no-hard-tabs)

---

211-211: Column: 29
Hard tabs

(MD010, no-hard-tabs)

---

212-212: Column: 16
Hard tabs

(MD010, no-hard-tabs)

---

212-212: Column: 26
Hard tabs

(MD010, no-hard-tabs)

---

213-213: Column: 9
Hard tabs

(MD010, no-hard-tabs)

---

213-213: Column: 27
Hard tabs

(MD010, no-hard-tabs)

---

214-214: Column: 12
Hard tabs

(MD010, no-hard-tabs)

---

214-214: Column: 27
Hard tabs

(MD010, no-hard-tabs)

---

215-215: Column: 12
Hard tabs

(MD010, no-hard-tabs)

---

215-215: Column: 27
Hard tabs

(MD010, no-hard-tabs)

---

200-200: null
Bare URL used

(MD034, no-bare-urls)

---

62-62: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

377-377: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

209-209: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

---

300-300: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

---

308-308: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

---

309-309: Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
Table pipe style

(MD055, table-pipe-style)

</details>
<details>
<summary>docs/solutions/block-release-solution.md</summary>

95-95: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)

---

99-99: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)

---

103-103: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)

---

113-113: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)

---

63-63: null
Bare URL used

(MD034, no-bare-urls)

---

53-53: null
Spaces inside code span elements

(MD038, no-space-in-code)

---

65-65: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

107-107: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

---

111-111: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

---

117-117: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

---

121-121: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

</details>
<details>
<summary>docs/advanced-features/loop-rendering.md</summary>

13-13: null
Images should have alternate text (alt text)

(MD045, no-alt-text)

</details>
<details>
<summary>docs/api/backend-api/ai-function-api.md</summary>

21-21: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

27-27: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>
<details>
<summary>docs/api/settings-panel-api.md</summary>

1-1: Column: 12
Hard tabs

(MD010, no-hard-tabs)

</details>
<details>
<summary>docs/api/backend-api/app-services.md</summary>

87-87: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

96-96: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

108-108: null
Multiple headings with the same content

(MD024, no-duplicate-heading)

---

19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

98-98: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>
<details>
<summary>docs/development-getting-started/quick-start.md</summary>

90-90: Column: 1
Hard tabs

(MD010, no-hard-tabs)

---

124-124: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>
<details>
<summary>docs/advanced-features/using-utils-methods.md</summary>

8-8: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

64-64: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>
<details>
<summary>docs/api/backend-api/app-utility-management.md</summary>

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

63-63: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

110-110: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

144-144: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>
<details>
<summary>docs/api/canvas-api.md</summary>

3-3: Expected: h2; Actual: h3
Heading levels should only increment by one level at a time

(MD001, heading-increment)

---

25-25: null
Spaces inside code span elements

(MD038, no-space-in-code)

---

7-7: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

28-28: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

60-60: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

142-142: null
Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>
<details>
<summary>docs/api/backend-api/data-source-management.md</summary>

18-18: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

24-24: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

30-30: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

69-69: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

75-75: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

114-114: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

147-147: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

180-180: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

215-215: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

---

250-250: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

</details>

</details>
<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>docs/ecosystem-center/publish-other-ecosystems.md</summary>

[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址  版本号决定了安装哪一个版本的 npm 包  被标识为官方的插件会显示“官方”字样  被标识为默认的插件会在创建设计器时默认被选中  公开决定了插...

(wa3)

---

[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包  被标识为官方的插件会显示“官方”字样  被标识为默认的插件会在创建设计器时默认被选中  公开决定了插件的可见范围,私有代表仅自己可见,公开代...

(wa3)

</details>
<details>
<summary>docs/about-materials/create-material-asset-package.md</summary>

[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。  物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。  ![构建物料资产包](./imgs/createMaterial.gif)...

(wa5)

</details>
<details>
<summary>docs/ecosystem-center/how-to-import-library.md</summary>

[uncategorized] ~4-~4: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...入组件库  ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...

(wb4)

</details>
<details>
<summary>docs/solutions/block-lan-release-solution.md</summary>

[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正确"地"显示
Context: ...正常发布在私仓上,如果想要在TinyEngine的页面上去获取到私仓里的包,正确的显示区块,我们还需要借助unpkg去获取到包的数据,而由于公网的unpkg无法直...

(wb4)

---

[uncategorized] ~181-~181: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正常"地"使用
Context: ...ng)  验证完成后,可以在物料中把刚才发布的区块进行添加,添加完毕后就可以正常的使用区块功能。  ## 五、服务部署  当前步骤都是在电脑本地环境下运行调试的,...

(wb4)

</details>
<details>
<summary>docs/api/backend-api/dsl-code-generation.md</summary>

[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema     }   },   {     // 其他区块...   } ] </code></pre>  <p>输出示例:</p> <pre><cod...

(UNLIKELY_OPENING_PUNCTUATION)

</details>
<details>
<summary>docs/development-getting-started/introduction.md</summary>

[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...

(s5)

</details>
<details>
<summary>docs/extension-capabilities-overview/new-architecture.md</summary>

[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...

(wb4)

---

[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。  基于这个需求与思路,我们设计了新的可扩展架构——洛书架构  ## 扩展架构核心特性  - 提供 cli 工具,使用...

(wb4)

</details>
<details>
<summary>docs/advanced-features/block-management.md</summary>

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解  - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...

(wb4)

---

[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性  ![区块暴露属性的消费](./imgs/blockexp...

(JI11_JI2)

</details>
<details>
<summary>docs/practical-cases/graphical-element-arrangement-designer.md</summary>

[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。  考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...

(wa5)

---

[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍  TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...

(wb4)

---

[uncategorized] ~74-~74: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一定"地"开发
Context: ...或切换。  ### 遵循插件规范开发  TinyEngine插件开发需要遵循一定的开发规范,主要是文件规范与导出规范:  * 文件规范,必须包含下面几个文件  `...

(wb4)

---

[uncategorized] ~121-~121: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:快速"地"完成
Context: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。  ​​![image](./imgs/...

(wb4)

---

[uncategorized] ~127-~127: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:优秀"地"插
Context: ...TinyEngine的基础引擎能力,快速搭建出PoC原型,再此基础上,利用其优秀的插件架构和提供的插件公共能力,添加业务相关插件,快速开发出一个领域定制的专属设计...

(wb4)

</details>
<details>
<summary>docs/basic-features/using-components.md</summary>

[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件  对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。  1. 画...

(wb4)

</details>
<details>
<summary>docs/practical-cases/pdm-metadata-approval-workflow.md</summary>

[uncategorized] ~13-~13: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:常用"地"审批
Context: ...完成。但是,所有类型的审批流大致相似。如:页面上常见的元素包括表单、表格以及常用的审批组件等。  技术分析:若采用传统的开发方式,每当新增一种流程时,前端开发人员...

(wb4)

---

[uncategorized] ~18-~18: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。  ![PDM](./imgs/pdm.png)  ### 技术实现细节 ...

(wb4)

</details>
<details>
<summary>docs/api/settings-panel-api.md</summary>

[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API	  ## 变量绑定  变量绑定列表中的变量可能来自于其他元应用。  目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...

(wb2)

</details>
<details>
<summary>docs/api/backend-api/app-services.md</summary>

[misspelling] ~51-~51: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...              </table>   ## 获取页面/区块源码  <a id=获取页面/区块源码> </a>  ### 基本信息  **Path:**...

(EN_A_VS_AN)

---

[misspelling] ~85-~85: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...              </table> ## 页面/区块预览用元数据  <a id=页面/区块预览用元数据> </a>  ### 基本信息  **Path:...

(EN_A_VS_AN)

</details>
<details>
<summary>docs/development-getting-started/quick-start.md</summary>

[uncategorized] ~14-~14: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:必要"地"开发
Context: ...t 代码版本管理⼯具 -  chrome浏览器 110+ 版本 - 以及其他必要的开发前端开发环境、⼯具等。    ## 二、Tiny Engine CLI   ...

(wb4)

---

[uncategorized] ~64-~64: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ... 另起一个终端,在当前目录下,输入下面命令,选择创建plugin类型,创建一个新的插件  ```shell npx @opentiny/tiny-engine-c...

(wb4)

---

[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"插
Context: ...#### 2.2.3 开发调试插件  重新打开项目页面,可以看到侧边栏多了一个新的插件:  ![cli-plugin-open](./imgs/cli-plugi...

(wb4)

</details>
<details>
<summary>docs/basic-features/page-and-block-preview.md</summary>

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ...  在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)

---

[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的**页面/区块预览**能力来为开发提供帮助  ### 页面...

(SHI_ADHECTIVE_ERROR)

</details>
<details>
<summary>docs/getting-started/introduction.md</summary>

[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...

(wb4)

</details>
<details>
<summary>docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md</summary>

[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点:  - 由于运...

(wb4)

---

[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。  在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点:  - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...

(wb4)

</details>
<details>
<summary>docs/advanced-features/js-panel-and-event-binding.md</summary>

[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档  1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档  ![在页面JS中定义渲染函数](./imgs/pag...

(wb2)

---

[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。

(wb4)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (27)</summary>

<details>
<summary>docs/generateCatalogMd.js (2)</summary>

`8-32`: **Safeguard against empty or missing chapters.**  
If `catalog.chapters` is null or undefined, `catalog.chapters.forEach(...)` will throw an error. Consider checking for validity before iterating.

---

`18-25`: **Be mindful of `replaceAll` compatibility.**  
`replaceAll` requires Node.js 15+ for full support. If the environment uses older Node versions, consider a fallback or use a regex-based replacement.

</details>
<details>
<summary>docs/about-designer/customize-designer.md (2)</summary>

`1-4`: **Documentation clarity looks good.**  
The heading and summary clearly outline the topic. This section effectively explains the designer's purpose and how to customize it. No immediate changes required.

---

`9-9`: **Verify image references.**  
The image `buildPlatform1.png` may not exist or could be misnamed. Confirm the correct file name and path to avoid broken links in the generated docs.

</details>
<details>
<summary>docs/about-designer/introduction.md (1)</summary>

`5-5`: **Double-check image reference.**  
Confirm the path `./imgs/platformExpend.png` is accurate and that the file exists to prevent broken image links.

</details>
<details>
<summary>docs/about-materials/create-material-asset-package.md (1)</summary>

`10-10`: **Verify the referenced image file exists**

The documentation references an image `createMaterial.gif`. Let's verify its existence and accessibility.

<details>
<summary>✅ Verification successful</summary>

**Image file exists and is correctly referenced**

The image file `createMaterial.gif` exists at the expected path `docs/about-materials/imgs/createMaterial.gif`, and the relative path in the documentation `./imgs/createMaterial.gif` correctly points to this location.



</details>

<details>
<summary>🏁 Scripts executed</summary>

The following scripts were executed for the analysis:

Script:

```shell
#!/bin/bash
# Check if the image file exists
fd -t f "createMaterial.gif" docs/about-materials/imgs/

Length of output: 100

docs/ecosystem-center/introduction.md (1)

5-5: Verify the referenced image file exists

The documentation references an image ecology1.png. Let's verify its existence and accessibility.

✅ Verification successful

Image file exists and is correctly referenced

The image file ecology1.png exists at the expected location docs/ecosystem-center/imgs/, and the relative path ./imgs/ecology1.png in the documentation correctly references it.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image file exists
fd -t f "ecology1.png" docs/ecosystem-center/imgs/

Length of output: 90

docs/basic-features/state-management-and-variable-binding.md (1)

7-7: Verify all referenced image files exist

The documentation references multiple images. Let's verify their existence and accessibility.

Also applies to: 13-13, 19-19

✅ Verification successful

All referenced image files are present and accessible

The verification confirms that all the required image files exist in the correct location:

  • docs/basic-features/imgs/state1.gif
  • docs/basic-features/imgs/state2.gif
  • docs/basic-features/imgs/state3.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if all referenced image files exist
fd -t f "state[1-3].(gif|png)" docs/basic-features/imgs/

Length of output: 166

docs/about-materials/add-library-and-blocks.md (2)

1-19: LGTM! Well-structured documentation with clear steps.

The content is logically organized and provides clear instructions for adding and removing component libraries and blocks.


8-8: Verify image references exist in the repository.

Let's verify that all referenced images exist in the correct location:

Also applies to: 11-11, 14-14, 17-17

✅ Verification successful

All referenced images exist in the correct location

All the image files referenced in the markdown document are present in the expected docs/about-materials/imgs/ directory:

  • createMaterialLib.png
  • createMaterialBlock.png
  • createMaterialLibCancel.png
  • createMaterialBlockCancel.png
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
for img in "createMaterialLib.png" "createMaterialBlock.png" "createMaterialLibCancel.png" "createMaterialBlockCancel.png"; do
  if ! fd -p "docs/about-materials/imgs/${img}$"; then
    echo "Missing image: ${img}"
  fi
done

Length of output: 959

docs/advanced-features/data-source-and-collection-mock-data.md (1)

1-21: LGTM! Clear and comprehensive documentation of mock data functionality.

The content provides a well-structured guide for working with mock data in data sources.

docs/basic-features/page-and-block-preview.md (1)

1-25: LGTM! Well-structured preview feature documentation.

The content provides a clear explanation of the preview feature's purpose and functionality.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...

(wb4)


[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...

(SHI_ADHECTIVE_ERROR)

docs/advanced-features/data-source-and-collection-remote-fields.md (1)

9-9: Verify image paths and add alt text descriptions.

The image references use relative paths (./imgs/) which might be broken. Additionally, consider adding more descriptive alt text for better accessibility.

Example format:

![Data source configuration interface showing URL and method settings](./imgs/dataSource1.png)

Also applies to: 11-13

✅ Verification successful

Image paths are valid, but alt text improvements recommended

The verification confirms that all referenced images (dataSource1.png through dataSource4.png) exist in the correct relative path docs/advanced-features/imgs/. While the image paths are working correctly, the suggestion to improve alt text descriptions for better accessibility remains valid.

  • Line 9: ![数据源设置](./imgs/dataSource1.png) - Consider using a more descriptive English alt text
  • Lines 11-13: Similar improvements recommended for other image references
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
for img in dataSource{1..4}.png; do
  fd -p "imgs/$img$" docs/advanced-features/
done

Length of output: 535

docs/about-materials/introduction.md (2)

1-9: LGTM! Well-structured introduction to materials

The content provides a clear and technically accurate explanation of materials, distinguishing between component libraries and blocks. The hierarchical structure with proper Markdown formatting enhances readability.


16-16: Verify the image path and add alt text

The image reference uses a relative path which is good. However, let's verify its existence and enhance accessibility.

Consider adding more descriptive alt text for better accessibility:

-![view-material](./imgs/materialPanel.png)
+![Material panel showing component and block collections in the designer interface](./imgs/materialPanel.png)
✅ Verification successful

Add descriptive alt text for better accessibility

The image exists at the correct path, but it lacks descriptive alt text which is important for accessibility. Adding meaningful alt text will help screen reader users understand the content of the image.

-![view-material](./imgs/materialPanel.png)
+![Material panel showing component and block collections in the designer interface](./imgs/materialPanel.png)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify image existence and suggest improvements
if [ -f "docs/about-materials/imgs/materialPanel.png" ]; then
    echo "✓ Image exists"
else
    echo "⨯ Image not found at: docs/about-materials/imgs/materialPanel.png"
fi

Length of output: 95

docs/about-designer/customize-material-package-themes-dsl-toolbar-plugins.md (1)

7-20: LGTM! Well-organized customization guide

The content provides clear instructions for customizing different aspects of the designer. The use of numbered lists and images enhances understanding.

Let's verify all referenced images exist:

✅ Verification successful

All referenced images are present and correctly linked

The verification confirms that all 5 images referenced in the documentation (defineMaterial.png, defineTheme.png, defineDsl.png, defineTools.png, and definePlugs.png) exist in the expected docs/about-designer/imgs/ directory. The documentation's image references are valid and complete.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify all images referenced in the document
images=("defineMaterial.png" "defineTheme.png" "defineDsl.png" "defineTools.png" "definePlugs.png")
for img in "${images[@]}"; do
    if [ -f "docs/about-designer/imgs/$img" ]; then
        echo "✓ Found: $img"
    else
        echo "⨯ Missing: $img"
    fi
done

Length of output: 809

docs/advanced-features/conditional-rendering.md (1)

10-10: Verify image references and fix broken links

The PR objectives mention missing images linked to not-found. Please ensure these image references are valid:

  • ./imgs/addvar-15.png
  • ./imgs/state-isLogin为false时.png
  • ./imgs/state-isLogin为ture时.png

Also applies to: 25-25, 29-29

✅ Verification successful

All referenced images are present and correctly linked

The verification shows that all three image files exist in the correct location under docs/advanced-features/imgs/:

  • addvar-15.png
  • state-isLogin为false时.png
  • state-isLogin为ture时.png

The image references in the documentation are valid and properly linked. No broken links were found.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if referenced images exist
for img in addvar-15.png "state-isLogin为false时.png" "state-isLogin为ture时.png"; do
  fd -t f "$img" docs/
done

Length of output: 547

docs/extension-capabilities-tutorial/customize-plugin-ui.md (1)

7-11: LGTM! Clear explanation of plugin UI customization options.

The documentation clearly explains the available customization properties (title, icon, align) and their purposes.

docs/basic-features/intro-to-designer.md (1)

15-29: LGTM! Comprehensive toolbar functionality description.

The documentation provides a clear and complete list of toolbar functions with good explanations for each feature.

docs/advanced-features/advanced-panel-settings.md (1)

10-10: Verify image references

The PR objectives mention missing images linked to not-found. Please ensure the following image references are properly linked and accessible:

  • ./imgs/conditionRender.gif
  • ./imgs/useLoop.gif
  • ./imgs/bindEvent.gif

Also applies to: 19-19, 48-48

✅ Verification successful

All referenced images are present and properly linked

The verification confirms that all the referenced images exist in the correct location:

  • docs/advanced-features/imgs/conditionRender.gif
  • docs/advanced-features/imgs/useLoop.gif
  • docs/advanced-features/imgs/bindEvent.gif

The relative paths in the documentation are correctly pointing to these files, and all images are accessible.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the referenced images exist
for img in conditionRender.gif useLoop.gif bindEvent.gif; do
  fd -t f "$img" docs/advanced-features/imgs/
done

Length of output: 469

docs/ecosystem-center/how-to-import-library.md (1)

9-9: Verify image availability

The image reference ./imgs/componentLibInfo.png appears to be missing according to the PR objectives. Please ensure all referenced images are properly added to the repository.

✅ Verification successful

Image files are present in the repository

All referenced images, including componentLibInfo.png, are present in the correct location at docs/ecosystem-center/imgs/. The image paths in the documentation are correctly specified relative to the markdown file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if referenced images exist
fd -e png -e jpg -e jpeg -e gif "componentLibInfo.png|componentConfigBase.png|componentConfigSchema.png|componentConfigTec.png" .

Length of output: 341

docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output.md (1)

1-121: Documentation is well-structured and comprehensive

The tutorial provides clear explanations, proper code examples, and helpful diagrams. The content flows logically from basic concepts to advanced customization.

docs/extension-capabilities-tutorial/develop-configurator-components.md (1)

7-7: LGTM: Image references are properly formatted

The image references use correct relative paths and appropriate file formats (PNG for static image, GIF for demonstration).

Also applies to: 144-144

docs/development-getting-started/quick-start.md (1)

31-31: Version reference is correct

The CLI version @opentiny/[email protected] matches the latest stable version as indicated in the retrieved learnings.

docs/advanced-features/how-to-use-slots.md (1)

45-45: Fix broken image link.

The image link ./imgs/defineslot.gif appears to be broken. Please ensure the image file exists in the correct location and update the path if necessary.

✅ Verification successful

Image path is correct and file exists

The image file defineslot.gif exists at the correct relative path ./imgs/defineslot.gif from the markdown file's location in docs/advanced-features/how-to-use-slots.md. The image link is working as expected.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the image exists
fd -t f "defineslot.gif" ./docs

Length of output: 76

docs/advanced-features/using-utils-methods.md (1)

16-16: Fix broken image link.

The image link not-found/zh-cn_image_0000001994511922.png appears to be broken. Please ensure the image file exists in the correct location and update the path if necessary.

docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md (1)

6-6: ⚠️ Potential issue

Fix broken image references in the documentation.

Several image references are used in the documentation but according to the PR objectives, there are issues with missing images. Please ensure all referenced images are properly added to the repository:

  • plugin1.png
  • plugin2.png
  • plugin3.png
  • plugin4.png
  • plugin5.png
  • plugin6.png
  • plugin7.png

Also applies to: 56-56, 62-62, 91-91, 138-138

docs/advanced-features/loop-rendering.md Show resolved Hide resolved
docs/solutions/block-lan-release-solution.md Show resolved Hide resolved
docs/api/backend-api/ai-function-api.md Show resolved Hide resolved
Comment on lines +1 to +47

# app-service

## 传入schema生成代码

<a id=传入schema生成代码> </a>

### 基本信息

**Path:** /api/schema2code

**Method:** POST

**接口描述:**


### 请求参数

**Headers**

| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
| ------------ | ---------------- | -------- | ---- | ---- |
| Content-Type | application/json | 是 | | |

**Body**

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> framework</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> pageInfo</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> schema</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> componentName</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> css</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> props</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> lifeCycles</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> children</span></td><td key=1><span>object []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-1-1-4-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> componentName</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> props</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-0><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> text</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-0-0><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> key</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-0-1><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-0-2><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> en_US</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-0-3><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> zh_CN</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-1><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> className</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-2><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> onClick</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-2-0><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-2-1><td key=0><span style="padding-left: 100px"><span style="color: #8c8a8a">├─</span> value</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-1-3><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> style</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-2><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-4-3><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> componentType</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> dataSource</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-5-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> list</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=array-87><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> </span></td><td key=1><span></span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-6><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> state</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-7><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> methods</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-7-0><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> onClick_new</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-7-0-0><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-7-0-1><td key=0><span style="padding-left: 80px"><span style="color: #8c8a8a">├─</span> value</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-8><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> utils</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=array-88><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> </span></td><td key=1><span></span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-9><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> bridge</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=array-89><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> </span></td><td key=1><span></span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-10><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> inputs</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=array-90><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> </span></td><td key=1><span></span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-1-1-11><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> outputs</span></td><td key=1><span>string []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>string</span></p></td></tr><tr key=array-91><td key=0><span style="padding-left: 60px"><span style="color: #8c8a8a">├─</span> </span></td><td key=1><span></span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr>
</tbody>
</table>


### 返回数据

<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object []</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5><p key=3><span style="font-weight: '700'">item 类型: </span><span>object</span></p></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> panelName</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">文件名称</span></td><td key=5></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> panelValue</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">文件内容</span></td><td key=5></td></tr><tr key=0-0-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> panelType</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">文件类型</span></td><td key=5></td></tr><tr key=0-0-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> prettierOpts</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">代码格式选项</span></td><td key=5></td></tr><tr key=0-0-3-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> printWidth</span></td><td key=1><span>number</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">指定每行代码的最大列数</span></td><td key=5></td></tr><tr key=0-0-3-1><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> semi</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">控制是否在语句末尾添加分号</span></td><td key=5></td></tr><tr key=0-0-3-2><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> singleQuote</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">控制是否使用单引号代替双引号作为字符串的引号样式</span></td><td key=5></td></tr><tr key=0-0-3-3><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> trailingComma</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">控制对象和数组字面量中最后一个属性或元素后面是否添加尾随逗号</span></td><td key=5></td></tr><tr key=0-0-3-4><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> parser</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">指定要使用的解析器</span></td><td key=5></td></tr><tr key=0-0-3-5><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> htmlWhitespaceSensitivity</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">用于控制 HTML 文件中空白字符的敏感度。该选项支持三个值: "css":保留仅对 CSS 属性之前和之后的空白字符进行格式化。 "strict":保留所有空白字符,并尽可能保持原样。 "ignore":忽略所有空白字符,除非它们出现在标签之间。</span></td><td key=5></td></tr><tr key=0-0-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> type</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">类型</span></td><td key=5></td></tr><tr key=0-0-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> index</span></td><td key=1><span>boolean</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">索引</span></td><td key=5></td></tr><tr key=0-0-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> filePath</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">文件路径</span></td><td key=5></td></tr>
</tbody>
</table>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Document error responses and status codes

The API documentation should include possible error responses and HTTP status codes for better error handling by clients.

Add a section like:

### Error Responses

| Status Code | Description | Example Response |
|-------------|-------------|------------------|
| 400 | Invalid request parameters | `{"error": "Invalid schema format"}` |
| 401 | Unauthorized | `{"error": "Authentication required"}` |
| 403 | Forbidden | `{"error": "Insufficient permissions"}` |
| 500 | Server error | `{"error": "Internal server error"}` |
🧰 Tools
🪛 Markdownlint (0.37.0)

19-19: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


25-25: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

Comment on lines +258 to +265
<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源名称: 字母下划线开头,只包含英文字母数字下划线,长度200以内</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@string</span></p></td></tr><tr key=0-0-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> data</span></td><td key=1><span>object</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源的数据json串</span></td><td key=5></td></tr><tr key=0-0-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> tpl</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源模板ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> app</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源所属应用ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> desc</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源描述</span></td><td key=5></td></tr><tr key=0-0-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> created_at</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">创建时间</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@time</span></p></td></tr><tr key=0-0-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> updated_at</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">更新时间</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@time</span></p></td></tr>
</tbody>
</table>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Document validation rules and constraints

The API documentation should clearly specify validation rules for input parameters.

Add validation rules section:

### Validation Rules

| Parameter | Rules |
|-----------|-------|
| name | - Must start with letter or underscore
        - Can only contain letters, numbers, underscores
        - Maximum length: 200 characters |
| app | - Must be a valid application ID
      - Must be numeric
      - Application must exist |
| tpl | - Must be a valid template ID
      - Must be numeric
      - Template must exist |

Comment on lines +89 to +95
<table>
<thead class="ant-table-thead">
<tr>
<th key=name>名称</th><th key=type>类型</th><th key=required>是否必须</th><th key=default>默认值</th><th key=desc>备注</th><th key=sub>其他信息</th>
</tr>
</thead><tbody className="ant-table-tbody"><tr key=0-0><td key=0><span style="padding-left: 0px"><span style="color: #8c8a8a"></span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-0-0><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> data</span></td><td key=1><span>object</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-0-0-0><td key=0><span style="padding-left: 40px"><span style="color: #8c8a8a">├─</span> key</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap"></span></td><td key=5></td></tr><tr key=0-0-1><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> name</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源名称</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@string</span></p></td></tr><tr key=0-0-2><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> id</span></td><td key=1><span>number</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-3><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> tpl</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源模板ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-4><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> app</span></td><td key=1><span>string</span></td><td key=2>必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源所属应用ID</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@integer</span></p></td></tr><tr key=0-0-5><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> created_at</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">创建时间</span></td><td key=5></td></tr><tr key=0-0-6><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> updated_at</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">更新时间</span></td><td key=5></td></tr><tr key=0-0-7><td key=0><span style="padding-left: 20px"><span style="color: #8c8a8a">├─</span> desc</span></td><td key=1><span>string</span></td><td key=2>非必须</td><td key=3></td><td key=4><span style="white-space: pre-wrap">数据源描述</span></td><td key=5><p key=5><span style="font-weight: '700'">mock: </span><span>@string</span></p></td></tr>
</tbody>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix inconsistent parameter types in response schema

There are inconsistencies in the parameter types between request and response:

  • tpl is number in request but string in response
  • app is number in request but string in response

Update the response schema to match request types:

-"tpl": { "type": "string" },
-"app": { "type": "string" },
+"tpl": { "type": "number" },
+"app": { "type": "number" },

Committable suggestion skipped: line range outside the PR's diff.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
document refactor-main refactor/develop branch feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants