diff --git a/README.md b/README.md index e2c714b..7b1634a 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ A brief overview with some steps on how the plugin works. *Not required to use t - [ ] Google Maps - [ ] Google Calendar - [ ] Other websites. [Iframely](https://iframely.com/domains) has a list of websites that can be embedded. +- [ ] Add preview websites when hovering a link and holding `Ctrl` for websites that aren't embedded using the syntax. - [ ] Add tests - [ ] Updated README.md - [ ] Improve readability. Open to suggestions, especially if something isn't clear. diff --git a/SettingsExplanation.md b/SettingsExplanation.md new file mode 100644 index 0000000..199c903 --- /dev/null +++ b/SettingsExplanation.md @@ -0,0 +1,22 @@ +# Settings +This is an explanation of all the settings that the plugin has. + +## General +### Preview Embed +Opens this for you to test your embeds +![Preview embed](/readme-assets/settings/Preview-Settings.png) + +### Dark Mode +Sets dark mode for supported websites: +- Reddit +- Twitter/X + +## Show thumbnail + + +### Thumbnail supported websites list +- YouTube +- CodePen +- TikTok + +## \ No newline at end of file diff --git a/readme-assets/settings/Preview-Settings.png b/readme-assets/settings/Preview-Settings.png new file mode 100644 index 0000000..22ccc74 Binary files /dev/null and b/readme-assets/settings/Preview-Settings.png differ diff --git a/src/settings-tab.ts b/src/settings-tab.ts index bf1ea70..bc96747 100644 --- a/src/settings-tab.ts +++ b/src/settings-tab.ts @@ -14,6 +14,13 @@ export enum GoogleDocsViewOptions { EditDefault, } +export enum PreloadOptions { + None, + Placeholder, + Placeholder_ClickToLoad, + Thumbnail, + Thumbnail_ClickToLoad, +} // export type SupportedWebsites = "CodePen" | "Google Docs" | "Imgur" | "Reddit" | "SoundCloud" | "Spotify" | "Steam" | "TikTok" | "Twitter/X" | "YouTube"; @@ -26,6 +33,7 @@ export type SupportedWebsitesMap = { export interface PluginSettings { // General darkMode: boolean; + preloadOption: PreloadOptions; enabledWebsites: SupportedWebsitesMap; @@ -152,6 +160,23 @@ export class AutoEmbedSettingTab extends PluginSettingTab { await this.plugin.saveSettings(); }) ); + + const preloadOptions = EnumToRecord(PreloadOptions); + Object.entries(preloadOptions).forEach(([key, value]) => { + preloadOptions[key] = value.replace("_", " + "); + }); + + new Setting(containerEl) + .setName("Preload options") + .setDesc("Choose how the embed behaves before loading") + .addDropdown(dropdown => dropdown + .addOptions(preloadOptions) + .setValue(PreloadOptions[settings.preloadOption]) + .onChange(async (value) => { + settings.preloadOption = PreloadOptions[value as keyof typeof PreloadOptions]; + await this.plugin.saveSettings(); + }) + ) new Setting(containerEl) .setName("Supported website")