graph LR
ABCsOfControlPlugin["ABCsOfControlPlugin"]
User_Interaction_Handler["User Interaction Handler"]
Note_Content_Manager["Note Content Manager"]
Highlight_Quote_Formatter["Highlight/Quote Formatter"]
Unclassified["Unclassified"]
User_Interaction_Handler -- "provides input to" --> ABCsOfControlPlugin
ABCsOfControlPlugin -- "orchestrates" --> User_Interaction_Handler
ABCsOfControlPlugin -- "delegates formatting to" --> Highlight_Quote_Formatter
Highlight_Quote_Formatter -- "returns formatted content to" --> ABCsOfControlPlugin
ABCsOfControlPlugin -- "delegates note modification to" --> Note_Content_Manager
Note_Content_Manager -- "modifies notes for" --> ABCsOfControlPlugin
ABCsOfControlPlugin -- "sends feedback to" --> User_Interaction_Handler
The "ABCs of Control" plugin for Obsidian is centered around the ABCsOfControlPlugin class, which serves as the primary orchestrator for all plugin functionalities. User interactions, such as highlighting text or adding quotes, are managed by the User Interaction Handler, which captures events and gathers necessary input. The ABCsOfControlPlugin then coordinates with the Highlight/Quote Formatter to structure the user's input into the appropriate Markdown format. Finally, the Note Content Manager is responsible for seamlessly integrating these formatted highlights and quotes into the user's Obsidian notes, ensuring proper placement and persistence. This architecture emphasizes a clear separation of concerns, with the main plugin class directing the flow and specialized components handling specific tasks like UI, content formatting, and note manipulation.
The core plugin class, orchestrating all functionalities, managing settings, and coordinating interactions between other components.
Related Classes/Methods:
Manages user input events (ribbon icon clicks, commands, editor context menu interactions) and handles displaying user feedback and input modals.
Related Classes/Methods:
ABCsOfControlPlugin.onloadABCsOfControlPlugin.addRibbonIconABCsOfControlPlugin.addCommandABCsOfControlPlugin.registerEventABCsOfControlPlugin.openColorPickerABCsOfControlPlugin.openPromptModal
Handles reading, modifying, and writing content to Obsidian notes, specifically for adding highlights and quotes to designated sections.
Related Classes/Methods:
ABCsOfControlPlugin.addHighlightToNoteABCsOfControlPlugin.handleQuoteABCsOfControlPlugin.getFileFromView
Responsible for formatting selected text and comments into the appropriate Markdown syntax for highlights and quotes, including language-specific section headers.
Related Classes/Methods:
Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)
Related Classes/Methods: None