Hey all this is my second try at the Plugin world!. I am looking into things which can help me do something or contribute something in a meaning full way in my prospective. Well this is first part of 4 Plugins that I have planned to build for myself, as a result shared it with you all will also help me understand how many are on the same boat that I am traveling on.
Well having a Graph view is excellent, still having a good old view of the list of items in your inventory, can never beat the good old explorer. As a step toward that, I wanted to start with the basics and roots of this platform, the Name of the Notes and the Tags associated with it, will how can we forget the base on which these both rest on the Universally Unique Identifier (UUID)
Published only (Table format) - Added the option of selecting the list of Published Notes. Having both the local UUID and the Public URL side by side. (Good for Reviewing purposes!).
Raw data - Gives you Note Name, UUID, Tags.
The Meta_1 plugin provides functionality to filter, sort, and export notes based on user-defined criteria. It prompts the user for specific input parameters and generates results accordingly. The results can be inserted into the current note, a new note, or downloaded in various formats.
Description: Prompts the user to input up to at least three tags for filtering notes. The notes that contain any of these tags will be included in the results.
Reflection in Final View: The filtered notes will only include those that match the specified tags. If no tags are entered, all notes will be considered.
Description: Allows the user to filter notes based on a partial or full name match.
Reflection in Final View: The notes will be further filtered to include only those whose names contain the specified string.
Description: Provides options to sort the filtered notes by name in ascending or descending order.
Reflection in Final View: The order of the notes in the final result will reflect the selected sorting option.
Options:
None (Default)
Ascending (ASC)
Descending (DESC)
Description: Offers sorting options for the tags associated with the notes.
Reflection in Final View: The tags within the note will be sorted according to the selected option, affecting the display order in the results.
Options:
None (Default)
Ascending (ASC)
Descending (DESC)
Description: A checkbox that, when selected, sorts the tags within each note alphabetically.
Reflection in Final View: Tags will be listed in alphabetical order for each note in the final output.
Description: Determines how the final results will be outputted: inserted into the current note, a new note, or downloaded in various file formats.
Reflection in Final View: The user will receive the results in the specified format, either in the application or as a downloadable file.
Options:
Insert into current note
Insert into new note
Download as markdown
Download as CSV
Download as TXT
Description: Defines the format of the final results. Options include a table format (both names and tags), names only, or tags only.
Reflection in Final View: The structure of the final results will follow the selected format, impacting how the data is displayed or downloaded.
Options:
Both (Table format)
Note Names
Note Tags
Untitled Notes (Table format)
Untagged Notes (Table format)
Undocumented Notes (w/Hidden-task/s)
Published Notes (Table format)
Archived - Grouped-folders
Vault Notes - Grouped-folders
Deleted Notes - Grouped-folders
Active plugin notes - Grouped-folders
Task Lists - Notes-having-tasks
Un-tagged - Notes-untagged
Created by me - Shared-notes
Shared publicly - Shared-notes
Shared notes - Shared-notes
Notes shared with me - Shared-notes
Notes not created by me - Shared-notes
Notes I shared with others - Shared-notes
This week - Created-date
Today - Created-date
Notes Saving - Low-level-queries
Notes Downloading - Low-level-queries
Notes Indexing - Low-level-queries
Raw data
Capturing User Input: The user's input is captured and stored in variables. If the user cancels the operation, an alert is shown and the process stops.
Fetching Notes: Notes are fetched based on the provided tags. If no tags are provided, all notes are fetched.
Filtering Notes: Notes are filtered by name if a name filter is specified. Duplicate notes are removed.
Sorting Notes: Notes are sorted by name and tags based on the selected options.
Generating Results: Results are generated in the selected format (table, names only, tags only) and sorted accordingly.
Creating Output: The final results, along with a summary of the input selections, are prepared in text and CSV formats. A filename is generated based on the current date and time.
Outputting Results: Results are either inserted into the current note, a new note, or downloaded as a markdown, CSV, or TXT file based on the user's choice.
Additional Details! - The Meta_1
plugin is a powerful tool for filtering, sorting, and exporting notes based on user-defined criteria. By following the provided prompts and selecting the desired options, users can easily manage and output their notes in various formats.
name | Metadata |
icon | account_tree |
description | Get a dump of your Note Names, and their Tags. In various Formats and Methods, to cater best of your requirements. With extensive ways to choose and filter the data that you are looking for. |
instructions | Please fine the Instructions here = Metadata 1.0 Docs |
July 11th, 2024 - Built the skeleton, the search features and the prompt manager and respective backend calling and place holders, sorting by notes, list and tables formats, handling data.
July 12th, 2024 - Built the sort for tags, within the group of tags, different exporter functions and notes, tags separately list feature.
July 13th, 2024 - Added the option of selecting the list of Published Notes. Having both the local UUID and the Public URL side by side. (Good for Reviewing purposes!). Also Added Raw Data dump (Contains note name, uuid, tags).
July 15th, 2024 - Added the Proper Alert pop up window to notify what is exactly been missed out by the user during the input selection!
July 16th, 2024 - Formatted and added comment to the code base for better readability and aesthetics.
July 22nd, 2024 - Added Group Functions, after some tweaks, was able to make it work fine. Move resource intensive to work only when that option is selected. Added sorting, name and tag filtering to the Group Based execution. Added some default formatting for better viewing experience and readability for text and csv separately.
July 31st, 2024 - Tested all the Features, Options and also validated few of the Items. Works properly as expected.
August 28th, 2024 - Completed performance tuning and done testing. It generates the results quite fast now, at least I see a huge difference for me with 400+ notes. Well its all comparative, it should work much faster then before if you have used it. Enjoy the quick querying so that you can use your time else were. (I do understand waiting actually help our brain go on power saving mode! 😜
September 28th, 2024 - Based on the feedback received from the review of this plugin, updated the format type to report type, clean up of report selection names, commented off the published notes report using brut force checking of available public link, added public link after filtering mechanism using group function, added count - number of items in the export report. And also updated the call name from Meta_1 to Metadata (as it iterations are manifested through different plugins). & Rolling back the published options, as one gives you the public link, one give you just the note, it's much quicker.
Bring in all the possible inputs selection
Understand its input criteria + result format
Main
Bring Tags of Notes [Many to One]
Bring Notes of Tags [Many to One]
Build based on Notes Names - as we can get the UUID [One to One > One to Many]
Have a alert when cancelled
Handle empty tags and names
Handle duplication in notes and tags [Notes names, will not have due to the presence of UUID]
Apply filtering partly and fully to the names (like condition)
Sort confusion - Fixed
Sort note names - A, D, N - For final report
Sort tag names - A, D, N - For final report
Sort tag - for each notes - Y, N
Build Text and CSV - templates
Build the structure
Handle commas in tags [multiple ones separately - double quotes]
File name structuring - nomenclature
Final touch - summary of the selected input fields.
Append it
Handling more than 3 tag selections. [Popping out of the window, unable to select the next tag, Reach out!]
Add Published Notes Listing
Add Raw data dump
Add alert if any necessary fields are left empty!
Final Formating!
Group functionality
with sorting, name and tag filtering
Formatting
Testing July 31st, 2024 (13:03:09)
Performance tuning completed - August 28th, 2024 (12:57:24)
Future Ideas in the Bucket:
Metadata 2.0, Metadata 3.0, Metadata Ultimatum
Code Explanation! For Curious Readers and Explores! Thank you if you have made till here. You are Awesome, if you are reading this! 😀. Have a Great Day Ahead!
Time Invested For this Plugin: 10h 45m + 6h 36m + 5h 21m + 4h 41m + 4h 55m + 4h 24m + 6h 34m + 1h 32m + 1h 8m = ~45h 56m. [Not including the ideas popping up randomly when doing daily rituals, only Screen Time.]