Contributing Plugins to Fluent Search
Fluent Search's extensibility is powered by a vibrant community of developers contributing plugins that enhance its functionality. To have your plugin featured in the Fluent Search Plugins window, you'll need to submit a pull request (PR) to the official Fluent Search GitHub repository. This involves adding a new entry to the plugins-manifest.json
file, which serves as the catalog for available plugins.
Steps to Submit Your Plugin
Fork the Repository: Navigate to the Fluent Search GitHub repository and click on the "Fork" button to create a personal copy of the repository.
Clone Your Fork: Clone your forked repository to your local machine using:
git clone https://github.com/your-username/Fluent-Search.git
Create a New Branch: It's good practice to create a new branch for your changes:
git checkout -b add-your-plugin
Modify
plugins-manifest.json
: Locate theplugins-manifest.json
file in the repository. Add a new entry for your plugin with the following structure:{ "PluginType": "Dotnet", // or "Task" for Tasks plugins "Name": "YourPluginName", "DisplayName": "Your Plugin Display Name", "Description": "A brief description of your plugin", "PublisherName": "Your Name or Organization", "Version": "1.0.0.0", "MinimumFluentSearchVersion": null, // or specify a version if applicable "URL": "https://github.com/your-username/your-plugin-repo", "DownloadURL": "https://your-download-link.com/your-plugin.zip", "IconUrl": null, // or provide a URL to your plugin's icon "IconGlyph": "", // Unicode character for the icon "IconBase64": null // or provide a base64-encoded icon }
Note: Ensure that the
DownloadURL
points directly to the compiled plugin file (e.g., a.zip
containing your.dll
for C# plugins or a.yaml
file for Tasks plugins).Commit Your Changes: After editing the file, commit your changes:
git add plugins-manifest.json git commit -m "Add [Your Plugin Name] to plugins manifest"
Push to Your Fork: Push the changes to your forked repository:
git push origin add-your-plugin
Create a Pull Request: Go to your fork on GitHub, and you'll see a prompt to create a pull request. Click on it, provide a descriptive title and detailed description, and submit the pull request.
Plugin Entry Details
When adding your plugin to the plugins-manifest.json
, ensure the following fields are accurately filled:
PluginType: Specify
"Dotnet"
for C# plugins or"Task"
for Tasks plugins.Name: A unique identifier for your plugin.
DisplayName: The name that will appear in the Plugins window.
Description: A concise explanation of what your plugin does.
PublisherName: Your name or the name of your organization.
Version: The current version of your plugin, following the
major.minor.patch.build
format.MinimumFluentSearchVersion: Specify if your plugin requires a certain version of Fluent Search; otherwise, set to
null
.URL: Link to your plugin's repository or homepage.
DownloadURL: Direct link to the plugin's downloadable file.
IconUrl: (Optional) URL to an image representing your plugin.
IconGlyph: (Optional) A Unicode character serving as the plugin's icon.
IconBase64: (Optional) Base64-encoded image data for the icon.
Example for a C# Plugin:
{
"PluginType": "Dotnet",
"Name": "Translator",
"DisplayName": "Translator",
"Description": "Use translator tag or specific language tag to translate text",
"PublisherName": "Blast Apps",
"Version": "1.4.0.0",
"MinimumFluentSearchVersion": null,
"URL": "https://github.com/adirh3/Translator.Fluent.Plugin",
"DownloadURL": "https://download.fluentsearch.net/fluent-search-plugins/Translator.Fluent.Plugin.1.4.0.zip",
"IconUrl": null,
"IconGlyph": "",
"IconBase64": null
}
Example for a Tasks Plugin:
{
"PluginType": "Task",
"Name": "Change Windows Theme",
"DisplayName": "Change Windows Theme",
"Description": "Search 'wt' to change Windows theme",
"PublisherName": "Blast Apps",
"Version": "1.0.0.0",
"MinimumFluentSearchVersion": null,
"URL": "https://github.com/adirh3/Fluent-Search-Tasks/tree/main/Windows/Change%20Windows%20Theme",
"DownloadURL": "https://raw.githubusercontent.com/adirh3/Fluent-Search-Tasks/main/Windows/Change%20Windows%20Theme/Change%20Windows%20Theme.yaml",
"IconUrl": null,
"IconGlyph": "",
"IconBase64": null
}
Additional Considerations
- Testing: Before submitting, thoroughly test your plugin to ensure compatibility and stability with the