-
Notifications
You must be signed in to change notification settings - Fork 12
Updated architecture diagram and renamed file #210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
WalkthroughThis PR updates the data flow diagram image reference version and introduces a new comprehensive documentation file establishing unified standards for documentation structure, development environments, JavaScript practices, API patterns, and testing guidelines. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
docs/assets/img/architecture.pngis excluded by!**/*.png
📒 Files selected for processing (2)
docs/Data-flow.md(1 hunks)docs/documentation-and-coding-standards.md(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/documentation-and-coding-standards.md
[grammar] ~179-~179: Did you mean the adverb/preposition “within”?
Context: ... the tools that end-users will interact with in the published app. **When to use Studi...
(WITH_IN)
🪛 markdownlint-cli2 (0.18.1)
docs/documentation-and-coding-standards.md
8-8: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
9-9: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
12-12: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
18-18: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
19-19: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
22-22: Link fragments should be valid
(MD051, link-fragments)
23-23: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
41-41: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
42-42: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
44-44: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
51-51: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
52-52: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
53-53: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
54-54: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
55-55: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
56-56: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
102-102: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
103-103: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
120-120: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
121-121: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
121-121: Trailing spaces
Expected: 0; Actual: 2
(MD009, no-trailing-spaces)
122-122: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
125-125: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
128-128: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
129-129: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
136-136: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
137-137: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
138-138: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
139-139: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
140-140: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
141-141: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
142-142: Ordered list item prefix
Expected: 1; Actual: 8; Style: 1/1/1
(MD029, ol-prefix)
149-149: Multiple headings with the same content
(MD024, no-duplicate-heading)
155-155: Multiple headings with the same content
(MD024, no-duplicate-heading)
158-158: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
159-159: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
160-160: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
161-161: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
162-162: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
164-164: Link fragments should be valid
(MD051, link-fragments)
182-182: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
183-183: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
184-184: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
185-185: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
188-188: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
189-189: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
190-190: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
191-191: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
194-194: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
216-216: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
217-217: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
218-218: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
227-227: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
228-228: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
229-229: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
230-230: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
231-231: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
234-234: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
235-235: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
236-236: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
237-237: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
240-240: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
276-276: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
277-277: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
278-278: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
279-279: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
286-286: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
301-301: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
302-302: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
316-316: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
317-317: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
366-366: Multiple headings with the same content
(MD024, no-duplicate-heading)
372-372: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
373-373: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
388-388: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
388-388: Multiple headings with the same content
(MD024, no-duplicate-heading)
389-389: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
403-403: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
404-404: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
418-418: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
419-419: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
434-434: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
435-435: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
475-475: Multiple headings with the same content
(MD024, no-duplicate-heading)
557-557: Multiple headings with the same content
(MD024, no-duplicate-heading)
563-563: Multiple headings with the same content
(MD024, no-duplicate-heading)
566-566: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
567-567: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
568-568: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
569-569: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
570-570: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
571-571: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
581-581: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
582-582: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
583-583: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
584-584: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
585-585: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
586-586: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
627-627: Multiple headings with the same content
(MD024, no-duplicate-heading)
807-807: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
808-808: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
809-809: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
810-810: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
811-811: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
812-812: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
816-816: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
817-817: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
818-818: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
819-819: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
820-820: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
821-821: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
822-822: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
827-827: Trailing spaces
Expected: 0; Actual: 2
(MD009, no-trailing-spaces)
828-828: Trailing spaces
Expected: 0; Actual: 1
(MD009, no-trailing-spaces)
828-828: Files should end with a single newline character
(MD047, single-trailing-newline)
docs/Data-flow.md
3-3: Files should end with a single newline character
(MD047, single-trailing-newline)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (2)
docs/Data-flow.md (1)
1-3: Add trailing newline to comply with markdown standards.The file is missing a trailing newline character at the end, which is a standard practice for text files.
Apply this diff:
# Infrastructure Data flow - + +Please verify that the updated architecture image (
assets/img/architecture.png?v=3) exists and reflects the updated AI model usage as described in the PR objective.docs/documentation-and-coding-standards.md (1)
9-27: Verify table of contents link fragments are valid and resolvable.Lines 22 and 164 reference link fragments (e.g.,
#test-templates-and-setup) that may not correspond to actual heading IDs in the document due to heading naming inconsistencies. Ensure all internal links in the table of contents point to valid section headings.Confirm that all link fragments in the table of contents match the actual heading IDs. For example:
- Does
#test-templates-and-setupon line 22 correspond to a heading named "Test Templates and Setup"?- Does
#fliplet-api-patternson line 164 exist and is correctly formatted?You may need to generate heading IDs that match the referenced fragments if they are missing.
| # Fliplet Documentation and Coding Standards | ||
|
|
||
| This document outlines the coding standards and documentation guidelines for Fliplet development, ensuring consistency across all APIs, components, and examples. These standards help developers write maintainable code and create documentation that both humans and AI systems can easily understand and implement. | ||
|
|
||
| ## Table of Contents | ||
|
|
||
| 1. [Documentation Standards](#documentation-standards) | ||
| 2. [Development Environment Guidelines](#development-environment-guidelines) | ||
| 3. [JavaScript Coding Standards](javascript-coding-standards.md) | ||
| - 3.1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended) | ||
| - 3.2. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility) | ||
| 4. [Fliplet API Patterns](code-api-patterns.md) | ||
| - 4.1. [API Categories Overview](code-api-patterns.md#api-categories-overview) | ||
| - 4.2. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns) | ||
| - 4.3. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis) | ||
| - 4.4. [Navigation Patterns](code-api-patterns.md#navigation-patterns) | ||
| - 4.5. [Communication Patterns](code-api-patterns.md#communication-patterns) | ||
| 5. [Quick Reference Guide](#quick-reference-guide) | ||
| 6. [Code Examples and Testing](#code-examples-and-testing) | ||
| - 6.1. [Complete Example Requirements](#complete-example-requirements) | ||
| - 6.2. [Asset Provision Standards](#asset-provision-standards) | ||
| - 6.3. [Test Templates and Setup](#test-templates-and-setup) | ||
| 7. [Approved Libraries](approved-libraries.md) | ||
| - 7.1. [Available Libraries](approved-libraries.md#available-libraries) | ||
| - 7.2. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines) | ||
| - 7.3. [Performance Considerations](approved-libraries.md#performance-considerations) | ||
| - 7.4. [Custom Library Integration](approved-libraries.md#custom-library-integration) | ||
|
|
||
|
|
||
| ## Documentation Standards | ||
|
|
||
| ### Purpose and Importance | ||
|
|
||
| Documentation standards ensure that all Fliplet APIs are documented consistently, making it easier for developers to understand, implement, and maintain code. Good documentation serves multiple audiences: human developers learning the platform, experienced developers looking for quick reference, and AI systems that need to understand API functionality. | ||
|
|
||
| These standards prioritize **immediate usability** - every example should work when copied directly into an app, and every API should be clearly explained with its specific use cases. | ||
|
|
||
| ### When to Use This Section | ||
|
|
||
| Use these documentation standards when: | ||
| - Writing API documentation for any Fliplet namespace | ||
| - Creating examples for components or helpers | ||
| - Documenting new features or updates | ||
| - Reviewing existing documentation for consistency | ||
|
|
||
| ### Structure Requirements | ||
|
|
||
| All Fliplet API documentation must include: | ||
|
|
||
| 1. **Clear Purpose Statement** - What the API does and when to use it | ||
| 2. **Syntax Documentation** - Exact method signatures with parameter types | ||
| 3. **Return Value Information** - What the method returns and in what format | ||
| 4. **Complete Examples** - Working code that can be copied and tested immediately | ||
| 5. **Required Assets** - Any files, data sources, or setup needed for examples | ||
| 6. **Error Handling** - Common errors and how to handle them | ||
| 7. **Environment Notes** - Differences between Studio and deployed app behavior | ||
|
|
||
| > **See also:** [Code Examples and Testing](#code-examples-and-testing) for detailed example requirements | ||
|
|
||
| ### Standard Documentation Template | ||
|
|
||
| ```markdown | ||
| ### API Method Name | ||
|
|
||
| **Purpose:** Brief description of what this API method does | ||
| **Syntax:** `Fliplet.Namespace.methodName(param1, param2, options?)` | ||
| **Returns:** `Promise<ReturnType>` or `ReturnType` | ||
| **When to use:** Specific scenarios where this method is appropriate | ||
| **Environment:** Studio ✓ | App ✓ (or note restrictions) | ||
|
|
||
| #### Required Setup | ||
| - Data source: "ExampleData" with columns: Name, Email, Status | ||
| - Media folder: "TestAssets" | ||
| - Screen: "TestScreen" (if navigation examples) | ||
|
|
||
| #### Complete Example | ||
| ```js | ||
| // Complete example with all setup and error handling | ||
| const demonstrateMethod = async () => { | ||
| try { | ||
| // 1. Setup (if needed) | ||
| const connection = await Fliplet.DataSources.connectByName("ExampleData"); | ||
|
|
||
| // 2. Main operation | ||
| const result = await Fliplet.Namespace.methodName(param1, param2, { | ||
| option: 'value' | ||
| }); | ||
|
|
||
| // 3. Handle result | ||
| console.log('Success:', result); | ||
| return result; | ||
| } catch (error) { | ||
| console.error('Error:', error.message); | ||
| throw error; | ||
| } | ||
| }; | ||
|
|
||
| // Run example | ||
| demonstrateMethod().catch(console.error); | ||
| ``` | ||
|
|
||
| #### Test Data | ||
| ```json | ||
| // Sample data for "ExampleData" data source | ||
| [ | ||
| { | ||
| "Name": "John Smith", | ||
| "Email": "john@example.com", | ||
| "Status": "Active" | ||
| }, | ||
| { | ||
| "Name": "Jane Doe", | ||
| "Email": "jane@example.com", | ||
| "Status": "Active" | ||
| } | ||
| ] | ||
| ``` | ||
|
|
||
| **Parameters:** | ||
| - `param1` (Type): Description of parameter | ||
| - `param2` (Type): Description of parameter | ||
| - `options` (Object, optional): Configuration options | ||
|
|
||
| **Options:** | ||
| - `option` (String): Description of option | ||
|
|
||
| **Common Errors:** | ||
| - `404`: Resource not found - Check data source exists | ||
| - `403`: Access denied - Verify permissions | ||
|
|
||
| **See also:** [Error Handling Patterns](#error-handling-patterns) | ||
|
|
||
| # Documentation Principles | ||
|
|
||
| 1. **Complete & Testable** - Every example must work immediately when copied | ||
| 2. **Asset Provision** - Provide all required files, data, and setup instructions | ||
| 3. **Environment Aware** - Note differences between Studio and deployed apps | ||
| 4. **AI-Optimized** - Structure content for easy parsing by LLMs and AI tools | ||
| 5. **Progressive Complexity** - Start simple, build to advanced patterns | ||
| 6. **Real-World Focus** - Examples should reflect actual use cases | ||
| 7. **Cross-Reference** - Link related methods and concepts | ||
| 8. **Error Complete** - Include comprehensive error handling | ||
|
|
||
| > **Next:** Learn about [Development Environment Guidelines](#development-environment-guidelines) | ||
|
|
||
|
|
||
| ## Development Environment Guidelines | ||
|
|
||
| ### Purpose and Importance | ||
|
|
||
| Fliplet development happens in two distinct environments: **Fliplet Studio** (for building and configuring components) and **deployed apps** (for end-user functionality). Understanding these environments is crucial because different APIs are available in each context, and code behavior can vary significantly. | ||
|
|
||
| > **Key Concept:** Environment-aware development is essential for creating components that work correctly in both Studio configuration and app runtime contexts. | ||
|
|
||
| ### When to Use This Section | ||
|
|
||
| Reference this section when: | ||
| - Writing code that needs to work in both Studio and apps | ||
| - Creating components that have configuration interfaces | ||
| - Building apps with user-facing functionality | ||
| - Debugging environment-specific issues | ||
| - Choosing appropriate APIs for your use case | ||
|
|
||
| > **See also:** [Fliplet API Patterns](#fliplet-api-patterns) for API-specific environment considerations | ||
|
|
||
| ### Environment Comparison | ||
|
|
||
| | Aspect | Studio Environment | App Environment | | ||
| |--------|-------------------|-----------------| | ||
| | **Purpose** | Component configuration | User functionality | | ||
| | **APIs Available** | Widget, Studio, Helper | User, DataSources, Navigate, Device | | ||
| | **Context** | Development/Configuration | Runtime/Production | | ||
| | **User Type** | Developers/Admins | End Users | | ||
|
|
||
| ### Fliplet Studio Development | ||
|
|
||
| **Environment:** Code running within Fliplet Studio interface | ||
|
|
||
| **Purpose:** Studio development is for creating and configuring components, themes, and app structure. This is where developers build the tools that end-users will interact with in the published app. | ||
|
|
||
| **When to use Studio APIs:** | ||
| - Building component configuration interfaces | ||
| - Creating data source selectors | ||
| - Setting up screen navigation options | ||
| - Configuring app themes and layouts | ||
|
|
||
| **Characteristics:** | ||
| - Full access to Studio APIs | ||
| - Live preview capabilities | ||
| - Component configuration interface | ||
| - Limited to Studio context | ||
|
|
||
| **Example - Studio Component Code:** | ||
| ```js | ||
| // Studio component initialization | ||
| Fliplet.Widget.onSaveRequest(() => { | ||
| // Get configuration from UI | ||
| const config = { | ||
| dataSource: $('#select-datasource').val(), | ||
| template: $('#select-template').val(), | ||
| options: { | ||
| showHeader: $('#show-header').is(':checked'), | ||
| itemsPerPage: parseInt($('#items-per-page').val()) || 10 | ||
| } | ||
| }; | ||
|
|
||
| // Save configuration | ||
| Fliplet.Widget.save(config).then(() => { | ||
| console.log('Component configured successfully'); | ||
| Fliplet.Widget.complete(); | ||
| }); | ||
| }); | ||
| ``` | ||
|
|
||
| **Studio-Only APIs:** | ||
| - `Fliplet.Widget.*` - Component lifecycle management | ||
| - `Fliplet.Studio.*` - Studio interface interactions | ||
| - `Fliplet.Helper.*` - Helper development tools | ||
|
|
||
| ### Deployed App Development | ||
|
|
||
| **Environment:** Code running in published Fliplet apps | ||
|
|
||
| **Purpose:** App development is for creating end-user functionality - the actual features that users interact with when using your published app. This includes user authentication, data management, navigation, and device features. | ||
|
|
||
| **When to use App APIs:** | ||
| - User login and authentication | ||
| - Reading and writing app data | ||
| - Navigating between screens | ||
| - Sending notifications | ||
| - Accessing device features (camera, GPS, etc.) | ||
|
|
||
| **Characteristics:** | ||
| - Full runtime API access | ||
| - User interaction capabilities | ||
| - Data persistence | ||
| - Device-specific features | ||
|
|
||
| **Example - App Runtime Code:** | ||
| ```js | ||
| // App initialization code | ||
| Fliplet.Hooks.on('flAppReady', async () => { | ||
| try { | ||
| // Initialize app features | ||
| await initializeUserSession(); | ||
| await loadUserPreferences(); | ||
| await setupNotifications(); | ||
|
|
||
| console.log('App initialized successfully'); | ||
| } catch (error) { | ||
| console.error('App initialization failed:', error); | ||
| } | ||
| }); | ||
|
|
||
| const initializeUserSession = async () => { | ||
| // Check if user is logged in | ||
| const user = await Fliplet.User.getCachedSession(); | ||
|
|
||
| if (user) { | ||
| console.log('User logged in:', user.email); | ||
| await loadUserData(user.id); | ||
| } else { | ||
| console.log('No user session found'); | ||
| // Redirect to login if required | ||
| } | ||
| }; | ||
|
|
||
| // App-specific APIs available: | ||
| // - Fliplet.User.* | ||
| // - Fliplet.DataSources.* | ||
| // - Fliplet.Navigate.* | ||
| // - Device APIs (Camera, GPS, etc.) | ||
| ``` | ||
|
|
||
| **App-Only APIs:** | ||
| - `Fliplet.User.*` - User authentication and management | ||
| - `Fliplet.Device.*` - Device-specific functionality | ||
| - `Fliplet.Cache.*` - Local data caching | ||
| - `Fliplet.Hooks.*` - App lifecycle events | ||
|
|
||
| ### Environment-Specific Code Examples | ||
|
|
||
| > **Note:** These examples demonstrate the key differences between Studio and App development patterns. | ||
|
|
||
| #### Data Source Access | ||
| ```js | ||
| // STUDIO: Component configuration | ||
| Fliplet.Widget.onSaveRequest(() => { | ||
| const selectedDataSource = $('#datasource-selector').val(); | ||
| Fliplet.Widget.save({ dataSourceId: selectedDataSource }); | ||
| }); | ||
|
|
||
| // APP: Runtime data access | ||
| const loadAppData = async () => { | ||
| const connection = await Fliplet.DataSources.connectByName("AppData"); | ||
| const records = await connection.find(); | ||
| return records; | ||
| }; | ||
| ``` | ||
|
|
||
| #### Navigation Handling | ||
| ```js | ||
| // STUDIO: Configure navigation target | ||
| const configureNavigation = () => { | ||
| const targetScreen = $('#screen-selector').val(); | ||
| return { action: 'screen', page: targetScreen }; | ||
| }; | ||
|
|
||
| // APP: Execute navigation | ||
| const navigateToScreen = async (screenName) => { | ||
| await Fliplet.Navigate.screen(screenName); | ||
| console.log(`Navigated to ${screenName}`); | ||
| }; | ||
| ``` | ||
|
|
||
| #### User Management | ||
| ```js | ||
| // STUDIO: Not available - user management is app-only | ||
|
|
||
| // APP: User authentication | ||
| const handleUserLogin = async (email, password) => { | ||
| try { | ||
| const user = await Fliplet.User.login({ email, password }); | ||
| console.log('User logged in:', user); | ||
| return user; | ||
| } catch (error) { | ||
| console.error('Login failed:', error.message); | ||
| throw error; | ||
| } | ||
| }; | ||
| ``` | ||
|
|
||
| ### Environment Detection | ||
|
|
||
| ```js | ||
| // Detect current environment | ||
| const detectEnvironment = () => { | ||
| const isStudio = typeof Fliplet.Widget !== 'undefined'; | ||
| const isApp = typeof Fliplet.User !== 'undefined'; | ||
|
|
||
| return { | ||
| isStudio, | ||
| isApp, | ||
| environment: isStudio ? 'studio' : 'app' | ||
| }; | ||
| }; | ||
|
|
||
| // Use environment-specific code | ||
| const initializeBasedOnEnvironment = async () => { | ||
| const { isStudio, isApp } = detectEnvironment(); | ||
|
|
||
| if (isStudio) { | ||
| // Studio-specific initialization | ||
| console.log('Running in Studio environment'); | ||
| setupComponentConfiguration(); | ||
| } else if (isApp) { | ||
| // App-specific initialization | ||
| console.log('Running in App environment'); | ||
| await initializeAppFeatures(); | ||
| } | ||
| }; | ||
| ``` | ||
|
|
||
| ## Quick Reference Guide | ||
|
|
||
| ### Purpose and Importance | ||
|
|
||
| This quick reference provides immediate access to the most commonly used Fliplet patterns, APIs, and code snippets. Use this section for fast lookup during development. | ||
|
|
||
| ### Common API Patterns | ||
|
|
||
| #### Data Sources | ||
| ```js | ||
| // Connect and query | ||
| const connection = await Fliplet.DataSources.connectByName("DataSourceName"); | ||
| const records = await connection.find({ where: { Status: 'Active' }, limit: 50 }); | ||
|
|
||
| // Insert record | ||
| const newRecord = await connection.insert({ Name: 'John', Email: 'john@example.com' }); | ||
|
|
||
| // Update record | ||
| const updated = await connection.update(recordId, { Status: 'Updated' }); | ||
|
|
||
| // Delete record | ||
| await connection.removeById(recordId); | ||
| ``` | ||
|
|
||
| #### User Management | ||
| ```js | ||
| // Login | ||
| const user = await Fliplet.User.login({ email: 'user@example.com', password: 'password' }); | ||
|
|
||
| // Get current user | ||
| const currentUser = await Fliplet.User.getCachedSession(); | ||
|
|
||
| // Logout | ||
| await Fliplet.User.logout(); | ||
|
|
||
| // Update profile | ||
| const updatedUser = await Fliplet.User.update({ firstName: 'John' }); | ||
| ``` | ||
|
|
||
| #### Navigation | ||
| ```js | ||
| // Navigate to screen | ||
| await Fliplet.Navigate.screen('ScreenName'); | ||
|
|
||
| // Navigate with data | ||
| await Fliplet.Navigate.screen('ScreenName', { userId: 123 }); | ||
|
|
||
| // Navigate to URL | ||
| await Fliplet.Navigate.url('https://example.com'); | ||
|
|
||
| // Go back | ||
| await Fliplet.Navigate.back(); | ||
| ``` | ||
|
|
||
| #### Media Management | ||
| ```js | ||
| // Get folders | ||
| const folders = await Fliplet.Media.Folders.get(); | ||
|
|
||
| // Upload file | ||
| const uploadedFile = await Fliplet.Media.Files.upload({ | ||
| folderId: folderId, | ||
| file: fileObject, | ||
| fileName: 'example.jpg' | ||
| }); | ||
|
|
||
| // Get files | ||
| const files = await Fliplet.Media.Files.get({ folderId: folderId }); | ||
| ``` | ||
|
|
||
| #### Communication | ||
| ```js | ||
| // Send email | ||
| await Fliplet.Communicate.sendEmail({ | ||
| to: [{ email: 'user@example.com', name: 'User Name' }], | ||
| subject: 'Subject', | ||
| html: '<p>Message content</p>' | ||
| }); | ||
|
|
||
| // Create notification | ||
| await Fliplet.Notifications.create({ | ||
| title: 'Notification Title', | ||
| message: 'Notification message', | ||
| userId: userId | ||
| }); | ||
| ``` | ||
|
|
||
| ### Error Handling Patterns | ||
|
|
||
| ```js | ||
| // Basic try-catch | ||
| try { | ||
| const result = await someFlipletAPI(); | ||
| console.log('Success:', result); | ||
| } catch (error) { | ||
| console.error('Error:', error.message); | ||
| } | ||
|
|
||
| // With retry logic | ||
| const withRetry = async (operation, maxRetries = 3) => { | ||
| for (let attempt = 1; attempt <= maxRetries; attempt++) { | ||
| try { | ||
| return await operation(); | ||
| } catch (error) { | ||
| if (attempt === maxRetries) throw error; | ||
| await new Promise(resolve => setTimeout(resolve, 1000 * attempt)); | ||
| } | ||
| } | ||
| }; | ||
| ``` | ||
|
|
||
| ### Environment Detection | ||
|
|
||
| ```js | ||
| // Detect environment | ||
| const isStudio = typeof Fliplet.Widget !== 'undefined'; | ||
| const isApp = typeof Fliplet.User !== 'undefined'; | ||
|
|
||
| // Environment-specific code | ||
| if (isStudio) { | ||
| // Studio-specific logic | ||
| Fliplet.Widget.onSaveRequest(() => { | ||
| // Component configuration | ||
| }); | ||
| } else { | ||
| // App-specific logic | ||
| Fliplet.Hooks.on('flAppReady', () => { | ||
| // App initialization | ||
| }); | ||
| } | ||
| ``` | ||
|
|
||
| ### Common Utility Functions | ||
|
|
||
| ```js | ||
| // Delay function | ||
| const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms)); | ||
|
|
||
| // Format date | ||
| const formatDate = (date) => moment(date).format('YYYY-MM-DD'); | ||
|
|
||
| // Group array by property | ||
| const groupBy = (array, key) => { | ||
| return array.reduce((groups, item) => { | ||
| const group = item[key]; | ||
| groups[group] = groups[group] || []; | ||
| groups[group].push(item); | ||
| return groups; | ||
| }, {}); | ||
| }; | ||
|
|
||
| // Debounce function | ||
| const debounce = (func, wait) => { | ||
| let timeout; | ||
| return function executedFunction(...args) { | ||
| const later = () => { | ||
| clearTimeout(timeout); | ||
| func(...args); | ||
| }; | ||
| clearTimeout(timeout); | ||
| timeout = setTimeout(later, wait); | ||
| }; | ||
| }; | ||
| ``` | ||
|
|
||
| ### Performance Optimization | ||
|
|
||
| ```js | ||
| // Efficient queries | ||
| const optimizedQuery = await connection.find({ | ||
| where: { | ||
| $filters: [ | ||
| { column: 'Status', condition: '==', value: 'Active' }, | ||
| { column: 'Department', condition: '==', value: 'Engineering' } | ||
| ] | ||
| }, | ||
| attributes: ['Name', 'Email'], // Limit returned fields | ||
| limit: 50, | ||
| order: [['Name', 'ASC']] | ||
| }); | ||
|
|
||
| // Pagination | ||
| const loadPage = async (page = 0, pageSize = 20) => { | ||
| return connection.find({ | ||
| limit: pageSize, | ||
| offset: page * pageSize, | ||
| includePagination: true | ||
| }); | ||
| }; | ||
| ``` | ||
|
|
||
| ## Code Examples and Testing | ||
|
|
||
| ### Purpose and Importance | ||
|
|
||
| Complete examples and comprehensive testing are the foundation of good documentation and reliable code. They eliminate guesswork, reduce support requests, and enable developers to quickly prototype and test functionality. Every code example should be a working demonstration that developers can immediately run in their apps. | ||
|
|
||
| > **Key Principle:** Every example must work immediately when copied - no missing dependencies, no undefined variables, no incomplete setup. | ||
|
|
||
| ### When to Use This Section | ||
|
|
||
| Reference this section when: | ||
| - Writing any code example in documentation | ||
| - Creating tutorial content | ||
| - Building component examples | ||
| - Testing API functionality | ||
| - Setting up development environments | ||
| - Creating reusable code templates | ||
|
|
||
| > **See also:** [Documentation Standards](#documentation-standards) for documentation structure requirements | ||
|
|
||
|
|
||
| ### Complete Example Requirements | ||
|
|
||
| Every code example in Fliplet documentation must include: | ||
|
|
||
| 1. **Full Setup Code** - All initialization and connection code | ||
| 2. **Error Handling** - Try/catch blocks with meaningful error messages | ||
| 3. **Console Output** - Logging for debugging and verification | ||
| 4. **Asset References** - Clear identification of required resources | ||
| 5. **Usage Instructions** - How to run the example | ||
| 6. **Expected Results** - What the output should look like | ||
| 7. **Environment Notes** - Studio vs App compatibility | ||
|
|
||
| #### Example Structure Template | ||
|
|
||
| ```js | ||
| // Complete example template | ||
| const completeExampleTemplate = async () => { | ||
| try { | ||
| // 1. Environment check | ||
| console.log('Environment:', typeof Fliplet.Widget !== 'undefined' ? 'Studio' : 'App'); | ||
|
|
||
| // 2. Setup phase | ||
| console.log('Setting up...'); | ||
| const connection = await Fliplet.DataSources.connectByName("ExampleData"); | ||
|
|
||
| // 3. Main operation | ||
| console.log('Performing operation...'); | ||
| const result = await connection.find({ limit: 10 }); | ||
|
|
||
| // 4. Results | ||
| console.log('Operation completed:', result.length, 'records found'); | ||
| return result; | ||
|
|
||
| } catch (error) { | ||
| // 5. Error handling | ||
| console.error('Example failed:', error.message); | ||
| throw error; | ||
| } | ||
| }; | ||
|
|
||
| // Usage | ||
| completeExampleTemplate() | ||
| .then(result => console.log('Success:', result)) | ||
| .catch(error => console.error('Failed:', error)); | ||
| ``` | ||
|
|
||
|
|
||
| ### Asset Provision Standards | ||
|
|
||
| When examples require assets, provide complete setup instructions and code: | ||
|
|
||
| #### Data Sources | ||
|
|
||
| ```js | ||
| // Create test data source programmatically | ||
| const createTestDataSource = async () => { | ||
| const dataSource = await Fliplet.DataSources.create({ | ||
| name: 'TestUsers', | ||
| columns: ['Name', 'Email', 'Department', 'Status'], | ||
| entries: [ | ||
| { | ||
| Name: 'John Smith', | ||
| Email: 'john@company.com', | ||
| Department: 'Engineering', | ||
| Status: 'Active' | ||
| }, | ||
| { | ||
| Name: 'Sarah Jones', | ||
| Email: 'sarah@company.com', | ||
| Department: 'Design', | ||
| Status: 'Active' | ||
| } | ||
| ] | ||
| }); | ||
|
|
||
| console.log('Test data source created:', dataSource.name); | ||
| return dataSource; | ||
| }; | ||
|
|
||
| // Alternative: Manual setup instructions | ||
| const setupDataSourceManually = () => { | ||
| console.log(` | ||
| Manual Data Source Setup: | ||
| 1. Go to Data Sources in Fliplet Studio | ||
| 2. Create new data source named "TestUsers" | ||
| 3. Add columns: Name, Email, Department, Status | ||
| 4. Import the provided CSV data | ||
| `); | ||
| }; | ||
| ``` | ||
|
|
||
| #### Media Files | ||
|
|
||
| ```js | ||
| // Provide sample files or creation instructions | ||
| const createSampleImage = () => { | ||
| // For testing, create a simple canvas image | ||
| const canvas = document.createElement('canvas'); | ||
| canvas.width = 100; | ||
| canvas.height = 100; | ||
| const ctx = canvas.getContext('2d'); | ||
| ctx.fillStyle = '#4CAF50'; | ||
| ctx.fillRect(0, 0, 100, 100); | ||
| ctx.fillStyle = 'white'; | ||
| ctx.font = '16px Arial'; | ||
| ctx.fillText('TEST', 30, 55); | ||
|
|
||
| return new Promise(resolve => { | ||
| canvas.toBlob(resolve, 'image/png'); | ||
| }); | ||
| }; | ||
|
|
||
| // Usage in examples | ||
| const uploadTestImage = async () => { | ||
| const testFile = await createSampleImage(); | ||
| const folders = await Fliplet.Media.Folders.get(); | ||
| const testFolder = folders.find(f => f.name === 'TestAssets'); | ||
|
|
||
| return Fliplet.Media.Files.upload({ | ||
| folderId: testFolder.id, | ||
| file: testFile, | ||
| fileName: 'test-image.png' | ||
| }); | ||
| }; | ||
| ``` | ||
|
|
||
| #### Screen Navigation Setup | ||
|
|
||
| ```js | ||
| // Provide screen setup for navigation examples | ||
| const setupTestScreens = () => { | ||
| // Note: In Studio, create screens manually | ||
| const requiredScreens = [ | ||
| 'Home', // Main landing screen | ||
| 'Profile', // User profile screen | ||
| 'Settings', // App settings screen | ||
| 'Dashboard' // Data dashboard screen | ||
| ]; | ||
|
|
||
| console.log('Required screens for navigation examples:'); | ||
| requiredScreens.forEach(screen => { | ||
| console.log(`- ${screen}: Create in Fliplet Studio`); | ||
| }); | ||
|
|
||
| return requiredScreens; | ||
| }; | ||
|
|
||
| // Navigation example with screen validation | ||
| const safeNavigateToScreen = async (screenName) => { | ||
| try { | ||
| await Fliplet.Navigate.screen(screenName); | ||
| console.log(`Successfully navigated to ${screenName}`); | ||
| } catch (error) { | ||
| console.error(`Navigation failed to ${screenName}:`, error.message); | ||
| console.log('Ensure the screen exists in your app'); | ||
| throw error; | ||
| } | ||
| }; | ||
| ``` | ||
|
|
||
| #### Test Data Templates | ||
|
|
||
| ```js | ||
| // Sample data templates for different use cases | ||
|
|
||
| // User profiles test data | ||
| const userProfilesTestData = [ | ||
| { | ||
| Name: 'John Smith', | ||
| Email: 'john@company.com', | ||
| Department: 'Engineering', | ||
| Office: 'London', | ||
| Status: 'Active', | ||
| JoinDate: '2023-01-15', | ||
| Preferences: JSON.stringify({ theme: 'dark', notifications: true }) | ||
| }, | ||
| { | ||
| Name: 'Sarah Johnson', | ||
| Email: 'sarah@company.com', | ||
| Department: 'Design', | ||
| Office: 'New York', | ||
| Status: 'Active', | ||
| JoinDate: '2023-02-20', | ||
| Preferences: JSON.stringify({ theme: 'light', notifications: false }) | ||
| }, | ||
| { | ||
| Name: 'Mike Wilson', | ||
| Email: 'mike@company.com', | ||
| Department: 'Marketing', | ||
| Office: 'Berlin', | ||
| Status: 'Inactive', | ||
| JoinDate: '2023-03-10', | ||
| Preferences: JSON.stringify({ theme: 'auto', notifications: true }) | ||
| } | ||
| ]; | ||
|
|
||
| // App configuration test data | ||
| const appConfigTestData = { | ||
| appName: 'Test Application', | ||
| version: '1.0.0', | ||
| theme: { | ||
| primaryColor: '#4CAF50', | ||
| secondaryColor: '#2196F3', | ||
| fontFamily: 'Arial, sans-serif' | ||
| }, | ||
| features: { | ||
| userManagement: true, | ||
| notifications: true, | ||
| dataSync: true, | ||
| offline: false | ||
| } | ||
| }; | ||
|
|
||
| // Sample CSV data for import testing | ||
| const sampleCSVData = `Name,Email,Department,Office,Status,JoinDate | ||
| John Smith,john@company.com,Engineering,London,Active,2023-01-15 | ||
| Sarah Johnson,sarah@company.com,Design,New York,Active,2023-02-20 | ||
| Mike Wilson,mike@company.com,Marketing,Berlin,Active,2023-03-10 | ||
| Lisa Garcia,lisa@company.com,Sales,Paris,Active,2023-04-05 | ||
| Tom Anderson,tom@company.com,Engineering,Remote,Inactive,2023-05-12`; | ||
| ``` | ||
|
|
||
| ## Conclusion | ||
|
|
||
| These updated standards ensure consistency, maintainability, and optimal performance across all Fliplet development. The reorganized structure provides better navigation and reduces duplication while maintaining comprehensive coverage. | ||
|
|
||
| ### Development Principles | ||
|
|
||
| When developing with Fliplet, remember to: | ||
|
|
||
| 1. **Prioritize Modern JavaScript** - Use ES6+ features unless legacy support is required | ||
| 2. **Include Complete Examples** - Every code sample should work immediately when copied | ||
| 3. **Handle Errors Gracefully** - Implement comprehensive error handling with meaningful messages | ||
| 4. **Consider Environment Context** - Write appropriate code for Studio vs App environments | ||
| 5. **Follow Performance Best Practices** - Optimize queries, implement pagination, and minimize data transfer | ||
| 6. **Use Cross-References** - Link related concepts and provide navigation aids | ||
| 7. **Test Thoroughly** - Validate functionality across different environments and use cases | ||
|
|
||
| ### Quick Navigation | ||
|
|
||
| - **Getting Started:** [Documentation Standards](#documentation-standards) | ||
| - **Environment Setup:** [Development Environment Guidelines](#development-environment-guidelines) | ||
| - **Coding Patterns:** [JavaScript Coding Standards](javascript-coding-standards.md) | ||
| - **API Usage:** [Fliplet API Patterns](code-api-patterns.md) | ||
| - **Quick Lookup:** [Quick Reference Guide](#quick-reference-guide) | ||
| - **Testing:** [Code Examples and Testing](#code-examples-and-testing) | ||
| - **Libraries:** [Approved Libraries](approved-libraries.md) | ||
|
|
||
| For questions or clarifications, refer to the [Fliplet Developer Documentation](https://developers.fliplet.com/) or contact the development team. | ||
|
|
||
|
|
||
| *Document Version: 2.0 - Reorganized and Enhanced* | ||
| *Last Updated: 2024* No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Comprehensive documentation standards file—good content and structure.
Overall, the documentation file is well-structured and comprehensive, covering important development standards, environment awareness, code patterns, and testing guidelines. The code examples are complete with proper error handling and environment-specific considerations, which aligns well with the PR objective to establish unified standards.
The primary concerns are markdown formatting consistency rather than content quality. Once formatting issues are resolved, this will serve as a valuable reference for Fliplet developers.
After addressing the formatting issues above, this document will be production-ready.
🧰 Tools
🪛 LanguageTool
[grammar] ~179-~179: Did you mean the adverb/preposition “within”?
Context: ... the tools that end-users will interact with in the published app. **When to use Studi...
(WITH_IN)
🪛 markdownlint-cli2 (0.18.1)
8-8: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
9-9: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
12-12: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
18-18: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
19-19: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
22-22: Link fragments should be valid
(MD051, link-fragments)
23-23: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
41-41: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
42-42: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
44-44: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
51-51: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
52-52: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
53-53: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
54-54: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
55-55: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
56-56: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
102-102: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
103-103: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
120-120: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
121-121: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
121-121: Trailing spaces
Expected: 0; Actual: 2
(MD009, no-trailing-spaces)
122-122: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
125-125: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
128-128: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
129-129: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
136-136: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
137-137: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
138-138: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
139-139: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
140-140: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
141-141: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
142-142: Ordered list item prefix
Expected: 1; Actual: 8; Style: 1/1/1
(MD029, ol-prefix)
149-149: Multiple headings with the same content
(MD024, no-duplicate-heading)
155-155: Multiple headings with the same content
(MD024, no-duplicate-heading)
158-158: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
159-159: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
160-160: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
161-161: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
162-162: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
164-164: Link fragments should be valid
(MD051, link-fragments)
182-182: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
183-183: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
184-184: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
185-185: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
188-188: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
189-189: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
190-190: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
191-191: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
194-194: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
216-216: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
217-217: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
218-218: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
227-227: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
228-228: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
229-229: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
230-230: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
231-231: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
234-234: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
235-235: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
236-236: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
237-237: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
240-240: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
276-276: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
277-277: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
278-278: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
279-279: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
285-285: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
286-286: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
301-301: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
302-302: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
316-316: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
317-317: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
366-366: Multiple headings with the same content
(MD024, no-duplicate-heading)
372-372: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
373-373: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
388-388: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
388-388: Multiple headings with the same content
(MD024, no-duplicate-heading)
389-389: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
403-403: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
404-404: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
418-418: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
419-419: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
434-434: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
435-435: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
475-475: Multiple headings with the same content
(MD024, no-duplicate-heading)
557-557: Multiple headings with the same content
(MD024, no-duplicate-heading)
563-563: Multiple headings with the same content
(MD024, no-duplicate-heading)
566-566: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
567-567: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
568-568: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
569-569: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
570-570: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
571-571: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
581-581: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
582-582: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
583-583: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
584-584: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
585-585: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
586-586: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
627-627: Multiple headings with the same content
(MD024, no-duplicate-heading)
807-807: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
808-808: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
809-809: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
810-810: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
811-811: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
812-812: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
816-816: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
817-817: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
818-818: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
819-819: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
820-820: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
821-821: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
822-822: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
827-827: Trailing spaces
Expected: 0; Actual: 2
(MD009, no-trailing-spaces)
828-828: Trailing spaces
Expected: 0; Actual: 1
(MD009, no-trailing-spaces)
828-828: Files should end with a single newline character
(MD047, single-trailing-newline)
🤖 Prompt for AI Agents
In docs/documentation-and-coding-standards.md around lines 1 to 828, the
reviewer flagged inconsistent Markdown formatting (mixed heading levels,
broken/unnamed code fences, inconsistent tables/lists, and potentially incorrect
relative links) — fix by normalizing heading levels and hierarchy, convert all
inline or indented code to fenced triple-backtick blocks with language tags,
ensure tables and lists are properly formatted and aligned, verify and correct
all relative links/anchors (update filenames or anchors to match target files),
remove any stray HTML or misused blockquotes, and run a Markdown linter (e.g.,
markdownlint) to catch and resolve remaining style violations before committing.
| # Fliplet Documentation and Coding Standards | ||
|
|
||
| This document outlines the coding standards and documentation guidelines for Fliplet development, ensuring consistency across all APIs, components, and examples. These standards help developers write maintainable code and create documentation that both humans and AI systems can easily understand and implement. | ||
|
|
||
| ## Table of Contents | ||
|
|
||
| 1. [Documentation Standards](#documentation-standards) | ||
| 2. [Development Environment Guidelines](#development-environment-guidelines) | ||
| 3. [JavaScript Coding Standards](javascript-coding-standards.md) | ||
| - 3.1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended) | ||
| - 3.2. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility) | ||
| 4. [Fliplet API Patterns](code-api-patterns.md) | ||
| - 4.1. [API Categories Overview](code-api-patterns.md#api-categories-overview) | ||
| - 4.2. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns) | ||
| - 4.3. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis) | ||
| - 4.4. [Navigation Patterns](code-api-patterns.md#navigation-patterns) | ||
| - 4.5. [Communication Patterns](code-api-patterns.md#communication-patterns) | ||
| 5. [Quick Reference Guide](#quick-reference-guide) | ||
| 6. [Code Examples and Testing](#code-examples-and-testing) | ||
| - 6.1. [Complete Example Requirements](#complete-example-requirements) | ||
| - 6.2. [Asset Provision Standards](#asset-provision-standards) | ||
| - 6.3. [Test Templates and Setup](#test-templates-and-setup) | ||
| 7. [Approved Libraries](approved-libraries.md) | ||
| - 7.1. [Available Libraries](approved-libraries.md#available-libraries) | ||
| - 7.2. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines) | ||
| - 7.3. [Performance Considerations](approved-libraries.md#performance-considerations) | ||
| - 7.4. [Custom Library Integration](approved-libraries.md#custom-library-integration) | ||
|
|
||
|
|
||
| ## Documentation Standards |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Resolve ordered list formatting to use consistent 1/1/1 prefix style.
The table of contents uses inconsistent numbering (2, 3, 4, 5, 6, 7 for sublists) which violates markdown linting standards. Use the 1/1/1 prefix style (all list items numbered as 1) for consistency across markdown.
Apply this diff to the table of contents:
## Table of Contents
-1. [Documentation Standards](#documentation-standards)
-2. [Development Environment Guidelines](#development-environment-guidelines)
-3. [JavaScript Coding Standards](javascript-coding-standards.md)
- - 3.1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended)
- - 3.2. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility)
-4. [Fliplet API Patterns](code-api-patterns.md)
- - 4.1. [API Categories Overview](code-api-patterns.md#api-categories-overview)
- - 4.2. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns)
- - 4.3. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis)
- - 4.4. [Navigation Patterns](code-api-patterns.md#navigation-patterns)
- - 4.5. [Communication Patterns](code-api-patterns.md#communication-patterns)
-5. [Quick Reference Guide](#quick-reference-guide)
-6. [Code Examples and Testing](#code-examples-and-testing)
- - 6.1. [Complete Example Requirements](#complete-example-requirements)
- - 6.2. [Asset Provision Standards](#asset-provision-standards)
- - 6.3. [Test Templates and Setup](#test-templates-and-setup)
-7. [Approved Libraries](approved-libraries.md)
- - 7.1. [Available Libraries](approved-libraries.md#available-libraries)
- - 7.2. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines)
- - 7.3. [Performance Considerations](approved-libraries.md#performance-considerations)
- - 7.4. [Custom Library Integration](approved-libraries.md#custom-library-integration)
+1. [Documentation Standards](#documentation-standards)
+1. [Development Environment Guidelines](#development-environment-guidelines)
+1. [JavaScript Coding Standards](javascript-coding-standards.md)
+ 1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended)
+ 1. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility)
+1. [Fliplet API Patterns](code-api-patterns.md)
+ 1. [API Categories Overview](code-api-patterns.md#api-categories-overview)
+ 1. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns)
+ 1. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis)
+ 1. [Navigation Patterns](code-api-patterns.md#navigation-patterns)
+ 1. [Communication Patterns](code-api-patterns.md#communication-patterns)
+1. [Quick Reference Guide](#quick-reference-guide)
+1. [Code Examples and Testing](#code-examples-and-testing)
+ 1. [Complete Example Requirements](#complete-example-requirements)
+ 1. [Asset Provision Standards](#asset-provision-standards)
+ 1. [Test Templates and Setup](#test-templates-and-setup)
+1. [Approved Libraries](approved-libraries.md)
+ 1. [Available Libraries](approved-libraries.md#available-libraries)
+ 1. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines)
+ 1. [Performance Considerations](approved-libraries.md#performance-considerations)
+ 1. [Custom Library Integration](approved-libraries.md#custom-library-integration)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Fliplet Documentation and Coding Standards | |
| This document outlines the coding standards and documentation guidelines for Fliplet development, ensuring consistency across all APIs, components, and examples. These standards help developers write maintainable code and create documentation that both humans and AI systems can easily understand and implement. | |
| ## Table of Contents | |
| 1. [Documentation Standards](#documentation-standards) | |
| 2. [Development Environment Guidelines](#development-environment-guidelines) | |
| 3. [JavaScript Coding Standards](javascript-coding-standards.md) | |
| - 3.1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended) | |
| - 3.2. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility) | |
| 4. [Fliplet API Patterns](code-api-patterns.md) | |
| - 4.1. [API Categories Overview](code-api-patterns.md#api-categories-overview) | |
| - 4.2. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns) | |
| - 4.3. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis) | |
| - 4.4. [Navigation Patterns](code-api-patterns.md#navigation-patterns) | |
| - 4.5. [Communication Patterns](code-api-patterns.md#communication-patterns) | |
| 5. [Quick Reference Guide](#quick-reference-guide) | |
| 6. [Code Examples and Testing](#code-examples-and-testing) | |
| - 6.1. [Complete Example Requirements](#complete-example-requirements) | |
| - 6.2. [Asset Provision Standards](#asset-provision-standards) | |
| - 6.3. [Test Templates and Setup](#test-templates-and-setup) | |
| 7. [Approved Libraries](approved-libraries.md) | |
| - 7.1. [Available Libraries](approved-libraries.md#available-libraries) | |
| - 7.2. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines) | |
| - 7.3. [Performance Considerations](approved-libraries.md#performance-considerations) | |
| - 7.4. [Custom Library Integration](approved-libraries.md#custom-library-integration) | |
| ## Documentation Standards | |
| # Fliplet Documentation and Coding Standards | |
| This document outlines the coding standards and documentation guidelines for Fliplet development, ensuring consistency across all APIs, components, and examples. These standards help developers write maintainable code and create documentation that both humans and AI systems can easily understand and implement. | |
| ## Table of Contents | |
| 1. [Documentation Standards](#documentation-standards) | |
| 1. [Development Environment Guidelines](#development-environment-guidelines) | |
| 1. [JavaScript Coding Standards](javascript-coding-standards.md) | |
| 1. [Modern JavaScript (ES6+) - Recommended](javascript-coding-standards.md#modern-javascript-es6---recommended) | |
| 1. [Legacy JavaScript (ES5) - Compatibility](javascript-coding-standards.md#legacy-javascript-es5---compatibility) | |
| 1. [Fliplet API Patterns](code-api-patterns.md) | |
| 1. [API Categories Overview](code-api-patterns.md#api-categories-overview) | |
| 1. [Connection and Initialization Patterns](code-api-patterns.md#connection-and-initialization-patterns) | |
| 1. [CRUD Operation Patterns](code-api-patterns.md#crud-operation-patterns-for-all-apis) | |
| 1. [Navigation Patterns](code-api-patterns.md#navigation-patterns) | |
| 1. [Communication Patterns](code-api-patterns.md#communication-patterns) | |
| 1. [Quick Reference Guide](#quick-reference-guide) | |
| 1. [Code Examples and Testing](#code-examples-and-testing) | |
| 1. [Complete Example Requirements](#complete-example-requirements) | |
| 1. [Asset Provision Standards](#asset-provision-standards) | |
| 1. [Test Templates and Setup](#test-templates-and-setup) | |
| 1. [Approved Libraries](approved-libraries.md) | |
| 1. [Available Libraries](approved-libraries.md#available-libraries) | |
| 1. [Library Usage Guidelines](approved-libraries.md#library-usage-guidelines) | |
| 1. [Performance Considerations](approved-libraries.md#performance-considerations) | |
| 1. [Custom Library Integration](approved-libraries.md#custom-library-integration) | |
| ## Documentation Standards |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
8-8: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1
(MD029, ol-prefix)
9-9: Ordered list item prefix
Expected: 1; Actual: 3; Style: 1/1/1
(MD029, ol-prefix)
12-12: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/1/1
(MD029, ol-prefix)
18-18: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/1/1
(MD029, ol-prefix)
19-19: Ordered list item prefix
Expected: 1; Actual: 6; Style: 1/1/1
(MD029, ol-prefix)
22-22: Link fragments should be valid
(MD051, link-fragments)
23-23: Ordered list item prefix
Expected: 1; Actual: 7; Style: 1/1/1
(MD029, ol-prefix)
🤖 Prompt for AI Agents
docs/documentation-and-coding-standards.md lines 1-30: The Table of Contents
uses sequential numbering for nested items which violates the requested markdown
linting rule requiring the "1/1/1" ordered-list style; update every ordered list
entry within the TOC so each line starts with "1." (including nested
subsections), ensuring consistent numbering across all levels while preserving
the existing text and links.
| Use these documentation standards when: | ||
| - Writing API documentation for any Fliplet namespace | ||
| - Creating examples for components or helpers | ||
| - Documenting new features or updates | ||
| - Reviewing existing documentation for consistency |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Correct unordered list indentation to comply with markdown standards.
Lines 40–44 and similar unordered lists throughout the document lack proper indentation (expected 2 spaces, actual 0). Standardise list indentation across the document to improve rendering consistency.
Apply this diff as an example:
### When to Use This Section
Use these documentation standards when:
-
-Use these documentation standards when:
-- Writing API documentation for any Fliplet namespace
-- Creating examples for components or helpers
-- Documenting new features or updates
-- Reviewing existing documentation for consistency
+- Writing API documentation for any Fliplet namespace
+- Creating examples for components or helpers
+- Documenting new features or updates
+- Reviewing existing documentation for consistencyPlease apply similar indentation corrections to all unordered lists throughout the file (lines 41–44, 120–122, 125, 128–129, 158–162, 182–185, 188–191, 216–218, 227–231, 234–237, 276–279, 566–571, 816–822).
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Use these documentation standards when: | |
| - Writing API documentation for any Fliplet namespace | |
| - Creating examples for components or helpers | |
| - Documenting new features or updates | |
| - Reviewing existing documentation for consistency | |
| Use these documentation standards when: | |
| - Writing API documentation for any Fliplet namespace | |
| - Creating examples for components or helpers | |
| - Documenting new features or updates | |
| - Reviewing existing documentation for consistency |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
41-41: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
42-42: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
43-43: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
44-44: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
| - **Quick Lookup:** [Quick Reference Guide](#quick-reference-guide) | ||
| - **Testing:** [Code Examples and Testing](#code-examples-and-testing) | ||
| - **Libraries:** [Approved Libraries](approved-libraries.md) | ||
|
|
||
| For questions or clarifications, refer to the [Fliplet Developer Documentation](https://developers.fliplet.com/) or contact the development team. | ||
|
|
||
|
|
||
| *Document Version: 2.0 - Reorganized and Enhanced* | ||
| *Last Updated: 2024* No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Standardise markdown file ending and remove trailing spaces.
The file is missing a trailing newline (lines 827–828 have trailing spaces and the file doesn't end with a newline). Files should end with a single newline character, and trailing spaces should be removed.
Apply this diff to the end of the file:
For questions or clarifications, refer to the [Fliplet Developer Documentation](https://developers.fliplet.com/) or contact the development team.
-
-*Document Version: 2.0 - Reorganised and Enhanced*
-*Last Updated: 2024*
+*Document Version: 2.0 - Reorganised and Enhanced*
+*Last Updated: 2024*🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
820-820: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
821-821: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
822-822: Unordered list indentation
Expected: 2; Actual: 0
(MD007, ul-indent)
827-827: Trailing spaces
Expected: 0; Actual: 2
(MD009, no-trailing-spaces)
828-828: Trailing spaces
Expected: 0; Actual: 1
(MD009, no-trailing-spaces)
828-828: Files should end with a single newline character
(MD047, single-trailing-newline)
🤖 Prompt for AI Agents
In docs/documentation-and-coding-standards.md around lines 820 to 828, remove
any trailing whitespace on lines 827–828 and ensure the file ends with exactly
one newline character (no extra blank lines); save the file so it ends with a
single '\n' and contains no trailing spaces at the end of any line.
Arpanexe
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Updated architecture diagram to demonstrate how AI models are used
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.