Skip to content

Conversation

@AlexKucera
Copy link

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/AlexKucera/obsidian-typst-pdf-export/releases

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 plugins'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 github-actions bot changed the title Update community-plugins.json Add plugin: Typst PDF Export Sep 5, 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][3]:Obsidian's configuration directory isn't necessarily .obsidian, it can be configured by the user. You can access the configured value from Vault#configDir

[1][2][3]:You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.

[1][2]:You should not cast this, instead use a instanceof check to make sure that it's actually a file/folder.


Optional

[1][2][3][4][5][6][7]:Casting to any should be avoided as much as possible.


Do NOT open a new PR for re-validation.
Once you have pushed all of the required changes to your repo, the bot will update the labels on this PR 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.

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

Changes requested by bot have been made, ready for additional review by human.
Please be aware that it might take a few weeks before your plugin is reviewed due to the high volume of submissions currently.

@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 4, 2025
@ObsidianReviewBot ObsidianReviewBot self-assigned this Nov 4, 2025
@ObsidianReviewBot
Copy link
Collaborator

Required

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29]
A require() style import is forbidden.

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

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17]
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][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][2][3][4][5][6][7]
'js-yaml' should be listed in the project's dependencies. Run 'npm i -S js-yaml' to add it

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

[1]
'value' will use Object's default stringification format ('[object Object]') when stringified.

[1]
Static async method 'checkDependenciesAsync' has no 'await' expression.

[1][2]
The two values in this comparison do not have a shared enum type.

[1][2]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1][2]
Promise returned in function argument where a void return was expected.

[1]
noticeEl is deprecated. Use messageEl instead

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

[1]
Unexpected lexical declaration in case block.

[1]
Promise-returning function provided to property where a void return was expected.

[1]
Unexpected await of a non-Promise (non-"Thenable") value.

[1]
Creating and attaching "style" elements is not allowed. For loading CSS, use a "styles.css" file instead, which Obsidian loads for you.

[1][2]
Unexpected use of 'localStorage'. Prefer App#saveLocalStorage / App#loadLocalStorage functions to write / read localStorage data that's unique to a vault.


Optional

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

[1]
'_progressPercent' is assigned a value 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][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29]
A require() style import is forbidden.

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

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]
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][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][2][3][4][5][6][7]
'js-yaml' should be listed in the project's dependencies. Run 'npm i -S js-yaml' to add it

[1][2][3][4][5][6][7][8][9][10]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
'value' will use Object's default stringification format ('[object Object]') when stringified.

[1]
Static async method 'checkDependenciesAsync' has no 'await' expression.

[1][2]
The two values in this comparison do not have a shared enum type.

[1][2]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3]
Promise returned in function argument where a void return was expected.

[1][2]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1]
noticeEl is deprecated. Use messageEl instead

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

[1]
Unexpected lexical declaration in case block.

[1]
Promise-returning function provided to property where a void return was expected.

[1]
Unexpected await of a non-Promise (non-"Thenable") value.

[1]
Creating and attaching "style" elements is not allowed. For loading CSS, use a "styles.css" file instead, which Obsidian loads for you.

[1][2]
Unexpected use of 'localStorage'. Prefer App#saveLocalStorage / App#loadLocalStorage functions to write / read localStorage data that's unique to a vault.


Optional

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

[1]
'_progressPercent' is assigned a value 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][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29]
A require() style import is forbidden.

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

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]
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][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][2][3][4][5][6][7]
'js-yaml' should be listed in the project's dependencies. Run 'npm i -S js-yaml' to add it

[1][2][3][4][5][6][7][8][9][10]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
'value' will use Object's default stringification format ('[object Object]') when stringified.

[1]
Static async method 'checkDependenciesAsync' has no 'await' expression.

[1][2]
The two values in this comparison do not have a shared enum type.

[1][2]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3]
Promise returned in function argument where a void return was expected.

[1][2]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1]
noticeEl is deprecated. Use messageEl instead

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

[1]
Unexpected lexical declaration in case block.

[1]
Promise-returning function provided to property where a void return was expected.

[1]
Unexpected await of a non-Promise (non-"Thenable") value.

[1]
Creating and attaching "style" elements is not allowed. For loading CSS, use a "styles.css" file instead, which Obsidian loads for you.

[1][2]
Unexpected use of 'localStorage'. Prefer App#saveLocalStorage / App#loadLocalStorage functions to write / read localStorage data that's unique to a vault.


Optional

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

[1]
'_progressPercent' is assigned a value 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][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]
Use sentence case for UI text.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27][28][29]
A require() style import is forbidden.

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

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]
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][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][2][3][4][5][6][7]
'js-yaml' should be listed in the project's dependencies. Run 'npm i -S js-yaml' to add it

[1][2][3][4][5][6][7][8][9][10]
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[1]
'value' will use Object's default stringification format ('[object Object]') when stringified.

[1]
Static async method 'checkDependenciesAsync' has no 'await' expression.

[1][2]
The two values in this comparison do not have a shared enum type.

[1][2]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.

[1][2][3]
Promise returned in function argument where a void return was expected.

[1][2]
A method that is not declared with this: void may cause unintentional scoping of this when separated from its object.
Consider using an arrow function or explicitly .bind()ing the method to avoid calling the method with an unintended this value.
If a function does not access this, it can be annotated with this: void.

[1]
noticeEl is deprecated. Use messageEl instead

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

[1]
Unexpected lexical declaration in case block.

[1]
Promise-returning function provided to property where a void return was expected.

[1]
Unexpected await of a non-Promise (non-"Thenable") value.

[1]
Creating and attaching "style" elements is not allowed. For loading CSS, use a "styles.css" file instead, which Obsidian loads for you.

[1][2]
Unexpected use of 'localStorage'. Prefer App#saveLocalStorage / App#loadLocalStorage functions to write / read localStorage data that's unique to a vault.


Optional

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

[1]
'_progressPercent' is assigned a value 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]
Disabling 'obsidianmd/ui/sentence-case' is not allowed.

[1]
Unexpected undescribed directive comment. Include descriptions to explain why the comment is necessary.


Optional


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]
Use sentence case for UI text.


Optional


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.

@AlexKucera
Copy link
Author

/skip - "PDF" (acronym) and "Typst" (proper noun) should remain capitalized

@github-actions github-actions bot added the Skipped code scan Code scanning skipped because submission is not in TS/author believes result is wrong label Nov 9, 2025
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 Skipped code scan Code scanning skipped because submission is not in TS/author believes result is wrong

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants