Add autogenerated plugin list, closes #151
This commit is contained in:
parent
559edbfffe
commit
4bddcee40b
@ -7,7 +7,7 @@ A Discord client mod that does things differently
|
||||
- Works on Discord's latest update that breaks all other mods
|
||||
- Browser Support (experimental): Run Vencord in your Browser instead of the desktop app
|
||||
- Custom Css and Themes: Manually edit `%appdata%/Vencord/settings/quickCss.css` / `~/.config/Vencord/settings/quickCss.css` with your favourite editor and the client will automatically apply your changes. To import BetterDiscord themes, just add `@import url(theUrl)` on the top of this file. (Make sure the url is a github raw URL or similar and only contains plain text, and NOT a nice looking website)
|
||||
- Many Useful™ plugins - [List](https://github.com/Vendicated/Vencord/tree/main/src/plugins)
|
||||
- Many Useful™ plugins - [See a full List](https://gist.github.com/Vendicated/8696cde7b92548064a3ae92ead84d033)
|
||||
- Experiments
|
||||
- Proper context isolation -> Works in newer Electron versions (Confirmed working on versions 13-22)
|
||||
- Inline patches: Patch Discord's code with regex replacements! See [the experiments plugin](src/plugins/experiments.ts) for an example. While being more complex, this is more powerful than monkey patching since you can patch only small parts of functions instead of fully replacing them, access non exported/local variables and even replace constants (like in the aforementioned experiments patch!)
|
||||
|
65
scripts/genPluginList.js
Normal file
65
scripts/genPluginList.js
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Vencord, a modification for Discord's desktop app
|
||||
* Copyright (c) 2022 Vendicated and contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// A script to automatically generate a list of all plugins.
|
||||
// Just copy paste the entire file into a running Vencord install and it will prompt you
|
||||
// to save the file
|
||||
|
||||
(() => {
|
||||
// eslint-disable-next-line spaced-comment
|
||||
/// <reference types="../src/modules"/>
|
||||
/**
|
||||
* @type {typeof import("~plugins").default}
|
||||
*/
|
||||
const Plugins = Vencord.Plugins.plugins;
|
||||
|
||||
const header = `
|
||||
<!-- This file is auto generated, do not edit -->
|
||||
|
||||
# Vencord Plugins
|
||||
`;
|
||||
|
||||
let tableOfContents = "\n\n";
|
||||
|
||||
let list = "\n\n";
|
||||
|
||||
for (const p of Object.values(Plugins).sort((a, b) => a.name.localeCompare(b.name))) {
|
||||
tableOfContents += `- [${p.name}](#${encodeURIComponent(p.name)})\n`;
|
||||
|
||||
list += `## ${p.name}
|
||||
|
||||
${p.description}
|
||||
|
||||
**Authors**: ${p.authors.map(a => a.name).join(", ")}
|
||||
`;
|
||||
|
||||
if (p.commands?.length) {
|
||||
list += "\n\n### Commands\n";
|
||||
for (const cmd of p.commands) {
|
||||
list += `${cmd.name} - ${cmd.description}\n\n`;
|
||||
}
|
||||
}
|
||||
list += "\n\n";
|
||||
}
|
||||
|
||||
const data = new Blob([header.trimStart(), tableOfContents, list.trimEnd()], { type: "text/plain" });
|
||||
data.arrayBuffer().then(buf =>
|
||||
DiscordNative.fileManager.saveWithDialog(new Uint8Array(buf), "plugins.md")
|
||||
);
|
||||
|
||||
})();
|
Loading…
x
Reference in New Issue
Block a user