Skip to content

Add plugin: Notemd #6082

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

Closed
wants to merge 0 commits into from
Closed

Conversation

Jacobinwwey
Copy link

@Jacobinwwey Jacobinwwey commented Apr 17, 2025

I am submitting a new Community Plugin

Repo URL

Link to my plugin:https://github.com/Jacobinwwey/obsidian-NotEMD

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.

Description

Notemd enhances your Obsidian workflow by integrating with various Large Language Models (LLMs) to process your notes, automatically generate wiki-links for key concepts, create corresponding concept notes, and perform basic duplicate checks.

AI-Powered Document Processing

  • Multi-LLM Support: Connect to various cloud and local LLM providers (e.g., OpenAI, Anthropic, DeepSeek, Google, Mistral, Azure, OpenRouter).
  • Smart Chunking: Automatically splits large documents into manageable chunks based on word count for processing.
  • Content Preservation: Aims to maintain original formatting while adding structure and links.
  • Progress Tracking: Real-time updates via the Notemd Sidebar or a progress modal.
  • Cancellable Operations: Cancel processing via the modal or sidebar.

Knowledge Graph Enhancement

  • Automatic Wiki-Linking: Identifies and adds [[wiki-links]] to core concepts within your processed notes based on LLM output.
  • Concept Note Creation (Optional & Customizable): Automatically creates new notes for discovered concepts in a specified vault folder.
  • Customizable Output Paths: Configure separate relative paths within your vault for saving processed files and newly created concept notes.
  • Link Integrity Maintenance: Basic handling for updating links when notes are renamed or deleted within the vault.

Duplicate Detection

  • Basic Duplicate Check: Identifies potential duplicate words within the currently processed file's content (results logged to console).

Copy link

Hello!

I found the following issues in your plugin submission

Errors:

❌ Your PR has the invalid branch property.
❌ Your PR has the invalid isDesktopOnly property.


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 github-actions bot changed the title Add plugin: Notemd plugin Add plugin: Notemd Apr 17, 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]:The command name should not include the plugin name.

[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19]: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]:Remember to rename the sample classes to something that makes sense to your plugin. If there are any errors, Obsidian will spit out this class name, so this will be important for users to debug if they need to.

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

[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] and more :You should consider limiting the number of console.logs in your code, to not pollute the dev console.


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 and removed Ready for review labels Apr 18, 2025
@Jacobinwwey
Copy link
Author

I have double-checked the requirements and confirmed the following actions have been completed:

Type Casting vs. instanceof: While the specific test mock casting wasn't changed (as instanceof isn't suitable there), the core processing functions (processWithNotemd, processFolderWithNotemd, check-for-duplicates) in main.ts now use instanceof TFile along with file extension checks (.md or .txt) to ensure they operate only on supported text files. The README.md has also been updated to inform users of this limitation.
Command Names: Command names in main.ts have been updated to remove "Notemd" (e.g., "Open Sidebar", "Process Current File", "Process Folder").
Limit console.log: Numerous debug and informational console.log statements in main.ts have been commented out to reduce console noise, while essential error/warning logs remain.
Move Inline Styles to CSS: Static inline styles for UI elements in main.ts (related to error states and visibility) have been moved to styles.css using CSS classes (is-error, is-hidden). Dynamic styles like progress bar width remain inline.
All specified requirements have been addressed through code modifications in main.ts, styles.css, and documentation updates in README.md.

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

Changes requested by bot have been made, ready for additional review by human.

@ObsidianReviewBot
Copy link
Collaborator

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

Required

[1]:Lookbehinds are not supported in iOS versions before 16.4

[1][2][3][4][5]: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.

[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] and more :You should consider limiting the number of console.logs in your code, to not pollute the dev console.


Optional

[1][2][3]: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 and removed Ready for review labels Apr 24, 2025
@Jacobinwwey
Copy link
Author

I have addressed the points raised in the PR feedback and subsequent requests:

Inline Styles: Moved inline styles for the progress bar in NotemdSidebarView.ts to styles.css using a CSS variable.
Test Casts: Removed unsafe type casts (as unknown as TFile) from mock data generation in tests/fileOperations.test.ts.
any Types: Confirmed that all explicit any types/casts have been removed from the functional codebase (.ts files excluding mocks) and replaced with appropriate types (e.g., unknown, SearchResult). Verified that noImplicitAny is enabled in tsconfig.json.
Console Logs: Commented out console.log statements related to API call cancellation logic in llmUtils.ts to reduce console noise. Kept logs related to duplicate detection results as they provide useful user feedback.
The codebase should now reflect the requested changes regarding styling, type safety, console logging, button behavior, and test corrections.

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

Changes requested by bot have been made, ready for additional review by human.

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

Successfully merging this pull request may close these issues.

2 participants