Skip to content

Conversation

@Lemon695
Copy link
Contributor

@Lemon695 Lemon695 commented Nov 7, 2025

I am submitting a new Community Plugin

  • I attest that I have done my best to deliver a high-quality plugin, am proud of the code I have written, and would recommend it to others. I commit to maintaining the plugin and being responsive to bug reports. If I am no longer able to maintain it, I will make reasonable efforts to find a successor maintainer or withdraw the plugin from the directory.

Repo URL

Link to my plugin:
https://github.com/Lemon695/obsidian-note-image-gallery

Release Checklist

  • I have tested the plugin on

    • Windows
    • macOS
    • Linux
    • Android (if applicable)
    • iOS (if applicable)
  • My GitHub release contains all required files (as individual files, not just in the source.zip / source.tar.gz)

    • main.js
    • manifest.json
    • styles.css (optional)
  • GitHub release name matches the exact version number specified in my manifest.json (Note: Use the exact version number, don't include a prefix v)

  • The id in my manifest.json matches the id in the community-plugins.json file.

  • My README.md describes the plugin's purpose and provides clear usage instructions.

  • I have read the developer policies at https://docs.obsidian.md/Developer+policies, and have assessed my plugin's adherence to these policies.

  • I have read the tips in https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines and have self-reviewed my plugin to avoid these common pitfalls.

  • I have added a license in the LICENSE file.

  • My project respects and is compatible with the original license of any code from other plugins that I'm using.
    I have given proper attribution to these other projects in my README.md.

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Hello!

I found the following issues in your plugin submission

Errors:

❌ You modified files other than community-plugins.json.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@ObsidianReviewBot ObsidianReviewBot added Changes requested Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made and removed Ready for review labels Nov 7, 2025
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

1 similar comment
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

1 similar comment
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@github-actions
Copy link

github-actions bot commented Nov 8, 2025

Hello!

I found the following issues in your plugin submission

Errors:

❌ Your description needs to have one of the following characters at the end: .?!)
❌ Description mismatch, the description in this PR (Display all images from your note in a gallery view. ) is not the same as the one in your repo (Display all images from your note in a gallery view.). If you just changed it, remember to change it in the manifest.json in your repo and your latest GitHub release.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@github-actions
Copy link

github-actions bot commented Nov 8, 2025

Hello!

I found the following issues in your plugin submission

Errors:

❌ Description mismatch, the description in this PR (Show all images from the active note in a gallery view.) is not the same as the one in your repo (Display all images from your note in a gallery view.). If you just changed it, remember to change it in the manifest.json in your repo and your latest GitHub release.


This check was done automatically. Do NOT open a new PR for re-validation. Instead, to trigger this check again, make a change to your PR and wait a few minutes, or close and re-open it.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

2 similar comments
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

@Lemon695 Lemon695 closed this Nov 9, 2025
@Lemon695 Lemon695 reopened this Nov 9, 2025
@Lemon695 Lemon695 closed this Nov 9, 2025
@Lemon695 Lemon695 reopened this Nov 9, 2025
@ObsidianReviewBot
Copy link
Collaborator

Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

Required

[1][2]
The command ID should not include the plugin ID. Obsidian will make sure that there are no conflicts with other plugins.

[1][2]
The command name should not include the plugin name, the plugin name is already shown next to the command name in the UI.

[1][2][3]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12]
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the void operator.

[1]
Promise-returning method provided where a void return was expected by extended/implemented type 'Plugin'.

[1]
Async arrow function 'processQueue' has no 'await' expression.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
This assertion is unnecessary since it does not change the type of the expression.

[1][2][3][4][5][6][7][8]
Promise returned in function argument where a void return was expected.

[1][2][3][4][5][6][7][8][9][10]
Avoid setting styles directly via element.style.display. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5][6]
Avoid setting styles directly via element.style.visibility. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4][5]
Avoid setting styles directly via element.style.opacity. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3]
Expected the Promise rejection reason to be an Error.

[1]
Unexpected use of 'fetch'. Use the built-in requestUrl function instead of fetch for network requests in Obsidian.

[1][2][3]
'e' may use Object's default stringification format ('[object Object]') when stringified.

[1][2][3]
Invalid type "string | Event" of template literal expression.

[1][2]
A require() style import is forbidden.

[1][2]
Unnecessary escape character: /.

[1]
Expected an assignment or function call and instead saw an expression.

[1]
'imageDiv.parentElement.style.display' is assigned to itself.

[1][2]
Promise executor functions should not be async.

[1]
Empty block statement.

[1]
Avoid setting styles directly via element.style.position. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2]
Avoid setting styles directly via element.style.transform. Use CSS classes for better theming and maintainability. Use the setCssProps function to change CSS properties.

[1][2][3][4]
Do not write to DOM directly using innerHTML/outerHTML property

[1][2][3]
Obsidian's configuration folder is not necessarily .obsidian, it can be configured by the user. Use Vault#configDir to get the current value

[1]
Unnecessary escape character: !.

[1]
Async method 'getAlternativeLocalPaths' has no 'await' expression.

[1][2]
For a consistent UI use new Setting(containerEl).setName(...).setHeading() instead of creating HTML heading elements directly.

[1][2][3]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
Expected an error object to be thrown.


Optional

[1]
'MarkdownView' is defined but never used.

[1]
'Logger' is defined but never used.

[1][2]
'LogLevel' is defined but never used.

[1]
'createLogger' is defined but never used.

[1]
'progressEl' is assigned a value but never used.

[1]
'MAX_RETRIES' is assigned a value but never used.

[1]
'retries' is assigned a value but never used.

[1]
'error' is defined but never used.

[1][2]
'e' is defined but never used.

[1]
'TFile' is defined but never used.

[1]
'Vault' is defined but never used.

[1]
'Notice' is defined but never used.


Do NOT open a new PR for re-validation.
Once you have pushed some changes to your repository the bot will rescan within 6 hours
If you think some of the required changes are incorrect, please comment with /skip and the reason why you think the results are incorrect.
To run these checks locally, install the eslint plugin in your project.
Do NOT rebase this PR, this will be handled by the reviewer once the plugin has been approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Additional review required PR needs to be reviewed by another person, after the currently requested changes have been made Changes requested plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants