docs: add documentation - #917
Conversation
WalkthroughThe pull request overhauls the documentation by introducing a new JSON catalog and extensive new guides covering every aspect of the TinyEngine low‐code platform. New sections have been added for user guides, developer tutorials, API specifications, practical case studies, and extension capabilities. In addition, a utility script to generate a markdown README from the catalog is included. Overall, the changes provide a comprehensive framework for documentation across usage, development, and deployment scenarios. Changes
Sequence Diagram(s)sequenceDiagram
participant C as catalog.json
participant G as generateCatalogMd.js
participant R as README.md
C->>G: Read JSON catalog
G->>G: Process chapters, sections, and articles
G->>R: Write generated markdown content
Suggested reviewers
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
left a comment
There was a problem hiding this comment.
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 fileMultiple 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 readabilityThe 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 sectionConsider 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 workflowThe 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 documentationConsider 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 - +
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.
- +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:
- Using consistent punctuation at the end of each bullet point
- Adding brief examples or explanations for each feature
- 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:
- Explaining why
Textcomponent in JSON becomesspanin Vue- 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 adverbsChange "更好的明白" 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:
- Adding more comprehensive code examples for global styles and state selectors
- Ensuring consistent code formatting across examples
- Using correct Vue.js terminology (e.g., 'scoped' instead of 'scope')
docs/基础功能/页面管理.md (2)
9-16: Improve file tree structure consistencyThe 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 captionThere's a typo in the Chinese text: "声明周期" should be "生命周期" to match the context.
- +docs/扩展能力使用教程/出码功能/如何自定义出码.md (1)
32-34: Consider specifying a package versionFor 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 accessibilityThe image markdown should include a more descriptive alt text to improve accessibility for screen readers.
- +
49-55: Optimize input filtering logicThe 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 registrationConsider adding instructions for validating the configurator registration:
- How to verify the configurator is properly registered
- Common troubleshooting steps if the configurator doesn't appear
Example addition:
3. 验证设置器注册 - 检查浏览器控制台是否有注册相关的错误 - 确认设置器名称在 configurators 对象中是否正确导出 - 验证设置器组件是否正确编译
143-144: Add descriptive alt text for the GIFThe GIF should include a more descriptive alt text for accessibility.
- +docs/开始/快速上手.md (4)
7-14: Improve text consistency and version specifications
- Replace full-width characters (⼯, ⼯具) with standard width characters (工, 工具) for better readability.
- 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 reliabilityThe image references should:
- Include meaningful alt text describing the image content
- Use absolute paths or ensure images are committed to the repository
- Consider adding image dimensions for better page layout stability
Example fix for the first image:
- +Also applies to: 56-56, 70-70, 104-104
124-141: Improve directory structure formattingAdd 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 sectionsTo make the documentation more comprehensive, consider adding:
- Troubleshooting guide for common issues
- System requirements (memory, disk space)
- Links to API documentation and advanced topics
- 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 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: 
docs/解决方案/服务端部署方案.md (10)
7-7: Enhance URL presentation for better readabilityConsider 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 documentThe 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 checksumsThe SQL files are hosted on an external cloud service without version information or integrity checks. Consider:
- Adding version information to the SQL files
- Providing SHA256 checksums for verification
- 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 variablesFor sensitive environment variables like tokens and keys:
- Add information about required permissions/scopes
- Document secure ways to generate these values
- 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 maintainabilityThe 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 configurationConsider 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 stepsConsider adding a troubleshooting section that covers:
- Common npm installation errors and solutions
- Port conflict resolution
- Dependency version mismatch handling
319-319: Enhance Docker deployment documentationThe note about removing
--daemonfor Docker deployment is crucial. Consider expanding the Docker deployment section to include:
- Example Dockerfile
- Docker Compose configuration
- Container health checks
- Volume mounting guidelines
336-337: Document port configuration security considerationsThe production port difference (7001 vs 7011) needs more context:
- Add firewall configuration guidelines
- Document recommended proxy settings
- 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 referencesThese SQL file links are duplicates of the ones provided at the beginning of the document. Consider:
- Removing this section
- Or moving all SQL-related content to a dedicated section
docs/基础功能/初识设计器.md (2)
7-7: Enhance image accessibility with descriptive alt textThe image alt text should provide a clear description of what the interface overview shows, including key components and their layout.
- +
34-36: Consider expanding plugin descriptionsWhile 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 syntaxThe 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 hierarchyThe 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 blockThe 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 questionsFor 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:
-  + 
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
IConfiginterface 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 formattingThe 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-referencesThe 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 headingThere 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 detailsThe 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 documentationLine 34 mentions configuration in
.env.localbut 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_databasedocs/开始/简介.md (1)
28-35: Consider adding specific examples for each orchestration typeThe 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 functionsThe 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 messagesThe 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 commentsThe Vue example would benefit from TypeScript types and additional comments explaining the
getMergeMetafunction'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 documentationThe 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 diagramThe 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 explanationThe 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 exampleThe 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 spacesReplace 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 claritySimplify the expression by removing redundant words.
-变量绑定列表中的变量可能来自于其他元应用。 +变量绑定列表中的变量可能来自其他元应用。🧰 Tools
🪛 LanguageTool
[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...(wb2)
97-97: Add alt text for imageEnhance accessibility by providing descriptive alt text for the image.
- +docs/生态中心/如何导入组件库.md (2)
30-36: Add blank lines around tableImprove markdown formatting by adding blank lines before and after the table.
 + | 字段名称 | 描述 | | --- | --- | | 组件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 documentationEnhance 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 documentationConsider 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 subscriptionConsider 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 thewrapfunction.The example shows usage of a
wrapfunction 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
generateNodeandupdateCanvasDependencies{ // 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.
- +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 hierarchyThe 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 blockThe 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 methodThe
setStatemethod 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 documentationThe 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 informationInclude 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 sequenceAdd 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 functionThe 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 clarityThe
typeparameter 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 tablesThe HTML tables lack accessibility attributes. Consider adding appropriate ARIA labels and alt text for better accessibility.
Add
aria-labelattributes 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 parameterThe
idparameter in the delete template endpoint lacks an example value and description. Consider adding these details for completeness.
1-266: Document error responses and status codesThe 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 imageThe icon image lacks alt text which is important for accessibility.
- +🧰 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 contextThe documentation would benefit from:
- A brief introduction explaining what the outline tree is and its purpose
- Expected outcome or result after following the steps
- 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:
- + - +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:
- +🧰 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
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:
-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。* +用户可以在生态中心创建物料资产包,步骤如下: +1. 新建物料资产包 +2. 填写必要的字段 +3. 保存 当前支持Vue和Angular两种技术栈,用户可以任意选择。当用户选择了Vue技术栈时,则只能添加Vue的组件与区块,不能添加Angular的组件库与区块。docs/生态中心/介绍.md (1)
5-5: Add alt text to improve accessibilityThe ecosystem diagram should include alternative text to improve accessibility for screen readers.
- +🧰 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 descriptionsThe current generic "Alt text" should be replaced with descriptive text that explains what each image shows.
- + - + - +Also applies to: 15-15, 19-19
5-5: Suggested grammar improvementsConsider 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
⛔ Files ignored due to path filters (227)
docs/API/imgs/bindEventApi.pngis excluded by!**/*.pngdocs/关于应用/imgs/appCreateOne.pngis excluded by!**/*.pngdocs/关于应用/imgs/appCreateTwo.pngis excluded by!**/*.pngdocs/关于应用/imgs/appDevOne.pngis excluded by!**/*.pngdocs/关于应用/imgs/appDevTwo.pngis excluded by!**/*.pngdocs/关于物料/imgs/createMaterial.gifis excluded by!**/*.gifdocs/关于物料/imgs/createMaterialBlock.pngis excluded by!**/*.pngdocs/关于物料/imgs/createMaterialBlockCancel.pngis excluded by!**/*.pngdocs/关于物料/imgs/createMaterialLib.pngis excluded by!**/*.pngdocs/关于物料/imgs/createMaterialLibCancel.pngis excluded by!**/*.pngdocs/关于物料/imgs/materialPanel.pngis excluded by!**/*.pngdocs/关于设计器/imgs/buildPlatform1.pngis excluded by!**/*.pngdocs/关于设计器/imgs/buildPlatform2.pngis excluded by!**/*.pngdocs/关于设计器/imgs/createPlatform.pngis excluded by!**/*.pngdocs/关于设计器/imgs/defineDsl.pngis excluded by!**/*.pngdocs/关于设计器/imgs/defineMaterial.pngis excluded by!**/*.pngdocs/关于设计器/imgs/definePlugs.pngis excluded by!**/*.pngdocs/关于设计器/imgs/defineTheme.pngis excluded by!**/*.pngdocs/关于设计器/imgs/defineTools.pngis excluded by!**/*.pngdocs/关于设计器/imgs/platformExpend.pngis excluded by!**/*.pngdocs/基础功能/imgs/addComponent-13.pngis excluded by!**/*.pngdocs/基础功能/imgs/addFolder.pngis excluded by!**/*.pngdocs/基础功能/imgs/addPage.pngis excluded by!**/*.pngdocs/基础功能/imgs/addVar.pngis excluded by!**/*.pngdocs/基础功能/imgs/addWords.pngis excluded by!**/*.pngdocs/基础功能/imgs/bindVariable-25.pngis excluded by!**/*.pngdocs/基础功能/imgs/canvasoverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/choseClickCompontes.pngis excluded by!**/*.pngdocs/基础功能/imgs/choseComponent.pngis excluded by!**/*.pngdocs/基础功能/imgs/choseComponentID.pngis excluded by!**/*.pngdocs/基础功能/imgs/choseFile.pngis excluded by!**/*.pngdocs/基础功能/imgs/clickNode.pngis excluded by!**/*.pngdocs/基础功能/imgs/componentDown.pngis excluded by!**/*.pngdocs/基础功能/imgs/componentUp.pngis excluded by!**/*.pngdocs/基础功能/imgs/copyComponent.pngis excluded by!**/*.pngdocs/基础功能/imgs/copyKeyValue.pngis excluded by!**/*.pngdocs/基础功能/imgs/createApp.pngis excluded by!**/*.pngdocs/基础功能/imgs/createFolder.pngis excluded by!**/*.pngdocs/基础功能/imgs/createPage.pngis excluded by!**/*.pngdocs/基础功能/imgs/delBatchWord.pngis excluded by!**/*.pngdocs/基础功能/imgs/delWord.pngis excluded by!**/*.pngdocs/基础功能/imgs/deleteClassNameNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/dragComponent.gifis excluded by!**/*.gifdocs/基础功能/imgs/editClassNameNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/editClassNameStatic.pngis excluded by!**/*.pngdocs/基础功能/imgs/editGlobalStyleNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/editWord.pngis excluded by!**/*.pngdocs/基础功能/imgs/eventOverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-add.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-code.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-copy.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-del.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-edit.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-i18n.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-page.pngis excluded by!**/*.pngdocs/基础功能/imgs/icon-tree.pngis excluded by!**/*.pngdocs/基础功能/imgs/inlineSettingResultNew.pngis excluded by!**/*.pngdocs/基础功能/imgs/inlineStyleBindVar.gifis excluded by!**/*.gifdocs/基础功能/imgs/inlineStyleSettingNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/inserPosition.pngis excluded by!**/*.pngdocs/基础功能/imgs/insertComponent.gifis excluded by!**/*.gifdocs/基础功能/imgs/lifecycle.gifis excluded by!**/*.gifdocs/基础功能/imgs/modifyStyle.pngis excluded by!**/*.pngdocs/基础功能/imgs/modifyVar.pngis excluded by!**/*.pngdocs/基础功能/imgs/modifyedStyle.pngis excluded by!**/*.pngdocs/基础功能/imgs/pageManaHistoryRestore.pngis excluded by!**/*.pngdocs/基础功能/imgs/pageManaIndex.pngis excluded by!**/*.pngdocs/基础功能/imgs/pagedelOrCopy.pngis excluded by!**/*.pngdocs/基础功能/imgs/platformExpend.pngis excluded by!**/*.pngdocs/基础功能/imgs/pluginoverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/preview-btn.pngis excluded by!**/*.pngdocs/基础功能/imgs/preview-pre.pngis excluded by!**/*.pngdocs/基础功能/imgs/preview.pngis excluded by!**/*.pngdocs/基础功能/imgs/selectClassNameNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/selectParentID.pngis excluded by!**/*.pngdocs/基础功能/imgs/setClassNameNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/setClassNameStatic.pngis excluded by!**/*.pngdocs/基础功能/imgs/setCompoentAttr.pngis excluded by!**/*.pngdocs/基础功能/imgs/setCompoentBaseAttr.pngis excluded by!**/*.pngdocs/基础功能/imgs/setCompoentStyle.pngis excluded by!**/*.pngdocs/基础功能/imgs/setStyleHoverNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/settingPanelOverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/state1.gifis excluded by!**/*.gifdocs/基础功能/imgs/state2.gifis excluded by!**/*.gifdocs/基础功能/imgs/state3.pngis excluded by!**/*.pngdocs/基础功能/imgs/stylePanelOverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/styleSettingNew.gifis excluded by!**/*.gifdocs/基础功能/imgs/styleSettingResult1.pngis excluded by!**/*.pngdocs/基础功能/imgs/styleSettingResult2.pngis excluded by!**/*.pngdocs/基础功能/imgs/styleSettingStatic.pngis excluded by!**/*.pngdocs/基础功能/imgs/toolbaroverview.pngis excluded by!**/*.pngdocs/基础功能/imgs/treeselectOverview.pngis excluded by!**/*.pngdocs/实战案例/imgs/app.pngis excluded by!**/*.pngdocs/实战案例/imgs/blockProps.pngis excluded by!**/*.pngdocs/实战案例/imgs/blockSettings.pngis excluded by!**/*.pngdocs/实战案例/imgs/code.pngis excluded by!**/*.pngdocs/实战案例/imgs/download.pngis excluded by!**/*.pngdocs/实战案例/imgs/image-20230919202709-5khs9h1.pngis excluded by!**/*.pngdocs/实战案例/imgs/image-20230920083516-hg4vhhs.pngis excluded by!**/*.pngdocs/实战案例/imgs/image-20230920084925-yirmz91.pngis excluded by!**/*.pngdocs/实战案例/imgs/image-20230920093120-jdzux3h.pngis excluded by!**/*.pngdocs/实战案例/imgs/pdm.pngis excluded by!**/*.pngdocs/实战案例/imgs/process.pngis excluded by!**/*.pngdocs/实战案例/imgs/smbHome.pngis excluded by!**/*.pngdocs/开始/imgs/cli-create-plugin.pngis excluded by!**/*.pngdocs/开始/imgs/cli-plugin-open.pngis excluded by!**/*.pngdocs/开始/imgs/tiny-engine-cli-open.pngis excluded by!**/*.pngdocs/开始/imgs/tiny-engine-cli.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/custom-plugin-page-full.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/custom-plugin-page-pos.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/input-configurator.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/my-input-configurator.gifis excluded by!**/*.gifdocs/扩展能力使用教程/imgs/plugin1.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin2.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin3.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin4.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin5.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin6.pngis excluded by!**/*.pngdocs/扩展能力使用教程/imgs/plugin7.pngis excluded by!**/*.pngdocs/扩展能力使用教程/出码功能/imgs/TinyEngineSchem2Code.pngis excluded by!**/*.pngdocs/扩展能力使用教程/出码功能/imgs/customGenCodePlugin.pngis excluded by!**/*.pngdocs/扩展能力使用教程/出码功能/imgs/exportcode.gifis excluded by!**/*.gifdocs/扩展能力使用教程/出码功能/imgs/pageGenerate.pngis excluded by!**/*.pngdocs/扩展能力使用教程/出码功能/imgs/vuetemplate.pngis excluded by!**/*.pngdocs/新手指引/imgs/addComponent.pngis excluded by!**/*.pngdocs/新手指引/imgs/addState.pngis excluded by!**/*.pngdocs/新手指引/imgs/bangEnv.pngis excluded by!**/*.pngdocs/新手指引/imgs/firstPage.pngis excluded by!**/*.pngdocs/新手指引/imgs/imgswitch.pngis excluded by!**/*.pngdocs/新手指引/imgs/page1.pngis excluded by!**/*.pngdocs/新手指引/imgs/preImgChange.pngis excluded by!**/*.pngdocs/新手指引/imgs/setImgSrc.pngis excluded by!**/*.pngdocs/新手指引/imgs/setImgSta.pngis excluded by!**/*.pngdocs/新手指引/imgs/setImgSty.pngis excluded by!**/*.pngdocs/新手指引/imgs/showImg.pngis excluded by!**/*.pngdocs/新手指引/imgs/tinyengine.pngis excluded by!**/*.pngdocs/生态中心/imgs/componentConfigBase.pngis excluded by!**/*.pngdocs/生态中心/imgs/componentConfigSchema.pngis excluded by!**/*.pngdocs/生态中心/imgs/componentConfigTec.pngis excluded by!**/*.pngdocs/生态中心/imgs/componentLibInfo.pngis excluded by!**/*.pngdocs/生态中心/imgs/ecology1.pngis excluded by!**/*.pngdocs/生态中心/imgs/ecology2.pngis excluded by!**/*.pngdocs/生态中心/imgs/ecology3.pngis excluded by!**/*.pngdocs/解决方案/imgs/add_block.pngis excluded by!**/*.pngdocs/解决方案/imgs/add_block1.pngis excluded by!**/*.pngdocs/解决方案/imgs/add_block2.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_code.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_code3.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_1.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_10.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_2.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_4.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_5.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_6.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_7.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_8.pngis excluded by!**/*.pngdocs/解决方案/imgs/backend_deploy_9.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-10.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-11.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-12.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-2.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-3.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-4.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-5.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-6.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-7.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-8.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-9.pngis excluded by!**/*.pngdocs/解决方案/imgs/block-publish-db-1.pngis excluded by!**/*.pngdocs/解决方案/imgs/create_block.pngis excluded by!**/*.pngdocs/解决方案/imgs/events.pngis excluded by!**/*.pngdocs/解决方案/imgs/npm1.pngis excluded by!**/*.pngdocs/解决方案/imgs/npm2.pngis excluded by!**/*.pngdocs/解决方案/imgs/npm3.pngis excluded by!**/*.pngdocs/解决方案/imgs/property.pngis excluded by!**/*.pngdocs/解决方案/imgs/publish_block.pngis excluded by!**/*.pngdocs/解决方案/imgs/publish_block2.pngis excluded by!**/*.pngdocs/解决方案/imgs/save_block.pngis excluded by!**/*.pngdocs/解决方案/imgs/slots.pngis excluded by!**/*.pngdocs/解决方案/imgs/snippets.pngis excluded by!**/*.pngdocs/解决方案/imgs/synchronize-materials.pngis excluded by!**/*.pngdocs/进阶功能/imgs/ScreenShot_20241029195609.pngis excluded by!**/*.pngdocs/进阶功能/imgs/add-Function.pngis excluded by!**/*.pngdocs/进阶功能/imgs/addAiPlugin.pngis excluded by!**/*.pngdocs/进阶功能/imgs/addVar-17.pngis excluded by!**/*.pngdocs/进阶功能/imgs/addVar-19.pngis excluded by!**/*.pngdocs/进阶功能/imgs/addvar-15.pngis excluded by!**/*.pngdocs/进阶功能/imgs/askToModifyPage.pngis excluded by!**/*.pngdocs/进阶功能/imgs/bindEvent.gifis excluded by!**/*.gifdocs/进阶功能/imgs/bindVariable-16.pngis excluded by!**/*.pngdocs/进阶功能/imgs/bindVariable-18.pngis excluded by!**/*.pngdocs/进阶功能/imgs/blockBaseSetting.pngis excluded by!**/*.pngdocs/进阶功能/imgs/blockExposeAttr.gifis excluded by!**/*.gifdocs/进阶功能/imgs/blockexposeattrusage.gifis excluded by!**/*.gifdocs/进阶功能/imgs/conditionRender.gifis excluded by!**/*.gifdocs/进阶功能/imgs/createBlockFromPage.gifis excluded by!**/*.gifdocs/进阶功能/imgs/createEmptyBlock.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-1.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-2.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-3.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-4.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-load-1.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-load-2.pngis excluded by!**/*.pngdocs/进阶功能/imgs/data-source-load-3.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource1.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource2.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource3.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource4.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource5.pngis excluded by!**/*.pngdocs/进阶功能/imgs/dataSource7.pngis excluded by!**/*.pngdocs/进阶功能/imgs/defineslot.gifis excluded by!**/*.gifdocs/进阶功能/imgs/icon-code.pngis excluded by!**/*.pngdocs/进阶功能/imgs/openAiWindow.pngis excluded by!**/*.pngdocs/进阶功能/imgs/pageJs.pngis excluded by!**/*.pngdocs/进阶功能/imgs/pageJsContent.pngis excluded by!**/*.pngdocs/进阶功能/imgs/pageJsJsxFunc.pngis excluded by!**/*.pngdocs/进阶功能/imgs/pageJsMethod.pngis excluded by!**/*.pngdocs/进阶功能/imgs/parseJxBindingJsxFunc.pngis excluded by!**/*.pngdocs/进阶功能/imgs/parseJxBindingJsxFuncResult.pngis excluded by!**/*.pngdocs/进阶功能/imgs/state-isLogin为false时.pngis excluded by!**/*.pngdocs/进阶功能/imgs/state-isLogin为ture时.pngis excluded by!**/*.pngdocs/进阶功能/imgs/use-npm.pngis excluded by!**/*.pngdocs/进阶功能/imgs/useBlock.pngis excluded by!**/*.pngdocs/进阶功能/imgs/useLoop.gifis excluded by!**/*.gifdocs/进阶功能/imgs/usingslot.gifis excluded by!**/*.gifdocs/进阶功能/imgs/utils4.pngis excluded by!**/*.pngdocs/进阶功能/imgs/viewRender.pngis 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: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 
[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 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: 
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 的文档 
[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。
(wb4)
docs/开始/简介.md
[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...
(s5)
docs/实战案例/PDM元数据审批电子流.md
[uncategorized] ~27-~27: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。
...
(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: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 
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:
-
+✅ 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: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 
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.gifdocs/基础功能/imgs/pageManaIndex.pngdocs/基础功能/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:
- A large number of exported functions and types across the codebase
- The documentation file in question is specifically about custom page code generation plugins
- The
IInsertPositiontype 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:
-
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'
-
The documentation provides:
- Complete API reference in the TypeScript interfaces section
- Clear explanation of how to use these positions with
addStatementmethod - Practical examples showing usage in code generation
- Comprehensive context about where and when to use these insert positions
-
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:
- All referenced images exist in the repository
- Image paths are correct relative to the document location
- 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.pngapp.pngblockSettings.pngblockProps.pngdownload.pngcode.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)
left a comment
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (10)
docs/基础功能/国际化.md (2)
72-72: Fix variable binding example formatThe 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 toggleThe 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** 语言切换按钮 docs/新手指引/简介.md (5)
3-4: Improve text formatting for better readabilityConsider 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 readabilityConsider reformatting these lines for better readability:
-低代码引擎它内置了一个功能强大的低代码设计器,用户可以基于低代码引擎定制(开发)出各种低代码平台,如:流程编排平台、页面编排平台、图元编排平台、移动端页面开发平台 -、大屏开发平台等等...... +低代码引擎它内置了一个功能强大的低代码设计器,用户可以基于低代码引擎定制(开发)出各种低代码平台,如: +- 流程编排平台 +- 页面编排平台 +- 图元编排平台 +- 移动端页面开发平台 +- 大屏开发平台 +等。
23-23: Fix Chinese grammar in the sentenceAdd the particle "地" for correct Chinese grammar:
-得益于 TinyEngine 强大的开放物料设计 +得益于 TinyEngine 强大地开放物料设计🧰 Tools
🪛 LanguageTool
[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...(wb4)
31-37: Remove excessive empty linesKeep only one empty line at the end of the file. Remove lines 32-37.
1-29: Enhance document structure and navigationConsider these improvements to the document structure:
- Add a table of contents at the beginning for better navigation
- 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 documentMultiple consecutive blank lines at the end of the document should be removed to maintain cleaner documentation.
随着低代码平台的普及,TinyEngine 将不断优化和扩展其功能。未来,TinyEngine 可能会集成更多的人工智能和机器学习功能,使得应用程序更加智能化和自动化。同时,团队将继续提升用户体验,确保平台的易用性和灵活性。 - - - -
16-16: Clarify the mixed development statementThe 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 wordThere's a repeated word "的" in the phrase "企业组织理念的的".
-TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的的低代码平台,打造出专业级的企业应用程序生成器。 +TinyEngine 的设计理念是通过简化复杂的开发过程,使更多的企业或组织用户能够轻松创建高效、功能丰富的低代码平台。它采用模块化设计,开发者可以通过模块的配置、替换、覆盖来构建符合企业组织理念的低代码平台,打造出专业级的企业应用程序生成器。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 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:
-
+🧰 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:
-
+
-
+🧰 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:
-
+
-
+
-
+🧰 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:
- The
buildMaterials.mjsscript 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
- 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
left a comment
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Outside diff range and nitpick comments (22)
docs/生态中心/发布其他生态.md (4)
1-1: Fix markdown heading formattingThe 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 documentationConsider adding alt text that better describes the image content and ensure the image path is correct.
- +
5-9: Improve content structure and readabilityThe 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 documentationThe current documentation could be enhanced with additional sections:
- Prerequisites or requirements
- Step-by-step publishing process
- Troubleshooting guide
- 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 formattingThe steps would be more readable using a numbered list format.
-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。* +用户可以在生态中心创建物料资产包,步骤如下: +1. 新建物料资产包 +2. 填写必要的字段 +3. 保存
8-8: Improve grammar in version descriptionConsider adding a measure word for better Chinese grammar.
-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 +物料资产包版本是用户自定义的,用户可以将物料资产包回退到任意一个版本。docs/解决方案/区块发布方案.md (4)
131-132: Format API endpoints consistentlyUse 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 issuesPlease address the following markdown formatting issues:
- Fix list indentation (remove extra spaces before list items)
- Add language specifiers to code blocks
- Use consistent code block style (prefer fenced code blocks with backticks)
- 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 terminologyPlease verify the Chinese translation of "Microsoft" throughout the document. Use "微软" consistently instead of any other variations.
13-21: Add security warning for token handlingPlease 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 structureFor better visualization of directory structure, use
treeinstead ofbashhighlighting.-```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 formattingThe
isCloseLeftprop 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 nameThere's a typo in the function name 'insertNodde'.
-insertNodde(...参数) +insertNode(...参数)docs/开始/快速上手.md (3)
13-13: Fix formatting inconsistencyRemove the extra space at the beginning of the line:
-- chrome浏览器 110+ 版本 +- chrome浏览器 110+ 版本
89-96: Fix code block indentation and diff formattingThe 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 blockAdd 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 clarityConsider revising the sentence structure for better readability:
-对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中 +对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好地拖入到指定的层级中🧰 Tools
🪛 LanguageTool
[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...(wb4)
docs/解决方案/设计器中引入第三方组件库.md (3)
6-8: Add version compatibility informationConsider 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 clarityConsider revising the sentence structure:
-下面将在协议基础上对**核心字段**作进一步的解释 +下面将在协议基础上对**核心字段**作进一步地解释🧰 Tools
🪛 LanguageTool
[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:进一步"地"解释
Context: ...ts、组件面板配置snippets。下面将在协议基础上对核心字段作进一步的解释,可以打开源码中物料资产包文件(packages\design-core\p...(wb4)
208-213: Enhance preview section with troubleshooting informationConsider 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
📒 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 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: 
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.
-在设计器中,插件的范围包括顶部工具栏、左侧插件栏。
-
+在设计器中,插件的范围包括顶部工具栏、左侧插件栏。
+329-332:
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:
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:
- Add alt text for accessibility
- The image path appears to be incorrect
-
+🧰 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
-
+
-
+
-
+Also applies to: 16-16, 22-22
28-29: Add alt text to images in the "Editing entries" section
-
+
-
+
-
+Also applies to: 32-32
39-40: Add alt text to images in the "Single deletion" section
-
+
-
+
-
+Also applies to: 44-44
48-48: Add alt text to images in the "Batch deletion" section
-
+
-
+Also applies to: 52-52
58-59: Add alt text to images in the "Copy key values" section
-
+
-
+
-
+Also applies to: 64-64
68-68: Add alt text to images and enhance t() function documentation
-
+
-
+
-
+Consider adding a brief explanation of the t() function's syntax and purpose, for example:
> **说明:** t() 是国际化函数,用于根据当前语言环境返回对应的翻译文本。函数接受词条的key值作为参数。Also applies to: 71-71, 75-75
left a comment
There was a problem hiding this comment.
Actionable comments posted: 31
🧹 Nitpick comments (118)
docs/about-materials/创建物料资产包.md (3)
5-6: Consider improving the formatting of the step-by-step processThe steps for creating a material asset package could be more readable.
Consider this format:
-用户可以在生态中心创建物料资产包,*新建物料资产包* → *填写必要的字段* → *保存。* +用户可以在生态中心创建物料资产包,步骤如下: + +1. 点击"新建物料资产包" +2. 填写必要的字段 +3. 保存
8-8: Improve grammar in version control descriptionThe static analysis tool correctly identified a grammar issue in the Chinese text.
Consider this revision:
-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 +物料资产包的版本是用户自定义的,用户可以将物料资产包回退到任意一个版本。🧰 Tools
1-10: Consider adding more detailed informationThe documentation could benefit from additional sections:
- Prerequisites for creating material asset packages
- Field descriptions for the required information
- Examples of version naming conventions
- Troubleshooting section
Would you like me to help generate content for these additional sections?
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 formatFor 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 linesKeep 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 formattingThe 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 breaksThe content explanation would be more readable with proper paragraph breaks and punctuation:
-因为区块可以简单理解为组件的组合,content 内每个属性的含义也可以参考课程 如何发布组件,在那个课程里详细介绍了每个属性的含义。 -需要注意的是:区块录入之后,需要在设计器中发布区块之后,才能够加入物料包中使用,用户可以参考应用开发者-区块管理课程。 -也就是说,区块录入只是替代了在设计器里新建和搭建区块的步骤。 +因为区块可以简单理解为组件的组合,content 内每个属性的含义也可以参考课程《如何发布组件》,在那个课程里详细介绍了每个属性的含义。 + +需要注意的是:区块录入之后,需要在设计器中发布区块之后,才能够加入物料包中使用。用户可以参考《应用开发者-区块管理》课程。 + +也就是说,区块录入只是替代了在设计器里新建和搭建区块的步骤。
1-9: Consider adding more comprehensive content sectionsThe 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:
- Adding a brief explanation of their intended future use
- Or removing them from the documentation if they're not relevant to users
docs/ecosystem-center/发布其他生态.md (2)
1-2: Fix heading formattingThe 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 languageThe content would be more readable with better structure and some language improvements.
Consider restructuring the content as follows:
-插件仓库地址为插件 npm 包所在的仓库地址 -版本号决定了安装哪一个版本的 npm 包 -被标识为官方的插件会显示"官方"字样 -被标识为默认的插件会在创建设计器时默认被选中 -公开决定了插件的可见范围,私有代表仅自己可见,公开代表所有用户可见,半公开只对选中组织内的用户可见 +### 基本信息 +- **仓库地址**:插件 npm 包所在的仓库地址 +- **版本号**:指定要安装的 npm 包版本 + +### 插件标识 +- **官方标识**:标记为官方的插件会显示"官方"标记 +- **默认选中**:标记为默认的插件会在创建设计器时自动选中 + +### 可见范围 +插件可以设置以下可见范围: +- **私有**:仅自己可见 +- **公开**:所有用户可见 +- **半公开**:仅选中组织内的用户可见This structure:
- Improves readability with clear sections
- Uses proper bullet points for better organization
- Fixes passive voice constructions
- 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 formatThe 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 descriptionsThe 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 documentationThe response schema documentation could be improved by:
- Adding example values
- Providing more detailed field descriptions
- Documenting error responses and status codes
- Adding validation rules where applicable
Also applies to: 71-78, 119-126, 153-160
4-6: Remove redundant anchor tagsThe 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 documentationThe optional query parameters documentation could be enhanced by:
- Adding parameter type information
- Providing example values that demonstrate valid formats
- Documenting default values if any
docs/basic-features/页面和区块预览.md (4)
1-6: Grammar improvements needed in the introductionThe 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 documentationThe before/after structure is good, but consider these improvements:
- Add more descriptive alt text instead of "Alt text"
- Consider adding image captions or descriptions to better explain what users should observe
Example improvement:
- + + +*Figure 1: Page structure as displayed in the canvas editor*
21-25: Consider expanding feature descriptionsThe 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 goodThe 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:
- Troubleshooting common issues
- Browser compatibility notes
- 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 documentationThe directory structure explanation could be improved by:
- Using a proper Markdown code block with 'tree' syntax highlighting
- 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 documentationThe JSON schema example needs improvements:
- Use proper JSON syntax highlighting
- Add comments explaining the purpose of each configuration section
- 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 exampleThe plugin configuration example needs improvements:
- Add comments explaining the purpose of each section
- 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 featuresWhile 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 sentencesPlease correct the following grammar issues:
- Line 34: "膨胀的非常巨大" should be "膨胀得非常巨大"
- 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:
- A troubleshooting section with common issues and solutions
- Examples of combining multiple customization approaches
- Best practices and performance considerations
- Links to related API documentation
docs/about-materials/介绍.md (4)
1-4: Consider adding a brief introduction paragraphTo 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 definitionConsider using bold text for key terms and adding bullet points for better readability.
-物料是可视化页面搭建的原料,按照粒度可分为组件库和区块 +物料是可视化页面搭建的原料,按照粒度可分为以下两类: + +* **组件库**:较小粒度的基础构建单元 +* **区块**:较大粒度的业务单元
10-11: Consider adding practical examples or referencesTo enhance the documentation's value, consider:
- Adding a link to the material asset package configuration schema or example
- 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 navigationFor 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 introductionThe 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 detailsWhile the current structure is clear, consider the following improvements:
- Add step-by-step instructions for each operation
- Include any prerequisites or important notes
- Mention any limitations or common issues users might encounter
- 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 detailsThe mention of the ecosystem center could be more helpful with:
- A link to the ecosystem center documentation
- Brief steps on how to access it
- Prerequisites for adding custom components
-* 用户也可以在生态中心录入自己的组件库与区块。 +* 用户也可以在生态中心录入自己的组件库与区块: + 1. 访问[生态中心](#)(需添加实际链接) + 2. 登录您的账号 + 3. 按照[组件开发指南](#)(需添加实际链接)开发您的组件 + 4. 提交组件到生态中心docs/practical-cases/SMB轻量应用服务.md (4)
21-24: Improve list formattingThe 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 pointsConsider 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 sectionsThis 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 navigationConsider 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 conventionThe 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"
- +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:
- Consider moving images to a centralized assets directory for better organization
- Consider adding alt text descriptions for all images to improve accessibility
- Consider implementing a documentation translation strategy, possibly using i18n tooling
docs/advanced-features/集成ChatGPT搭建简单页面能力.md (1)
14-16: Consider adding example promptsThe 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 pathThe import statement
import { FooService, BarService } from '...'uses a relative path. Consider specifying the full import path for better clarity.
7-9: Add example use casesConsider 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 examplesReplace 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 documentationThe 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 的文档 
docs/advanced-features/区块管理.md (3)
13-14: Fix directory structure formattingThe 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 practicesThe 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 managementThe 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 prerequisitesThe 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 readabilityThe 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 locallyThe external image URL (
https://res.hc-cdn.com/lowcode-portal/1.1.65/img/home/top-banner.jpg) might not be persistent. Consider:
- Hosting the image within the repository
- Using a more stable URL
- Adding a fallback image
This ensures the tutorial remains functional even if the external resource becomes unavailable.
1-46: Consider enhancing document navigationThe tutorial is well-structured, but could be improved with:
- A table of contents at the beginning
- Estimated time to complete
- Prerequisites section
- Troubleshooting section
- 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 specificityConsider the following improvements to the requirements section:
- Specify the minimum required pnpm version
- 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 consistencyThe 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 documentationThe directory structure example uses "..." without explaining which parts are omitted. Consider:
- Adding a comment to explain what "..." represents
- 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 documentationThe configuration example could be improved in several ways:
- The commented line
// "component": "I18nConfigurator"seems important - consider explaining why it's commented out and when to use it- The truncated sections (
//...) should be expanded or linked to full examples- 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 contextThe documentation is well-structured but could be improved by:
- Adding a table of contents for better navigation
- Including links to related documentation (TinyVue, Vue.js v-model)
- Adding troubleshooting section for common issues
- 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 readabilityThe code blocks are well-structured but could benefit from some improvements:
- Add comments to explain key directories in the project structure
- Use consistent indentation in the plugin export example
- 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.vueAlso applies to: 79-83, 88-98, 105-119
60-61: Consider adding implementation detailsThe technical content would benefit from:
- Code examples showing Antv X6 integration with TinyEngine
- Specific examples of plugin communication and state management
- 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 phrasesSeveral 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 navigationConsider 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 readabilityThe Vue.js code examples are accurate but could be improved:
- Remove the commented filename on line 13 and use a proper code block title
- 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 namingThe state variable
this.state.gggggappears to be a placeholder or example name. Consider using a more meaningful variable name that better represents its purpose, such asthis.state.menuTitleorthis.state.headerText.
156-158: Enhance internationalization supportThe 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:
- Add a table of contents at the beginning
- Include links to related documentation (API overview, ecosystem center, etc.)
- Add a "下一步" (Next Steps) section at the end
docs/basic-features/使用组件.md (2)
20-20: Fix grammatical issue in Chinese textThe phrase "很好的" should be "很好地" when modifying a verb.
-直接拖拽并不能很好的拖入到指定的层级中 +直接拖拽并不能很好地拖入到指定的层级中🧰 Tools
🪛 LanguageTool
[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...(wb4)
1-72: Overall documentation review summaryThe documentation is well-structured and provides comprehensive guidance on using components in the low-code platform. To improve it further:
- Ensure all referenced images are properly uploaded and linked
- Fix the grammatical issue in the canvas section
- Consider adding a conclusion section
Consider organizing the images in a more structured way:
- Use semantic names for images (e.g.,
component-drag-demo.gifinstead ofdragComponent.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 exampleThe explanation of using
this.state.xxxwould 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: 1docs/advanced-features/数据源和Collection—mock数据.md (1)
13-14: Consider adding code example for Collection component configurationThe 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 exampleThe 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 accessibilityThe image reference lacks alt text which is important for accessibility. Consider adding descriptive alt text.
- +docs/advanced-features/循环渲染.md (1)
40-46: Improve code block formattingThe 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 identifierThe 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 demonstrationsThe GIF demonstrations lack descriptive alt text, which is important for accessibility.
- + - + - +Also applies to: 19-19, 48-48
docs/advanced-features/使用工具类方法 utils.md (1)
153-156: Consider enhancing the isNil utility functionWhile 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 formatThe 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 endpointThe 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、工具栏和插件栏.mdConsider 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 textChange "慢慢的增加" 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 sectionThe core features section could benefit from more detailed explanations:
- Specify what the CLI tool provides and how it helps
- Explain the Layout component's customization capabilities
- Define what "元服务" and "元应用" mean in this context
- 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 snippetThe code example should demonstrate proper error handling for the
generatemethod.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 documentationThe
IConfigtype is used but not documented. Consider:
- Adding the complete
IConfiginterface definition- Documenting each configuration option
- Providing example configurations for common use cases
220-222: Consider inlining essential type definitionsWhile linking to GitHub is good for comprehensive type definitions, consider:
- Including essential type definitions directly in the documentation
- Adding a brief description of what users can expect to find in the GitHub link
- 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 clarityThe 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 constantsThe 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 descriptionsThe
IConfiginterface 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 IInsertPositionUsing an enum for
IInsertPositionwould 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 relationshipThe 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 typesThe Vue component example could be improved by:
- Adding error handling for when
getMergeMetareturns null- Including TypeScript type annotations
- Adding comments explaining the
compparameterConsider 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 exampleThe 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 definitionThe 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 functionThe three main functions of the registry are well-defined, but would benefit from concrete examples demonstrating each capability:
- How configuration is passed to the engine
- How default and custom configurations are merged
- How inter-service communication works
94-104: Add error handling to configuration retrieval exampleThe 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
⛔ Files ignored due to path filters (226)
docs/about-applications/imgs/appCreateOne.pngis excluded by!**/*.pngdocs/about-applications/imgs/appCreateTwo.pngis excluded by!**/*.pngdocs/about-applications/imgs/appDevOne.pngis excluded by!**/*.pngdocs/about-applications/imgs/appDevTwo.pngis excluded by!**/*.pngdocs/about-designer/imgs/buildPlatform1.pngis excluded by!**/*.pngdocs/about-designer/imgs/buildPlatform2.pngis excluded by!**/*.pngdocs/about-designer/imgs/createPlatform.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineDsl.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineMaterial.pngis excluded by!**/*.pngdocs/about-designer/imgs/definePlugs.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineTheme.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineTools.pngis excluded by!**/*.pngdocs/about-designer/imgs/platformExpend.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterial.gifis excluded by!**/*.gifdocs/about-materials/imgs/createMaterialBlock.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialBlockCancel.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialLib.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialLibCancel.pngis excluded by!**/*.pngdocs/about-materials/imgs/materialPanel.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ScreenShot_20241029195609.pngis excluded by!**/*.pngdocs/advanced-features/imgs/add-Function.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addAiPlugin.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addVar-17.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addVar-19.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addvar-15.pngis excluded by!**/*.pngdocs/advanced-features/imgs/askToModifyPage.pngis excluded by!**/*.pngdocs/advanced-features/imgs/bindEvent.gifis excluded by!**/*.gifdocs/advanced-features/imgs/bindVariable-16.pngis excluded by!**/*.pngdocs/advanced-features/imgs/bindVariable-18.pngis excluded by!**/*.pngdocs/advanced-features/imgs/blockBaseSetting.pngis excluded by!**/*.pngdocs/advanced-features/imgs/blockExposeAttr.gifis excluded by!**/*.gifdocs/advanced-features/imgs/blockexposeattrusage.gifis excluded by!**/*.gifdocs/advanced-features/imgs/conditionRender.gifis excluded by!**/*.gifdocs/advanced-features/imgs/createBlockFromPage.gifis excluded by!**/*.gifdocs/advanced-features/imgs/createEmptyBlock.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource5.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource7.pngis excluded by!**/*.pngdocs/advanced-features/imgs/defineslot.gifis excluded by!**/*.gifdocs/advanced-features/imgs/icon-code.pngis excluded by!**/*.pngdocs/advanced-features/imgs/openAiWindow.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJs.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsContent.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsJsxFunc.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsMethod.pngis excluded by!**/*.pngdocs/advanced-features/imgs/parseJxBindingJsxFunc.pngis excluded by!**/*.pngdocs/advanced-features/imgs/parseJxBindingJsxFuncResult.pngis excluded by!**/*.pngdocs/advanced-features/imgs/state-isLogin为false时.pngis excluded by!**/*.pngdocs/advanced-features/imgs/state-isLogin为ture时.pngis excluded by!**/*.pngdocs/advanced-features/imgs/use-npm.pngis excluded by!**/*.pngdocs/advanced-features/imgs/useBlock.pngis excluded by!**/*.pngdocs/advanced-features/imgs/useLoop.gifis excluded by!**/*.gifdocs/advanced-features/imgs/usingslot.gifis excluded by!**/*.gifdocs/advanced-features/imgs/utils4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/viewRender.pngis excluded by!**/*.pngdocs/basic-features/imgs/addComponent-13.pngis excluded by!**/*.pngdocs/basic-features/imgs/addFolder.pngis excluded by!**/*.pngdocs/basic-features/imgs/addPage.pngis excluded by!**/*.pngdocs/basic-features/imgs/addVar.pngis excluded by!**/*.pngdocs/basic-features/imgs/addWords.pngis excluded by!**/*.pngdocs/basic-features/imgs/bindVariable-25.pngis excluded by!**/*.pngdocs/basic-features/imgs/canvasoverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseClickCompontes.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseComponent.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseComponentID.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseFile.pngis excluded by!**/*.pngdocs/basic-features/imgs/clickNode.pngis excluded by!**/*.pngdocs/basic-features/imgs/componentDown.pngis excluded by!**/*.pngdocs/basic-features/imgs/componentUp.pngis excluded by!**/*.pngdocs/basic-features/imgs/copyComponent.pngis excluded by!**/*.pngdocs/basic-features/imgs/copyKeyValue.pngis excluded by!**/*.pngdocs/basic-features/imgs/createApp.pngis excluded by!**/*.pngdocs/basic-features/imgs/createFolder.pngis excluded by!**/*.pngdocs/basic-features/imgs/createPage.pngis excluded by!**/*.pngdocs/basic-features/imgs/delBatchWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/delWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/deleteClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/dragComponent.gifis excluded by!**/*.gifdocs/basic-features/imgs/editClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/editClassNameStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/editGlobalStyleNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/editWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/eventOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-add.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-code.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-copy.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-del.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-edit.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-i18n.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-page.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-tree.pngis excluded by!**/*.pngdocs/basic-features/imgs/inlineSettingResultNew.pngis excluded by!**/*.pngdocs/basic-features/imgs/inlineStyleBindVar.gifis excluded by!**/*.gifdocs/basic-features/imgs/inlineStyleSettingNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/inserPosition.pngis excluded by!**/*.pngdocs/basic-features/imgs/insertComponent.gifis excluded by!**/*.gifdocs/basic-features/imgs/lifecycle.gifis excluded by!**/*.gifdocs/basic-features/imgs/modifyStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/modifyVar.pngis excluded by!**/*.pngdocs/basic-features/imgs/modifyedStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/pageManaHistoryRestore.pngis excluded by!**/*.pngdocs/basic-features/imgs/pageManaIndex.pngis excluded by!**/*.pngdocs/basic-features/imgs/pagedelOrCopy.pngis excluded by!**/*.pngdocs/basic-features/imgs/platformExpend.pngis excluded by!**/*.pngdocs/basic-features/imgs/pluginoverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview-btn.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview-pre.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview.pngis excluded by!**/*.pngdocs/basic-features/imgs/selectClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/selectParentID.pngis excluded by!**/*.pngdocs/basic-features/imgs/setClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/setClassNameStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentAttr.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentBaseAttr.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/setStyleHoverNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/settingPanelOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/state1.gifis excluded by!**/*.gifdocs/basic-features/imgs/state2.gifis excluded by!**/*.gifdocs/basic-features/imgs/state3.pngis excluded by!**/*.pngdocs/basic-features/imgs/stylePanelOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/styleSettingResult1.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingResult2.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/toolbaroverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/treeselectOverview.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/cli-create-plugin.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/cli-plugin-open.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/tiny-engine-cli-open.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/tiny-engine-cli.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigBase.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigSchema.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigTec.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentLibInfo.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology1.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology2.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology3.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/TinyEngineSchem2Code.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/customGenCodePlugin.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/exportcode.gifis excluded by!**/*.gifdocs/extension-capabilities-tutorial/code-output-function/imgs/pageGenerate.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/vuetemplate.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/custom-plugin-page-full.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/custom-plugin-page-pos.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/input-configurator.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/my-input-configurator.gifis excluded by!**/*.gifdocs/extension-capabilities-tutorial/imgs/plugin1.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin2.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin3.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin4.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin5.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin6.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin7.pngis excluded by!**/*.pngdocs/getting-started/imgs/addComponent.pngis excluded by!**/*.pngdocs/getting-started/imgs/addState.pngis excluded by!**/*.pngdocs/getting-started/imgs/bangEnv.pngis excluded by!**/*.pngdocs/getting-started/imgs/firstPage.pngis excluded by!**/*.pngdocs/getting-started/imgs/imgswitch.pngis excluded by!**/*.pngdocs/getting-started/imgs/page1.pngis excluded by!**/*.pngdocs/getting-started/imgs/preImgChange.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSrc.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSta.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSty.pngis excluded by!**/*.pngdocs/getting-started/imgs/showImg.pngis excluded by!**/*.pngdocs/getting-started/imgs/tinyengine.pngis excluded by!**/*.pngdocs/practical-cases/imgs/app.pngis excluded by!**/*.pngdocs/practical-cases/imgs/blockProps.pngis excluded by!**/*.pngdocs/practical-cases/imgs/blockSettings.pngis excluded by!**/*.pngdocs/practical-cases/imgs/code.pngis excluded by!**/*.pngdocs/practical-cases/imgs/download.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230919202709-5khs9h1.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920083516-hg4vhhs.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920084925-yirmz91.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920093120-jdzux3h.pngis excluded by!**/*.pngdocs/practical-cases/imgs/pdm.pngis excluded by!**/*.pngdocs/practical-cases/imgs/process.pngis excluded by!**/*.pngdocs/practical-cases/imgs/smbHome.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block1.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block2.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_code.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_code3.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_1.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_10.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_2.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_4.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_5.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_6.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_7.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_8.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_9.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-10.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-11.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-12.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-2.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-3.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-4.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-5.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-6.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-7.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-8.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-9.pngis excluded by!**/*.pngdocs/solutions/imgs/block-publish-db-1.pngis excluded by!**/*.pngdocs/solutions/imgs/create_block.pngis excluded by!**/*.pngdocs/solutions/imgs/events.pngis excluded by!**/*.pngdocs/solutions/imgs/npm1.pngis excluded by!**/*.pngdocs/solutions/imgs/npm2.pngis excluded by!**/*.pngdocs/solutions/imgs/npm3.pngis excluded by!**/*.pngdocs/solutions/imgs/property.pngis excluded by!**/*.pngdocs/solutions/imgs/publish_block.pngis excluded by!**/*.pngdocs/solutions/imgs/publish_block2.pngis excluded by!**/*.pngdocs/solutions/imgs/save_block.pngis excluded by!**/*.pngdocs/solutions/imgs/slots.pngis excluded by!**/*.pngdocs/solutions/imgs/snippets.pngis excluded by!**/*.pngdocs/solutions/imgs/synchronize-materials.pngis 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 的文档 
[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: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。
...
(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: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 
[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 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: 
docs/advanced-features/区块管理.md
[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...
(wb4)
[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 
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:
- Based on PR objectives, there are known issues with missing images
- The alt text could be more descriptive
-
+✅ 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.pngis 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:
- Ensure the image exists in the correct relative path
- 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:
- The image file
exportcode.gifexists in theimgsdirectory - 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:
- Add alt text with more descriptive information
- Consider using absolute paths with the public URL of your documentation site
Example improvement:
-
+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.pngdefineTheme.pngdefineDsl.pngdefineTools.pngdefinePlugs.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:
- The image file exists at the specified path
- The image is properly committed to the repository
- 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:
-
+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
imgsdirectory exists atdocs/about-materials/imgs/ - All referenced images are present in their expected locations:
createMaterialLib.pngcreateMaterialBlock.pngcreateMaterialLibCancel.pngcreateMaterialBlockCancel.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:
- Add alt text to improve accessibility
- Verify that the images exist in the specified path, as PR objectives mention missing images
Consider updating the image references with meaningful alt text:
-
+
-
+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:
- Committed to the repository
- Located in the correct relative path
- 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.pngdocs/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:
- All images are properly uploaded to the
./imgs/directory - Image paths are correctly specified
- 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:
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:
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:
-
The builtin.json confirms the Slot component implementation with matching properties:
nameproperty for slot namingparamsproperty for scoped slot parameters
-
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
- Core slot component:
-
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:
- The referenced images exist in the correct path (
./imgs/tinyengine.pngand./imgs/firstPage.png) - 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:
🏁 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:
- The documentation files have not been added to the repository yet
- The files exist in a different location than expected
- 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:
- The files are organized in subdirectories matching the catalog structure
- Sample verification of files from different sections all returned positive results
- 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:
- Deep vs shallow merging behavior
- Array concatenation vs replacement
- 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?
left a comment
There was a problem hiding this comment.
Actionable comments posted: 12
🧹 Nitpick comments (19)
docs/api/物料API.md (2)
4-23: Enhance code block readability with language specifierThe code block should specify the language for proper syntax highlighting.
-``` +```javascript export default { id: 'engine.plugins.materials', // ... }
16-16: Add documentation forbasePropertyOptionsThe
basePropertyOptionsconfiguration 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 documentationThe statePageState object documentation needs improvements:
- Add language specifier to the code block
- Document the hidden property
currentPageproperly 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 documentationThe line contains a duplicate comma and an incomplete sentence.
- setState,,// 转接的方法, 调用render的setState + setState, // 转接的方法, 调用render的setStateAlso applies to: 76-76
docs/api/主包API.md (2)
10-54: Organize exports by category for better readabilityThe 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 forgetMergeMetaandgetMergeRegistryThe 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 formatThe 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
idparameter should include:
- Valid value ranges
- Format requirements
- Example values
1-266: Standardize API response structure and documentation language.Consider the following improvements for consistency:
- Standardize response structure across all endpoints
- Choose a single language (Chinese or English) for documentation
- Use consistent terminology throughout the document
- 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.
- Replace hard tabs with spaces for better compatibility across different editors.
- 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:
- TypeScript type annotations for better type safety
- 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
onKeyDownbut 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 formattingThe 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 formatThe 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 documentationThe 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 documentationThe 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 textThe document uses bold text for section headers. Convert these to proper Markdown headings for better structure and consistency.
Replace with:
-**Headers** +### Headers -**Body** +### BodyAlso 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
⛔ Files ignored due to path filters (1)
docs/api/imgs/bindEventApi.pngis 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)
55d8dc8 to
dbb7ddd
Compare
left a comment
There was a problem hiding this comment.
Actionable comments posted: 4
🔭 Outside diff range comments (1)
docs/README.md (1)
89-109:⚠️ Potential issueReview Incomplete Formatting on Line 109
The last line ("109") appears incomplete and might be an inadvertent remnant. Please verify and complete or remove any unintended content.
♻️ Duplicate comments (1)
docs/api/backend-api/data-source-management.md (1)
88-97:⚠️ Potential issueEnsure Consistent Parameter Types in API Schema.
There is an inconsistency in the parameter types for certain fields (e.g.tplandappare defined as numbers in the request but appear as strings in the response). To prevent integration issues, the response schema should mirror the request schema. For example:-"tpl": { "type": "string" }, -"app": { "type": "string" }, +"tpl": { "type": "number" }, +"app": { "type": "number" },This change should be reviewed carefully to align with the backend implementation.
🧹 Nitpick comments (68)
docs/about-materials/add-library-and-blocks.md (1)
1-19: Well-structured documentation section.The new section “如何添加组件库与区块” is clear and concise. The step-by-step instructions with supporting images enhance user understanding. Please verify that all image files exist at the specified paths and consider providing more descriptive alt texts for improved accessibility.
docs/getting-started/quick-start.md (1)
1-47: Clear and comprehensive Quick Start guide.This guide effectively walks users through a practical example of using TinyEngine with detailed steps and visual aids. Ensure that all referenced images are present and that their alt texts provide sufficient information for users who rely on accessibility features.
docs/ecosystem-center/publish-other-ecosystems.md (1)
1-9: Informative section on publishing ecosystems.This newly added section clearly outlines the process for publishing plugins—including details on repository addresses, versioning, and visibility rules.
Consider refining the phrasing on lines 7–8 for a more natural flow in Chinese. For example, instead of “被标识为官方的插件会显示‘官方’字样”, consider “官方标识的插件会显示‘官方’字样”.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...(wa3)
[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...(wa3)
🪛 markdownlint-cli2 (0.17.2)
1-1: Headings must start at the beginning of the line
null(MD023, heading-start-left)
docs/about-applications/develop-application.md (1)
1-11: Comprehensive application development guide.The added sections “关于应用”, “如何去开发应用”, and “可视化设计器” provide clear and concise instructions supported by relevant images. Please check that the image paths are formatted correctly (avoid extra spaces) and that all images are accessible.
docs/advanced-features/conditional-rendering.md (2)
1-31: Clear explanation of conditional rendering.The step-by-step guide, complete with numbered instructions and visual aids, offers a practical introduction to implementing conditional rendering. Ensure that all image links are valid and that the layout remains consistent for a seamless user experience.
27-29: Fix typographical error.In the label “图 4 state.isLogin为ture时”, “ture” appears to be a typo. Please correct it to “true” for clarity.
docs/about-materials/create-material-asset-package.md (1)
8-8: Improve Language Clarity
The sentence“物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本.”
could be improved by adding a measure word before “版本” for better readability. For example, consider replacing “任一版本” with “任一个版本”.
-物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。 +物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一个版本。docs/basic-features/internationalization.md (2)
7-7: Add Alt Text for Improved Accessibility
The image on line 7 currently lacks alternative text. Adding a descriptive alt attribute (e.g., "说明图标") will enhance accessibility.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
7-7: Images should have alternate text (alt text)
null(MD045, no-alt-text)
16-16: Include Descriptive Alt Text for Icon Image
Similarly, the image on line 16 would benefit from descriptive alt text. For instance, you could change

to

to meet accessibility standards.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
16-16: Images should have alternate text (alt text)
null(MD045, no-alt-text)
docs/basic-features/state-management-and-variable-binding.md (1)
7-7: Correct Typo in Image Alt Text
The alt text in the image markdown on line 7 reads "". Consider correcting "Sate" to "State" for clarity and accuracy.
- +docs/basic-features/page-management.md (1)
17-29: Step-by-Step Instructions for Basic Operations
The clear instructions for creating new folders and pages are valuable. Consider adding a note about error handling or what to do if an operation fails, to guide users further.docs/advanced-features/data-source-and-collection-remote-fields.md (1)
16-27: Improve Code Example Formatting in Callback Function
The JavaScript callback example for parsing remote data (lines 18–27) would benefit from consistent indentation and formatting to improve clarity. For instance, consider applying a diff such as:-function dataHandler(data) { - return data.map(v => { - return { - name: v.aa.ss, - status: v.status - } - }) -} +function dataHandler(data) { + return data.map(v => { + return { + name: v.aa.ss, + status: v.status + }; + }); +}This refactor enhances readability without changing the functionality.
docs/ecosystem-center/how-to-import-library.md (1)
43-55: Detailed Advanced Attributes and Configuration
The section covering advanced attributes (lines 43–55) is comprehensive. The table is extensive and clearly written. Consider a brief review of LanguageTool suggestions (e.g., for adverbial phrasing) to potentially enhance clarity, though these are minor stylistic remarks.docs/development-getting-started/dev-quick-start.md (1)
37-39: Consistent Use of Images and Code Examples
Throughout the document, images (e.g., “lowcode-designer”, “cli-create-plugin”, “打开默认设计器”) and code blocks are used effectively to support the step-by-step instructions. While the alt text is functional, consider enhancing them slightly for better context (e.g., “Snapshot of the created low-code designer directory” instead of just “lowcode-designer”). This is a minor nitpick and not critical.Also applies to: 53-56, 66-69, 100-108
docs/extension-capabilities-tutorial/develop-configurator-components.md (3)
25-64: Script Block – Chained Methods FormattingThe logic in the
setupfunction and the event emission is correct. However, the chained method calls in thechangefunction (lines 50–53) could be reformatted for improved readability and to avoid potential issues with JavaScript automatic semicolon insertion. For example:- const change = (val) => { - value.value = val - .split('') - .filter((c) => /[A-Za-z0-9]/.test(c)) // 判断字符串中的每个字符是否属于字母或者数字 - .join('') - emit('update:modelValue', value.value) - } + const change = (val) => { + value.value = val.split('') + .filter((c) => /[A-Za-z0-9]/.test(c)) + .join(''); + emit('update:modelValue', value.value); + }This refactor enhances clarity.
66-67: Typographical ImprovementThere appears to be a minor typo in the sentence: “写设置器组件和平时写地组件似乎没有很大区别”. Consider correcting “写地组件” to “写组件” for clarity.
87-141: JSON Configuration Example for Material UsageThe JSON snippet effectively illustrates how to integrate the custom configurator component within a material configuration. For documentation clarity, you might consider removing commented-out lines if they are not needed in the final version.
docs/extension-capabilities-overview/new-architecture.md (2)
3-7: Content Clarity and Grammatical SuggestionThe section explaining why the new architecture is necessary is well written. One suggestion: in the sentence mentioning “TinyEngine引擎官方在慢慢的增加新特性,” consider changing “慢慢的增加” to “慢慢地增加” to align with proper adverbial usage.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...(wb4)
8-10: Overview of the New ArchitectureThe introduction of the new extensible architecture (“洛书架构”) is concise and sets the stage for the upcoming details. Please verify the phrasing in line 10 related to adverbial modification, as noted by static analysis, to ensure it accurately conveys the intended meaning.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...(wb4)
docs/advanced-features/block-management.md (1)
68-68: Language Correction in DescriptionsIn the description for “区块描述” (line 68), consider revising “更好的明白” to “更好地明白” to comply with standard adverbial usage in Chinese.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...(wb4)
docs/api/backend-api/dsl-code-generation.md (2)
37-50: Output Example DetailingThe output example is comprehensive and shows all the necessary fields along with inline comments. If these comments are for documentation purposes only, ensure they are not mistaken for literal JSON content if copy-pasted into an application.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]输出示例:
<cod...(UNLIKELY_OPENING_PUNCTUATION)
48-48: Minor Formatting CheckThere is a minor note regarding punctuation and spacing in the JSON output example at line 48. Please double-check to ensure consistency throughout the document.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]输出示例:
<cod...(UNLIKELY_OPENING_PUNCTUATION)
docs/basic-features/using-components.md (1)
18-24: Suggestion for Minor Language ImprovementIn the “从画布中直接添加组件” section, the sentence on line 20:
“对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中”
could be revised to “直接拖拽并不能很好地拖入到指定的层级中” to conform to proper Chinese adverbial usage.🧰 Tools
🪛 LanguageTool
[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...(wb4)
docs/api/backend-api/app-services.md (1)
83-117: Well-Documented Preview Metadata EndpointThe “页面/区块预览用元数据” section is detailed and makes good use of HTML tables to document the response structure. If project guidelines allow, consider converting these HTML tables into native Markdown tables for consistency and easier maintenance.
docs/api/frontend-api/settings-panel-api.md (1)
5-5: Minor Language SuggestionConsider revising line 5 from “变量绑定列表中的变量可能来自于其他元应用” to “变量绑定列表中的变量可能来自其他元应用” for a more concise expression.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...(wb2)
docs/practical-cases/graphical-element-arrangement-designer.md (5)
1-6: Title and Initial Image Block – Check for Extraneous Characters and Image Link Validity
The title and introductory image are properly inserted. However, line 3 appears to contain an invisible or extraneous character. Please verify and remove any unintended characters.
15-22: Requirements and Design Considerations – Minor Language Suggestion
The “述求与选型” section explains the design rationale well. Consider revising the phrase “能力自定义渲染” to “自定义渲染能力” for improved clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。 考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...(wa5)
30-32: Typo in Framework Name
In line 32, the text reads “最终决定使用TinyEinge开发图元编排设计器.” Please correct “TinyEinge” to “TinyEngine” to avoid confusion.
60-64: Prototype Section – Image and Descriptions
The “快速原型” section is informative with images that illustrate the prototype. Please ensure the alternate texts for images accurately describe the visuals if possible.
122-127: Summary Section
The summary effectively reiterates the benefits of the approach. Consider a minor language polish (e.g., ensuring consistent adverb usage), but this is optional.🧰 Tools
🪛 LanguageTool
[uncategorized] ~127-~127: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:优秀"地"插
Context: ...TinyEngine的基础引擎能力,快速搭建出PoC原型,再此基础上,利用其优秀的插件架构和提供的插件公共能力,添加业务相关插件,快速开发出一个领域定制的专属设计...(wb4)
docs/basic-features/page-and-block-preview.md (3)
1-4: Section Title and Preface
The title “页面/区块预览” and the “前言” section clearly set the stage. There is a minor suggestion to review the phrasing – phrases like “直观的感受到” could be streamlined to “直观感受”.
7-10: Preview Entry Section
The “页面/区块预览入口” section includes an image that appears correctly linked. Ensure that the alternate text is descriptive; “Alt text” is quite generic.
11-20: Example Section – Visual Demonstrations
The “示例” section is straightforward and clearly illustrates the page structure and preview effects. For improved accessibility, consider providing more descriptive alt texts for the images.docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md (1)
32-40: Rationale Behind Code Output – Language Refinement Suggestion
The “为什么需要出码” section is well articulated. However, note the following minor language improvements based on static analysis hints:
- Change “代码会膨胀的非常巨大” to “代码会膨胀得非常巨大”.
- Change “相对完美的解决” to “相对完美地解决”.
These adjustments will improve the grammatical accuracy.🧰 Tools
🪛 LanguageTool
[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...(wb4)
[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...(wb4)
docs/extension-capabilities-tutorial/ai-plugin-configuration.md (1)
23-35: Usage Instructions for Starting AI Plugin
The section detailing how to use the AI plugin (e.g., clicking the dialogue, choosing the model, and inputting a question) is clear and visually supported. One minor suggestion: the header in line 23 (“- ### 前后端代码启动后使用 AI 插件”) includes a dash (“-”) which may be unintentional—consider removing it for consistency.docs/advanced-features/advanced-panel-settings.md (1)
5-11: Conditional Rendering Section Explanation
The “条件渲染” section explains the use-case and provides a simple example. The instructions are clear. A minor suggestion might be to review sentence structures for tighter phrasing, but this is optional.docs/solutions/block-lan-release-solution.md (6)
102-110: Adverb Usage Correction in Unpkg Section
In line 108, the phrase “如能显示 js 文件内容” would be clearer as “如能正确地显示 js 文件内容” to use the proper adverb “正确地.”🧰 Tools
🪛 LanguageTool
[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正确"地"显示
Context: ...正常发布在私仓上,如果想要在TinyEngine的页面上去获取到私仓里的包,正确的显示区块,我们还需要借助unpkg去获取到包的数据,而由于公网的unpkg无法直...(wb4)
192-196: Minor Text Correction in Design Rationale
Consider revising “使得区块的使用不在依赖于公网环境和cdn” to “使得区块的使用不再依赖于公网环境和cdn” for improved clarity.
265-293: Suggestion for Enhanced Error Handling
In the publish method implementation (lines 265–293), adding error handling or logging around the file read operations would improve robustness in production scenarios.
181-181: Adverb Subtlety in Usage Description
On line 181, consider changing “正常的使用区块功能” to “正常地使用区块功能” to correctly use the adverb form.🧰 Tools
🪛 LanguageTool
[uncategorized] ~181-~181: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正常"地"使用
Context: ...ng) 验证完成后,可以在物料中把刚才发布的区块进行添加,添加完毕后就可以正常的使用区块功能。 ## 五、服务部署 当前步骤都是在电脑本地环境下运行调试的,...(wb4)
335-354: API Implementation Review and Robustness
The implementation ofreadFileContentLink()(lines 335–354) properly decodes the base64 file content. It might be beneficial to add error checking to handle cases where file content is missing or decoding fails.
386-392: Overall Summary and Deployment Recommendations
The concluding summary effectively contrasts the two solutions. You may consider expanding on the trade-offs between using a private registry versus database storage to further guide the reader.docs/practical-cases/pdm-metadata-approval-workflow.md (1)
65-106: Deployment and Server-side Processing
The final section briefly explains the server-side handling and code generation process. Adding more detailed examples or further elaboration in future revisions could be useful for developers intending to implement these steps.docs/extension-capabilities-tutorial/code-output-function/official-code-output-api.md (2)
1-20: Naming Consistency ingenerateAppDefinitionThe documentation for the
generateAppfunction is clear and includes both usage and type definition examples. However, note that the function’s return type is indicated asCodeGenInstance(with an uppercase “C”) while later the interface is defined ascodeGenInstance(lowercase “c”). Consider standardizing the naming convention to avoid confusion.
21-40: Interface Definition for Code Generation InstanceThe section describing the
CodeGeneratoris well documented and the usage example is helpful. Please double-check that the interface name matches the return type of thegenerateAppfunction (as noted above) to ensure consistency across the API documentation.docs/extension-capabilities-overview/meta-services-and-meta-apps.md (1)
12-28: Usage Examples for Meta Applications and Meta ServicesThe examples provided—one using a Vue component and the other a JavaScript snippet—are clear and practical. Consider adding brief inline comments within the code snippets to further explain key steps (e.g., the significance of
getMergeMetaandgetMetaApi).docs/getting-started/introduction.md (1)
21-30: Enumerated Capabilities for TinyEngineThe bullet list clearly lays out TinyEngine’s features and benefits. One suggestion: In item 2, consider revisiting the phrasing “TinyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计…” to verify if the intended grammatical construction is best expressed as “强大地开放…” per standard Chinese usage.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...(wb4)
docs/api/frontend-api/material-api.md (1)
59-100: Thorough Coverage of theuseMaterialMeta ServiceThe description and code sample for
useMaterialeffectively document the methods available and the structure of the reactive state. For even greater clarity, consider adding inline type annotations or brief comments describing the purpose of key properties (such asthirdPartyDeps).docs/extension-capabilities-tutorial/customize-meta-service-logic.md (3)
11-26: Extending Services via OptionsThe first code example (in
myService.js) demonstrating the extension of service options is concise and clear. One suggestion is to include a brief note explaining that modifyingGlobalService.optionswill affect the service globally, which might have broader implications.
48-68: Extending Meta Service InterfacesThe example for extending meta service interfaces by modifying
GlobalService.apisis well demonstrated. Since the filemyService.jsis used again in this section, consider clarifying or separating these examples to avoid potential confusion for readers.
70-105: Inter-Service Communication via Publish-SubscribeThe final section on extending inter-service communication is a strong addition. The use of
subscribeandpublishis clearly illustrated, though it may help to harmonize the naming betweenCustomFooServiceandCustomBarServicefor better readability.docs/extension-capabilities-tutorial/customize-plugin-ui.md (1)
55-66: Vue Component Example – Custom PageThe Vue single-file component snippet is clear and demonstrates the basics of a custom page with a reactive title. Consider adding a brief comment about where developers might further extend this component if needed.
docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md (4)
13-33: Code Example: Defining customPluginThe example for defining a custom plugin using a default configuration is informative. One minor point: the function uses
merge(defaultOptions, options)without an explanation or import formerge. It might help to note that this function is assumed to be provided by a utility library or to include a remark on its origin.
84-113: Code Example: genWebHistoryRouter ImplementationThe
genWebHistoryRouterfunction is well demonstrated. Note that within the snippet, the variablerouteSnippetsis inserted into the generated file content but is not defined within the snippet. While this is acceptable for an example, you might consider adding a note or comment to clarify that the actual router generation logic should definerouteSnippets.
131-182: Code Example: parseSchema for PreprocessingThe
parseSchemafunction example effectively demonstrates how to traverse and preprocess thepageSchema. One suggestion: consider adding a null-check forpreFolderinside thewhileloop to guard against potential undefined values if the schema is not as expected.
205-251: Code Example: formatCode Plugin for Post-ProcessingThe
formatCodefunction is a practical example using Prettier to format generated code. A couple of points:
- The assignment
const mergedOption = options(line 221) assumes anoptionsvariable that isn’t defined in the snippet. Consider clarifying or providing a default options object.- The usage of modern methods such as
.at(-1)is acceptable but ensure your documentation notes the ES2022 requirement.docs/development-getting-started/dev-intro.md (1)
11-19: Feature List (“功能特性”) and ClarityThe features are listed in bullet points, making them easy to skim.
Note: In the item on line 16 (“允许接入第三方组件、允许定制扩展插件”), consider rephrasing to avoid potential ambiguity as flagged by language tools regarding parallel structure. For example, you might rephrase this to “支持接入第三方组件,并允许定制扩展插件” for clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...(s5)
docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md (1)
33-40: Clarify the Usage of Global Variables.
The example references a variable (blockBasePathon line 24) without any definition or explanation. It would be helpful to either define this variable or add a clarifying comment so that users know they must provide an appropriate value.docs/advanced-features/js-panel-and-event-binding.md (2)
90-90: Refine Redundant Expression.
The sentence in the JSX section reads “函数参数的定义来自于 TinyVue 的文档.” The redundancy of “来自” and “于” can be removed for conciseness.-函数参数的定义来自于 TinyVue 的文档 +函数参数的定义来自 TinyVue 的文档This minor change improves the clarity of the documentation.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 
100-102: Improve Adverbial Usage.
In the summary section, the text “很方便的提供一些状态获取方法” should use the adverbial form “很方便地提供” for grammatical correctness.-很方便的提供一些状态获取方法 +很方便地提供一些状态获取方法Addressing this will enhance the language quality of the document.
docs/api/backend-api/data-source-management.md (1)
97-102: Consider Adding a Validation Rules Section.
Adding a dedicated section for validation rules and constraints would further enhance the API documentation. This section could clarify acceptable formats, length constraints, and other requirements for parameters likename,app, andtpl.docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output.md (1)
88-113: Custom Plugin Replacement Example is Concise and Contextual.
The snippet that illustrates how to replace official plugins with custom ones is clear. One point of consideration: ensure that any custom plugin functions (e.g.customPluginItemorcustomRouterPlugin) referenced in the snippet are properly defined in your context or linked documentation, so that users do not encounter undefined references.docs/extension-capabilities-tutorial/how-to-develop-plugins.md (2)
88-100: UI Behavior & Image Demonstrations:
The section detailing the behavior ofisCloseLeftwith accompanying images (lines 89–100) is informative. Ensure that both “关闭按钮在 Header插槽后面” and “关闭按钮在 title 后面” images (plugin4.png,plugin5.png, andplugin6.png) are correctly linked and reflect the latest UI design.
155-208: Core API Integration – Schema Retrieval:
The “## 插件使用其他核心 API” section and its subsections (particularly “### 获取 Schema”) provide detailed JSON schema examples. For improved syntax highlighting, consider using a language specifier (e.g., ```json) in the fenced code blocks.docs/api/frontend-api/canvas-api.md (4)
7-23: Reactive State Object Example:
The code block (lines 7–23) shows the structure of the reactivestatePageStateobject. For improved syntax highlighting and readability, consider specifying the language (e.g., ```json) since the block resembles JSON.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
7-7: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
24-28: API Method Listing Introduction:
The introduction immediately following the JSON example describes additional API methods available viauseCanvas. The explanation is clear, though adding a language specifier (e.g., ```javascript) for the upcoming code block would be beneficial.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
25-25: Spaces inside code span elements
null(MD038, no-space-in-code)
28-28: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
28-56: Methods Exposed by useCanvas:
The fenced code block listing methods (lines 28–56) is extensive and detailed. To enhance readability and adhere to markdown best practices, specify the language (for example, ```javascript).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
28-28: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
137-142: Renderer Object Documentation:
The section describing therendererobject (lines 142–172) includes a list of methods from the canvas instance. Similar to the previous code blocks, specifying a language (e.g., ```javascript) in the fenced code block would improve clarity.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
142-142: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (221)
docs/about-applications/imgs/appCreateOne.pngis excluded by!**/*.pngdocs/about-applications/imgs/appCreateTwo.pngis excluded by!**/*.pngdocs/about-applications/imgs/appDevOne.pngis excluded by!**/*.pngdocs/about-applications/imgs/appDevTwo.pngis excluded by!**/*.pngdocs/about-designer/imgs/buildPlatform1.pngis excluded by!**/*.pngdocs/about-designer/imgs/buildPlatform2.pngis excluded by!**/*.pngdocs/about-designer/imgs/createPlatform.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineDsl.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineMaterial.pngis excluded by!**/*.pngdocs/about-designer/imgs/definePlugs.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineTheme.pngis excluded by!**/*.pngdocs/about-designer/imgs/defineTools.pngis excluded by!**/*.pngdocs/about-designer/imgs/platformExpend.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterial.gifis excluded by!**/*.gifdocs/about-materials/imgs/createMaterialBlock.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialBlockCancel.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialLib.pngis excluded by!**/*.pngdocs/about-materials/imgs/createMaterialLibCancel.pngis excluded by!**/*.pngdocs/about-materials/imgs/materialPanel.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ScreenShot_20241029195609.pngis excluded by!**/*.pngdocs/advanced-features/imgs/add-Function.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addAiPlugin.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addVar-17.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addVar-19.pngis excluded by!**/*.pngdocs/advanced-features/imgs/addvar-15.pngis excluded by!**/*.pngdocs/advanced-features/imgs/askToModifyPage.pngis excluded by!**/*.pngdocs/advanced-features/imgs/bindEvent.gifis excluded by!**/*.gifdocs/advanced-features/imgs/bindVariable-16.pngis excluded by!**/*.pngdocs/advanced-features/imgs/bindVariable-18.pngis excluded by!**/*.pngdocs/advanced-features/imgs/blockBaseSetting.pngis excluded by!**/*.pngdocs/advanced-features/imgs/blockExposeAttr.gifis excluded by!**/*.gifdocs/advanced-features/imgs/blockexposeattrusage.gifis excluded by!**/*.gifdocs/advanced-features/imgs/conditionRender.gifis excluded by!**/*.gifdocs/advanced-features/imgs/createBlockFromPage.gifis excluded by!**/*.gifdocs/advanced-features/imgs/createEmptyBlock.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/data-source-load-3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource2.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource3.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource5.pngis excluded by!**/*.pngdocs/advanced-features/imgs/dataSource7.pngis excluded by!**/*.pngdocs/advanced-features/imgs/defineslot.gifis excluded by!**/*.gifdocs/advanced-features/imgs/icon-code.pngis excluded by!**/*.pngdocs/advanced-features/imgs/openAiWindow.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJs.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsContent.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsJsxFunc.pngis excluded by!**/*.pngdocs/advanced-features/imgs/pageJsMethod.pngis excluded by!**/*.pngdocs/advanced-features/imgs/parseJxBindingJsxFunc.pngis excluded by!**/*.pngdocs/advanced-features/imgs/parseJxBindingJsxFuncResult.pngis excluded by!**/*.pngdocs/advanced-features/imgs/state-isLogin为false时.pngis excluded by!**/*.pngdocs/advanced-features/imgs/state-isLogin为ture时.pngis excluded by!**/*.pngdocs/advanced-features/imgs/use-npm.pngis excluded by!**/*.pngdocs/advanced-features/imgs/useBlock.pngis excluded by!**/*.pngdocs/advanced-features/imgs/useLoop.gifis excluded by!**/*.gifdocs/advanced-features/imgs/usingslot.gifis excluded by!**/*.gifdocs/advanced-features/imgs/utils4.pngis excluded by!**/*.pngdocs/advanced-features/imgs/viewRender.pngis excluded by!**/*.pngdocs/api/imgs/bindEventApi.pngis excluded by!**/*.pngdocs/basic-features/imgs/addComponent-13.pngis excluded by!**/*.pngdocs/basic-features/imgs/addFolder.pngis excluded by!**/*.pngdocs/basic-features/imgs/addPage.pngis excluded by!**/*.pngdocs/basic-features/imgs/addVar.pngis excluded by!**/*.pngdocs/basic-features/imgs/addWords.pngis excluded by!**/*.pngdocs/basic-features/imgs/bindVariable-25.pngis excluded by!**/*.pngdocs/basic-features/imgs/canvasoverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseClickCompontes.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseComponent.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseComponentID.pngis excluded by!**/*.pngdocs/basic-features/imgs/choseFile.pngis excluded by!**/*.pngdocs/basic-features/imgs/clickNode.pngis excluded by!**/*.pngdocs/basic-features/imgs/componentDown.pngis excluded by!**/*.pngdocs/basic-features/imgs/componentUp.pngis excluded by!**/*.pngdocs/basic-features/imgs/copyComponent.pngis excluded by!**/*.pngdocs/basic-features/imgs/copyKeyValue.pngis excluded by!**/*.pngdocs/basic-features/imgs/createApp.pngis excluded by!**/*.pngdocs/basic-features/imgs/createFolder.pngis excluded by!**/*.pngdocs/basic-features/imgs/createPage.pngis excluded by!**/*.pngdocs/basic-features/imgs/delBatchWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/delWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/deleteClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/dragComponent.gifis excluded by!**/*.gifdocs/basic-features/imgs/editClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/editClassNameStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/editGlobalStyleNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/editWord.pngis excluded by!**/*.pngdocs/basic-features/imgs/eventOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-add.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-code.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-copy.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-del.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-edit.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-i18n.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-page.pngis excluded by!**/*.pngdocs/basic-features/imgs/icon-tree.pngis excluded by!**/*.pngdocs/basic-features/imgs/inlineSettingResultNew.pngis excluded by!**/*.pngdocs/basic-features/imgs/inlineStyleBindVar.gifis excluded by!**/*.gifdocs/basic-features/imgs/inlineStyleSettingNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/inserPosition.pngis excluded by!**/*.pngdocs/basic-features/imgs/insertComponent.gifis excluded by!**/*.gifdocs/basic-features/imgs/lifecycle.gifis excluded by!**/*.gifdocs/basic-features/imgs/modifyStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/modifyVar.pngis excluded by!**/*.pngdocs/basic-features/imgs/modifyedStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/pageManaHistoryRestore.pngis excluded by!**/*.pngdocs/basic-features/imgs/pageManaIndex.pngis excluded by!**/*.pngdocs/basic-features/imgs/pagedelOrCopy.pngis excluded by!**/*.pngdocs/basic-features/imgs/platformExpend.pngis excluded by!**/*.pngdocs/basic-features/imgs/pluginoverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview-btn.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview-pre.pngis excluded by!**/*.pngdocs/basic-features/imgs/preview.pngis excluded by!**/*.pngdocs/basic-features/imgs/selectClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/selectParentID.pngis excluded by!**/*.pngdocs/basic-features/imgs/setClassNameNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/setClassNameStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentAttr.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentBaseAttr.pngis excluded by!**/*.pngdocs/basic-features/imgs/setCompoentStyle.pngis excluded by!**/*.pngdocs/basic-features/imgs/setStyleHoverNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/settingPanelOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/state1.gifis excluded by!**/*.gifdocs/basic-features/imgs/state2.gifis excluded by!**/*.gifdocs/basic-features/imgs/state3.pngis excluded by!**/*.pngdocs/basic-features/imgs/stylePanelOverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingNew.gifis excluded by!**/*.gifdocs/basic-features/imgs/styleSettingResult1.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingResult2.pngis excluded by!**/*.pngdocs/basic-features/imgs/styleSettingStatic.pngis excluded by!**/*.pngdocs/basic-features/imgs/toolbaroverview.pngis excluded by!**/*.pngdocs/basic-features/imgs/treeselectOverview.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/cli-create-plugin.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/cli-plugin-open.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image33.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image34.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image35.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image36.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image37.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image38.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image39.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image40.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image41.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/java-debugging-image42.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/tiny-engine-cli-open.pngis excluded by!**/*.pngdocs/development-getting-started/imgs/tiny-engine-cli.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigBase.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigSchema.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentConfigTec.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/componentLibInfo.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology1.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology2.pngis excluded by!**/*.pngdocs/ecosystem-center/imgs/ecology3.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/TinyEngineSchem2Code.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/customGenCodePlugin.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/exportcode.gifis excluded by!**/*.gifdocs/extension-capabilities-tutorial/code-output-function/imgs/pageGenerate.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/code-output-function/imgs/vuetemplate.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image21.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image22.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image23.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image24.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image25.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image26.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image27.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image28.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image29.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image30.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image31.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/ai-image32.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/custom-plugin-page-full.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/custom-plugin-page-pos.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/input-configurator.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/my-input-configurator.gifis excluded by!**/*.gifdocs/extension-capabilities-tutorial/imgs/plugin1.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin2.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin3.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin4.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin5.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin6.pngis excluded by!**/*.pngdocs/extension-capabilities-tutorial/imgs/plugin7.pngis excluded by!**/*.pngdocs/getting-started/imgs/addComponent.pngis excluded by!**/*.pngdocs/getting-started/imgs/addState.pngis excluded by!**/*.pngdocs/getting-started/imgs/bangEnv.pngis excluded by!**/*.pngdocs/getting-started/imgs/firstPage.pngis excluded by!**/*.pngdocs/getting-started/imgs/imgswitch.pngis excluded by!**/*.pngdocs/getting-started/imgs/page1.pngis excluded by!**/*.pngdocs/getting-started/imgs/preImgChange.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSrc.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSta.pngis excluded by!**/*.pngdocs/getting-started/imgs/setImgSty.pngis excluded by!**/*.pngdocs/getting-started/imgs/showImg.pngis excluded by!**/*.pngdocs/getting-started/imgs/tinyengine.pngis excluded by!**/*.pngdocs/practical-cases/imgs/app.pngis excluded by!**/*.pngdocs/practical-cases/imgs/blockProps.pngis excluded by!**/*.pngdocs/practical-cases/imgs/blockSettings.pngis excluded by!**/*.pngdocs/practical-cases/imgs/code.pngis excluded by!**/*.pngdocs/practical-cases/imgs/download.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230919202709-5khs9h1.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920083516-hg4vhhs.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920084925-yirmz91.pngis excluded by!**/*.pngdocs/practical-cases/imgs/image-20230920093120-jdzux3h.pngis excluded by!**/*.pngdocs/practical-cases/imgs/pdm.pngis excluded by!**/*.pngdocs/practical-cases/imgs/process.pngis excluded by!**/*.pngdocs/practical-cases/imgs/smbHome.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block1.pngis excluded by!**/*.pngdocs/solutions/imgs/add_block2.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_code.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_code3.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_1.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_10.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_2.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_4.pngis excluded by!**/*.pngdocs/solutions/imgs/backend_deploy_5.pngis excluded by!**/*.png
📒 Files selected for processing (73)
docs/README.md(1 hunks)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/designer-intro.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/materials-intro.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/frontend-api/canvas-api.md(1 hunks)docs/api/frontend-api/global-layout-api.md(1 hunks)docs/api/frontend-api/main-package-api.md(1 hunks)docs/api/frontend-api/material-api.md(1 hunks)docs/api/frontend-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/debugging-of-java-backend.md(1 hunks)docs/development-getting-started/dev-intro.md(1 hunks)docs/development-getting-started/dev-quick-start.md(1 hunks)docs/ecosystem-center/ecosystem-intro.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/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/ai-plugin-configuration.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/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)
🚧 Files skipped from review as they are similar to previous changes (19)
- docs/api/frontend-api/global-layout-api.md
- docs/basic-features/frontend-application-flow.md
- docs/about-designer/designer-intro.md
- docs/about-materials/build-material-asset-package.md
- docs/advanced-features/data-source-and-collection-mock-data.md
- docs/basic-features/outline-tree.md
- docs/about-designer/create-designer.md
- docs/development-getting-started/debugging-of-java-backend.md
- docs/about-applications/create-application-blank-or-template.md
- docs/advanced-features/integrating-chatgpt-for-simple-pages.md
- docs/extension-capabilities-overview/registry.md
- docs/ecosystem-center/ecosystem-intro.md
- docs/about-designer/customize-material-package-themes-dsl-toolbar-plugins.md
- docs/about-designer/customize-designer.md
- docs/basic-features/inline-style-variable-binding.md
- docs/ecosystem-center/how-to-publish-block.md
- docs/basic-features/style-settings.md
- docs/api/api-overview.md
- docs/generateCatalogMd.js
🧰 Additional context used
🧠 Learnings (1)
docs/development-getting-started/dev-quick-start.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-code-generation.md
[uncategorized] ~48-~48: Loose punctuation mark.
Context: ...的schema } }, { // 其他区块... } ]
输出示例:
<cod...(UNLIKELY_OPENING_PUNCTUATION)
docs/practical-cases/graphical-element-arrangement-designer.md
[uncategorized] ~19-~19: “个”不能与“云”搭配,可改为:"每"一朵"云"
Context: ...计器,顺利生成资源模板,实现一键部署。 考虑到需要支持大量的云服务资源,同时每一个云服务资源需要配置的属性也是不一样的,因而采用传统开发方式,为每一种云服务资源开...
(wa5)
[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍 TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...
(wb4)
[uncategorized] ~74-~74: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一定"地"开发
Context: ...或切换。 ### 遵循插件规范开发 TinyEngine插件开发需要遵循一定的开发规范,主要是文件规范与导出规范: * 文件规范,必须包含下面几个文件 `...
(wb4)
[uncategorized] ~121-~121: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:快速"地"完成
Context: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 
[uncategorized] ~127-~127: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:优秀"地"插
Context: ...TinyEngine的基础引擎能力,快速搭建出PoC原型,再此基础上,利用其优秀的插件架构和提供的插件公共能力,添加业务相关插件,快速开发出一个领域定制的专属设计...
(wb4)
docs/api/frontend-api/settings-panel-api.md
[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...
(wb2)
docs/basic-features/using-components.md
[uncategorized] ~20-~20: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"拖
Context: ...# 从画布中直接添加组件 对于复杂的页面,嵌套层级可能很深,直接拖拽并不能很好的拖入到指定的层级中,所以,设计器提供在画布中右键精准添加组件的能力。 1. 画...
(wb4)
docs/development-getting-started/dev-intro.md
[uncategorized] ~16-~16: 数量词修饰并列短语,可能产生歧义
Context: ...持二次开发或被集成 - 直接生成可部署的源码,运行时无需引擎支撑 - 允许接入第三方组件、允许定制扩展插件 - 支持高代码与低代码,混合开发部署应用 - 平台接入 AI ...
(s5)
docs/practical-cases/pdm-metadata-approval-workflow.md
[uncategorized] ~13-~13: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:常用"地"审批
Context: ...完成。但是,所有类型的审批流大致相似。如:页面上常见的元素包括表单、表格以及常用的审批组件等。 技术分析:若采用传统的开发方式,每当新增一种流程时,前端开发人员...
(wb4)
[uncategorized] ~18-~18: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。
### 技术实现细节 ...
(wb4)
docs/getting-started/introduction.md
[uncategorized] ~23-~23: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:强大"地"开放
Context: ...nyEngine 有开放的物料协议和扩展接口:得益于 TinyEngine 强大的开放物料设计,可直接导入第三方组件库,例如 elementUI 和 AntDes...
(wb4)
docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md
[uncategorized] ~34-~34: 1.动词被副词修饰时,助词应该用‘得’;2.省略宾语时,助词应该用‘的’;可能造成歧义。您的意思是不是:膨胀"得"非常巨大
Context: ...但是,在我们实战经验中却发现随着需求的变更以及时间的变迁,运行时引擎的代码会膨胀的非常巨大,运行时引擎内部的架构也越来越复杂,会带来一些明显的痛点: - 由于运...
(wb4)
[uncategorized] ~40-~40: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"解决
Context: ...用低代码搭建的场景)。 在经历一番探索之后,我们发现使用出码的方案可以相对完美的解决以上痛点: - 运行时引擎仅在设计态搭建页面的时候存在,正式上线的代码是人...
(wb4)
docs/api/backend-api/app-services.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/basic-features/page-and-block-preview.md
[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:最终"地"表现
Context: ... 在一些场景下,设计器的画布并不能使得我们直观的感受到所设计的区块或者页面最终的表现。比如说,当页面上区块和组件应用层次较多,区块之间或者组件之间交互行为较为复...
(wb4)
[uncategorized] ~5-~5: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很困难"?
Context: ...组件之间交互行为较为复杂时,我们在画布上去清晰的感知页面的静态布局以及动态交互很是困难,这时候就需要设计器的页面/区块预览能力来为开发提供帮助 ### 页面...
(SHI_ADHECTIVE_ERROR)
docs/advanced-features/js-panel-and-event-binding.md
[uncategorized] ~90-~90: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: ...签名需参考组件的文档 1. 首先在页面JS中定义渲染函数,这里的函数参数的定义来自于 TinyVue 的文档 
[uncategorized] ~103-~103: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:方便"地"提供
Context: ...够很方便的为元素或区块添加事件,通过可视化的优势快速定位到某个元素。同时也很方便的提供一些状态获取方法,国际化词条获取方法等。
(wb4)
docs/about-materials/create-material-asset-package.md
[uncategorized] ~8-~8: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...r的组件库与区块。 物料资产包版本是用户自定义的,用户可以将物料资产包回退到任一版本。
...
(wa5)
docs/advanced-features/block-management.md
[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"明白
Context: ...围进行设置,下面对相关设置项进行讲解 - 区块描述:区块的描述,可以让别人更好的明白该区块的用途以及含义 - 区块标签:区块的标签,方便消费侧用户搜索 - 公开...
(wb4)
[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 
docs/development-getting-started/dev-quick-start.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 开发调试插件 重新打开项目页面,可以看到侧边栏多了一个新的插件: 
docs/ecosystem-center/how-to-import-library.md
[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...组件库 ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...
(wb4)
docs/ecosystem-center/publish-other-ecosystems.md
[uncategorized] ~7-~7: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...为插件 npm 包所在的仓库地址 版本号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插...
(wa3)
[uncategorized] ~8-~8: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……标识"。
Context: ...号决定了安装哪一个版本的 npm 包 被标识为官方的插件会显示“官方”字样 被标识为默认的插件会在创建设计器时默认被选中 公开决定了插件的可见范围,私有代表仅自己可见,公开代...
(wa3)
docs/extension-capabilities-overview/new-architecture.md
[uncategorized] ~6-~6: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:慢慢"地"增加
Context: ...对官方项目代码的修改程度也逐渐增多,与此同时,TinyEngine引擎官方在慢慢的增加新特性,以及修复 bug,导致 fork 出来的代码与官方引擎项目差异越来越...
(wb4)
[uncategorized] ~10-~10: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"可
Context: ...对插件、设计器、布局、出码等等方式进行定制。 基于这个需求与思路,我们设计了新的可扩展架构——洛书架构 ## 扩展架构核心特性 - 提供 cli 工具,使用...
(wb4)
docs/solutions/block-lan-release-solution.md
[uncategorized] ~102-~102: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正确"地"显示
Context: ...正常发布在私仓上,如果想要在TinyEngine的页面上去获取到私仓里的包,正确的显示区块,我们还需要借助unpkg去获取到包的数据,而由于公网的unpkg无法直...
(wb4)
[uncategorized] ~181-~181: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:正常"地"使用
Context: ...ng) 验证完成后,可以在物料中把刚才发布的区块进行添加,添加完毕后就可以正常的使用区块功能。 ## 五、服务部署 当前步骤都是在电脑本地环境下运行调试的,...
(wb4)
🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/loop-rendering.md
13-13: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
docs/basic-features/internationalization.md
7-7: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
16-16: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
docs/api/backend-api/ai-function-api.md
21-21: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
27-27: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
docs/solutions/block-release-solution.md
53-53: Spaces inside code span elements
null
(MD038, no-space-in-code)
63-63: Bare URL used
null
(MD034, no-bare-urls)
65-65: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
95-95: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
99-99: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
103-103: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
107-107: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
111-111: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
113-113: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
117-117: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
121-121: Code block style
Expected: fenced; Actual: indented
(MD046, code-block-style)
docs/api/backend-api/app-utility-management.md
18-18: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
24-24: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
63-63: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
69-69: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
110-110: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
144-144: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
docs/api/frontend-api/canvas-api.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
7-7: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
25-25: Spaces inside code span elements
null
(MD038, no-space-in-code)
28-28: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
60-60: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
142-142: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
docs/ecosystem-center/publish-other-ecosystems.md
1-1: Headings must start at the beginning of the line
null
(MD023, heading-start-left)
docs/solutions/block-lan-release-solution.md
62-62: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
200-200: Bare URL used
null
(MD034, no-bare-urls)
208-208: Hard tabs
Column: 7
(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 27
(MD010, no-hard-tabs)
209-209: Table pipe style
Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
210-210: Hard tabs
Column: 14
(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 28
(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 15
(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 29
(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 16
(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 26
(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 9
(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 27
(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 12
(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 27
(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 12
(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 27
(MD010, no-hard-tabs)
300-300: Table pipe style
Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
308-308: Table pipe style
Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
309-309: Table pipe style
Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
377-377: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: push-check
- GitHub Check: push-check
🔇 Additional comments (217)
docs/about-materials/create-material-asset-package.md (2)
1-6: Clear Title and Section Introduction
The document clearly introduces the topic with a main title and a dedicated "如何创建物料资产包" section. The step‐by‐step outline is easy to follow for users.
9-10: Effective Use of Visual Aid
The inclusion of the illustrative GIF ("构建物料资产包") enhances understanding of the process. Ensure the image file is correctly stored and accessible.docs/README.md (2)
1-35: Well-Organized Table of Contents (User Guide Section)
The "使用指南" part of the TOC is clearly structured, making navigation straightforward for new users. You might consider adding brief descriptions for each item in the future to offer additional context.
36-49: Comprehensive Platform Development Guide Section
The "平台开发指南" section is logically structured and provides clear navigation to related topics. Please ensure that the links remain updated as documentation evolves.docs/basic-features/internationalization.md (3)
1-6: Clear and Detailed Internationalization Guide
The document provides a detailed explanation of how to add, edit, and manage internationalization entries. The step-by-step instructions combined with visual elements make the guide very user friendly.
21-45: Detailed Explanation for Editing and Deleting Entries
The instructions for editing and deleting internationalization entries are precise and well supported by images. This provides users with clear guidance on managing entries.
66-75: Comprehensive Guide on Using Internationalization Entries
The step-by-step process for binding internationalization entries within components is very clear. The sequence and imagery support user understanding effectively.docs/basic-features/state-management-and-variable-binding.md (2)
1-6: Informative Overview on State Management and Variable Binding
The introduction effectively explains the concept of state as reactive data and outlines the purpose of the state management panel. The overall structure is clear and helpful.
9-19: Effective Use of Visual Aids
The additional images and instructions from lines 9 to 19 clearly illustrate the process of using and binding state. Ensure consistency in alt text across all image elements.docs/basic-features/page-management.md (4)
1-8: Clear Introduction to Page Management
The opening section effectively introduces the page management concept and how it relates to the project structure.
9-16: Good Use of Example Directory Structure
The inclusion of a bash code block to showcase the example project structure is informative and helps illustrate the context.
30-38: Clear Procedure for Deleting or Copying Pages
The explanation for deleting or copying pages is concise and well supported by visual aids.
39-45: Detailed Guidance on Advanced Page Settings
The documentation for setting a homepage, configuring lifecycle methods, and restoring historical versions is thorough and clearly presented.docs/advanced-features/how-to-use-slots.md (10)
1-11: Clear Introduction and Concept Explanation
The introduction and explanation on lines 1–11 effectively introduce the concept of slots in a Vue.js context. The reference link to Vue’s slot documentation is helpful.
12-24: Well-Formatted Vue Code Example for Slot Declaration
The code snippet demonstrating the slot declaration in a Header component is clear and easy to follow. The use of proper indentation and syntax makes the example very instructive.
26-36: Effective Demonstration of Slot Usage with Scoped Slots
The second Vue code snippet (lines 26–36) clearly shows how to use named and scoped slots. This is a valuable addition for users looking to understand practical usage.
38-44: Smooth Transition from Example to Explanation
The textual explanation following the code examples (lines 38–44) clearly links the code to its conceptual usage. This smooth narrative aids reader comprehension.
45-47: Concise Image Inclusion for Slot Declaration
The image on lines 45–46 with alt text “插槽声明” supports the explanation well. Ensure that the referenced GIF is accessible and loads correctly in all renderings.
47-75: Comprehensive JSON Schema Example
The JSON example (lines 47–75) detailing the slot schema is comprehensive and well-organized. It provides a clear structure that users can emulate.
77-87: Clear Example of Block Code Output
The Vue template snippet (lines 77–87) that shows the “区块出码” is a good practical illustration. The example is complete and easy to understand.
89-97: Thorough Explanation of Slot Usage in Components
The narrative on lines 89–97 explaining how to consume and use slots in components is precise and instructive. It ties the earlier examples together nicely.
99-143: Detailed JSON Example for Slot Binding
The JSON example (lines 99–143) that demonstrates how to bind scoped slot values (with variables such as “title”) is very detailed. This should greatly help users understand the use case in a low-code context.
145-165: Clear and Organized Component Material Slot Schema
The final JSON example (lines 145–165) for defining component material slots is neatly formatted and informative. It clearly outlines the necessary schema properties.docs/advanced-features/data-source-and-collection-remote-fields.md (1)
1-13: Well-Structured Documentation for Remote Field Acquisition
The document (lines 1–13) lays out the operation steps for generating data source fields from remote HTTP interfaces in a sequential and easy-to-follow manner. The images with captions (e.g., “数据源设置”, “请求结果”) are appropriately placed.docs/advanced-features/loop-rendering.md (4)
1-9: Clear Introduction to Loop Rendering Concepts
The introductory section (lines 1–9) efficiently explains the context and necessity of loop rendering, making it accessible even for readers new to the concept.
10-29: Enhance Accessibility with Descriptive Alt Text for Images
Several images (lines 10, 18, 25, and 29) currently use filenames as alt text (e.g., “addVar-17”, “绑定变量-18”). Descriptive alt text improves accessibility. For example, consider the following changes:- +- +- +- +This feedback duplicates previous suggestions; please consider these adjustments for improved accessibility.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Images should have alternate text (alt text)
null(MD045, no-alt-text)
31-37: Clear Explanation of Loop Parameters
The description of loop-related concepts (lines 31–37) concisely defines key terms like “循环数据”, “迭代变量名”, “索引变量名”, and “key”. This clarity will help users correctly apply these concepts.
40-46: Effective Vue Template Example for Loop Rendering
The Vue template snippet (lines 40–46) demonstrates the use ofv-foreffectively. The code is clear and correctly formatted, making it a good reference for users.docs/ecosystem-center/how-to-import-library.md (4)
1-7: Comprehensive Guide Introduction for Importing Component Libraries
The introductory sections (lines 1–7) provide a thorough overview of the component library import process. The explanation is clear and sets up the details that follow.🧰 Tools
🪛 LanguageTool
[uncategorized] ~5-~5: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:好"地"可
Context: ...组件库 ## 介绍 组件是页面搭建最小的可复用单元,组件库是一系列已经封装好的可复用组件的集合。通过导入第三方组件库,可以利用已经开发好的功能,无需从头开始编...(wb4)
9-26: Well-Structured Table for Library Basic Information
The markdown table outlining the component library’s basic information is well-organized. All fields are clearly labeled with accurate descriptions.
27-33: Informative Section on Component Configuration
The “组件配置” section (lines 27–33) is detailed and explains the necessary configuration parameters effectively. The accompanying image (line 31) with alt text “基本信息” supports the text and is appropriately used.
74-77: Clear Completion Instructions
The concluding section (lines 74–77) neatly summarizes the process, ensuring that users understand how to finalize the configuration and add the component library to the asset package.docs/development-getting-started/dev-quick-start.md (4)
1-9: Clear Quick Start Overview and Environment Preparation
The opening sections (lines 1–9) provide a straightforward overview and list the necessary development tools. The instructions are clear; however, consider refining the alt text for tools like “chrome浏览器 110+ 版本” to standardize terminology (e.g., “Chrome 浏览器 version 110+”).
80-94: Clear Diff Example for Plugin Integration
The diff block (lines 80–94) illustrating the modifications inregistry.jsfor plugin registration is clear. The added import and plugin inclusion are straightforward. Ensure that the new plugin is correctly implemented and tested in the context of the designer.
112-122: Comprehensive Instructions for Source Code Development
The steps for cloning/downloading the source code (lines 112–122) are clear, and the directory structure example is helpful. Ensure that the branch or tag reference (v2.0.0) is kept up-to-date with the latest stable version.
141-151: Clear Instructions for Installing and Launching the Designer
The final section (lines 141–151) on installing dependencies and launching the low-code designer is straightforward. The shell commands are clear and correctly formatted.docs/extension-capabilities-tutorial/develop-configurator-components.md (3)
1-8: Introduction and Context SetupThe title and opening sections clearly introduce the concept and purpose of developing configurator components using Vue single-file components.
19-24: Vue Component Example OverviewThe example explaining how to use TinyVue’s Input component to create a custom configurator is clear and instructive.
70-81: Configurator Registration ExampleThe code snippet demonstrating how to register the configurator in
src/configurators/index.jsis clear and practical.docs/extension-capabilities-overview/new-architecture.md (2)
1-2: Informative Title and HeaderThe document’s title, “TinyEngine 洛书架构介绍,” immediately informs the reader about the content.
12-18: Core Features PresentationThe bullet point list clearly describes the core features of the new architecture, making it easy for readers to understand the benefits.
docs/advanced-features/block-management.md (5)
1-4: Overview of Block ManagementThe introduction provides a solid conceptual framework for block management by drawing parallels to front-end components.
5-9: Project Structure ExampleThe provided bash snippet neatly illustrates a sample project structure, which is helpful for readers.
72-80: Vue Props Example ClarityThe Vue code snippet demonstrating the header component with
titleanddescriptionprops is well presented and clear.
103-105: Clarification on Exposed Property ConceptWhile the explanation for block exposed attributes is clear, please double-check the phrasing around “即是我们定义的暴露属性” to ensure it precisely communicates the intended meaning.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~105-~105: 您的意思是“"既"是”吗?
Context: ...发布之后,我们在物料面板拖出区块到画布中,选中我们拖出的区块,右侧属性面板的属性即是我们定义的暴露属性 
109-130: Detailed Exposition of Block Management SettingsThe sections covering block events, lifecycle settings, and versioning are comprehensive and enhanced by illustrative images.
docs/api/backend-api/dsl-code-generation.md (4)
1-8: DSL Code Generation IntroductionThe introductory part clearly outlines the purpose of this documentation section and effectively prepares the reader for the technical details that follow.
16-24: Code Example – Usage of generateCode FunctionThe provided code snippet demonstrates how to import and use the
generateCodefunction effectively. Ensure that variables likepageInfoandblocksDataare defined in actual usage contexts.
26-36: Input Example ClarityThe sample input for the
generateCodemethod is clearly structured and informative.
52-60: Documentation of Request Parameters and Response SchemaThe sections detailing the request parameters and the response schema (supported by an HTML table) are well organized and make the information easily accessible.
docs/practical-cases/smb-lightweight-application-service.md (11)
1-4: Clear and Contextual IntroductionThe introduction effectively contextualizes the use of TinyEngine designer in the SMB project.
5-9: Project Overview SectionThe overview provides a concise background on how TinyEngine is utilized in the project and sets the stage for the details that follow.
10-10: Improve Image Alt Text for AccessibilityThe image at line 10 uses the generic alt text "Alt text." Please update this to a more descriptive text (for example, "SMB Project Homepage") to improve accessibility.
11-13: Descriptive Overview of Homepage ContentThe text following the image clearly explains the various components showcased on the homepage.
14-16: Enhance Image Alt Text for ClaritySimilarly, the image at line 15 has a generic alt text. Replace "Alt text" with a descriptive phrase like "SMB Lightweight Application Block" to enhance accessibility.
17-23: Detailed Explanation of Block DevelopmentThe section outlining the objectives and benefits of block development is well-organized and clearly presented.
24-26: Improve Image Alt Text for Block SettingsThe image depicting block settings (line 25) also uses "Alt text". Update it to a more descriptive label such as "Block Settings Interface" to meet accessibility standards.
26-32: Clear Explanation of Block AttributesThe descriptive text regarding block properties, events, and lifecycle functions is thorough and easy to understand.
33-36: Enhance Image Alt Text for Block Properties IllustrationThe image at line 35 uses "Alt text" as a placeholder. It is recommended to change this to something like "Block Properties Interaction Example" for improved clarity.
37-41: Improve Image Alt Text for Code Download ProcessThe image illustrating the code download process (line 40) uses generic alt text. Consider updating it to "Local Code Download Process" or a similar descriptive text.
41-43: Update Image Alt Text for Generated Code ResultThe final image in the document (line 41) should have a more descriptive alternative text, such as "Generated Code Screenshot," to support accessibility.
docs/about-materials/materials-intro.md (1)
1-16: Clear and Informative IntroductionThe document effectively introduces the concepts of 物料 and 物料资产包 using well-organized headings, bullet lists, and an illustrative image. This clear structure makes it easy for readers to understand the roles of "组件库" and "区块" in the design tool.
docs/basic-features/using-components.md (3)
1-8: Well-Structured OverviewThe introduction and overview sections provide a clear context about component usage in low-code development. The concise explanation sets the stage for the detailed instructions that follow.
9-17: Effective Instructions for Adding Components from the Material PanelThe step-by-step guidelines for adding components from the material panel are clear and enhanced by visual aids, such as the icons and animated GIFs. This makes the process very accessible to users.
36-71: Clear Explanation for Component Selection and EditingThe sections “选中组件” and “编辑组件” are clearly written and well supported with diagrams. The instructions facilitate understanding how to select, modify, and manipulate components within the design canvas.
docs/api/backend-api/app-services.md (2)
1-17: Comprehensive Documentation for the Code Generation EndpointThe “传入schema生成代码” section thoroughly documents the POST endpoint
/api/schema2code, providing clear details on the path, method, and expected request structure. The inclusion of code examples and descriptive headings greatly aids developer understanding.
49-82: Detailed Specification for the Source Code Retrieval EndpointThe “获取页面/区块源码” section uses descriptive tables to outline query parameters and expected response formats. This level of detail ensures that developers have a precise understanding of how to use this endpoint.
docs/solutions/block-release-solution.md (5)
1-22: Thorough Background and npm Publishing ProcessThe introductory sections clearly describe the block release process and the rationale behind publishing block web components as npm packages. The use of multiple images (e.g., token generation and npm publishing steps) supports the textual explanation very well.
23-48: Clear Customization Instructions for unpkg Service and Package NamingThe instructions on how to modify the unpkg service link and update the block package name are detailed and include relevant code snippets and external links. This practical guidance is very useful for developers who need to adjust these settings.
49-72: Informative Overview of unpkg Service OptionsThe section comparing different unpkg service options—including the standard unpkg service, Microsoft’s CDN, and Alibaba Cloud's private repository—is informative. It helps the reader understand the tradeoffs involved in choosing a CDN. Verifying that all external URLs remain current is recommended.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
53-53: Spaces inside code span elements
null(MD038, no-space-in-code)
63-63: Bare URL used
null(MD034, no-bare-urls)
65-65: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
74-127: Comprehensive API Documentation for Block ReleaseThe detailed documentation of the block deployment API and task query API is excellent. The examples provided in fenced code blocks, along with the clear explanation of request methods, parameters, and anticipated responses, ensure that users can follow the asynchronous block publishing workflow with confidence.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
95-95: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
99-99: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
103-103: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
107-107: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
111-111: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
113-113: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
117-117: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
121-121: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
1-192: Markdown Formatting and Security Best PracticesThere are several markdownlint recommendations to improve consistency—for example, adding language specifiers to fenced code blocks, standardizing code block styles, and adjusting unordered list indentation. Additionally, while the document instructs on configuring the
NPM_AUTH_TOKEN, consider including a brief mention of security best practices (e.g., using read-only tokens and avoiding token commits).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
53-53: Spaces inside code span elements
null(MD038, no-space-in-code)
63-63: Bare URL used
null(MD034, no-bare-urls)
65-65: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
95-95: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
99-99: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
103-103: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
107-107: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
111-111: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
113-113: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
117-117: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
121-121: Code block style
Expected: fenced; Actual: indented(MD046, code-block-style)
docs/api/frontend-api/settings-panel-api.md (7)
1-9: Clear Overview of the Settings Panel Module APIThe introductory portion of the document effectively outlines the purpose and functionality of the settings panel module, particularly in the context of variable binding.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~5-~5: 成分累赘: “来自” “于” 不一起使用,请删除 “于”:"来自"。
Context: # 设置面板模块API ## 变量绑定 变量绑定列表中的变量可能来自于其他元应用。 目前提供一种在元应用中注册变量绑定列表来源的方法:首先在元应用配...(wb2)
21-27: Concise Example forgetSharedOptionsImplementationThe provided code snippet clearly demonstrates how to register the
getSharedOptionsAPI in the meta application configuration. This concise example aids in developer comprehension.
29-33: Simple and Effective Retrieval ExampleThe snippet showing how to access the shared configuration using
getSharedOptions('variableConfiguratorList')is straightforward and clear.
35-53: Well-Defined Structure forvariableConfiguratorListItemsThe detailed description of the expected format for each item in
variableConfiguratorListis very helpful for developers implementing variable binding. The provided field definitions are clear.
57-69: Clear Explanation for Event Binding ConfigurationThe section on event binding offers a good overview of default events and how to extend them. The accompanying configuration snippet is practical and easy to understand.
73-88: Useful Example for Extending Default Binding EventsThe example that demonstrates incorporating an additional
onKeyDownevent into the default binding list is clear and illustrative.
89-106: Comprehensive Guidance for Replacing Event Binding ComponentsThe instructions for replacing the event binding dialog components and for extending the function list with default methods are very clear, with good examples to support the explanation.
docs/practical-cases/graphical-element-arrangement-designer.md (6)
7-13: Background Section Clarity
The “背景” section is descriptive and clear. The content accurately explains the usage scenarios for resource orchestration. No significant issues noted.
25-29: Listing Key Requirements
The bulleted list of requirements is clear and well formatted. The content is consistent with the narrative.
44-58: Directory Structure Code Block
The directory tree is presented clearly with a proper code snippet. No issues detected here.
64-72: Development of Plugins – General Observations
The “开发插件” section is comprehensive. While the language is generally clear, consider a brief review of the figurative language to enhance readability. No critical issues found.🧰 Tools
🪛 LanguageTool
[uncategorized] ~68-~68: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完备"地"插
Context: ...# 整体插件架构介绍 TinyEngine整体架构优秀之处在于,提供了一套完备的插件体系,包含了插件开发所有的基础UI库、工具库、插件面板的显示控制、生命周期管...(wb4)
76-98: Plugin Export Guidelines Code Block
The code snippet detailing the export conventions for plugins is well formatted and instructive. Minor adjustments regarding spacing or punctuation in comments might further improve clarity, but overall it is clear.
104-121: Plugin Configuration Example
The second code snippet that shows how to import and register plugins in the configuration file is clear and practical.🧰 Tools
🪛 LanguageTool
[uncategorized] ~121-~121: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:快速"地"完成
Context: ...具栏插件、导出插件、主题、属性配置插件、模板转换插件,微调整体设计器样式,就快速的完成了一个资源编排领域的图元编排设计器。 
docs/basic-features/page-and-block-preview.md (1)
21-25: Feature List for Preview Interface
The list of additional functional verifications is clear and properly formatted.docs/extension-capabilities-tutorial/code-output-function/code-output-overview-and-usage.md (6)
1-6: Introduction and Definition of “出码”
The introductory section clearly defines the code output functionality and its role within TinyEngine. The explanation is thorough and understandable.
7-23: JSON Schema Example Block
The JSON example is well formatted and illustrates the concept effectively. No changes required.
24-31: Vue Code Transformation Example
The Vue code snippet accurately shows the expected transformation. The example is clear and concise.
41-47: Benefits of Code Output
The bullet-point list clearly and logically outlines the pain points and benefits of the code output mechanism.
48-56: Usage Instructions for Code Output
The latter half of the document, explaining how to use the code output feature (both the built-in and the customized approach), is straightforward. The image illustrating “应用出码示例” adds clarity.
56-61: Reference to Customization Documentation
The reference to the “如何自定义出码” chapter is correct and completes the guidance.docs/extension-capabilities-tutorial/ai-plugin-configuration.md (5)
1-4: General Overview of AI Plugin Configuration
The title and the introductory header clearly communicate the purpose of the document. The explanation about local debugging with the Wenxin Yiyan API example is concise and to-the-point.
5-12: Backend Code Changes Documentation
The backend modifications are clearly referenced with image placeholders that illustrate the changes. The note on obtaining the access_token is prominently stated.
13-17: Additional Backend Modifications
The changes inenum.tsare properly documented with the corresponding images.
18-22: Frontend Code Changes Explanation
The “前端代码改动” section provides a clear pointer to the modified file (robotSetting.js), supported by an image.
36-56: Instructions for Acquiring access_token
The step-by-step guide for obtaining the access_token (with links and images) is comprehensive and clear. All details, including external links for API usage and debugging, are well presented.docs/advanced-features/advanced-panel-settings.md (7)
1-4: Introduction and Overview of Advanced Panel Settings
The document opens with a clear title and a blockquote that briefly describes the capabilities offered by the advanced panel. The presentation is concise and effective.
12-20: Loop Rendering Section Clarity
The “循环渲染” section is clearly written and supported by an illustrative GIF. The explanation of binding variables is well detailed.
21-27: Key Concepts for Loop Rendering
The list detailing the concepts (循环数据, 迭代变量名, 索引变量名, key) is clear and well organized.
28-37: Output Code Snippet for Loop Rendering
The Vue code snippet demonstrates the intended output effectively. The formatting is correct and the example is useful.
39-49: Event Binding Instructions
The “事件绑定” section provides clear step-by-step instructions for binding events, complemented by a visual demonstration GIF. The guidance is comprehensive.
50-59: Explanation of Extended Parameters
The “拓展参数相关说明” along with the accompanying code snippet (bash code block) is clear in showing how extended parameters should be set up.
60-69: Final Output Code for Event Binding
The final Vue code block effectively demonstrates how the click event with extended parameters is bound. The code is clear and illustrative.docs/solutions/block-lan-release-solution.md (6)
1-5: Introduction and Title Clarity
The title (“# 区块局域网发布方案”) and opening paragraphs clearly state the purpose of providing a private deployment solution. A minor suggestion is to review punctuation for smooth readability.
7-10: Consistent Presentation of Proposed Solutions
The bullet list of the two proposed solutions is clear. Please double-check punctuation and spacing for uniformity.
208-215: Fix Table Formatting Issues
The markdown table defining the database fields contains hard tabs and inconsistent pipe alignments. Please reformat the table (for example, as shown in previous reviews) to follow proper markdown standards.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
208-208: Hard tabs
Column: 7(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 27(MD010, no-hard-tabs)
209-209: Table pipe style
Expected: leading_only; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
210-210: Hard tabs
Column: 14(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 28(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 15(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 29(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 16(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 26(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 9(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 27(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 12(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 27(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 12(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 27(MD010, no-hard-tabs)
259-262: Configuration Update Approved
The configuration change updatingconfig.dataBaseUrlis clearly presented and aligns well with the deployment instructions.
324-327: API Route Addition is Clear
The new route in the router (lines 324–327) is introduced cleanly. Just ensure that downstream services can handle any edge cases with invalid query parameters.
363-375: Database Query Function Implementation
The new method inblock-file-store.js(lines 363–375) for retrieving the latest file version by package and filename is well implemented.docs/advanced-features/data-source-and-collection-usage.md (5)
1-8: Introduction Section Approved
The introductory section succinctly explains the role and benefits of data sources in the design environment.
9-18: Step-by-Step Creation Process is Clear
The instructions for creating a data source are presented in a clear, step-by-step manner.
32-42: Manual Remote API Call Instructions
The section on manually invoking remote APIs is detailed and clear, with a good explanation of the available method (load()) and its parameters.
59-70: Code Example Demonstrating API Usage
The asynchronous functioncreateMeeting()is a solid example showing how to use the data source’sloadmethod.
117-122: Fix Broken Image Reference
The image reference on line 121 uses “not-found/dataSource6.png,” which appears to be a placeholder or incorrect path. Please update it to the correct path (e.g.,./imgs/dataSource6.png) to ensure the image displays properly.docs/api/backend-api/ai-function-api.md (3)
15-17: Error Response Formatting Update Needed
The error response example is currently rendered with HTML elements and inline styles. For better clarity and consistency in API documentation, please reformat this example as a JSON code block.
19-27: API Request Parameters are Well Structured
The headers and body parameter tables clearly describe the API’s requirements. Ensure that table syntax remains consistent with markdown best practices.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
21-21: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
27-27: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
39-48: Comprehensive API Response Description
The response data section provides a thorough outline of the expected JSON structure. Adding a sample JSON snippet might further improve clarity in future updates.docs/basic-features/intro-to-designer.md (5)
1-4: Introduction is Clear
The introductory section effectively sets the stage for learning about the designer interface. The content is precise and inviting.
5-10: Overall Design Overview is Detailed
The “设计器界面概览” section, supported by images, gives a solid overall description of the interface components.
11-29: Toolbar and Plugin Sections are Informative
Descriptions of the top toolbar and left plugin bar, along with the relevant images, clearly communicate the functionality available in the designer.
30-48: Center Canvas and Settings Panel are Well Documented
The explanations and images for the center canvas and right settings panel are clear and effectively illustrate their purposes.
49-63: Bottom Node Tree Explanation is Effective
The final section on the bottom node tree is concise and clear. The image further helps the reader understand the hierarchical structure.docs/practical-cases/pdm-metadata-approval-workflow.md (5)
1-4: Comprehensive Introduction to Approval Workflow
The opening section provides a strong overview of the approval process and its importance in PDM metadata management.
5-12: Detailed Workflow Description Provided
The document clearly details the step-by-step electronic approval process with illustrative examples and an accompanying image (line 11) that enhances understanding.
13-20: Solution Overview is Well Presented
The “解决方案” section effectively explains how TinyEngine’s low‐code platform can streamline the development of approval workflows. Emphasizing the key improvements over traditional methods could further benefit the reader.🧰 Tools
🪛 LanguageTool
[uncategorized] ~13-~13: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:常用"地"审批
Context: ...完成。但是,所有类型的审批流大致相似。如:页面上常见的元素包括表单、表格以及常用的审批组件等。 技术分析:若采用传统的开发方式,每当新增一种流程时,前端开发人员...(wb4)
[uncategorized] ~18-~18: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:完美"地"贯通
Context: ...续内容中详细介绍),以实现对审批流程人员编排。这样,前后端之间的连接就实现了完美的贯通。### 技术实现细节 ...
(wb4)
22-41: Clear Technical Implementation Steps
The breakdown of technical implementation—including the directory structure and initial plugin setup—is well organized and clear.
42-63: Additional Implementation Details and Code Examples
The subsequent steps that discuss adding approval workflow templates and components are explained clearly. The provided code and schema examples enhance the practical understanding of the process.docs/extension-capabilities-tutorial/code-output-function/official-code-output-api.md (7)
41-66: Clear Example for Custom Code PluginThe example provided for a custom code generation plugin is clear and demonstrates how to implement the
runfunction. The inline comments further enhance understanding.
67-92: Accessing Plugin Context withaddLogThe documentation clearly illustrates how a plugin can call
this.addLogto add a log entry. The code example and type definition are consistent and easy to follow.
93-128: Detailed Example foraddFileFunctionalityThe example for
addFileis thorough, showing both the function call with an object parameter and the additional boolean flag for overwriting. The type definition block further clarifies the expected inputs and behavior.
129-157: Retrieving Files withgetFileThe provided example for
getFileusage is straightforward, and the type declaration clearly sets expectations for return values.
158-188: Replacing Files withreplaceFileThe documentation for the
replaceFilefunction is clear, with an example that explains the success/failure conditions based on file matching.
189-219: Deletion of Files usingdeleteFileThe example and type definition for
deleteFileeffectively demonstrate how deletion is handled. The inline comments guide the user well through the expected behavior.
220-223: Link to Detailed Type DeclarationsThe final note provides a helpful link to the full TypeScript declarations on GitHub. This additional context is useful for developers seeking deeper insights.
docs/extension-capabilities-overview/meta-services-and-meta-apps.md (2)
1-11: Introduction of Meta Applications and Meta ServicesThe introductory section clearly explains the concepts of "元应用" and "元服务" with concrete examples. The explanation is concise and sets a good foundation for the rest of the document.
29-54: Custom Development of Meta Applications and Meta ServicesThe section on how to customize and develop meta applications and services is well structured. The code example succinctly demonstrates combining metadata and entry definitions.
docs/getting-started/introduction.md (3)
1-5: Engaging Introduction to the Low-Code PlatformThe introductory paragraphs effectively communicate the benefits of low-code platforms and set the stage for deeper content. The language is clear and engaging.
6-10: Background of the Low-Code EngineThe section explaining the background of low-code engines is informative and contextualizes the emergence of such technologies. The narrative is smooth, though you might want to verify that the breaks between sections are rendered as intended in Markdown.
15-20: Visual Illustrations and Their ReferencesThe inclusion of images (e.g., the application development flow and TinyEngine interface) reinforces the textual content. Please ensure that the image paths (
./imgs/tinyengine.pngand./imgs/firstPage.png) are correct and that the images are available in the repository.docs/api/frontend-api/material-api.md (3)
1-27: Comprehensive Documentation for the Material Plugin Meta-ApplicationThe exported object in the "物料插件元应用" section is thoroughly documented, with clear annotations for each property. Ensure that identifiers such as
entry,MaterialLayout,MaterialHeader, andbasePropertyOptionsare defined elsewhere in the documentation or codebase.
29-34: API Exposure for Fetching GroupsThe snippet illustrating the exposure of the
fetchGroupsAPI is clear and concise.
36-57: Detailed Explanation of theuseResourceMeta ServiceThe
useResourcesection is well structured, providing both the reactive state configuration and an explanation of each component. This level of detail is helpful for developers.docs/extension-capabilities-tutorial/customize-meta-service-logic.md (2)
1-10: Introduction to Customizing Meta Service LogicThe introduction and initial explanation set a clear context for why and how developers might want to customize meta service logic. The prose is direct and informative.
28-46: Registry Integration ExampleThe registry example is straightforward and shows how to integrate the customized service. The structure is logical and easy to follow.
docs/extension-capabilities-tutorial/customize-plugin-ui.md (7)
1-3: Introduction and Overview FormattingThe introductory lines clearly state the “定制插件 UI” topic and provide a concise overview. The heading and introductory sentence are well formatted.
5-12: Section “通过配置项来定制” – Clarity of OptionsThis section explains which properties can be replaced (i.e.
title,icon,align) in a clear bullet-point list. The listing is straightforward and user friendly.
15-31: Code Example: Overriding Plugin Properties in registry.jsThe code snippet demonstrates how to override the plugin’s properties (like title, icon, and align) by spreading the base Page object and then specifying new values. Ensure that the ellipsis (
// ...) correctly indicates omitted content.
33-34: Image Reference CheckThe image reference
is a good addition to visually illustrate the customization. Please verify that the image exists at the given path.
35-38: Section “直接替换插件页面” – Direct Page Replacement ExplanationThe narrative clearly distinguishes between partial replacement (via
components) and full replacement (viaentry). The explanation is clear and well organized.
41-53: Code Example: Replacing the Entire Plugin PageThe provided JavaScript snippet for replacing the Page plugin page is well structured. It clearly shows the import of a custom component and its integration into the plugin registration.
68-69: Final Image ReferenceThe concluding image
reinforces the documentation with a visual cue. Ensure the image file is correctly linked.docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output-plugins.md (5)
1-12: Introduction to Custom Output Code PluginsThe introductory section “如何自定义出码插件” successfully outlines the requirements and conventions for developing custom output code plugins. The clarity of the initial description is on point.
35-51: Explanation of run Function ParametersThe detailed explanation of the
runfunction parameters, including the usage ofthisfor context binding, is very clear and helpful.
52-67: Adding Incremental Plugins – Usage ExampleThe snippet showing how to enhance the code generation process by injecting plugins at specific stages (such as
transformStart,transform, andtransformEnd) is clear. The usage ofgenerateAppwith thecustomPluginsproperty is concise and demonstrates practical integration.
115-126: Replacing Official Router PluginThe snippet where the generated history router replaces the official routing plugin is clear and the usage of
generateAppis well illustrated.
186-196: Injecting Custom Plugin in transformStart StageThe snippet showing how to add a custom plugin into the
transformStartphase is straightforward. It clearly demonstrates plugin injection into the code generation flow.docs/api/backend-api/app-utility-management.md (4)
1-34: API Documentation – “修改工具类” SectionThis section clearly documents the
/app-center/api/apps/extension/updateendpoint, providing details about headers, body parameters (with an organized table), and expected responses. The layout is informative and precise.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
18-18: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
24-24: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
47-91: API Documentation – “创建工具类” SectionThe “创建工具类” section is well detailed with a comprehensive table of request parameters and response fields. The documentation is structured for clarity.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
63-63: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
69-69: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
93-127: API Documentation – “删除工具类” SectionThe section for the
/app-center/api/apps/extension/deleteendpoint is concise and includes a table for the query parameters and response information. The guidance provided (e.g. checking app ownership) is useful.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
110-110: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
129-161: API Documentation – “工具类查询列表” SectionThis final section documents the
/app-center/api/apps/extension/listendpoint, including optional query parameters and detailed table information for the response array. The clear enumeration of expected data fields enhances usability.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
144-144: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
docs/development-getting-started/dev-intro.md (6)
1-3: Document Introduction – “简介” and OverviewThe initial section provides a succinct introduction and sets the context for TinyEngine. The heading levels and structure aid readability.
7-10: Design Philosophy SectionThe “设计理念” section clearly outlines the motivation behind TinyEngine’s modular approach. The language is direct and accessible.
20-25: Application ScenariosThe “应用场景” section concisely lists several suitable application cases for TinyEngine. The writing is clear and effectively communicates diverse use cases.
26-33: Case Studies for Custom PlatformsThis section illustrates specific cases (图元编排, 流程编排, 页面编排) with brief descriptions that highlight the platform’s versatility.
37-40: Community ContributionsThe “社区贡献” section emphasizes the open-source nature and community-driven ecosystem. The message is encouraging and well articulated.
41-44: Future Development ProspectsThe “未来发展” section outlines upcoming improvements and potential integrations such as AI capabilities. The vision is clearly communicated.
docs/basic-features/designer-ui-modules.md (7)
1-4: Introduction to Designer UI ModulesThe heading “设计器界面模块简介” and the opening statement effectively introduce the section. The tone is consistent with the rest of the documentation.
5-10: Designer Interface OverviewThe “设计器界面概览” section, coupled with the illustrative image, offers a good high-level view of the interface structure. The image reference is clear—verify that the image file is located correctly.
11-29: Top Toolbar DetailsThe “顶部工具栏” section provides a detailed list of toolbar elements with explanations that are both clear and comprehensive. The bullet list neatly enumerates functions in sequential order.
30-37: Left Plugin Bar OverviewThe description and image for the left plugin bar are concise and help the reader visualize the component. The content is straightforward and well laid out.
38-44: Central Canvas DescriptionThe “中心画布” section is clear and effectively explains its central role in the visual design process. The accompanying image helps in visualizing the canvas layout.
44-57: Right Settings Panel DetailsThe explanation regarding the right settings panel covers the subdivisions (properties, styles, advanced settings) in a clear manner. The inclusion of step-by-step image references is very useful.
58-63: Bottom Node Tree OverviewThe “底部节点树” section clearly describes the node hierarchy with an informative image. The content is succinct and serves the purpose of orienting the user.
docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md (2)
1-4: Clear Introduction and Document Structure.
The title and introductory paragraphs clearly explain the concept of a custom page code output plugin and the two primary customization methods. The structure—with separate sections for plugin replacement and incremental customization—is logical and user-friendly.
45-113: Comprehensive Example for Plugin Integration.
The subsequent examples showing how to create an instance with custom plugins are detailed and well integrated into the documentation. They effectively demonstrate both replacing the official plugins and leveraging incremental customization, which aligns nicely with the overall framework.docs/advanced-features/js-panel-and-event-binding.md (2)
1-6: Well-Structured Introduction to Page JS.
The introductory section clearly sets the context for Page JS, outlining its purpose, use cases, and limitations (e.g. only supporting function declarations). This is very helpful for users new to the concept.
33-79: Vue SFC Example is Well-Illustrated.
The Vue Single File Component code snippet provided (lines 33–79) is clear and demonstrates the integration of Page JS (including state management, event handling, and dependency injection) effectively. This practical example reinforces the textual instructions very well.docs/advanced-features/using-utils-methods.md (4)
1-9: Strong Overview of Utility Methods.
The document starts with a clear explanation of the purpose behind extracting common code snippets into utility methods. The discussion is well-organized and sets an excellent foundation for the detailed examples that follow.
16-16: Missing Image Resource.
The image linknot-found/zh-cn_image_0000001994511922.pngappears to be invalid or missing. Please update this link to reference an existing image to avoid broken visuals.
27-34: Clear Code Example for Function Utils.
The code snippet that demonstrates how to create a simple utility function (lines 27–34) is concise and effectively communicates its purpose.
49-57: Well-Formatted Instructional Table.
The table outlining the parameters for npm utility methods (lines 49–57) is clean and easy to read. It effectively summarizes the required and optional configurations.docs/api/backend-api/data-source-management.md (2)
1-10: Comprehensive API Documentation.
The documentation for data source management endpoints is thorough and well-structured. Each endpoint is clearly defined with details about the path, method, headers, parameters, and response data. This level of detail is excellent for developers integrating with the API.
128-132: Delete Endpoint Table is Well-Formatted.
The table detailing the return data for the delete data source endpoint is clear and provides all necessary information. No issues were found in this section.docs/extension-capabilities-tutorial/code-output-function/how-to-customize-code-output.md (5)
1-6: Strong Title and Overview on Customizing Code Output.
The introductory sections effectively explain the core process of schema transformation to code and the need for customization based on various team requirements. The dual approach—enhancing official capabilities and fully customizing the output—is well articulated.
32-34: Clear Installation Instructions.
The installation command provided for the official code output package is straightforward and easy to follow.
38-46: Usage Example with Default Configuration is Clear.
The code snippet demonstrating how to import and usegenerateAppwith its default configuration is concise and instructive.
52-67: Informative Custom Configuration Example.
The example showing how to pass custom settings via thepluginConfigobject is very useful. It clearly demonstrates how users can tailor the code generation process to their needs.
117-122: Custom Code Output Package Section is Well-Described.
The brief section on implementing a fully custom code output package (lines 117–122) is informative. The accompanying image helps visually convey the idea. Please verify that the image path (./imgs/customGenCodePlugin.png) is correct and that the image is accessible in the repository.docs/extension-capabilities-tutorial/how-to-develop-plugins.md (17)
1-2: Documentation Title & Introductory Heading:
The title “# 插件开发” sets a clear context for the guide. The heading level is appropriate for a new document.
3-9: Conceptual Overview & Image Reference:
The “## 插件相关概念” section succinctly explains the plugin scope and includes an image link for visual context. Please verify that the referenced image (./imgs/plugin1.png) exists and is up to date.
10-15: Feature List Clarity:
The bullet list outlining the capabilities provided by plugins is clear and serves as a good high-level overview.
16-24: End-to-End Plugin Workflow:
The “## 插件从开发到上线使用的完整流程” section outlines the complete lifecycle—from development to release. The step-by-step list is well structured.
25-34: Plugin Template Explanation:
The “## 插件模板工程” section, along with the fenced bash code block (lines 29–34), provides a straightforward template structure. Consider ensuring that the file/folder names match your project’s conventions.
36-49: Index File Sample for Plugin Registration:
The JavaScript code sample demonstrating theindex.jsexport (lines 38–48) clearly shows how to declare the plugin’s metadata. This is very helpful for developers.
51-67: Plugin UI Components Introduction:
The “## 插件UI” section describes the provided UI components and their intended use. The inclusion of code snippets for importing and usingPluginPanel(lines 72–87) is well demonstrated.
101-107: Custom UI Implementation Example:
The example provided for a custom UI implementation using a Vue snippet (lines 101–107) is concise and clear.
109-135: Plugin Setting Panel Guidance:
The “### 插件设置面板组件” section includes both import instructions and usage examples forPluginSetting(lines 115–135). The code snippet is clear; consider verifying that prop bindings (e.g.,:title="插件设置面板") follow your style guidelines if string literals are expected.
137-145: Slot & Prop Explanations:
The demonstration of header slot usage (lines 137–139) and subsequent “props 说明” (lines 140–145) are well documented. Clear instructions help users understand the available props and component behavior.
146-154: Implementation Notes:
The “注意” section (lines 146–154) clearly advises on the use ofv-iffor controlling panel visibility and techniques to customize component width via CSS variables.
209-242: Core API Integration – Page State:
The “### 获取页面状态” subsection includes a well-detailed code sample that demonstrates how to retrieve page state usinguseCanvas(). The snippet is well annotated and easy to follow.
244-266: Core API Integration – Global Config Access:
The “### 获取全局配置” section explains the retrieval of global configuration with clear code examples. The use of optional chaining in the sample is appropriate.
268-277: Core API Integration – Node Selection:
The “#### 选中组件” snippet (lines 272–276) clearly demonstrates how to use theselectNodemethod from the canvas API.
298-315: Node Removal Example:
The “#### 移除组件” section is clear and provides a precise usage example for theremoveNodeAPI.
317-324: Drag-and-Drop Workflow Explanation:
The explanation of the drag-and-drop mechanism (lines 317–324) is well outlined using bullet points. This clarity aids understanding of the underlying process.
325-348: Usage Example for CanvasDragItem:
The Vue snippet demonstrating the use ofCanvasDragItem(lines 325–348) is well composed and illustrates both template and script usage.docs/catalog.json (1)
1-212: JSON Catalog Structure:
The JSON file defines a comprehensive documentation catalog with clearly organized chapters and sections. Each article is appropriately referenced by title and filename. It is recommended to verify that every referenced markdown file (e.g., "introduction.md", "quick-start.md", etc.) exists and is correctly linked in the documentation repository.docs/api/frontend-api/main-package-api.md (7)
1-6: Main Package API Introduction:
The initial section clearly introduces the TinyEngine 主包 API and provides context for the subsequent export statements.
7-55: Exported Modules and Re-exports:
The export block (lines 7–55) comprehensively re-exports the various plugin components and services, thereby enabling on-demand imports. The organization looks consistent with project standards; consider verifying that the order and naming conventions align with internal guidelines.
57-156: Usage Examples – General Overview:
The “使用示例” section (lines 57–156) provides practical code samples demonstrating how to integrate the main package into a project. The examples are detailed, covering configuration, layout, themes, and toolbars. This thoroughness should greatly assist developers in understanding how to register and use components.
157-166: Registry Entry using defineEntry:
The example that demonstrates registering the user-defined registry usingdefineEntry(lines 157–166) is succinct and clear.
168-181: Merge Meta Retrieval Usage:
The sample usage ofgetMergeMeta(lines 168–181) is straightforward; it clearly shows how to extract meta information.
183-192: Meta API Access Example:
The snippet for retrieving the meta API viagetMetaApi(lines 183–192) is well explained. It demonstrates proper destructuring of the returned object, which enhances clarity.
194-200: Configuration Options Retrieval:
The example for obtaining options withgetOptions(lines 194–200) is simple yet effective. This helps ensure that developers can easily access configuration details when needed.docs/api/frontend-api/canvas-api.md (3)
1-6: Canvas Module API Overview:
The document begins with a clear title and introduction for the Canvas Module API. The “### 元服务useCanvas” section sets a good context for the detailed API descriptions that follow.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3(MD001, heading-increment)
57-60: Separation of Canvas API Subsection:
The document transitions into thecanvasApisection (line 57 onward). Clear separation of concerns between reactive state and direct canvas operations is evident.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
60-60: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
175-177: Overall Readability and Structure:
The overall documentation for the canvas API is comprehensive. Ensuring consistent formatting in code blocks (with language specifiers) and correcting minor typographical errors will enhance clarity for developers referencing these APIs.
left a comment
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (11)
docs/api/frontend-api/canvas-api.md (6)
7-23: Specify Language for Fenced Code Block & Correct TypoThe fenced code block outlining the structure of
statePageStatedoes not specify a language, affecting syntax highlighting and readability. Adding a language specifier (for example,jsif it’s intended as a JavaScript object literal) is recommended. Additionally, there is a typo in the comment at line 21: “currenetPage” should be “currentPage.”-``` +```js ... -//隐藏属性 currenetPage +//隐藏属性 currentPage🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
7-7: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
25-25: Remove Extra Space in Inline Code SpanThe inline code for
isCanvasApiReadycontains an extra leading space. Removing it will standardize the formatting.- ` isCanvasApiReady` +`isCanvasApiReady`🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
25-25: Spaces inside code span elements
null(MD038, no-space-in-code)
28-43: Add Language Specifier for API Methods Code BlockThe code block listing the
useCanvasAPI methods lacks a language specifier. Specifying a language (such asjs) will improve clarity and consistency in rendering.-``` +```js🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
28-28: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
47-122: Enhance Fenced Code Block and Correct SpellingFor the
canvasApiobject code block:
- Adding a language specifier (e.g.,
js) will help with readability.- There is a misspelling in the comment on line 112 where “contentDcocument” should be “contentDocument.”
-``` +```js ... - getDocument, // 方法函数,返回画布iframe的contentDcocument + getDocument, // 方法函数,返回画布iframe的contentDocument🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
60-60: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
125-157: Specify Language and Ensure Consistent NamingThe fenced code block for the
renderer对象also should include a language specifier (e.g.,js). Moreover, note that there is an inconsistency in the naming: in the previouscanvasApiblock the method is listed assetPageCsswhile here (line 150) it appears assetPagecss. Standardizing the casing (preferablysetPageCss) across the documentation will help maintain clarity.- setPagecss, + setPageCss,🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
142-142: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
128-129: Revise Terminology for ClarityThe descriptions for the methods
getAppandgetI18nuse the term “放回” (which literally means “set aside” or “put back”). It might be clearer and more conventional to use “返回” (meaning “return”) when describing that these methods return the current Vue instance and its related i18n object.docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md (4)
10-44: Custom Plugin Code Example Clarity.
The JavaScript snippet demonstrating a custom plugin (viacustomOptionStylePlugin) is clear and instructive. One suggestion is to add a brief comment or placeholder forblockBasePath(line 24) to indicate its expected definition or origin. This will help users avoid confusion if they copy the snippet verbatim.
57-92: Clarification on Pseudocode Variables in Template Generation.
ThegenTemplatefunction example effectively illustrates the template generation process. However, it uses several pseudocode variables (e.g.,schemaItem,componentName, etc.) whose definitions are not shown. Consider adding brief inline comments or placeholders for these variables to guide readers through the logic.
229-247: Processing Expression-Based Children.
ThehandleExpressionChildrensnippet (lines 229–247) demonstrates how to process children defined as JavaScript expressions. To further improve clarity, consider adding comments about variables such asthisRegexpandthisPropsBindReso readers understand these are placeholders or come from a broader context.
461-550: Thorough API Documentation with TypeScript Definitions.
The extensive TypeScript interfaces and type definitions (lines 461–550) provide excellent documentation of the expected API formats and configurations. They serve as a robust reference for developers and help ensure consistency between implementation and documentation. It might be useful to include a note encouraging these interfaces to be revisited as the API evolves.docs/extension-capabilities-tutorial/how-to-develop-plugins.md (1)
36-49: Clearindex.jsExport Example for Plugin Registration.
The JavaScript snippet (lines 36–49) demonstrates how to export a plugin object with its required properties such asid,title,icon, and others. For improved readability, consider ensuring consistent indentation in the exported object.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
docs/api/frontend-api/canvas-api.md(1 hunks)docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md(1 hunks)docs/extension-capabilities-tutorial/how-to-develop-plugins.md(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
docs/api/frontend-api/canvas-api.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
7-7: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
25-25: Spaces inside code span elements
null
(MD038, no-space-in-code)
28-28: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
60-60: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
142-142: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: push-check
- GitHub Check: push-check
🔇 Additional comments (27)
docs/extension-capabilities-tutorial/code-output-function/custom-page-code-output-plugin.md (10)
1-9: Concise Introduction and Overview.
The title and opening paragraph clearly explain that this document introduces a custom page code output plugin. The structure and sectioning make it easy for readers to follow.
45-56: Solid Explanation for Incremental Customization.
The section titled “基于官方出码自定义” explains the second customization approach clearly. The delineation between fully replacing the official plugin and applying incremental adjustments is helpful.
100-125: Well-Formatted Script and Style Code Blocks.
The provided examples for the<script setup>(lines 100–115) and the<style scoped>(lines 117–125) blocks are concise and clear. They effectively demonstrate how the final single-file component will look.
141-148: Simplicity in Component Name Conversion.
ThehandleComponentNamefunction (lines 141–148) clearly demonstrates converting a component name (for example, changing'Text'to'span'). This straightforward example effectively illustrates one of the customization use cases.
149-177: Good Example for Attributes Handling.
The JSON snippet and accompanying explanation (lines 149–177) clearly outline how to deal with attributes in a schema—for instance, choosing betweendataandfetchDatafor theTinyGridcomponent. The example serves as a practical reference for managing props during code generation.
178-218: Effective Handling of Grid-Specific Logic.
ThehandleTinyGridfunction (lines 178–218) is well written and effectively shows how to modify grid-related properties and inject dependencies via global hooks. This example makes the plugin’s extensibility very clear.
272-277: Consistent Plugin Instance Creation.
The example creating an instance withgenerateApp(lines 272–277) and passing custom hook functions is concise and clear. It reinforces how both page and block output plugins can be customized consistently.
281-390: Comprehensive GlobalHooks API Demonstration.
The document provides detailed examples (lines 281–390) that cover a wide range ofglobalHookscapabilities—from adding statements, methods, and state to configuring script and style settings. These examples are thorough and serve as an excellent reference for developers customizing code output.
392-422: Clear Example of Script Parsing Customization.
TheparseScriptfunction snippet (lines 392–422) shows how to inject custom logic during the script parsing phase. Its simplicity makes it easy for users to adapt this pattern in their own plugins.
424-450: Flexible genScript Configuration.
The example demonstrating the custom slots (e.g.,GEN_IMPORT,GEN_PROPS,GEN_EMIT) within thegenScriptconfiguration (lines 424–450) illustrates the flexibility of the code generation process. This detailed configuration helps users understand how to fully customize the final generated script.docs/extension-capabilities-tutorial/how-to-develop-plugins.md (17)
1-4: Concise Plugin Development Introduction.
The opening lines clearly state the focus on plugin development and introduce the key concepts that will be detailed throughout the document.
5-15: Clear Summary of Plugin Capabilities.
The section enumerating the core functionalities of plugins (lines 5–15) is straightforward and effective. It helps set expectations regarding what developers can do with the plugins.
16-24: Well-Outlined Plugin Workflow.
The step-by-step process (lines 16–24) from development to deployment is clearly presented. This workflow provides a solid roadmap for plugin developers.
25-34: Informative Plugin Template Engineering Section.
The directory structure and required files for a minimal plugin template (lines 25–34) are well documented with an easy-to-read bash code block. This example effectively communicates the basic project organization.
50-67: Comprehensive Overview of Plugin UI Components.
The introduction to the UI components—PluginPanelandPluginSetting(lines 50–67)—provides a clear explanation of their roles, supported by illustrative images. This sets up the context for the detailed usage sections that follow.
68-99: Detailed PluginPanel Usage Example.
The section covering thePluginPanel(lines 68–99) is very detailed. It includes clear instructions for importing the component and practical usage examples with slot definitions and image references.
100-107: Custom UI for Plugin Close Action.
The Vue example (lines 100–107) showing how to implement a custom close button via$emit('close')is concise and practical, demonstrating how to manage UI behavior when not using the built-in panel components.
108-134: Clear Demonstration of PluginSetting Component Usage.
The instructions and code snippet for thePluginSettingcomponent (lines 108–134) effectively cover its import and usage, including slot customization and conditional rendering viav-if.
136-148: Effective Explanation of PluginSetting Properties.
The brief rundown of PluginSetting properties (lines 136–148) and the tip on using a CSS variable for width customization offer useful insights for developers aiming to fine-tune the appearance of their settings panel.
154-180: Well-Structured Schema Example.
The JSON example (lines 154–180) describing the page schema is comprehensive and serves as an excellent reference for understanding the structure expected by the system.
181-201: Clear Definition for Component Schema.
The TypeScript interface forIComponentSchema(lines 181–201) clearly explains the structure and expected properties of a component schema, aiding in proper implementation.
213-227: Good Overview of Page State.
The examples and explanations detailing the page state (lines 213–227) provide practical insights into how to access and manage state information within the design tool.
241-261: Thorough Global Configuration Example.
The snippets outlining the global configuration (lines 241–261) are detailed and show how to retrieve configuration values using optional chaining. This example adds robustness to the documentation.
263-270: Simple Example for Selecting a Component.
The code snippet demonstrating the usage ofselectNode(lines 263–270) is brief and effective for showing how to select a component on the canvas.
271-289: Clear Insert Component API Example.
The TypeScript snippet related to theinsertNodefunction (lines 271–289) clearly defines the method signature and expected usage, making it a useful reference for inserting new components into the canvas.
290-306: Smooth Example for Removing a Component.
The example for removing a component (lines 290–306) is well structured—it shows how to retrieve the current schema and its parent and then perform the removal operation.
307-336: Effective Demonstration of Drag-and-Drop Integration.
The final section (lines 307–336) illustrates how to implement drag-and-drop functionality usingCanvasDragItem. The Vue template and script example are comprehensive and clearly explain the integration process.

English | 简体中文
PR
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
Background and solution
添加文档
What is the current behavior?
Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
Other information
遗留事项
not-found,public_sys-resources链接的图片Summary by CodeRabbit