Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[v3] Add starlight website #3917

Open
wants to merge 47 commits into
base: v3-alpha
Choose a base branch
from

Conversation

stavros-k
Copy link

@stavros-k stavros-k commented Nov 26, 2024

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Fixes # (issue)

Type of change

Please select the option that is relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration using wails doctor.

  • Windows
  • macOS
  • Linux

If you checked Linux, please specify the distro and version.

Test Configuration

Please paste the output of wails doctor. If you are unable to run this command, please describe your environment in as much detail as possible.

Checklist:

  • I have updated website/src/pages/changelog.mdx with details of this PR
  • My code follows the general coding style of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Summary by CodeRabbit

  • New Features

    • Added support for .mdx file formatting in Prettier.
    • Introduced a .gitignore file for the docs directory to manage ignored files.
    • Created a Visual Studio Code extensions configuration file recommending the "astro-build.astro-vscode" extension.
    • Added a launch configuration for starting a development server.
    • Updated the README.md with new sections for project structure and commands.
    • Introduced a new package.json file for project dependencies and scripts.
    • Added comprehensive documentation for various APIs and features, including application events, dialogs, and menus.
    • Enhanced the documentation for services, bindings, and the build system.
    • Created a new "Credits" page to acknowledge contributors and sponsors.
    • Introduced a roadmap outlining project status and community contributions.
    • Added a changelog to track project updates and changes.
  • Bug Fixes

    • Fixed various issues related to application events and window management.
  • Documentation

    • Expanded documentation across multiple files, providing detailed guides and API references.
  • Style

    • Updated CSS styles for better layout and scrolling behavior.
  • Tests

    • Introduced new tests for various functionalities to ensure stability and performance.
  • Chores

    • Updated project configuration files and dependencies for improved development experience.

Copy link
Contributor

coderabbitai bot commented Nov 26, 2024

Walkthrough

This pull request introduces several changes to the documentation and configuration files of the Wails project. Key modifications include the addition of support for .mdx files in the Prettier configuration, the introduction of new documentation files covering various aspects of the application, and updates to existing files like .gitignore, .vscode settings, and the changelog. The changes aim to enhance the overall structure, usability, and clarity of the project documentation and configuration management.

Changes

File Path Change Summary
.prettierrc.yml Added file pattern "**/*.mdx" to overrides section for Markdown files.
docs/.gitignore Introduced to ignore build output, logs, environment files, and macOS-specific files.
docs/.vscode/extensions.json New file created to recommend the "astro-build.astro-vscode" extension.
docs/.vscode/launch.json New configuration added for launching the Astro development server.
docs/README.md Added "Starlight Starter Kit: Basics" section with project structure and command listings.
docs/astro.config.mjs Defined site URL, output format, and various integrations for the Astro project.
docs/package.json Created new file specifying project name, type, version, scripts, and dependencies.
docs/src/content/authors.ts Introduced TypeScript file defining and exporting authors' information.
docs/src/content/config.ts New file defining collections for the Astro content management system.
docs/src/content/docs/api/application.mdx Added comprehensive documentation for application API methods.
docs/src/content/docs/api/application_dialogs.md New documentation for various application dialog functionalities.
docs/src/content/docs/api/application_events.md New documentation for application event handling APIs.
docs/src/content/docs/api/application_menu.md New documentation for managing application menus.
docs/src/content/docs/api/application_options.mdx New documentation for application options.
docs/src/content/docs/api/application_screens.md New documentation for screen management APIs.
docs/src/content/docs/api/application_window.md New documentation for managing application windows.
docs/src/content/docs/api/event_hooks.md New documentation for event hooks in the application.
docs/src/content/docs/api/event_types.md New documentation outlining event structures in the application.
docs/src/content/docs/api/events_custom.mdx New documentation for custom events within the application framework.
docs/src/content/docs/api/events_linux.md New documentation for Linux-specific application events.
docs/src/content/docs/api/events_mac.md New documentation for macOS-specific application events.
docs/src/content/docs/api/events_windows.md New documentation for Windows-specific application events.
docs/src/content/docs/api/mainthread.md New documentation for main thread functions in the application.
docs/src/content/docs/api/menu.md New documentation for menu functionalities.
docs/src/content/docs/api/systray.md New documentation for system tray functionalities.
docs/src/content/docs/api/window.md New documentation for managing application windows.
docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md New release notes for Wails v2 Beta for Windows.
docs/src/content/docs/blog/2021-11-08-v2-beta2-release-notes.md New release notes for Wails v2 Beta for macOS.
docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md New release notes for Wails v2 Beta for Linux.
docs/src/content/docs/blog/2022-09-22-v2-release-notes.md New release notes announcing the release of Wails v2.
docs/src/content/docs/blog/2023-01-17-v3-roadmap.md New roadmap for Wails v3.
docs/src/content/docs/changelog.md Detailed changelog added, following the "Keep a Changelog" principles.
docs/src/content/docs/development/changes.md New documentation for changes related to version 3.
docs/src/content/docs/development/changes_bindings.md New documentation for the binding mechanism in the application.
docs/src/content/docs/development/changes_clipboard.md New documentation for clipboard API changes.
docs/src/content/docs/development/changes_context_menus.md New documentation for context menu changes.
docs/src/content/docs/development/changes_dialogs.md New documentation for dialog functionality changes.
docs/src/content/docs/development/changes_dragndrop.md New documentation for drag and drop functionality.
docs/src/content/docs/development/changes_enums.md New documentation for handling enums in Go and JavaScript.
docs/src/content/docs/development/changes_events.md New documentation for the event system in version 3.
docs/src/content/docs/development/changes_logging.md New documentation for logging changes in version 2.
docs/src/content/docs/development/changes_misc.md New documentation for miscellaneous changes related to Windows application options.
docs/src/content/docs/development/changes_plugins.md New documentation for plugin functionality within Wails applications.
docs/src/content/docs/development/changes_systray.md New documentation for the built-in systray feature.
docs/src/content/docs/development/changes_window.md New documentation for updates to the Window API.
docs/src/content/docs/development/changes_wml.md New documentation for the Wails Markup Language (WML).
docs/src/content/docs/development/introduction.mdx New guide for contributing to the Wails project.
docs/src/content/docs/development/status.md New roadmap document outlining project status and objectives.
docs/src/content/docs/getting-started/feedback.mdx New guide for submitting feedback on the Wails project.
docs/src/content/docs/getting-started/installation.mdx New guide detailing installation processes for the Wails CLI.
docs/src/content/docs/getting-started/next-steps.md New guide for users after creating their first application.
docs/src/content/docs/getting-started/your-first-app.mdx New guide for creating a basic application using Wails v3 Alpha.
docs/src/content/docs/guides/customizing-windows.md New guide for customizing window controls in Wails.
docs/src/content/docs/guides/file-associations.md New guide for implementing file associations in Wails applications.
docs/src/content/docs/guides/packaging.md New guide for packaging Wails applications across platforms.
docs/src/content/docs/index.mdx New index file introducing Wails v3 Alpha documentation.
docs/src/content/docs/learn/bindings.mdx New guide on the bindings generator feature in Wails v3.
docs/src/content/docs/learn/build.mdx New documentation for the Wails v3 build system.
docs/src/content/docs/learn/runtime.md New documentation for the Wails runtime library.
docs/src/content/docs/learn/services.md New guide on the implementation and usage of services in Wails v3.
docs/src/content/docs/status.md New roadmap document outlining the current status and objectives for the project.
docs/src/content/docs/whats-new.md New document highlighting significant updates in Wails v3 Alpha.
docs/src/env.d.ts Added references to TypeScript definitions for improved type checking.
docs/src/stylesheets/extra.css Added CSS rules to manage scrollbar behavior and layout.
docs/tsconfig.json New TypeScript configuration file extending Astro's strict settings.
.all-contributorsrc Updated to include a new entry for contributor information.
docs/src/content/docs/credits.mdx New documentation page listing contributors and sponsors.
docs/src/assets/contributors.html New HTML structure for displaying contributor information.

Possibly related PRs

🐇 In the meadow, changes bloom,
Documentation grows, dispelling gloom.
With files anew and structure bright,
Wails takes flight, a wondrous sight!
So hop along, dear friends, let's cheer,
For every update brings us near! 🌼


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

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

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

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

CodeRabbit Commands (Invoked using PR comments)

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

Other keywords and placeholders

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

Documentation and Community

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

@stavros-k stavros-k marked this pull request as ready for review November 30, 2024 21:30
@stavros-k stavros-k changed the title [WIP] Add starlight website Add starlight website Nov 30, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (2)
docs/src/content/docs/development/changes_dialogs.md (2)

11-11: Fix grammar: "in Windows" should be "on Windows".

The correct preposition when referring to the Windows operating system is "on".

-Dialog buttons in Windows are not configurable and are constant depending on the
+Dialog buttons on Windows are not configurable and are constant depending on the
🧰 Tools
🪛 LanguageTool

[grammar] ~11-~11: The correct preposition appears to be “on”.
Context: ...avaScript! ### Windows Dialog buttons in Windows are not configurable and are co...

(IN_WINDOWS)


11-13: Document available dialog types.

The documentation should list the different types of dialogs available (e.g., question, info, warning, error) and their corresponding button configurations.

🧰 Tools
🪛 LanguageTool

[grammar] ~11-~11: The correct preposition appears to be “on”.
Context: ...avaScript! ### Windows Dialog buttons in Windows are not configurable and are co...

(IN_WINDOWS)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between b571101 and 9834339.

📒 Files selected for processing (1)
  • docs/src/content/docs/development/changes_dialogs.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/content/docs/development/changes_dialogs.md

[grammar] ~11-~11: The correct preposition appears to be “on”.
Context: ...avaScript! ### Windows Dialog buttons in Windows are not configurable and are co...

(IN_WINDOWS)

🔇 Additional comments (2)
docs/src/content/docs/development/changes_dialogs.md (2)

1-5: LGTM!

The frontmatter is well-structured with appropriate title and sidebar ordering.


7-8: Expand the introduction with more context.

The introduction needs more detail to help users understand the changes and implications.

Consider adding:

  • What was the previous state
  • What specific dialog features are now available
  • Benefits of this change
  • Any migration considerations

Comment on lines +17 to +43
```go
// Create a question dialog
dialog := app.QuestionDialog().

// Configure dialog title and message
SetTitle("Update").
SetMessage("The cancel button is selected when pressing escape")

// Add "Ok" button with callback
ok := dialog.AddButton("Ok")
ok.OnClick(func() {
// Handle successful confirmation (Or do something else)
if err := handleConfirmation(); err != nil {
log.Printf("Error handling confirmation: %v", err)
}
})

// Add "Cancel" button and configure dialog behavior
no := dialog.AddButton("Cancel")
dialog.SetDefaultButton(ok)
dialog.SetCancelButton(no)

// Show dialog and handle potential errors
if err := dialog.Show(); err != nil {
log.Printf("Error showing dialog: %v", err)
}
```
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add JavaScript example alongside Go example.

Since the documentation mentions JavaScript availability, it would be helpful to include a JavaScript example demonstrating the same functionality.

Consider adding:

  1. JavaScript equivalent of the current Go example
  2. Available dialog type constants
  3. Examples of different dialog types (info, warning, error)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (7)
docs/src/assets/contributors.astro (1)

4-240: Consider enhancing accessibility for contributor entries.

While the visual structure is consistent, consider these accessibility improvements:

  1. More descriptive alt text for avatars
  2. ARIA labels for contribution type icons

Example improvement for a contributor cell:

-<img src="https://avatars.githubusercontent.com/u/1943904?v=4?s=75" width="75px;" alt="Lea Anthony"/>
+<img src="https://avatars.githubusercontent.com/u/1943904?v=4?s=75" width="75px;" alt="GitHub avatar for Lea Anthony"/>
-<a href="#code-leaanthony" title="Code">💻</a>
+<a href="#code-leaanthony" title="Code" aria-label="Contributed code">💻</a>
docs/src/content/docs/index.mdx (2)

2-3: Add a meaningful description for better SEO and documentation navigation.

The description field is currently empty. Consider adding a concise description that summarizes the purpose of Wails v3 Alpha.

-description: ""
+description: "Documentation for Wails v3 Alpha - Build desktop applications using Go and modern web technologies"

70-72: Improve the wording in the feedback section.

Consider revising the feedback section for better clarity and engagement.

-Your feedback is vital to making Wails better. If you encounter any issues or
-have suggestions, please use our [Feedback process](/getting-started/feedback).
-Contributions to the project are also welcome!
+We value your feedback in making Wails better. Please share any issues or
+suggestions through our [Feedback process](/getting-started/feedback).
+We welcome contributions to the project!
🧰 Tools
🪛 LanguageTool

[style] ~70-~70: The wording of this phrase can be improved.
Context: ..."open-book"> Your feedback is vital to making Wails better. If you encounter any issues or have su...

(MAKE_STYLE_BETTER)

docs/src/content/docs/credits.mdx (4)

5-7: Consider improving import structure

The relative import path ../../assets/contributors.astro could be brittle if the file structure changes. Consider using module aliases or absolute imports for better maintainability.


12-12: Fix macOS spelling

The operating system name should be written as "macOS" instead of "MacOS".

-- [Travis McLane](https://github.com/tmclane) - Cross-compilation work, MacOS
+- [Travis McLane](https://github.com/tmclane) - Cross-compilation work, macOS
🧰 Tools
🪛 LanguageTool

[grammar] ~12-~12: The operating system from Apple is written “macOS”.
Context: ....com/tmclane) - Cross-compilation work, MacOS testing - [Atterpac](https://github.c...

(MAC_OS)


15-15: Consider using consistent link types

While other team members are linked to their GitHub profiles, Simon Thomas uses a mailto link. Consider maintaining consistency by either adding his GitHub profile or noting why a different link type is used.


44-45: Fix hyphenation in compound adjective

"long term" should be hyphenated when used as a compound adjective modifying "contributions".

-- [Byron Chris](https://github.com/bh90210) - For his long term contributions to
+- [Byron Chris](https://github.com/bh90210) - For his long-term contributions to
🧰 Tools
🪛 LanguageTool

[uncategorized] ~44-~44: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...](https://github.com/bh90210) - For his long term contributions to this project. - [Dus...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 9834339 and f0a6368.

⛔ Files ignored due to path filters (1)
  • docs/public/sponsors/sponsors.svg is excluded by !**/*.svg
📒 Files selected for processing (5)
  • .all-contributorsrc (1 hunks)
  • docs/astro.config.mjs (1 hunks)
  • docs/src/assets/contributors.astro (1 hunks)
  • docs/src/content/docs/credits.mdx (1 hunks)
  • docs/src/content/docs/index.mdx (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .all-contributorsrc
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/astro.config.mjs
🧰 Additional context used
🪛 LanguageTool
docs/src/content/docs/credits.mdx

[grammar] ~12-~12: The operating system from Apple is written “macOS”.
Context: ....com/tmclane) - Cross-compilation work, MacOS testing - [Atterpac](https://github.c...

(MAC_OS)


[misspelling] ~43-~43: Possible spelling mistake found.
Context: ... down the path to a pure Go Wails. - Mat Ryer - For advi...

(EN_MULTITOKEN_SPELLING_TWO)


[uncategorized] ~44-~44: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...](https://github.com/bh90210) - For his long term contributions to this project. - [Dus...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

docs/src/content/docs/index.mdx

[style] ~70-~70: The wording of this phrase can be improved.
Context: ..."open-book"> Your feedback is vital to making Wails better. If you encounter any issues or have su...

(MAKE_STYLE_BETTER)

🔇 Additional comments (4)
docs/src/assets/contributors.astro (2)

1-1: LGTM: Delimiter markers are properly formatted.

The GAMFC delimiter comments are correctly placed and properly wrap the content.

Also applies to: 242-242


2-3: LGTM: Table structure follows semantic HTML best practices.

The table implementation:

  • Uses proper semantic HTML elements
  • Has consistent column widths (12.5% each for 8 columns)
  • Maintains proper alignment attributes

Also applies to: 241-241

docs/src/content/docs/index.mdx (1)

23-25: LGTM!

The introduction text is clear, concise, and effectively communicates the purpose of Wails v3 Alpha.

docs/src/content/docs/credits.mdx (1)

20-29: Consider extracting inline styles to CSS

The inline styles could be moved to a separate CSS file for better maintainability and consistency.

Also, verify that the image paths /sponsors/sponsors.svg and /sponsors/jetbrains-grayscale.webp are correct in the built website.

✅ Verification successful

Let me verify the existence of the JetBrains image with a different search pattern.


Both image paths are correct, consider CSS refactoring

The image paths /sponsors/sponsors.svg and /sponsors/jetbrains-grayscale.webp are correctly placed in docs/public/sponsors/. For better maintainability, consider moving the inline styles to a CSS file.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify the existence of sponsor images
fd -t f "sponsors.(svg|webp)" docs/public/

Length of output: 78


Script:

#!/bin/bash
# Search for JetBrains image
fd -t f "jetbrains.*\.webp" docs/public/

Length of output: 88

docs/src/content/docs/index.mdx Show resolved Hide resolved
docs/src/content/docs/index.mdx Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (3)
docs/src/assets/contributors.astro (3)

1-8: Consider implementing responsive design as noted in TODO

The TODO comment correctly identifies the need for responsive design. Consider implementing a flexbox-based layout for better mobile responsiveness.

Here's a suggested implementation:

<style>
a:link {
  text-decoration: none;
}
+.container {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 1rem;
+  justify-content: center;
+}
+
+.contributor-card {
+  flex: 0 1 300px;
+  text-align: center;
+  padding: 1rem;
+}
</style>

12-12: Document the purpose of content delimiters

The GAMFC_DELIMITER markers appear to be used for content processing, but their purpose is not clear. Consider:

  1. Adding a comment explaining their purpose
  2. Using a more descriptive delimiter name
+<!-- These delimiters are used for automated content processing and updates -->
 <!--GAMFC_DELIMITER-->

Also applies to: 253-253


10-255: Improve container layout and spacing

The container structure could benefit from better layout management and spacing controls.

Consider adding these improvements:

+<style>
+.container {
+  max-width: 1200px;
+  margin: 0 auto;
+  padding: 2rem 1rem;
+}
+
+@media (max-width: 768px) {
+  .container {
+    padding: 1rem 0.5rem;
+  }
+}
+</style>
 <div class="container">
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f0a6368 and f6d9500.

📒 Files selected for processing (1)
  • docs/src/assets/contributors.astro (1 hunks)

docs/src/assets/contributors.astro Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (4)
docs/src/content/docs/credits.mdx (2)

12-12: Fix operating system name spelling

Replace "MacOS" with "macOS" to follow Apple's official branding.

-  testing
+  testing, macOS
🧰 Tools
🪛 LanguageTool

[grammar] ~12-~12: The operating system from Apple is written “macOS”.
Context: ....com/tmclane) - Cross-compilation work, MacOS testing - [Atterpac](https://github.c...

(MAC_OS)


9-16: Fix markdown list indentation

The list items have inconsistent indentation which may affect rendering. Ensure all items are properly aligned.

- - [Lea Anthony](https://github.com/leaanthony) - Project owner, lead developer
- - [Stffabi](https://github.com/stffabi) - Technical lead, developer and
-  maintainer
+ - [Lea Anthony](https://github.com/leaanthony) - Project owner, lead developer
+ - [Stffabi](https://github.com/stffabi) - Technical lead, developer and
+   maintainer
🧰 Tools
🪛 LanguageTool

[grammar] ~12-~12: The operating system from Apple is written “macOS”.
Context: ....com/tmclane) - Cross-compilation work, MacOS testing - [Atterpac](https://github.c...

(MAC_OS)

docs/src/assets/contributors.html (2)

1-246: Consider improving HTML structure and accessibility

The HTML structure could be improved for better maintainability and accessibility:

  1. Missing proper HTML document structure
  2. Table cells use hardcoded width values
  3. Limited styling capabilities
  4. No ARIA attributes for better screen reader support

Consider these improvements:

  1. Add proper HTML structure:
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Wails Contributors</title>
+</head>
+<body>
 <div class="container">
   <!-- existing content -->
 </div>
+</body>
+</html>
  1. Replace hardcoded widths with CSS classes:
-<td align="center" valign="top" width="12.5%">
+<td class="contributor-cell">
  1. Add ARIA attributes for accessibility:
-<table>
+<table role="grid" aria-label="Project Contributors">

3-3: Document the purpose of GAMFC delimiters

The purpose of the GAMFC_DELIMITER comments is not clear. Consider adding a comment explaining their purpose or remove if unnecessary.

Also applies to: 244-244

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between f6d9500 and 51bd0e0.

📒 Files selected for processing (4)
  • .all-contributorsrc (1 hunks)
  • docs/astro.config.mjs (1 hunks)
  • docs/src/assets/contributors.html (1 hunks)
  • docs/src/content/docs/credits.mdx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • .all-contributorsrc
  • docs/astro.config.mjs
🧰 Additional context used
🪛 LanguageTool
docs/src/content/docs/credits.mdx

[grammar] ~12-~12: The operating system from Apple is written “macOS”.
Context: ....com/tmclane) - Cross-compilation work, MacOS testing - [Atterpac](https://github.c...

(MAC_OS)


[misspelling] ~43-~43: Possible spelling mistake found.
Context: ... down the path to a pure Go Wails. - Mat Ryer - For advi...

(EN_MULTITOKEN_SPELLING_TWO)


[uncategorized] ~44-~44: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...](https://github.com/bh90210) - For his long term contributions to this project. - [Dus...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

🔇 Additional comments (1)
docs/src/content/docs/credits.mdx (1)

20-24: Consider using absolute paths for images

The sponsor images use relative paths which might break if the documentation structure changes. Consider using absolute paths or importing the images.

Also applies to: 25-29

@stavros-k stavros-k changed the title Add starlight website [v3] Add starlight website Dec 1, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (1)
docs/src/content/docs/changelog.md (1)

273-273: Fix grammar and capitalization.

Please apply the following corrections:

  1. "MacOS" should be "macOS" (line 273)
  2. "windows" should be "Windows" (line 279)
  3. "left clicking" should be "left-clicking" (line 279)

Also applies to: 279-279

🧰 Tools
🪛 LanguageTool

[grammar] ~273-~273: The operating system from Apple is written “macOS”.
Context: ...aths with spaces - @leaanthony. - Fix MacOS systray click handling when no attached...

(MAC_OS)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 51bd0e0 and a3deae2.

📒 Files selected for processing (1)
  • docs/src/content/docs/changelog.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/src/content/docs/changelog.md

[grammar] ~273-~273: The operating system from Apple is written “macOS”.
Context: ...aths with spaces - @leaanthony. - Fix MacOS systray click handling when no attached...

(MAC_OS)


[grammar] ~279-~279: “Windows” (operating system by Microsoft) is a proper noun and needs to be capitalized.
Context: ...ailsapp/wails/pull/3208) - Fix crash on windows left clicking the systray icon when not...

(A_WINDOWS)


[grammar] ~279-~279: The verb “left-clicking” is spelled with a hyphen.
Context: ...wails/pull/3208) - Fix crash on windows left clicking the systray icon when not having an a...

(CLICK_HYPHEN)

🪛 Markdownlint (0.35.0)
docs/src/content/docs/changelog.md

182-182: null
Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (1)
docs/src/content/docs/changelog.md (1)

1-18: Well-structured changelog format!

The changelog follows the Keep a Changelog format and clearly defines the types of changes, making it easy for users to understand the project's evolution.

docs/src/content/docs/changelog.md Outdated Show resolved Hide resolved
docs/src/content/docs/changelog.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🧹 Outside diff range and nitpick comments (14)
docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md (1)

9-9: Consider using a more robust image path strategy

The relative path ../../../assets could be fragile if the document structure changes. Consider using an absolute path from the content root or implementing a consistent asset reference strategy.

docs/src/content/docs/changelog.md (3)

173-174: Use consistent markdown link format.

Some PR links use bare URLs or inconsistent formats. Use the markdown link format consistently.

Apply these changes:

-[linux] WindowDidMove / WindowDidResize events in [#3580](https://github.com/wailsapp/wails/pull/3580)
+[linux] WindowDidMove / WindowDidResize events in [#3580](https://github.com/wailsapp/wails/pull/3580)
-Export `SetIcon` method by @almas1992 in [PR](https://github.com/wailsapp/wails/pull/3147)
+Export `SetIcon` method by @almas1992 in [#3147](https://github.com/wailsapp/wails/pull/3147)
-Improve `OnShutdown` by @almas1992 in [PR](https://github.com/wailsapp/wails/pull/3189)
+Improve `OnShutdown` by @almas1992 in [#3189](https://github.com/wailsapp/wails/pull/3189)

Also applies to: 191-192, 192-193


267-267: Fix grammar and spelling.

  • "MacOS" should be "macOS"
  • "windows" should be capitalized as "Windows"
  • "left clicking" should be hyphenated as "left-clicking"

Apply these changes:

-Fix MacOS systray click handling when no attached window
+Fix macOS systray click handling when no attached window
-Fix crash on windows left clicking the systray icon
+Fix crash on Windows left-clicking the systray icon

Also applies to: 273-273

🧰 Tools
🪛 LanguageTool

[grammar] ~267-~267: The operating system from Apple is written “macOS”.
Context: ...aths with spaces - @leaanthony. - Fix MacOS systray click handling when no attached...

(MAC_OS)


231-233: Fix broken link syntax.

The link has a syntax error with the closing parenthesis.

Apply this change:

-[#3515)(https://github.com/wailsapp/wails/pull/3515)
+[#3515](https://github.com/wailsapp/wails/pull/3515)
docs/src/content/docs/api/application.mdx (2)

7-8: Consider expanding the introduction.

The introduction could be more helpful by including:

  • When to use this API
  • Common use cases
  • How it fits into the overall Wails architecture
 The application API assists in creating an application using the Wails
-framework.
+framework. It provides essential methods for initializing, configuring, and
+managing your Wails application throughout its lifecycle. This API is the
+foundation for creating desktop applications with Wails, handling everything from
+window management to system integration.

24-37: Standardize code examples for consistency.

The code examples should follow a consistent pattern for better readability:

  • Error handling
  • Variable naming
  • Import statements
 func main() {
     app := application.New(application.Options{
         Name:        "WebviewWindow Demo",
-        // Other options
+        // Add more options here...
     })
 
-    // Rest of application
+    if err := app.Run(); err != nil {
+        log.Fatal(err)
+    }
 }

Also applies to: 82-90

docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md (2)

9-10: Consider using absolute paths for images.

Using relative paths (../../../) can be brittle if the document structure changes. Consider using absolute paths from the root of the documentation.

-![wails-linux screenshot](../../../assets/blog-images/wails-linux.webp)
+![wails-linux screenshot](/assets/blog-images/wails-linux.webp)

128-129: Consider using relative links consistently.

For consistency with other links in the document, consider using a relative path for the sponsorship link.

-[sponsoring the project](https://github.com/sponsors/leaanthony). Thanks!
+[sponsoring the project](/sponsors). Thanks!
🧰 Tools
🪛 LanguageTool

[style] ~129-~129: Using many exclamation marks might seem excessive (in this case: 10 exclamation marks for a text that’s 5233 characters long)
Context: .../github.com/sponsors/leaanthony). Thanks!

(EN_EXCESSIVE_EXCLAMATION)

docs/src/content/docs/development/introduction.mdx (2)

28-33: Consider adding example commands.

The build instructions would be more helpful with concrete examples.

Consider adding examples like:

 For simple programs, you can use the standard `go build` command. It's also
-possible to use `go run`.
+possible to use `go run`. For example:
+
+```bash
+# Using go build
+go build ./v3/cmd/wails3
+
+# Using go run
+go run ./v3/cmd/wails3
+```

1-228: Overall documentation quality is good.

The documentation provides comprehensive coverage of development processes. Consider adding a table of contents at the beginning for better navigation, and ensure all command examples use consistent formatting in code blocks.

🧰 Tools
🪛 LanguageTool

[grammar] ~20-~20: This sentence should probably be started with a verb instead of the noun ‘Checkout’. If not, consider inserting a comma for better clarity.
Context: ...g Started - Git clone this repository. Checkout the v3-alpha branch. - Install the CL...

(SENT_START_NN_DT)


[duplication] ~43-~43: Possible typo: you repeated a word
Context: ... - v3 - cmd/wails3 CLI - examples Examples of Wails apps - internal Internal pac...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~44-~44: Possible typo: you repeated a word
Context: ... - examples Examples of Wails apps - internal Internal packages - runtime The Wails JS run...

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~63-~63: It appears that a hyphen is missing in the noun “To-do” (= task) or did you mean the verb “to do”?
Context: ...ng known issues and tasks in the [Alpha Todo List](https://github.com/orgs/wailsapp/...

(TO_DO_HYPHEN)


[uncategorized] ~71-~71: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...onality required for all platforms. Any platform specific code should be called via a `webviewWin...

(SPECIFIC_HYPHEN)


[uncategorized] ~82-~82: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...dow_linux.go` Most, if not all, of the platform specific code should be run on the main thread. ...

(SPECIFIC_HYPHEN)


[uncategorized] ~106-~106: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...st common denominator". You can use the platform specific events if you need to. When adding a c...

(SPECIFIC_HYPHEN)


[uncategorized] ~108-~108: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ... adding a common event, ensure that the platform specific events are mapped. An example of this i...

(SPECIFIC_HYPHEN)


[typographical] ~176-~176: Consider adding a comma.
Context: ... ``` If there are incompatibilities then they should appear in the `v3/internal/...

(IF_THEN_COMMA)


[typographical] ~178-~178: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...e v3/internal/commands/task.go file. Usually the best way to fix incompatibilities i...

(RB_LY_COMMA)


[typographical] ~215-~215: Consider adding a comma.
Context: ... ``` If there are incompatibilities then they should appear in the `v3/internal/...

(IF_THEN_COMMA)


[typographical] ~217-~217: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...e v3/internal/commands/task.go file. Usually the best way to fix incompatibilities i...

(RB_LY_COMMA)

docs/src/content/docs/blog/2023-01-17-v3-roadmap.md (3)

9-9: Consider using a more robust image path.

The relative path ../../../assets/blog-images/multiwindow.webp might break if the blog post structure changes. Consider using an absolute path from the content root or implementing a custom image component that handles path resolution.

-![multiwindow screenshot](../../../assets/blog-images/multiwindow.webp)
+![multiwindow screenshot](/assets/blog-images/multiwindow.webp)

89-99: Enhance code examples with explanatory comments.

The code examples would be more educational with inline comments explaining key concepts and design decisions.

 func main() {
+    // Create a new application instance with default options
     app := wails.NewApplication(options.App{})
+    // Create and configure the main window
     myWindow := app.NewWindow(options.Window{})
     myWindow.SetTitle("My Window")
+    // Set up window close handler to quit the application
     myWindow.On(events.Window.Close, func() {
         app.Quit()
     })
     app.Run()
 }

Also applies to: 116-131


183-187: Consider adding a sample Taskfile.yml.

To help developers understand the proposed build system changes, consider adding a sample Taskfile.yml configuration that demonstrates common build tasks.

Add a code block showing a basic Taskfile.yml example:

version: '3'

tasks:
  build:
    desc: Build the application
    cmds:
      - wails generate bindings
      - npm install
      - npm run build
      - go build
🧰 Tools
🪛 LanguageTool

[uncategorized] ~183-~183: Possible missing comma found.
Context: ...ld be configured using a Taskfile.yml file which would be generated by default wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~184-~184: Consider removing “of” to be more concise
Context: ...he supported templates. This would have all of the steps required to do all the current ta...

(ALL_OF_THE)

docs/src/content/docs/learn/services.md (1)

23-35: Enhance the service example with error handling and initialization.

The basic service example could be more comprehensive to demonstrate best practices.

Consider expanding the example:

 type MyService struct {
-    // Your service fields
+    name    string
+    logger  *log.Logger
 }

-func NewMyService() *MyService {
-    // Initialize and return your service
+func NewMyService(name string) (*MyService, error) {
+    if name == "" {
+        return nil, errors.New("name cannot be empty")
+    }
+    return &MyService{
+        name:   name,
+        logger: log.New(os.Stdout, "[MyService] ", log.LstdFlags),
+    }, nil
 }

 func (s *MyService) Greet(name string) string {
+    s.logger.Printf("Greeting %s", name)
     return fmt.Sprintf("Hello, %s!", name)
 }
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 7bd53c2 and b0ec474.

📒 Files selected for processing (7)
  • docs/src/content/docs/api/application.mdx (1 hunks)
  • docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md (1 hunks)
  • docs/src/content/docs/blog/2023-01-17-v3-roadmap.md (1 hunks)
  • docs/src/content/docs/changelog.md (1 hunks)
  • docs/src/content/docs/development/introduction.mdx (1 hunks)
  • docs/src/content/docs/learn/services.md (1 hunks)
🧰 Additional context used
📓 Learnings (1)
docs/src/content/docs/development/introduction.mdx (1)
Learnt from: stavros-k
PR: wailsapp/wails#3917
File: docs/src/content/docs/development/introduction.mdx:43-44
Timestamp: 2024-12-02T22:08:55.625Z
Learning: When using the `<FileTree>` component in `docs/src/content/docs/development/introduction.mdx`, repeating words like `examples Examples` and `internal Internal` is intentional to achieve the desired formatting.
🪛 LanguageTool
docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md

[uncategorized] ~22-~22: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...was a frustrating development experience but there wasn't much that could have been ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~33-~33: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...is release, so grab a drink, take a seat and we'll begin... ### No CGO Dependency! ...

(COMMA_COMPOUND_SENTENCE)


[grammar] ~39-~39: The operating system from Apple is written “macOS”.
Context: ...The thing about Windows is that, unlike MacOS and Linux, it doesn't come with a defau...

(MAC_OS)


[style] ~56-~56: ‘On top of that’ might be wordy. Consider a shorter alternative.
Context: ... your frontend code to work on Windows. On top of that, you get a first-class developer tools ...

(EN_WORDINESS_PREMIUM_ON_TOP_OF_THAT)


[style] ~65-~65: As a shorter alternative for ‘able to’, consider using “can”.
Context: ... Chadwick](https://github.com/jchv), we are able to bundle this dll inside the binary and g...

(BE_ABLE_TO)


[style] ~74-~74: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...og-images/wails-menus.webp) There were a lot of requests for native menu support. Wails...

(A_LOT_OF)


[style] ~80-~80: Consider using a different adjective to strengthen your wording.
Context: ...eater control of the window itself. I'm happy to announce that there's new runtime AP...

(HAPPY_EXCITED)


[uncategorized] ~87-~87: A comma may be missing after the conjunctive/linking adverb ‘Currently’.
Context: ...uilding and debugging your application. Currently VSCode is supported but we hope to supp...

(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)


[uncategorized] ~88-~88: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...plication. Currently VSCode is supported but we hope to support other IDEs such as G...

(COMMA_COMPOUND_SENTENCE)


[style] ~95-~95: Consider using a different adjective to strengthen your wording.
Context: ...tion down to single JS & CSS files. I'm happy to announce that for v2, there is no re...

(HAPPY_EXCITED)


[uncategorized] ~120-~120: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...ges to frontend assets will trigger and auto reload of the application frontend - Auto re...

(AUTO_HYPHEN)


[style] ~132-~132: Consider using a different adjective to strengthen your wording.
Context: ...a bit of a burden on the developer. I'm happy to announce that in v2, any application...

(HAPPY_EXCITED)


[style] ~150-~150: To elevate your writing, try using a synonym here.
Context: ...nt is very opinionated, fast moving and hard to keep on top of! As a result, we foun...

(HARD_TO)


[misspelling] ~188-~188: Possible spelling mistake found.
Context: ... down the path to a pure Go Wails. - Mat Ryer - His supp...

(EN_MULTITOKEN_SPELLING_TWO)


[grammar] ~201-~201: The operating system from Apple is written “macOS”.
Context: ...citing phase of the project! Lea. PS: MacOS and Linux users need not feel left out ...

(MAC_OS)


[style] ~206-~206: Using many exclamation marks might seem excessive (in this case: 15 exclamation marks for a text that’s 9426 characters long)
Context: .../github.com/sponsors/leaanthony). Thanks!

(EN_EXCESSIVE_EXCLAMATION)

docs/src/content/docs/blog/2023-01-17-v3-roadmap.md

[grammar] ~13-~13: Did you mean “are” or “were”?
Context: ...ultiwindow.webp) # Introduction Wails is a project that simplifies the ability t...

(SENT_START_NNS_IS)


[style] ~18-~18: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...d of September 2022 and brought with it a lot of enhancements including: - Live develop...

(A_LOT_OF)


[style] ~27-~27: For conciseness, consider replacing this expression with an adverb.
Context: ... of NSIS Installer - Obfuscated builds Right now, Wails v2 provides powerful tooling for...

(AT_THE_MOMENT)


[typographical] ~47-~47: To make your text more readable, consider placing this phrase between commas.
Context: ...I've identified the following areas that I feel are holding the project back: - The AP...

(WHICH_I_THOUGHT_COMMA)


[style] ~61-~61: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...e application will work. Whilst this is very simple to use, it is also very limiting. It is...

(EN_WEAK_ADJECTIVE)


[style] ~68-~68: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...iple windows. The Runtime API provides a lot of utility functions for the developer. Th...

(A_LOT_OF)


[uncategorized] ~83-~83: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...he demand for multiple windows has grown and the API is not well suited to this. ##...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~138-~138: Possible missing comma found.
Context: ...ial flag and then running the resultant binary which uses reflection to determine what...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~139-~139: It appears that there are hyphens missing.
Context: ...as been bound. This leads to a bit of a chicken and egg situation: You can't build the application withou...

(CHICKEN_AND_EGG_HYPHEN)


[uncategorized] ~140-~140: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ild the application without the bindings and you can't generate the bindings without...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~141-~141: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ication. There are many ways around this but the best one would be not to use this a...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~144-~144: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ing a static analyser for Wails projects but they didn't get very far. In more recen...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~148-~148: Possible missing comma found.
Context: ...to reflection, the AST approach is much faster however it is significantly more compli...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~157-~157: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...on. When you run wails build, it does a lot of things behind the scenes: - Builds the...

(A_LOT_OF)


[style] ~175-~175: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ... builds it This entire process, whilst very powerful, is also very opaque. It is very diffic...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~176-~176: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ue. It is very difficult to customise it and it is very difficult to debug. To addr...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~183-~183: Possible missing comma found.
Context: ...ld be configured using a Taskfile.yml file which would be generated by default wit...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~184-~184: Consider removing “of” to be more concise
Context: ...he supported templates. This would have all of the steps required to do all the current ta...

(ALL_OF_THE)


[uncategorized] ~188-~188: Possible missing comma found.
Context: ...ill be no external requirement for this tooling as it would form part of the Wails CLI....

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~201-~201: Possible missing comma found.
Context: ...s will be a much more transparent build system which will allow for easier customisati...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~220-~220: The adjective “community-driven” is spelled with a hyphen.
Context: ... this will lead to a new ecosystem of community driven build pipelines. - Better separation of...

(DRIVEN_HYPHEN)


[uncategorized] ~226-~226: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...mentation for this has already been done and it's looking good. There is no current ...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~227-~227: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ere is no current timeline for this work but I'm hoping by the end of Q1 2023, there...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~233-~233: Possible missing comma found.
Context: ...PI is declarative, hides a lot from the developer and not suitable for features such as...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~236-~236: Possible missing comma found.
Context: ...build system is opaque and difficult to customise so we will move to an external build ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~238-~238: Possible missing comma found.
Context: .... - The bindings generation is slow and complex so we will move to static analysis wh...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~241-~241: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...en a lot of work put into the guts of v2 and it's solid. It's now time to address th...

(COMMA_COMPOUND_SENTENCE)


[style] ~256-~256: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...th Wails. It's not a mockup. It's real. It's awesome. It's coming soon.

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~256-~256: Consider using a more formal and expressive alternative to ‘awesome’.
Context: ...ils. It's not a mockup. It's real. It's awesome. It's coming soon.

(AWESOME)


[style] ~256-~256: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... not a mockup. It's real. It's awesome. It's coming soon.

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

docs/src/content/docs/development/introduction.mdx

[grammar] ~20-~20: This sentence should probably be started with a verb instead of the noun ‘Checkout’. If not, consider inserting a comma for better clarity.
Context: ...g Started - Git clone this repository. Checkout the v3-alpha branch. - Install the CL...

(SENT_START_NN_DT)


[duplication] ~43-~43: Possible typo: you repeated a word
Context: ... - v3 - cmd/wails3 CLI - examples Examples of Wails apps - internal Internal pac...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~44-~44: Possible typo: you repeated a word
Context: ... - examples Examples of Wails apps - internal Internal packages - runtime The Wails JS run...

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~63-~63: It appears that a hyphen is missing in the noun “To-do” (= task) or did you mean the verb “to do”?
Context: ...ng known issues and tasks in the [Alpha Todo List](https://github.com/orgs/wailsapp/...

(TO_DO_HYPHEN)


[uncategorized] ~71-~71: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...onality required for all platforms. Any platform specific code should be called via a `webviewWin...

(SPECIFIC_HYPHEN)


[uncategorized] ~82-~82: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...dow_linux.go` Most, if not all, of the platform specific code should be run on the main thread. ...

(SPECIFIC_HYPHEN)


[uncategorized] ~106-~106: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...st common denominator". You can use the platform specific events if you need to. When adding a c...

(SPECIFIC_HYPHEN)


[uncategorized] ~108-~108: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ... adding a common event, ensure that the platform specific events are mapped. An example of this i...

(SPECIFIC_HYPHEN)


[typographical] ~176-~176: Consider adding a comma.
Context: ... ``` If there are incompatibilities then they should appear in the `v3/internal/...

(IF_THEN_COMMA)


[typographical] ~178-~178: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...e v3/internal/commands/task.go file. Usually the best way to fix incompatibilities i...

(RB_LY_COMMA)


[typographical] ~215-~215: Consider adding a comma.
Context: ... ``` If there are incompatibilities then they should appear in the `v3/internal/...

(IF_THEN_COMMA)


[typographical] ~217-~217: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...e v3/internal/commands/task.go file. Usually the best way to fix incompatibilities i...

(RB_LY_COMMA)

docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md

[style] ~11-~11: Qualifiers like “somewhat” can weaken your message and make your writing sound uncertain. Consider removing it or choosing an alternative to sound more confident.
Context: ...ails v2 is now in beta for Linux! It is somewhat ironic that the very first experiments ...

(SOMEWHAT)


[typographical] ~12-~12: Consider adding a comma after the introductory adverb.
Context: ...st experiments with v2 was on Linux and yet it has ended up as the last release. Th...

(YET_COMMA)


[style] ~21-~21: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...ges/wails-menus-linux.webp) There were a lot of requests for native menu support. Wails...

(A_LOT_OF)


[style] ~27-~27: Consider using a different adjective to strengthen your wording.
Context: ...eater control of the window itself. I'm happy to announce that there's new runtime AP...

(HAPPY_EXCITED)


[style] ~35-~35: Consider using a different adjective to strengthen your wording.
Context: ...tion down to single JS & CSS files. I'm happy to announce that for v2, there is no re...

(HAPPY_EXCITED)


[uncategorized] ~58-~58: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...nges to frontend assets will trigger an auto reload of the application frontend - Auto re...

(AUTO_HYPHEN)


[style] ~70-~70: Consider using a different adjective to strengthen your wording.
Context: ...a bit of a burden on the developer. I'm happy to announce that in v2, any application...

(HAPPY_EXCITED)


[style] ~88-~88: To elevate your writing, try using a synonym here.
Context: ...nt is very opinionated, fast moving and hard to keep on top of! As a result, we foun...

(HARD_TO)


[style] ~129-~129: Using many exclamation marks might seem excessive (in this case: 10 exclamation marks for a text that’s 5233 characters long)
Context: .../github.com/sponsors/leaanthony). Thanks!

(EN_EXCESSIVE_EXCLAMATION)

docs/src/content/docs/api/application.mdx

[uncategorized] ~149-~149: Loose punctuation mark.
Context: ...with the following values: - PathHome: Returns the user's home directory - `Pa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ...the following values: - PathsDataDirs: Returns the list of data directories - ...

(UNLIKELY_OPENING_PUNCTUATION)

docs/src/content/docs/changelog.md

[grammar] ~267-~267: The operating system from Apple is written “macOS”.
Context: ...aths with spaces - @leaanthony. - Fix MacOS systray click handling when no attached...

(MAC_OS)


[grammar] ~273-~273: “Windows” (operating system by Microsoft) is a proper noun and needs to be capitalized.
Context: ...ailsapp/wails/pull/3208) - Fix crash on windows left clicking the systray icon when not...

(A_WINDOWS)


[grammar] ~273-~273: The verb “left-clicking” is spelled with a hyphen.
Context: ...wails/pull/3208) - Fix crash on windows left clicking the systray icon when not having an a...

(CLICK_HYPHEN)

🔇 Additional comments (17)
docs/src/content/docs/blog/2021-09-27-v2-beta1-release-notes.md (1)

193-193: ⚠️ Potential issue

Fix subject-verb agreement

Change "whose support drive the project" to "whose support drives the project" to maintain proper subject-verb agreement.

docs/src/content/docs/changelog.md (2)

1-18: LGTM! Well-structured changelog format.

The file follows the Keep a Changelog format and includes clear guidelines for categorizing changes.


149-154: Remove duplicate entries in the Unreleased section.

The following entries appear twice:

  1. "Do not bind internal service methods" (PR Ignore internal service methods when binding #3720)
  2. "Fixed system tray startup panic" (Issue v3: ShellNotifyIcon fails when shell not loaded yet/properly #3693)
docs/src/content/docs/api/application.mdx (1)

1-5: LGTM: Frontmatter is well-structured.

The metadata provides clear title and sidebar organization.

docs/src/content/docs/blog/2022-02-22-v2-beta3-release-notes.md (3)

1-7: LGTM! Frontmatter is well-structured.

The metadata follows standard markdown frontmatter conventions with all necessary fields properly formatted.


58-59: Fix hyphenation in "auto-reload".

The term should be hyphenated for clarity.

-Hot reload - Any changes to frontend assets will trigger an auto reload of the
+Hot reload - Any changes to frontend assets will trigger an auto-reload of the
🧰 Tools
🪛 LanguageTool

[uncategorized] ~58-~58: It appears that a hyphen is missing (if ‘auto’ is not used in the context of ‘cars’).
Context: ...nges to frontend assets will trigger an auto reload of the application frontend - Auto re...

(AUTO_HYPHEN)


118-119: Fix verb agreement with "support".

The singular noun "support" requires the singular verb form "drives".

-[project sponsors](/credits#sponsors) whose support drive the project in many
+[project sponsors](/credits#sponsors) whose support drives the project in many
docs/src/content/docs/development/introduction.mdx (3)

1-8: LGTM!

The frontmatter and imports are properly structured.


39-56: LGTM!

The project layout is well-structured using the FileTree component. The repeated words (e.g., "examples Examples") are intentional for the desired formatting.

🧰 Tools
🪛 LanguageTool

[duplication] ~43-~43: Possible typo: you repeated a word
Context: ... - v3 - cmd/wails3 CLI - examples Examples of Wails apps - internal Internal pac...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~44-~44: Possible typo: you repeated a word
Context: ... - examples Examples of Wails apps - internal Internal packages - runtime The Wails JS run...

(ENGLISH_WORD_REPEAT_RULE)


71-82: 🛠️ Refactor suggestion

Maintain consistent hyphenation.

For better readability and correct grammar, "platform specific" should be hyphenated when used as a modifier.

Apply these changes throughout the file:

-Any platform specific code should be called via a `webviewWindowImpl`
+Any platform-specific code should be called via a `webviewWindowImpl`

-Most, if not all, of the platform specific code should be run on the main
+Most, if not all, of the platform-specific code should be run on the main

Likely invalid or redundant comment.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~71-~71: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...onality required for all platforms. Any platform specific code should be called via a `webviewWin...

(SPECIFIC_HYPHEN)


[uncategorized] ~82-~82: When ‘platform-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...dow_linux.go` Most, if not all, of the platform specific code should be run on the main thread. ...

(SPECIFIC_HYPHEN)

docs/src/content/docs/blog/2023-01-17-v3-roadmap.md (4)

1-7: LGTM! Frontmatter is well-structured.

The metadata is complete and follows standard conventions.


143-144: Fix grammatical issue in the sentence.

The phrase "There was a number of attempts" should be "There were a number of attempts" as "a number of" takes a plural verb.

-There was a number of attempts at writing a static analyser for Wails projects
+There were a number of attempts at writing a static analyser for Wails projects
🧰 Tools
🪛 LanguageTool

[uncategorized] ~144-~144: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ing a static analyser for Wails projects but they didn't get very far. In more recen...

(COMMA_COMPOUND_SENTENCE)


204-256: LGTM! Strong conclusion with clear benefits and community engagement.

The conclusion effectively summarizes the proposed changes and includes important elements like sponsorship opportunities and proof of progress (screenshot reference).

🧰 Tools
🪛 LanguageTool

[uncategorized] ~220-~220: The adjective “community-driven” is spelled with a hyphen.
Context: ... this will lead to a new ecosystem of community driven build pipelines. - Better separation of...

(DRIVEN_HYPHEN)


[uncategorized] ~226-~226: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...mentation for this has already been done and it's looking good. There is no current ...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~227-~227: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...ere is no current timeline for this work but I'm hoping by the end of Q1 2023, there...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~233-~233: Possible missing comma found.
Context: ...PI is declarative, hides a lot from the developer and not suitable for features such as...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~236-~236: Possible missing comma found.
Context: ...build system is opaque and difficult to customise so we will move to an external build ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~238-~238: Possible missing comma found.
Context: .... - The bindings generation is slow and complex so we will move to static analysis wh...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~241-~241: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...en a lot of work put into the guts of v2 and it's solid. It's now time to address th...

(COMMA_COMPOUND_SENTENCE)


[style] ~256-~256: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...th Wails. It's not a mockup. It's real. It's awesome. It's coming soon.

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~256-~256: Consider using a more formal and expressive alternative to ‘awesome’.
Context: ...ils. It's not a mockup. It's real. It's awesome. It's coming soon.

(AWESOME)


[style] ~256-~256: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... not a mockup. It's real. It's awesome. It's coming soon.

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


149-151: Consider elaborating on binding constraints.

The text mentions "certain constraints on how to specify bindings in the code" but doesn't provide examples. Consider adding specific examples of these constraints to help developers understand what to expect.

✅ Verification successful

Based on the search results, I can now provide a comprehensive response about the binding constraints mentioned in the roadmap document:

The constraints refer to static analysis limitations for method bindings

The roadmap is discussing moving from a reflection-based approach to static analysis for generating bindings. From the codebase context, some key constraints would be:

  • Only public methods (starting with uppercase) can be bound
  • Methods must be defined on struct instances, not standalone functions
  • Bound methods must follow specific parameter and return value patterns that can be statically analyzed
  • Complex type definitions and interfaces may have limited support initially
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for existing binding specifications in the codebase
rg -A 5 "wails\.Bind"

Length of output: 23


Script:

#!/bin/bash
# Search for binding-related content in documentation and code
rg -i "bind.*method|method.*bind" -A 5

# Search for binding examples in markdown files
fd -e md -x rg -i "bind.*example|example.*bind" -A 5 {}

# Search for binding-related code patterns
ast-grep --pattern 'Bind($$$)'

Length of output: 66967

docs/src/content/docs/learn/services.md (3)

90-97: ⚠️ Potential issue

Add security considerations for HTTP handlers

The ServeHTTP documentation should include security best practices.

Add a security section explaining:

  • Input validation
  • Rate limiting
  • CORS configuration
  • Security headers
  • Error handling

110-135: ⚠️ Potential issue

Enhance file server security and configuration

The file server example should demonstrate security best practices.

The example needs to show:

  • Path traversal prevention
  • File type restrictions
  • Access control
  • Logging of file access

155-164: 🛠️ Refactor suggestion

Clarify service lifecycle error handling

The lifecycle documentation needs more detail about error handling and shutdown procedures.

Add information about:

  • How errors from OnStartup affect application startup
  • Order of shutdown operations
  • Timeout handling during shutdown
  • Handling of concurrent service shutdown

Comment on lines +106 to +108
You just pass a single `embed.FS` that contains all your assets into your
application configuration. They don't even need to be in the top directory -
Wails will just work it out for you.
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add code example for embed.FS configuration

This section would benefit from a concrete code example showing how to configure the embed.FS for assets. Consider adding:

//go:embed frontend/dist/*
var assets embed.FS

func main() {
    app := wails.NewApplication(wails.Options{
        Assets: assets,
        // ... other options
    })
}

Comment on lines +129 to +135
In Go, we are used to dealing with structs in our applications. It's often
useful to send structs to our frontend and use them as state in our application.
In v1, this was a very manual process and a bit of a burden on the developer.
I'm happy to announce that in v2, any application run in dev mode will
automatically generate TypeScript models for all structs that are input or
output parameters to bound methods. This enables seamless interchange of data
models between the two worlds.
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add TypeScript model generation example

To better illustrate the TypeScript model generation feature, consider adding an example showing:

// Go struct
type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

// Generated TypeScript
interface User {
    name: string;
    age: number;
}
🧰 Tools
🪛 LanguageTool

[style] ~132-~132: Consider using a different adjective to strengthen your wording.
Context: ...a bit of a burden on the developer. I'm happy to announce that in v2, any application...

(HAPPY_EXCITED)

Comment on lines +155 to +159
With v2, I wanted to empower the community by giving you the ability to create
and host templates yourselves, rather than rely on the Wails project. So now you
can create projects using community supported templates! I hope this will
inspire developers to create a vibrant ecosystem of project templates. I'm
really quite excited about what our developer community can create!
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add template creation guidelines

Consider adding a section explaining:

  • How to create a custom template
  • Steps to publish and share templates
  • Best practices for template maintenance

### No CGO Dependency!

No, I'm not joking: _No_ _CGO_ _dependency_ 🤯! The thing about Windows is that,
unlike MacOS and Linux, it doesn't come with a default compiler. In addition,
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Use correct Apple OS naming convention

Replace "MacOS" with "macOS" to follow Apple's official naming convention.

Also applies to: 201-201

🧰 Tools
🪛 LanguageTool

[grammar] ~39-~39: The operating system from Apple is written “macOS”.
Context: ...The thing about Windows is that, unlike MacOS and Linux, it doesn't come with a defau...

(MAC_OS)

Comment on lines +184 to +193
API: `Paths(selector Paths) []string` `Paths(selector Path)` returns a list of
paths for the given path type. It provides a cross-platform way to query common
directory paths.

The `Paths` type is an enum with the following values:

- `PathsDataDirs`: Returns the list of data directories
- `PathsConfigDirs`: Returns the list of configuration directories
- `PathsCacheDirs`: Returns the list of cache directories
- `PathsRuntimeDirs`: Returns the list of runtime directories
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Fix formatting and clarify Paths API documentation.

The API signature and description have formatting issues and unclear syntax.

-API: `Paths(selector Paths) []string` `Paths(selector Path)` returns a list of
-paths for the given path type. It provides a cross-platform way to query common
-directory paths.
+API: `Paths(selector Paths) []string`
+
+`Paths(selector Paths)` returns a list of paths for the given path type. It provides
+a cross-platform way to query common directory paths.
📝 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.

Suggested change
API: `Paths(selector Paths) []string` `Paths(selector Path)` returns a list of
paths for the given path type. It provides a cross-platform way to query common
directory paths.
The `Paths` type is an enum with the following values:
- `PathsDataDirs`: Returns the list of data directories
- `PathsConfigDirs`: Returns the list of configuration directories
- `PathsCacheDirs`: Returns the list of cache directories
- `PathsRuntimeDirs`: Returns the list of runtime directories
API: `Paths(selector Paths) []string`
`Paths(selector Paths)` returns a list of paths for the given path type. It provides
a cross-platform way to query common directory paths.
The `Paths` type is an enum with the following values:
- `PathsDataDirs`: Returns the list of data directories
- `PathsConfigDirs`: Returns the list of configuration directories
- `PathsCacheDirs`: Returns the list of cache directories
- `PathsRuntimeDirs`: Returns the list of runtime directories
🧰 Tools
🪛 LanguageTool

[uncategorized] ~190-~190: Loose punctuation mark.
Context: ...the following values: - PathsDataDirs: Returns the list of data directories - ...

(UNLIKELY_OPENING_PUNCTUATION)

Comment on lines +37 to +38
image? Use an `<../../../assets/blog-images>` tag with a local src path. Want to
use a cool font? Copy it in and add the path to it in your CSS.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix malformed HTML tag in documentation.

The path is incorrectly wrapped in HTML tags, which could confuse readers.

-image? Use an `<../../../assets/blog-images>` tag with a local src path. Want to
+image? Use an `../../../assets/blog-images` path. Want to
📝 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.

Suggested change
image? Use an `<../../../assets/blog-images>` tag with a local src path. Want to
use a cool font? Copy it in and add the path to it in your CSS.
image? Use an `../../../assets/blog-images` path. Want to
use a cool font? Copy it in and add the path to it in your CSS.

Comment on lines +12 to +13
somewhat ironic that the very first experiments with v2 was on Linux and yet it
has ended up as the last release. That being said, the v2 we have today is very
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix subject-verb agreement.

The plural subject "experiments" should use "were" instead of "was".

-somewhat ironic that the very first experiments with v2 was on Linux and yet it
+somewhat ironic that the very first experiments with v2 were on Linux and yet it
📝 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.

Suggested change
somewhat ironic that the very first experiments with v2 was on Linux and yet it
has ended up as the last release. That being said, the v2 we have today is very
somewhat ironic that the very first experiments with v2 were on Linux and yet it
has ended up as the last release. That being said, the v2 we have today is very
🧰 Tools
🪛 LanguageTool

[typographical] ~12-~12: Consider adding a comma after the introductory adverb.
Context: ...st experiments with v2 was on Linux and yet it has ended up as the last release. Th...

(YET_COMMA)

Comment on lines +20 to +24
- Git clone this repository. Checkout the `v3-alpha` branch.
- Install the CLI: `cd v3/cmd/wails3 && go install`

- Optional: If you want to use the build system to build frontend code, you will
need to install [npm](https://nodejs.org/en/download).
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Improve clarity of installation instructions.

The installation steps could be more precise and follow better command formatting.

Apply this diff:

-- Git clone this repository. Checkout the `v3-alpha` branch.
-- Install the CLI: `cd v3/cmd/wails3 && go install`
+1. Clone this repository and check out the `v3-alpha` branch:
+   ```bash
+   git clone https://github.com/wailsapp/wails
+   cd wails
+   git checkout v3-alpha
+   ```
+2. Install the CLI:
+   ```bash
+   cd v3/cmd/wails3 && go install
+   ```
+3. Optional: If you want to use the build system to build frontend code,
+   install [npm](https://nodejs.org/en/download).
🧰 Tools
🪛 LanguageTool

[grammar] ~20-~20: This sentence should probably be started with a verb instead of the noun ‘Checkout’. If not, consider inserting a comma for better clarity.
Context: ...g Started - Git clone this repository. Checkout the v3-alpha branch. - Install the CL...

(SENT_START_NN_DT)

Comment on lines +200 to +228
### Upgrading Taskfile

The Wails CLI uses the [Task](https://taskfile.dev) build system. It is imported
as a library and used to run the tasks defined in `Taskfile.yaml`. The main
interfacing with Task happens in `v3/internal/commands/task.go`.

To check if there's an upgrade for Taskfile, run `wails3 task -version` and
check against the Task website.
To upgrade the version of Taskfile used, run:
```shell
wails3 task taskfile:upgrade
```
If there are incompatibilities then they should appear in the
`v3/internal/commands/task.go` file.
Usually the best way to fix incompatibilities is to clone the task repo at
`https://github.com/go-task/task` and look at the git history to determine what
has changed and why.
To check all changes have worked correctly, re-install the CLI and check the
version again:
```shell
wails3 task cli:install
wails3 task -version
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Remove duplicated content.

The "Upgrading Taskfile" section is duplicated. The same content appears earlier in lines 165-189.

Remove the entire duplicated section from lines 200-228.

🧰 Tools
🪛 LanguageTool

[typographical] ~215-~215: Consider adding a comma.
Context: ... ``` If there are incompatibilities then they should appear in the `v3/internal/...

(IF_THEN_COMMA)


[typographical] ~217-~217: Consider adding a comma after ‘Usually’ for more clarity.
Context: ...e v3/internal/commands/task.go file. Usually the best way to fix incompatibilities i...

(RB_LY_COMMA)

Comment on lines +71 to +77
func (s *Service) OnStartup(ctx context.Context, options application.ServiceOptions) error
```

This method is called when the application is starting up. You can use it to
initialize resources, set up connections, or perform any necessary setup tasks.
The context is the application context, and the `options` parameter provides
additional information about the service.
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Clarify error handling in OnStartup.

The documentation should explain how errors from OnStartup affect the application startup process.

Add the following clarification:

"If OnStartup returns an error, the application startup will be aborted, and the error will be propagated to app.Run(). Ensure proper error handling and resource cleanup in case of startup failures."

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (4)
docs/src/content/docs/api/events_mac.md (4)

1-7: Consider enhancing frontmatter metadata for better documentation organization.

Consider adding these helpful frontmatter fields:

  • description: Brief overview of macOS events
  • sidebar.label: Shorter label for navigation (if needed)
  • tags: ['macos', 'events', 'api']

9-182: Enhance Application Events documentation with additional details.

Consider adding for each event:

  • Parameters passed to event handlers (if any)
  • Simple usage example
  • Common use cases or scenarios
  • Related events that might be triggered in sequence

Example format:

#### `events.Mac.ApplicationDidBecomeActive`

Triggered when the application becomes active.

**Parameters:**
- `event`: The event object containing...

**Example:**
```javascript
window.runtime.EventsOn('events.Mac.ApplicationDidBecomeActive', (event) => {
  console.log('Application became active')
})

Common scenarios:

  • Application regaining focus
  • Switching back from another application

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

<details>
<summary>🪛 Markdownlint (0.35.0)</summary>

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

(MD001, heading-increment)

</details>

</details>

---

`479-480`: **Maintain consistent description formatting.**

Multi-line descriptions should be on a single line for consistency with other event descriptions.

```diff
-Triggered when the webview receives a server redirect for a provisional
-navigation
+Triggered when the webview receives a server redirect for a provisional navigation

1-500: Consider grouping related events for better organization.

The documentation could be more maintainable by grouping related events under subsections. For example:

  • Window Lifecycle Events (create, close)
  • Window State Events (minimize, maximize, fullscreen)
  • Window Property Events (alpha, title, toolbar)
  • Window Navigation Events (focus, ordering)
  • Drag and Drop Events
  • Webview Events

This would make it easier for developers to find related events and understand their relationships.

🧰 Tools
🪛 LanguageTool

[grammar] ~227-~227: Did you mean “screens”?
Context: ...hangeScreen Triggered when the window screen changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~251-~251: Did you mean “spaces”?
Context: ...ChangeSpace Triggered when the window space changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~259-~259: Did you mean “titles”?
Context: ...ChangeTitle Triggered when the window title changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~347-~347: Did you mean “shadows”?
Context: ...pdateShadow Triggered when the window shadow updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~351-~351: Did you mean “titles”?
Context: ...UpdateTitle Triggered when the window title updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~387-~387: Did you mean “wills”?
Context: ...miniaturize Triggered when the window will deminiaturize ####events.Mac.WindowW...

(WRB_DT_NN_VB)

🪛 Markdownlint (0.35.0)

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

(MD001, heading-increment)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between b0ec474 and 4f709e0.

📒 Files selected for processing (1)
  • docs/src/content/docs/api/events_mac.md (1 hunks)
🧰 Additional context used
📓 Learnings (1)
docs/src/content/docs/api/events_mac.md (1)
Learnt from: stavros-k
PR: wailsapp/wails#3917
File: docs/src/content/docs/api/events_mac.md:9-9
Timestamp: 2024-12-02T22:13:32.421Z
Learning: In `docs/src/content/docs/api/events_mac.md`, the heading levels are intentionally adjusted to improve sizing on the browser, to avoid manually customizing the styling of the doc generator.
🪛 LanguageTool
docs/src/content/docs/api/events_mac.md

[grammar] ~227-~227: Did you mean “screens”?
Context: ...hangeScreen Triggered when the window screen changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~251-~251: Did you mean “spaces”?
Context: ...ChangeSpace Triggered when the window space changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~259-~259: Did you mean “titles”?
Context: ...ChangeTitle Triggered when the window title changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~347-~347: Did you mean “shadows”?
Context: ...pdateShadow Triggered when the window shadow updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~351-~351: Did you mean “titles”?
Context: ...UpdateTitle Triggered when the window title updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~387-~387: Did you mean “wills”?
Context: ...miniaturize Triggered when the window will deminiaturize ####events.Mac.WindowW...

(WRB_DT_NN_VB)

🪛 Markdownlint (0.35.0)
docs/src/content/docs/api/events_mac.md

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

(MD001, heading-increment)

docs/src/content/docs/api/events_mac.md Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (4)
docs/src/content/docs/api/events_windows.md (2)

33-34: Improve readability by combining split lines.

The description is unnecessarily split across two lines.

-Triggered when the system resumes after a suspend and resume was triggered by
-the user
+Triggered when the system resumes after a suspend and resume was triggered by the user
🧰 Tools
🪛 LanguageTool

[grammar] ~33-~33: The verb ‘suspend’ does not usually follow articles like ‘a’. Check that ‘suspend’ is spelled correctly; using ‘suspend’ as a noun may be non-standard.
Context: ...Triggered when the system resumes after a suspend and resume was triggered by the user #...

(A_INFINITIVE)


9-112: Consider enhancing documentation with examples and payload information.

The events are well-documented but could be more helpful with:

  1. Example usage for each event
  2. Event payload information (if any)
  3. Common use cases or scenarios

Example enhancement:

 #### `events.Windows.WindowDragDrop`

-Triggered when files are dropped on the window
+Triggered when files are dropped on the window
+
+Payload:
+```ts
+interface WindowDragDropPayload {
+  files: string[];  // Array of file paths
+}
+```
+
+Example usage:
+```javascript
+window.runtime.EventsOn('windows:WindowDragDrop', (payload) => {
+  console.log('Files dropped:', payload.files);
+});
+```
🧰 Tools
🪛 LanguageTool

[grammar] ~17-~17: Did you mean “themes”?
Context: ...hemeChanged Triggered when the system theme changes ####events.Windows.APMPowerS...

(WRB_DT_NN_VB)


[grammar] ~33-~33: The verb ‘suspend’ does not usually follow articles like ‘a’. Check that ‘suspend’ is spelled correctly; using ‘suspend’ as a noun may be non-standard.
Context: ...Triggered when the system resumes after a suspend and resume was triggered by the user #...

(A_INFINITIVE)

🪛 Markdownlint (0.35.0)

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

(MD001, heading-increment)


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

(MD001, heading-increment)

docs/src/content/docs/api/events_mac.md (2)

479-480: Improve readability by combining split lines.

The description is unnecessarily split across two lines.

-Triggered when the webview receives a server redirect for a provisional
-navigation
+Triggered when the webview receives a server redirect for a provisional navigation

91-182: Consider grouping menu-related events into a separate section.

The menu-related events (MenuWillOpen, MenuDidOpen, etc.) would be more discoverable in their own section, similar to how Window Events are separated.

Suggested structure:

 ## Application Events
+
+## Menu Events
+
+#### `events.Mac.MenuWillOpen`
 ...
+
 ## Window Events
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 4f709e0 and 55da481.

📒 Files selected for processing (2)
  • docs/src/content/docs/api/events_mac.md (1 hunks)
  • docs/src/content/docs/api/events_windows.md (1 hunks)
🧰 Additional context used
📓 Learnings (1)
docs/src/content/docs/api/events_mac.md (1)
Learnt from: stavros-k
PR: wailsapp/wails#3917
File: docs/src/content/docs/api/events_mac.md:9-9
Timestamp: 2024-12-02T22:13:32.421Z
Learning: In `docs/src/content/docs/api/events_mac.md`, the heading levels are intentionally adjusted to improve sizing on the browser, to avoid manually customizing the styling of the doc generator.
🪛 LanguageTool
docs/src/content/docs/api/events_windows.md

[grammar] ~17-~17: Did you mean “themes”?
Context: ...hemeChanged Triggered when the system theme changes ####events.Windows.APMPowerS...

(WRB_DT_NN_VB)


[grammar] ~33-~33: The verb ‘suspend’ does not usually follow articles like ‘a’. Check that ‘suspend’ is spelled correctly; using ‘suspend’ as a noun may be non-standard.
Context: ...Triggered when the system resumes after a suspend and resume was triggered by the user #...

(A_INFINITIVE)

docs/src/content/docs/api/events_mac.md

[grammar] ~227-~227: Did you mean “screens”?
Context: ...hangeScreen Triggered when the window screen changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~251-~251: Did you mean “spaces”?
Context: ...ChangeSpace Triggered when the window space changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~259-~259: Did you mean “titles”?
Context: ...ChangeTitle Triggered when the window title changes ####events.Mac.WindowDidChan...

(WRB_DT_NN_VB)


[grammar] ~347-~347: Did you mean “shadows”?
Context: ...pdateShadow Triggered when the window shadow updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~351-~351: Did you mean “titles”?
Context: ...UpdateTitle Triggered when the window title updates ####events.Mac.WindowDidUpda...

(WRB_DT_NN_VB)


[grammar] ~387-~387: Did you mean “wills”?
Context: ...miniaturize Triggered when the window will deminiaturize ####events.Mac.WindowW...

(WRB_DT_NN_VB)

🪛 Markdownlint (0.35.0)
docs/src/content/docs/api/events_windows.md

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

(MD001, heading-increment)


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

(MD001, heading-increment)

docs/src/content/docs/api/events_mac.md

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

(MD001, heading-increment)

🔇 Additional comments (2)
docs/src/content/docs/api/events_windows.md (2)

1-7: LGTM! Well-structured frontmatter configuration.

The document is properly configured with appropriate title, table of contents depth, and sidebar ordering.


80-81: ⚠️ Potential issue

Fix incorrect event description.

The description for WindowUnminimise event incorrectly states it's triggered when the window is minimised, which contradicts the event name.

-Triggered when the window is minimised
+Triggered when the window is unminimised

Likely invalid or redundant comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants